2 * Copyright 2009 University of California at Berkeley
\r
4 package org.collectionspace.services.nuxeo;
\r
6 import java.io.IOException;
\r
8 import org.collectionspace.services.common.ServiceMain;
\r
9 import org.collectionspace.services.common.repository.DocumentNotFoundException;
\r
10 import org.collectionspace.services.nuxeo.client.rest.NuxeoRESTClient;
\r
11 import org.collectionspace.services.nuxeo.client.java.NuxeoConnector;
\r
12 import org.collectionspace.services.nuxeo.util.NuxeoUtils;
\r
14 import org.dom4j.Document;
\r
15 import org.dom4j.DocumentException;
\r
16 import org.dom4j.dom.DOMDocument;
\r
17 import org.dom4j.dom.DOMDocumentFactory;
\r
19 import org.w3c.dom.DOMException;
\r
20 import org.w3c.dom.Element;
\r
22 import org.nuxeo.ecm.core.api.DocumentModel;
\r
23 import org.nuxeo.ecm.core.api.DocumentModelList;
\r
24 import org.nuxeo.ecm.core.api.DocumentRef;
\r
25 import org.nuxeo.ecm.core.api.IdRef;
\r
26 import org.nuxeo.ecm.core.api.ClientException;
\r
27 import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
\r
28 import org.nuxeo.ecm.core.client.NuxeoClient;
\r
30 import org.slf4j.Logger;
\r
31 import org.slf4j.LoggerFactory;
\r
37 public abstract class CollectionSpaceServiceNuxeoImpl {
\r
40 protected Logger logger = LoggerFactory
\r
41 .getLogger(CollectionSpaceServiceNuxeoImpl.class);
\r
43 // public NuxeoRESTClient getClient() {
\r
44 // NuxeoRESTClient nxClient = new NuxeoRESTClient(CS_NUXEO_URI);
\r
46 // nxClient.setAuthType(NuxeoRESTClient.AUTH_TYPE_BASIC);
\r
47 // nxClient.setBasicAuthentication("Administrator", "Administrator");
\r
53 protected RepositoryInstance getRepositorySession() throws Exception {
\r
54 // FIXME: is it possible to reuse repository session?
\r
55 // Authentication failures happen while trying to reuse the session
\r
56 NuxeoClient client = NuxeoConnector.getInstance().getClient();
\r
57 RepositoryInstance repoSession = client.openRepository();
\r
58 if (logger.isDebugEnabled()) {
\r
59 logger.debug("getRepository() repository root: "
\r
60 + repoSession.getRootDocument());
\r
65 protected void releaseRepositorySession(RepositoryInstance repoSession) {
\r
67 NuxeoClient client = NuxeoConnector.getInstance().getClient();
\r
69 client.releaseRepository(repoSession);
\r
70 } catch (Exception e) {
\r
71 logger.error("Could not close the repository session", e);
\r
72 // no need to throw this service specific exception
\r