You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2011/05/30 16:06:56 UTC
svn commit: r1129182 - in
/chemistry/opencmis/trunk/chemistry-opencmis-client:
chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/
chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runti...
Author: fmui
Date: Mon May 30 14:06:55 2011
New Revision: 1129182
URL: http://svn.apache.org/viewvc?rev=1129182&view=rev
Log:
CMIS-379: Second step: added object factory, authentication provider and cache parameters to session factory
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/SessionFactory.java
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionFactoryImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/RepositoryImpl.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/SessionFactory.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/SessionFactory.java?rev=1129182&r1=1129181&r2=1129182&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/SessionFactory.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/SessionFactory.java Mon May 30 14:06:55 2011
@@ -21,6 +21,9 @@ package org.apache.chemistry.opencmis.cl
import java.util.List;
import java.util.Map;
+import org.apache.chemistry.opencmis.commons.SessionParameter;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
+
/**
* Entry point into the OpenCMIS Client API. The <code>SessionFactory</code>
* class implementation needs to be retrieved by any runtime lookup call. This
@@ -54,22 +57,25 @@ import java.util.Map;
public interface SessionFactory {
/**
- * Obtain a new session using parameter configuration.
+ * Creates a new session.
*
* @param T
- * A from the {@code Session} interface derived sub type
+ * a class implementing the {@link Session} interface
* @param parameters
* a {@code Map} of name/value pairs with parameters for the
- * session. See class {@code SessionParameter}.
- * @return a {@code Session} to the CMIS repository specified by the {@code
- * parameters}.
+ * session
+ * @return a {@link Session} connected to the CMIS repository
+ * @throws CmisBaseException
+ * if the connection could not be established
+ *
+ * @see SessionParameter
*/
- <T extends Session> T createSession(Map<String, String> parameters);
+ Session createSession(Map<String, String> parameters);
/**
* Returns all repositories that are available at the endpoint. See
- * {@link #createSession(Map)} for parameter details. The parameter {@code
- * SessionParameter.REPOSITORY_ID} should not be set.
+ * {@link #createSession(Map)} for parameter details. The parameter
+ * {@code SessionParameter.REPOSITORY_ID} should not be set.
*/
List<Repository> getRepositories(Map<String, String> parameters);
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionFactoryImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionFactoryImpl.java?rev=1129182&r1=1129181&r2=1129182&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionFactoryImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionFactoryImpl.java Mon May 30 14:06:55 2011
@@ -22,11 +22,16 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.apache.chemistry.opencmis.client.api.ObjectFactory;
import org.apache.chemistry.opencmis.client.api.Repository;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
+import org.apache.chemistry.opencmis.client.bindings.spi.AbstractAuthenticationProvider;
+import org.apache.chemistry.opencmis.client.runtime.cache.Cache;
import org.apache.chemistry.opencmis.client.runtime.repository.RepositoryImpl;
+import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
import org.apache.chemistry.opencmis.commons.spi.CmisBinding;
/**
@@ -55,22 +60,59 @@ public class SessionFactoryImpl implemen
return new SessionFactoryImpl();
}
- @SuppressWarnings("unchecked")
- public <T extends Session> T createSession(Map<String, String> parameters) {
- SessionImpl session = new SessionImpl(parameters, null, null, null);
+ public Session createSession(Map<String, String> parameters) {
+ return createSession(parameters, null, null, null);
+ }
+
+ /**
+ * Creates a new session. The provided object factory, authentication
+ * provider and cache instance override the values in the session parameters
+ * if they are not <code>null</code>.
+ *
+ * @param T
+ * a class implementing the {@link Session} interface
+ * @param parameters
+ * a {@code Map} of name/value pairs with parameters for the
+ * session
+ * @param objectFactory
+ * an object factory instance
+ * @param authenticationProvider
+ * an authentication provider instance
+ * @param cache
+ * a cache instance
+ * @return a {@link Session} connected to the CMIS repository
+ * @throws CmisBaseException
+ * if the connection could not be established
+ *
+ * @see SessionParameter
+ */
+ public Session createSession(Map<String, String> parameters, ObjectFactory objectFactory,
+ AbstractAuthenticationProvider authenticationProvider, Cache cache) {
+ SessionImpl session = new SessionImpl(parameters, objectFactory, authenticationProvider, cache);
session.connect();
- return (T) session;
+ return session;
}
public List<Repository> getRepositories(Map<String, String> parameters) {
+ return getRepositories(parameters, null, null, null);
+ }
+
+ /**
+ * Returns all repositories that are available at the endpoint. See
+ * {@link #createSession(Map, ObjectFactory, AbstractAuthenticationProvider, Cache)}
+ * for parameter details. The parameter
+ * {@code SessionParameter.REPOSITORY_ID} should not be set.
+ */
+ public List<Repository> getRepositories(Map<String, String> parameters, ObjectFactory objectFactory,
+ AbstractAuthenticationProvider authenticationProvider, Cache cache) {
CmisBinding binding = CmisBindingHelper.createBinding(parameters, null);
List<RepositoryInfo> repositoryInfos = binding.getRepositoryService().getRepositoryInfos(null);
List<Repository> result = new ArrayList<Repository>();
for (RepositoryInfo data : repositoryInfos) {
- result.add(new RepositoryImpl(data, parameters, this));
+ result.add(new RepositoryImpl(data, parameters, this, objectFactory, authenticationProvider, cache));
}
return result;
Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/RepositoryImpl.java?rev=1129182&r1=1129181&r2=1129182&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/RepositoryImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/RepositoryImpl.java Mon May 30 14:06:55 2011
@@ -21,9 +21,12 @@ package org.apache.chemistry.opencmis.cl
import java.util.HashMap;
import java.util.Map;
+import org.apache.chemistry.opencmis.client.api.ObjectFactory;
import org.apache.chemistry.opencmis.client.api.Repository;
import org.apache.chemistry.opencmis.client.api.Session;
-import org.apache.chemistry.opencmis.client.api.SessionFactory;
+import org.apache.chemistry.opencmis.client.bindings.spi.AbstractAuthenticationProvider;
+import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
+import org.apache.chemistry.opencmis.client.runtime.cache.Cache;
import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoImpl;
@@ -33,22 +36,29 @@ public class RepositoryImpl extends Repo
private static final long serialVersionUID = 1L;
private final Map<String, String> parameters;
- private final SessionFactory sessionFactory;
+ private final SessionFactoryImpl sessionFactory;
+ private final ObjectFactory objectFactory;
+ private final AbstractAuthenticationProvider authenticationProvider;
+ private final Cache cache;
/**
* Constructor.
*/
- public RepositoryImpl(RepositoryInfo data, Map<String, String> parameters, SessionFactory sessionFactory) {
+ public RepositoryImpl(RepositoryInfo data, Map<String, String> parameters, SessionFactoryImpl sessionFactory,
+ ObjectFactory objectFactory, AbstractAuthenticationProvider authenticationProvider, Cache cache) {
super(data);
this.parameters = new HashMap<String, String>(parameters);
this.parameters.put(SessionParameter.REPOSITORY_ID, getId());
this.sessionFactory = sessionFactory;
+ this.objectFactory = objectFactory;
+ this.authenticationProvider = authenticationProvider;
+ this.cache = cache;
}
@SuppressWarnings("unchecked")
public <T extends Session> T createSession() {
- return (T) sessionFactory.createSession(parameters);
+ return (T) sessionFactory.createSession(parameters, objectFactory, authenticationProvider, cache);
}
}