Инфраструктура постоянных данных приложения / библиотека? - PullRequest
1 голос
/ 10 августа 2011

Наше настольное Java-приложение управляет несколькими текстовыми файлами, отредактированными пользователями.

В настоящее время эти файлы сохраняются в файловой системе с использованием внутреннего кода Java. Мы хотели бы отойти от этого и использовать вместо этого существующую инфраструктуру / библиотеку (желательно с открытым исходным кодом); было бы неплохо иметь возможность настроить во время выполнения фактическое постоянное хранилище: «файловая система» или «db».

Помимо реализации JCR (например, JackRabbit), есть ли другое возможное решение? Любые отзывы / советы по использованию JCR для нашего варианта использования?

Thx.

1 Ответ

1 голос
/ 11 августа 2011

Одним из преимуществ репозитория JCR является то, что он абстрагирует приложение от способа сохранения данных, но при этом обеспечивает иерархическую организацию, запрос, поиск, события и т. Д.

ModeShape - это реализация JCR, которая предлагает большую гибкость в том, как хранятся данные. Его соединители обеспечивают доступ и / или хранение контента в файловой системе ( два варианты ), в реляционной базе данных (многие СУБД поддерживаются), в сетке данных (например, Infinispan), в SVN , в комбинации (через федерация ) или даже в память (для небольших, менее критичных применений). ModeShape можно настроить с помощью свободного программного API , но как только вы запустите двигатель, вы действительно не сможете изменить разъемы.

(Полное раскрытие: я руководитель проекта.)

Таким образом, для вашего случая использования файлов в файловой системе с ModeShape и его соединителем файловой системы ваше приложение может использовать JCR API для доступа (и манипулирования) к существующей структуре файлов и папок , позволяя другим приложениям по-прежнему получать доступ к тем же файлам и папкам через файловую систему. С помощью этого соединителя ваше приложение может дополнительно хранить дополнительные свойства в узлах файлов и папок, но вы можете создавать только узлы файлов и папок.

Другим вариантом для вашего случая использования будет использование разъема диска ModeShape, который позволяет вашему приложению создавать файлы, папки и другое содержимое и сохранять информацию на диске. Этот соединитель гораздо более эффективен, чем соединитель файловой системы, потому что он может хранить любой контент (плюс он очень быстрый). Он также сохраняет содержимое репозитория в виде файлов в файловой системе, но использует другую структуру, нежели организация репозитория. Таким образом, разъем диска не предназначен для того, чтобы другие приложения могли использовать файловую систему для доступа к файлам, которые вы сохранили в репозитории. Если последнее не имеет значения, и вы просто ищете способ управления и хранения контента в файловой системе, тогда разъем диска будет отличным выбором.

...