За последние 2 года я часто пользуюсь Liferay, но мне никогда не требовалось обширного управления документами.
Теперь у меня есть портлет, куда пользователи загружают документы (документы MS Office OLE2, документы ODS, PDF и т. Д.), И я должен сохранять их со всеми доступными метаданными.
Я знаю, как бы это сделать без использования Liferay, я бы, вероятно, использовал Apache Solr с Apache Tika ( UpdateRichDocuments и ExtractingRequestHandler ) или Apache Jackrabbit, которые используют Apache Tika под капот (org.apache.jackrabbit.extractor. *).
Проблема в том, что, если я посмотрю на ствол Liferay, есть несколько ключевых классов:
Hooks (JCRHook, FileSystemHook, CMISHook, s3Hook)
, которые заняты изнутри DLLocalServiceImpl
вроде напрямую
Другой альтернативой является использование DLAppLocalServiceImpl
, в котором используется DLRepositoryLocalServiceImpl
, и файлы сохраняются в хранилище также через хуки, но там делается много дополнительных вещей.
В Liferay нет библиотеки jackrabbit-text-extractors, поэтому я полагаю, что если бы я хотел извлечь метаданные из документов PDF, DOCs, ODS, у меня были бы очень трудные времена ... потому что уровень обслуживания DL не принимает дополнительные свойства
- Я думаю, что мне придется избегать использования служб DL и перехвата JCR и получать прямой доступ к Jackrabbit ... Но я бы потерял совместимость и возможность перенести мой репозиторий и т. Д.
Может ли кто-нибудь поработать над этим, пожалуйста? Спасибо