2014-09-05 34 views
2

创建库例如根据JackRabbit用橡树官方documentation的创建Repository实例的方法之一是创建一个MicroKernel对象,并把它传递给JCR's参数的构造函数是这样的:如何JackRabbit用橡树采用微内核

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

但看着JCR类javadocs,我找不到任何构造函数,它需要一个类型为MicroKernel的对象。
所以我的问题是:

  • ,我们怎样才能JackRabbit用橡树获得使用MicroKernel一个资源库对象(不 JackRabbit用2.0)。

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

回答

0

尝试使用MicroKernelImpl公有的无参数的构造函数创建一个内存内核实例:

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

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

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

感谢您的答复,但我不觉得'JCR'类的任何构造函数需要'MicroKernel'类型作为参数。 – 2014-09-08 05:29:02

+0

您使用哪种Jackarabbit OAK版本? – tmarwen 2014-09-08 08:34:41

+0

请注意我使用'org.apache.jackrabbit.oak.Oak'类的答案的更新。 – tmarwen 2014-09-08 09:15:19

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)));