Binding locale a un server OpenCmis utilizzando Apache Chemistry
-
28-10-2019 - |
Domanda
Prima di tutto, apprezzerei se qualcuno potesse aggiungere il tag "Apache-Chemistry", non ho abbastanza mana per questo.
Non riesco a trovare alcuna informazione su questo Binding locale, è il terzo modo per connettersi a un server OpenCMIS.
È il caso in cui si desidera avere un livello di accesso condiviso in un repository remoto e un repository JCR in esecuzione a livello locale, ad esempio. È ovvio come funziona la configurazione remota, ma non capisco cosa significhi:
parameter.put(SessionParameter.LOCAL_FACTORY, "my.local.factory");
A cura di: nel frattempo ho scoperto che potrebbe essere il connettore del repository, in cui i dati dei client CMIS vengono convertiti e spinti, ma non sono sicuro ...
Un connettore del repository deve estendere la classe AbstractserviceFactory
Soluzione 3
È complicato spiegare, suppongo che la cosa migliore da fare sia verificarne Inmemoryserver da svn. La documentazione a cui si fa riferimento è un esempio di API client, in cui l'interfaccia di sessione contenga le operazioni CMIS più importanti.
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);
Dopo aver avuto la fonte, dai un'occhiata a "InmemoryServiceFactoryImpl" che è il LOCAL_FACTORY
Valore dei parametri. Questa fabbrica ha un service()
Metodo che ritorna InMemoryService
, che contiene riferimenti a tutti i tipi di servizi CMIS e IT come una sorta di facciata per la semplificata utilizzando tramite l'API client (Session Way).
Un altro modo è l'utilizzo dell'API di associazione client, in cui si accede direttamente ai servizi CMIS concreti.
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();
ecc., ecc., Dai un'occhiata ai test, che praticamente coprono la maggior parte dei casi d'uso.
Altri suggerimenti
Devi avere un Implementazione del server OpenCmis Per utilizzare il legame locale. Se ce n'è uno, passa il nome della classe della fabbrica di servizi e il cliente lo utilizzerà. Chiamerà direttamente i servizi (interfacce Java) senza inviare dati sulla rete. Non c'è nient'altro da fare sul lato cliente.