Как создать экземпляр репозитория в дубе 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();
Другие вопросы по тегам