使用橡木作为嵌入式

时间:2016-02-28 17:51:53

标签: jackrabbit jackrabbit-oak

我想在我的项目中使用oak作为嵌入式。首先,我编写了一个测试方法。在我的方法中,我使用此示例中的相同代码https://jackrabbit.apache.org/oak/docs/construct.html代码运行正常,但除非我关闭存储库,否则它不会终止:

((RepositoryImpl) repo).shutdown();

所以在我的项目中,不是第一次,而是在我想要连接到存储库的时候我打电话

mongoClient = new MongoClient(host, port);  
DB db = mongoClient.getDB(dbName);  
Builder builder = new DocumentMK.Builder(); 
builder.setMongoDB(db); 
ns = builder.getNodeStore();    
Oak oak = new Oak(ns);  
Jcr jcr = new Jcr(oak); 
repo = jcr.createRepository();  
try {   
    session = repo.login(new SimpleCredentials("admin", "admin".toCharArray()));    
} 
catch (LoginException e) {
    ...
}

最后

session.logout(); 
((RepositoryImpl) repo).shutdown(); 
ns.dispose(); 
mongoClient.close();
  1. 我是每次还是第一次调用createRepository()然后使用另一种方法来连接存储库。

  2. 是否需要存储库?

1 个答案:

答案 0 :(得分:1)

  

我是每次还是第一次调用createRepository()然后使用另一种方法来连接存储库。

如果保留存储库对象,则必须首次创建存储库并使用相同的方法进行登录。如果您丢失了存储库,就像在关闭时一样,您必须从头开始。

  

是否需要关闭所需的存储库?

正如documentation中所述,我们需要这样做以释放资源并保留更改(如果有的话)。