Как создать экземпляр репозитория в дубе JackRabbit с помощью MicroKernel
Согласно официальной документации JackRabbit Oak, один из способов создания Repository
Например, создать MicroKernel
возразить и передать его JCR's
параметризованный конструктор вот так:
MicroKernel kernel = ...;
Repository repository = new Jcr(kernel).createRepository();
Но, глядя на Javadocs класса JCR, я не могу найти конструктор, который принимает объект типа MicroKernel
,
Итак, мои вопросы:
- Как мы можем получить объект хранилища, используя
MicroKernel
в дубе джекраббит (не джекраббит 2.0).
Примечание. Мне нужен репозиторий, в котором в качестве носителя для хранения контента используется обычная файловая система.
2 ответа
Документация, к сожалению, отстает в некоторых областях. MicroKernel
интерфейс был заменен NodeStore
интерфейс в дубе.
Для сохранения файловой системы вы должны использовать SegmentNodeStore
, Посмотрите, как соответствующие тестовые примеры настраивают хранилище.
В двух словах:
File directory = ...
NodeStore store = new FileStore(directory, 1, false);
Jcr jcr = new Jcr(new Oak(new SegmentNodeStore(store)));
Попробуйте использовать MicroKernelImpl
открытый конструктор без аргументов для создания экземпляра ядра в памяти:
MicroKernel kernel = new MicroKernelImpl();
Repository repository = new Jcr(kernel).createRepository();
Кроме того, вы можете использовать OAK
запись класса для создания Repository
:
MicroKernel kernel = new MicroKernelImpl();
Repository repo = new Oak(kernel).createRepository();