Ответ 1
Я могу ответить на некоторые из ваших вопросов. Полное раскрытие: я основатель и руководитель проекта для ModeShape.
Вкратце, ModeShape - это легкая, внедряемая расширяемая реализация репозитория JCR с открытым исходным кодом, которая объединяет и унифицирует контент из нескольких систем, включая файловые системы, базы данных, данные сетки, другие репозитории и т.д. Вы можете использовать JCR API для доступа к уже имеющейся информации или использовать ее как обычную систему JCR.
Вот некоторые из более высокоуровневых функций ModeShape:
- Поддерживает все необходимые функции JCR 2.0: получение репозитория; аутентификация; чтение/навигации; запрос; экспорт; node обнаружение типа; проверки разрешений и возможностей
- Поддержка большинства дополнительных возможностей JCR 2.0: запись; Импортировать; наблюдение; управление рабочим пространством; управление версиями; блокировки; node управление типом; одноименные братья и сестры; упорядочиваемые дочерние узлы; разделяемые узлы; и
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.
- Простая кластеризация с использованием 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 Business Rules Management System также может использовать ModeShape в качестве своего репозитория JCR.
-
ModeShape и Jackrabbit как внутренне используют Lucene для полнотекстового поиска и запросов. В этом отношении они довольно похожи. Разумеется, реализация синтаксического анализа и исполнения в режиме ModeShape отличается от Jackrabbits и фактически была написана некоторыми из тех же людей, которые реализовали реляционно-ориентированную интеграцию и механизм объединения MetaMatrix (теперь часть JBoss EDS). В результате ModeShape имеет отдельный синтаксический анализатор для каждого из своих языков запросов, но после этого все проверки, планирование, планирование и выполнение всех запросов выполняется одинаково. Мы очень гордимся возможностями и производительностью нашего механизма запросов!
-
ModeShape не имеет соединителя для других систем CMIS, но, поскольку вы указываете, что в настоящее время работает (MODE-650). Мы также хотели бы работать с командой Apache Chemistry, чтобы убедиться, что адаптер JCR работает с ModeShape. Мы просто не успели сделать это.
-
В ModeShape есть JcrTools служебный класс, который может оказаться полезным. Но любой класс утилиты, написанный поверх JCR API, должен работать нормально.
Надеюсь, что это поможет!