Локальная привязка к серверу OpenCMIS с использованием Apache Chemistry - PullRequest
0 голосов
/ 22 марта 2011

Прежде всего, я был бы признателен, если бы кто-нибудь мог добавить метку "apache-химия", у меня недостаточно маны для этого.

Я не могу найти информацию о этой локальной привязке, это третий способ подключения к серверу OpenCMIS.

Это тот случай, когда кто-то хочет иметь уровень общего доступа к удаленному репозиторию и, например, локально работающий репозиторий JCR. Очевидно, как работает удаленная настройка, но я не понимаю, что это значит:

parameter.put(SessionParameter.LOCAL_FACTORY, "my.local.factory");

РЕДАКТИРОВАНИЕ: Тем временем я обнаружил, что это может быть соединитель репозитория, в который преобразуются и проталкиваются данные от клиентов CMIS, но я не уверен ...

Разъем хранилища должен расширяться класс AbstractServiceFactory

Ответы [ 3 ]

1 голос
/ 22 марта 2011

У вас должна быть реализация сервера OpenCMIS , чтобы использовать локальную привязку.Если есть, передайте имя класса фабрики обслуживания, и клиент будет использовать это.Он будет вызывать сервисы (интерфейсы Java) напрямую, без отправки данных по сети.На стороне клиента больше нечего делать.

1 голос
/ 22 марта 2011

Предполагается, что это

Имя класса локальной фабрики сервисов, если клиент и сервер находятся в одной и той же JVM

См. Создание локальногоэкземпляр привязки здесь и описание для LOCAL_FACTORY здесь

0 голосов
/ 22 марта 2011

Сложно объяснить, я полагаю, что лучше всего проверить inMemoryServer из SVN. Ссылка на документацию является примером клиентского API, где интерфейс сеанса содержит наиболее важные операции CMIS.

SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameter = new HashMap<String, String>();
..........
parameter.put(SessionParameter.LOCAL_FACTORY, "my.local.factory");
..........
Session session = factory.createSession(parameter);

После того, как у вас есть источник, взгляните на «InMemoryServiceFactoryImpl», который является значением параметра LOCAL_FACTORY. У этой фабрики есть метод service(), который возвращает InMemoryService, который содержит ссылки на все типы служб CMIS и серверы в качестве своего рода фасада для упрощенного использования через клиентский API (Session way).

Другим способом является использование Client Binding API, где вы получаете прямой доступ к конкретным службам CMIS.

CmisBindingFactory factory = CmisBindingFactory.newInstance();
CmisBinding binding = factory.createCmisLocalBinding(parameters); // LocalBinding !!
fFactory = binding.getObjectFactory();
fRepSvc = binding.getRepositoryService();
fObjSvc = binding.getObjectService();
fNavSvc = binding.getNavigationService();
fVerSvc = binding.getVersioningService();
fMultiSvc = binding.getMultiFilingService();
fDiscSvc = binding.getDiscoveryService();

и т. Д., И т. Д., Посмотрите на тесты, которые практически охватывают большинство случаев использования.

...