Структура/библиотека сохранения данных приложения?

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

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

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

Спасибо.


person Marc Polizzi    schedule 10.08.2011    source источник


Ответы (1)


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

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

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

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

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

person Randall Hauch    schedule 10.08.2011