You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fg...@apache.org on 2009/07/10 17:30:30 UTC

svn commit: r792983 - in /incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client: ContentManager.java connector/APPContentManager.java connector/Connector.java connector/HttpClientConnector.java

Author: fguillaume
Date: Fri Jul 10 15:30:29 2009
New Revision: 792983

URL: http://svn.apache.org/viewvc?rev=792983&view=rev
Log:
CMIS-21: move CredentialsProvider from ContentManager to Connector

Modified:
    incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/ContentManager.java
    incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/APPContentManager.java
    incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/Connector.java
    incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/HttpClientConnector.java

Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/ContentManager.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/ContentManager.java?rev=792983&r1=792982&r2=792983&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/ContentManager.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/ContentManager.java Fri Jul 10 15:30:29 2009
@@ -18,7 +18,6 @@
 package org.apache.chemistry.atompub.client;
 
 import org.apache.chemistry.Repository;
-import org.apache.commons.httpclient.auth.CredentialsProvider;
 
 /**
  * The entry point to CMIS repositories exposed by a server.
@@ -43,8 +42,6 @@
 
     Repository getRepository(String id) throws ContentManagerException;
 
-    CredentialsProvider getCredentialsProvider();
-
     /**
      * Logs-in as the given user. All the subsequent connections made by this
      * content manager will use this login.

Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/APPContentManager.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/APPContentManager.java?rev=792983&r1=792982&r2=792983&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/APPContentManager.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/APPContentManager.java Fri Jul 10 15:30:29 2009
@@ -24,7 +24,6 @@
 import org.apache.commons.httpclient.Credentials;
 import org.apache.commons.httpclient.UsernamePasswordCredentials;
 import org.apache.commons.httpclient.auth.AuthScheme;
-import org.apache.commons.httpclient.auth.CredentialsNotAvailableException;
 import org.apache.commons.httpclient.auth.CredentialsProvider;
 
 /**
@@ -38,7 +37,7 @@
 
     protected Repository[] repos;
 
-    protected CredentialsProvider credentialsProvider;
+    protected String username;
 
     public APPContentManager(String url) {
         this(url, null);
@@ -47,7 +46,7 @@
     protected APPContentManager(String url, Connector connector) {
         this.baseUrl = url;
         if (connector == null) {
-            connector = new HttpClientConnector(new DefaultIOProvider(), this);
+            connector = new HttpClientConnector(new DefaultIOProvider());
         }
         this.connector = connector;
     }
@@ -75,8 +74,7 @@
         return repos;
     }
 
-    public Repository getRepository(String id)
-            throws ContentManagerException {
+    public Repository getRepository(String id) throws ContentManagerException {
         for (Repository repository : getRepositories()) {
             if (repository.getId().equals(id)) {
                 return repository;
@@ -101,31 +99,19 @@
 
     // TODO have another login method with more generic Credentials
     public void login(String username, String password) {
-        credentialsProvider = new UsernamePasswordCredentialsProvider(username,
-                password);
+        this.username = username;
+        CredentialsProvider cp = new UsernamePasswordCredentialsProvider(
+                username, password);
+        connector.setCredentialsProvider(cp);
     }
 
     public void logout() {
-        credentialsProvider = null;
-    }
-
-    public CredentialsProvider getCredentialsProvider() {
-        return credentialsProvider;
+        username = null;
+        connector.setCredentialsProvider(null);
     }
 
     public String getCurrentLogin() {
-        Credentials credentials;
-        try {
-            credentials = credentialsProvider.getCredentials(null, null, 0,
-                    false);
-        } catch (CredentialsNotAvailableException e) {
-            // cannot happen, our SimpleCredentialsProvider doesn't throw it
-            return null;
-        }
-        if (!(credentials instanceof UsernamePasswordCredentials)) {
-            return null;
-        }
-        return ((UsernamePasswordCredentials) credentials).getUserName();
+        return username;
     }
 
     /**

Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/Connector.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/Connector.java?rev=792983&r1=792982&r2=792983&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/Connector.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/Connector.java Fri Jul 10 15:30:29 2009
@@ -24,12 +24,15 @@
 import org.apache.chemistry.atompub.client.ContentManagerException;
 import org.apache.chemistry.atompub.client.stax.ReadContext;
 import org.apache.chemistry.atompub.client.stax.XmlObjectWriter;
+import org.apache.commons.httpclient.auth.CredentialsProvider;
 
 /**
  * A Connector abstracts the HTTP or AtomPub operations.
  */
 public interface Connector {
 
+    void setCredentialsProvider(CredentialsProvider credentialsProvider);
+
     <T> Response post(Request operation, XmlObjectWriter<T> writer, T object)
             throws ContentManagerException;
 

Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/HttpClientConnector.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/HttpClientConnector.java?rev=792983&r1=792982&r2=792983&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/HttpClientConnector.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/connector/HttpClientConnector.java Fri Jul 10 15:30:29 2009
@@ -23,13 +23,13 @@
 import org.apache.chemistry.ObjectEntry;
 import org.apache.chemistry.Repository;
 import org.apache.chemistry.Type;
-import org.apache.chemistry.atompub.client.ContentManager;
 import org.apache.chemistry.atompub.client.ContentManagerException;
 import org.apache.chemistry.atompub.client.stax.ReadContext;
 import org.apache.chemistry.atompub.client.stax.XmlObjectWriter;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpMethod;
 import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.auth.CredentialsProvider;
 import org.apache.commons.httpclient.methods.DeleteMethod;
 import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.HeadMethod;
@@ -46,13 +46,14 @@
 
     protected final IOProvider io;
 
-    public HttpClientConnector(IOProvider io, ContentManager cm) {
+    public HttpClientConnector(IOProvider io) {
         this.io = io;
-        this.client = new HttpClient();
-        this.client.getParams().setAuthenticationPreemptive(true);
-        this.client.getParams().setParameter(
-                org.apache.commons.httpclient.auth.CredentialsProvider.PROVIDER,
-                cm.getCredentialsProvider());
+        client = new HttpClient();
+    }
+
+    public void setCredentialsProvider(CredentialsProvider cp) {
+        client.getParams().setAuthenticationPreemptive(true);
+        client.getParams().setParameter(CredentialsProvider.PROVIDER, cp);
     }
 
     protected void setMethodParams(HttpMethod method, Request request) {