如何使用MicroKernel在JackRabbit Oak中创建存储库实例

时间:2014-09-05 08:48:07

标签: jackrabbit jcr content-repository

根据JackRabbit Oak官方documentation的说法,创建Repository实例的方法之一是创建一个MicroKernel对象并将其传递给JCR's参数化构造函数,如下所示:

MicroKernel kernel = ...;
Repository repository = new Jcr(kernel).createRepository();

但是看看JCR类javadocs,我找不到任何带有MicroKernel类型对象的构造函数。
所以我的问题是:

  • 如何在JackRabbit Oak中使用MicroKernel获取存储库对象(不是    JackRabbit 2.0 )。

注意:我想要一个使用普通文件系统作为内容存储介质的存储库。

2 个答案:

答案 0 :(得分:3)

遗憾的是,某些地区的文件落后。 MicroKernel接口已被Oak中的NodeStore接口取代。

对于文件系统持久性,您可以使用SegmentNodeStore。看看各个测试用例set up the repository是如何进行的。

简而言之:

File directory = ...
NodeStore store = new FileStore(directory, 1, false);
Jcr jcr = new Jcr(new Oak(new SegmentNodeStore(store)));

答案 1 :(得分:0)

尝试使用MicroKernelImpl public no-arg构造函数来创建内存中的内核实例:

MicroKernel kernel = new MicroKernelImpl();
Repository repository = new Jcr(kernel).createRepository();

或者,您可以使用OAK类条目创建Repository

MicroKernel kernel = new MicroKernelImpl();
Repository repo = new Oak(kernel).createRepository();