Я могу ответить на некоторые ваши вопросы.Полное раскрытие: я основатель и руководитель проекта для ModeShape.
Вкратце, ModeShape - это легкая, встраиваемая, расширяемая реализация репозитория JCR с открытым исходным кодом, которая объединяет и объединяет контент из нескольких систем,включая файловые системы, базы данных, сетки данных, другие репозитории и т. д. Вы можете использовать API JCR для доступа к уже имеющейся информации или использовать ее как обычную систему JCR.
Вот некоторые изОсобенности уровня ModeShape:
- Поддерживает все необходимые функции JCR 2.0: получение хранилища;аутентификация;чтение / навигации;запрос;экспорт;обнаружение типа узла;проверка разрешений и возможностей
- Поддерживает большинство дополнительных функций JCR 2.0: запись;Импортировать;наблюдение;управление рабочим пространством;управление версиями;блокировки;управление типами узлов;одноименные братья и сестры;заказываемые дочерние узлы;разделяемые узлы;и
mix:etag
, mix:created
и mix:lastModified
mixins с автоматически созданными свойствами. - Поддерживает языки JCR 1.0 и JCR 2.0 (например, XPath, JCR-SQL, JCR-SQL2 и JCR-QOM) плюсязык полнотекстового поиска, основанный на грамматике выражений полнотекстового поиска JCR-SQL2.Кроме того, ModeShape поддерживает некоторые очень полезные расширения для JCR-SQL2:
- подзапросов в критериях
- операций над наборами (например, "
UNION
", "INTERSECT
", "EXCEPT
"каждый с необязательным предложением "ALL
") - ограничения и смещения
- удаление дубликатов (например, "
SELECT DISTINCT
") - дополнительные критерии глубины, задания и пути
- набор и диапазон критериев (например, "
IN
", "NOT IN
" и "BETWEEN
") - арифметические критерии (например, "
SCORE(t1) + SCORE(t2)
") - полное внешнее объединение и перекрестное объединение
- и более
- Выбор из нескольких вариантов хранения, включая RDBMS (через Hibernate ),сетки данных (например, Infinispan ), файловые системы или при необходимости создайте собственные коннекторы хранения.
- Используйте JCR API для доступа к информации в существующих сервисах, файловых системах и репозиториях.Соединители ModeShape проецируют внешнюю информацию в репозиторий JCR, потенциально объединяя информацию из нескольких систем в одно рабочее пространство.Также можно создавать собственные соединители для доступа к другим системам.
- Загружайте файлы и позволяйте ModeShape автоматически анализировать и извлекать структурированную информацию, представляющую содержимое этих файлов.Эта производная информация хранится в хранилище, где ее можно запрашивать и получать к ней доступ, как и к любому другому содержимому.ModeShape поддерживает несколько готовых типов файлов, включая: CND, XML, XSD, WSDL, DDL, CSV, ZIP / JAR / EAR / WAR, исходный код Java, файлы классов Java, Microsoft Office, метаданные изображения и Teiid модели и VDB.Написание секвенсоров для файлов других типов также очень просто.
- Автоматическое и расширяемое обнаружение MIME-типов с готовым обнаружением с использованием расширений файлов и обнаружением на основе содержимого с использованием Aperture .
- Расширяемая структура извлечения текста с готовой поддержкой файлов Microsoft Office, PDF, HTML, простого текста и XML с использованием Tika .
- Simpleкластеризация с использованием JGroups.
- Встраивание ModeShape в ваше собственное приложение.
- RESTful API (требуется развертывание на сервере приложений).
Это лишь некоторые из основных моментов,Подробнее об этих и других функциях ModeShape см. Документацию ModeShape .
Теперь приведем несколько конкретных ответов на ваши пронумерованные вопросы:
ModeShape размещается на JBoss.org и использует / интегрируется с другими технологиями JBoss, потому что мы решили, что лучше использовать лучшие в своем классе библиотеки.Но ModeShape определенно не привязан к серверу приложений JBoss .ModeShape можно использовать на других серверах приложений практически так же, как и в других реализациях JCR (обычно встроенных в веб-приложение).Плюс, ModeShape может быть встроен в любое приложение ;в конце концов, это просто обычная библиотека Java.Он даже использует SLF4J, так что сообщения журнала ModeShape могут быть отправлены в каркас журналирования приложения.
Теперь, сказав это, мы облегчаем развертывание ModeShape для установки JBoss AS с помощью простого набора: просто разархивируйте, немного измените конфигурацию (в зависимости от ваших потребностей)и запустите сервер приложений.ModeShape будет работать как служба на сервере приложений, что позволит вашим развернутым приложениям просто искать, использовать и делиться репозиториями.ModeShape можно даже контролировать с помощью консоли JBoss AS.
Я полагаю, вы имеете в виду наши планы по разработке инструмента визуализации репозитория (гораздо меньше, чем полноценная система CMS).Работа над этим началась совсем недавно, и мы будем рады любым предложениям, запросам о функциональности и интересу к сотрудничеству с нами.Я знаю, что Magnolia может работать поверх ModeShape, но не уверен, что другие приложения CMS могут это сделать.Платформа JBoss Enterprise Data Services (EDS) также включает ModeShape и использует его в качестве хранилища метаданных. Система управления бизнес-правилами JBoss также может использовать ModeShape в качестве своего хранилища JCR.
ModeShape и Jackrabbit оба используют Lucene для полнотекстового поиска и запросов.В этом отношении они довольно похожи.Конечно, реализация разбора и выполнения поиска и выполнения в ModeShape отличается от Jackrabbits, и на самом деле была написана некоторыми из тех же людей, которые реализовали реляционно-ориентированный механизм интеграции и федерации MetaMatrix (теперь часть JBoss EDS).В результате ModeShape имеет отдельный синтаксический анализатор для каждого из своих языков запросов, но после этого вся проверка, планирование, планирование и выполнение всех запросов выполняется одинаково.Мы очень гордимся возможностями и производительностью нашего механизма запросов!
ModeShape не имеет разъема для других систем CMIS, но, как вы заметили, он в данный момент в работе ( РЕЖИМ-650 ).Мы также хотели бы поработать с командой Apache Chemistry, чтобы убедиться, что адаптер JCR работает с ModeShape.У нас просто не было времени для этого.
ModeShape имеет служебный класс JcrTools , который может оказаться полезным.Но любой служебный класс, написанный поверх API JCR, должен работать просто отлично.
Надеюсь, это поможет!