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/07 04:35:34 UTC

svn commit: r1100433 - in /chemistry/opencmis/trunk: chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/ chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/ja...

Author: fmui
Date: Sat May  7 02:35:34 2011
New Revision: 1100433

URL: http://svn.apache.org/viewvc?rev=1100433&view=rev
Log:
added infrastructure to handle HTTP response headers in authentication providers

Added:
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/AuthenticationProvider.java   (with props)
Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/CmisBindingImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/HttpUtils.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/CmisBinding.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/CmisBindingImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/CmisBindingImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/CmisBindingImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/CmisBindingImpl.java Sat May  7 02:35:34 2011
@@ -27,6 +27,7 @@ import org.apache.chemistry.opencmis.cli
 import org.apache.chemistry.opencmis.commons.SessionParameter;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.BindingsObjectFactoryImpl;
 import org.apache.chemistry.opencmis.commons.spi.AclService;
+import org.apache.chemistry.opencmis.commons.spi.AuthenticationProvider;
 import org.apache.chemistry.opencmis.commons.spi.BindingsObjectFactory;
 import org.apache.chemistry.opencmis.commons.spi.CmisBinding;
 import org.apache.chemistry.opencmis.commons.spi.DiscoveryService;
@@ -51,7 +52,7 @@ public class CmisBindingImpl implements 
 
     /**
      * Constructor.
-     *
+     * 
      * @param sessionParameters
      *            the session parameters
      */
@@ -161,6 +162,10 @@ public class CmisBindingImpl implements 
         return objectFactory;
     }
 
+    public AuthenticationProvider getAuthenticationProvider() {
+        return CmisBindingsHelper.getAuthenticationProvider(session);
+    }
+
     public void clearAllCaches() {
         checkSession();
 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java Sat May  7 02:35:34 2011
@@ -23,60 +23,43 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.chemistry.opencmis.commons.SessionParameter;
+import org.apache.chemistry.opencmis.commons.spi.AuthenticationProvider;
 import org.w3c.dom.Element;
 
 /**
  * Authentication provider class.
  */
-public abstract class AbstractAuthenticationProvider implements Serializable {
+public abstract class AbstractAuthenticationProvider implements AuthenticationProvider, Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    private Session fSession;
+    private Session session;
 
     /**
      * Sets the {@link Session} the authentication provider lives in.
      */
     public void setSession(Session session) {
-        fSession = session;
+        this.session = session;
     }
 
     /**
      * Returns {@link Session}.
      */
     public Session getSession() {
-        return fSession;
+        return session;
     }
 
-    /**
-     * Returns a set of HTTP headers (key-value pairs) that should be added to a
-     * HTTP call. This will be called by the AtomPub and the Web Services
-     * binding. You might want to check the binding in use before you set the
-     * headers.
-     * 
-     * @param url
-     *            the URL of the HTTP call
-     * 
-     * @return the HTTP headers or <code>null</code> if no additional headers
-     *         should be set
-     */
     public Map<String, List<String>> getHTTPHeaders(String url) {
         return null;
     }
 
-    /**
-     * Returns a SOAP header that should be added to a Web Services call.
-     * 
-     * @param portObject
-     *            the port object
-     * 
-     * @return the SOAP headers or <code>null</code> if no additional headers
-     *         should be set
-     */
     public Element getSOAPHeaders(Object portObject) {
         return null;
     }
 
+    public void setResponseHeaders(String url, Map<String, List<String>> headers) {
+    }
+
     /**
      * Gets the user name from the session.
      * 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/HttpUtils.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/HttpUtils.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/HttpUtils.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/HttpUtils.java Sat May  7 02:35:34 2011
@@ -35,12 +35,12 @@ import java.util.zip.Inflater;
 import java.util.zip.InflaterInputStream;
 
 import org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper;
-import org.apache.chemistry.opencmis.client.bindings.spi.AbstractAuthenticationProvider;
 import org.apache.chemistry.opencmis.client.bindings.spi.Session;
 import org.apache.chemistry.opencmis.commons.SessionParameter;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException;
 import org.apache.chemistry.opencmis.commons.impl.Base64;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
+import org.apache.chemistry.opencmis.commons.spi.AuthenticationProvider;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -115,7 +115,7 @@ public class HttpUtils {
             }
 
             // authenticate
-            AbstractAuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(session);
+            AuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(session);
             if (authProvider != null) {
                 Map<String, List<String>> httpHeaders = authProvider.getHTTPHeaders(url.toString());
                 if (httpHeaders != null) {
@@ -188,6 +188,11 @@ public class HttpUtils {
                 inputStream = conn.getInputStream();
             }
 
+            // forward response HTTP headers
+            if (authProvider != null) {
+                authProvider.setResponseHeaders(url.toString(), conn.getHeaderFields());
+            }
+
             // get the response
             return new Response(respCode, conn.getResponseMessage(), conn.getHeaderFields(), inputStream,
                     conn.getErrorStream());

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java Sat May  7 02:35:34 2011
@@ -21,11 +21,15 @@ package org.apache.chemistry.opencmis.cl
 import java.net.URL;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
 import javax.xml.ws.Service;
+import javax.xml.ws.handler.MessageContext;
 
+import org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper;
 import org.apache.chemistry.opencmis.client.bindings.spi.Session;
 import org.apache.chemistry.opencmis.commons.SessionParameter;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
@@ -49,6 +53,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.jaxb.RepositoryServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.VersioningService;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.VersioningServicePort;
+import org.apache.chemistry.opencmis.commons.spi.AuthenticationProvider;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -135,6 +140,18 @@ public abstract class AbstractPortProvid
         return (ACLServicePort) getPortObject(SessionParameter.WEBSERVICES_ACL_SERVICE);
     }
 
+    public void endCall(Object portObject) {
+        AuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(session);
+        if (authProvider != null) {
+            BindingProvider bp = (BindingProvider) portObject;
+            String url = (String) bp.getRequestContext().get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY);
+            @SuppressWarnings("unchecked")
+            Map<String, List<String>> headers = (Map<String, List<String>>) bp.getResponseContext().get(
+                    MessageContext.HTTP_RESPONSE_HEADERS);
+            authProvider.setResponseHeaders(url, headers);
+        }
+    }
+
     // ---- internal ----
 
     /**

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java Sat May  7 02:35:34 2011
@@ -45,38 +45,22 @@ public class AclServiceImpl extends Abst
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ACLService#applyACL(java.lang.String,
-     * java.lang.String, org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.commons.enums.ACLPropagation,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public Acl applyAcl(String repositoryId, String objectId, Acl addACEs, Acl removeACEs,
             AclPropagation aclPropagation, ExtensionsData extension) {
         ACLServicePort port = portProvider.getACLServicePort();
 
         try {
-            return convert(port.applyACL(repositoryId, objectId, convert(addACEs), convert(removeACEs), convert(
-                    EnumACLPropagation.class, aclPropagation), convert(extension)));
+            return convert(port.applyACL(repositoryId, objectId, convert(addACEs), convert(removeACEs),
+                    convert(EnumACLPropagation.class, aclPropagation), convert(extension)));
         } catch (CmisException e) {
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ACLService#getACL(java.lang.String,
-     * java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
         ACLServicePort port = portProvider.getACLServicePort();
 
@@ -86,6 +70,8 @@ public class AclServiceImpl extends Abst
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java Sat May  7 02:35:34 2011
@@ -51,16 +51,6 @@ public class DiscoveryServiceImpl extend
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.DiscoveryService#getContentChanges
-     * (java.lang.String, org.apache.opencmis.client.provider.Holder,
-     * java.lang.Boolean, java.lang.String, java.lang.Boolean,
-     * java.lang.Boolean, java.math.BigInteger,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
             String filter, Boolean includePolicyIds, Boolean includeACL, BigInteger maxItems, ExtensionsData extension) {
         DiscoveryServicePort port = portProvider.getDiscoveryServicePort();
@@ -79,33 +69,26 @@ public class DiscoveryServiceImpl extend
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.DiscoveryService#query(java.lang.
-     * String, java.lang.String, java.lang.Boolean, java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.math.BigInteger, java.math.BigInteger,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
         DiscoveryServicePort port = portProvider.getDiscoveryServicePort();
 
         try {
-            return convert(port.query(repositoryId, statement, searchAllVersions, includeAllowableActions, convert(
-                    EnumIncludeRelationships.class, includeRelationships), renditionFilter, maxItems, skipCount,
-                    convert(extension)));
+            return convert(port.query(repositoryId, statement, searchAllVersions, includeAllowableActions,
+                    convert(EnumIncludeRelationships.class, includeRelationships), renditionFilter, maxItems,
+                    skipCount, convert(extension)));
         } catch (CmisException e) {
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
-
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java Sat May  7 02:35:34 2011
@@ -44,14 +44,6 @@ public class MultiFilingServiceImpl exte
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.MultiFilingService#addObjectToFolder
-     * (java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
             ExtensionsData extension) {
         MultiFilingServicePort port = portProvider.getMultiFilingServicePort();
@@ -66,17 +58,11 @@ public class MultiFilingServiceImpl exte
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.MultiFilingService#removeObjectFromFolder
-     * (java.lang.String, java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
         MultiFilingServicePort port = portProvider.getMultiFilingServicePort();
 
@@ -90,7 +76,8 @@ public class MultiFilingServiceImpl exte
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
-
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java Sat May  7 02:35:34 2011
@@ -55,43 +55,24 @@ public class NavigationServiceImpl exten
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.NavigationService#getChildren(java
-     * .lang.String, java.lang.String, java.lang.String, java.lang.String,
-     * java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.lang.Boolean, java.math.BigInteger, java.math.BigInteger,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
             Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
         NavigationServicePort port = portProvider.getNavigationServicePort();
 
         try {
-            return convert(port.getChildren(repositoryId, folderId, filter, orderBy, includeAllowableActions, convert(
-                    EnumIncludeRelationships.class, includeRelationships), renditionFilter, includePathSegment,
+            return convert(port.getChildren(repositoryId, folderId, filter, orderBy, includeAllowableActions,
+                    convert(EnumIncludeRelationships.class, includeRelationships), renditionFilter, includePathSegment,
                     maxItems, skipCount, convert(extension)));
         } catch (CmisException e) {
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.NavigationService#getDescendants(
-     * java.lang.String, java.lang.String, java.math.BigInteger,
-     * java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.lang.Boolean, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
@@ -118,17 +99,11 @@ public class NavigationServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.NavigationService#getFolderParent
-     * (java.lang.String, java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
         NavigationServicePort port = portProvider.getNavigationServicePort();
 
@@ -138,19 +113,11 @@ public class NavigationServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.NavigationService#getFolderTree(java
-     * .lang.String, java.lang.String, java.math.BigInteger, java.lang.String,
-     * java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.lang.Boolean, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
@@ -177,18 +144,11 @@ public class NavigationServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.NavigationService#getObjectParents
-     * (java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.lang.Boolean, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
             Boolean includeRelativePathSegment, ExtensionsData extension) {
@@ -215,20 +175,11 @@ public class NavigationServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.NavigationService#getCheckedOutDocs
-     * (java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-     * java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.math.BigInteger, java.math.BigInteger,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
@@ -242,6 +193,8 @@ public class NavigationServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java Sat May  7 02:35:34 2011
@@ -66,18 +66,6 @@ public class ObjectServiceImpl extends A
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#createDocument(java
-     * .lang.String, org.apache.opencmis.client.provider.PropertiesData,
-     * java.lang.String, org.apache.opencmis.client.provider.ContentStreamData,
-     * org.apache.opencmis.commons.enums.VersioningState, java.util.List,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public String createDocument(String repositoryId, Properties properties, String folderId,
             ContentStream contentStream, VersioningState versioningState, List<String> policies, Acl addACEs,
             Acl removeACEs, ExtensionsData extension) {
@@ -87,9 +75,9 @@ public class ObjectServiceImpl extends A
             javax.xml.ws.Holder<String> objectId = new javax.xml.ws.Holder<String>();
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
 
-            port.createDocument(repositoryId, convert(properties), folderId, convert(contentStream), convert(
-                    EnumVersioningState.class, versioningState), policies, convert(addACEs), convert(removeACEs),
-                    portExtension, objectId);
+            port.createDocument(repositoryId, convert(properties), folderId, convert(contentStream),
+                    convert(EnumVersioningState.class, versioningState), policies, convert(addACEs),
+                    convert(removeACEs), portExtension, objectId);
 
             setExtensionValues(portExtension, extension);
 
@@ -98,21 +86,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#createDocumentFromSource
-     * (java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.PropertiesData, java.lang.String,
-     * org.apache.opencmis.commons.enums.VersioningState, java.util.List,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
             String folderId, VersioningState versioningState, List<String> policies, Acl addACEs, Acl removeACEs,
             ExtensionsData extension) {
@@ -122,9 +100,9 @@ public class ObjectServiceImpl extends A
             javax.xml.ws.Holder<String> objectId = new javax.xml.ws.Holder<String>();
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
 
-            port.createDocumentFromSource(repositoryId, sourceId, convert(properties), folderId, convert(
-                    EnumVersioningState.class, versioningState), policies, convert(addACEs), convert(removeACEs),
-                    portExtension, objectId);
+            port.createDocumentFromSource(repositoryId, sourceId, convert(properties), folderId,
+                    convert(EnumVersioningState.class, versioningState), policies, convert(addACEs),
+                    convert(removeACEs), portExtension, objectId);
 
             setExtensionValues(portExtension, extension);
 
@@ -133,20 +111,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#createFolder(java.lang
-     * .String, org.apache.opencmis.client.provider.PropertiesData,
-     * java.lang.String, java.util.List,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public String createFolder(String repositoryId, Properties properties, String folderId, List<String> policies,
             Acl addACEs, Acl removeACEs, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -165,20 +134,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#createPolicy(java.lang
-     * .String, org.apache.opencmis.client.provider.PropertiesData,
-     * java.lang.String, java.util.List,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public String createPolicy(String repositoryId, Properties properties, String folderId, List<String> policies,
             Acl addACEs, Acl removeACEs, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -197,19 +157,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#createRelationship(
-     * java.lang.String, org.apache.opencmis.client.provider.PropertiesData,
-     * java.util.List, org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.AccessControlList,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public String createRelationship(String repositoryId, Properties properties, List<String> policies, Acl addACEs,
             Acl removeACEs, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -228,19 +180,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#updateProperties(java
-     * .lang.String, org.apache.opencmis.client.provider.Holder,
-     * org.apache.opencmis.client.provider.Holder,
-     * org.apache.opencmis.client.provider.PropertiesData,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
             Properties properties, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -259,17 +203,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#deleteObject(java.lang
-     * .String, java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
 
@@ -283,40 +221,27 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#deleteTree(java.lang
-     * .String, java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.UnfileObject, java.lang.Boolean,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
             UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
-            return convert(port.deleteTree(repositoryId, folderId, allVersions, convert(EnumUnfileObject.class,
-                    unfileObjects), continueOnFailure, convert(extension)));
+            return convert(port.deleteTree(repositoryId, folderId, allVersions,
+                    convert(EnumUnfileObject.class, unfileObjects), continueOnFailure, convert(extension)));
         } catch (CmisException e) {
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#getAllowableActions
-     * (java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
 
@@ -326,17 +251,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#getContentStream(java
-     * .lang.String, java.lang.String, java.lang.String, java.math.BigInteger,
-     * java.math.BigInteger, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
             BigInteger length, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -347,69 +266,47 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#getObject(java.lang
-     * .String, java.lang.String, java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.lang.Boolean, java.lang.Boolean,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
             Boolean includeACL, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
-            return convert(port.getObject(repositoryId, objectId, filter, includeAllowableActions, convert(
-                    EnumIncludeRelationships.class, includeRelationships), renditionFilter, includePolicyIds,
+            return convert(port.getObject(repositoryId, objectId, filter, includeAllowableActions,
+                    convert(EnumIncludeRelationships.class, includeRelationships), renditionFilter, includePolicyIds,
                     includeACL, convert(extension)));
         } catch (CmisException e) {
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#getObjectByPath(java
-     * .lang.String, java.lang.String, java.lang.String, java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
-     * java.lang.Boolean, java.lang.Boolean,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
             Boolean includeACL, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
-            return convert(port.getObjectByPath(repositoryId, path, filter, includeAllowableActions, convert(
-                    EnumIncludeRelationships.class, includeRelationships), renditionFilter, includePolicyIds,
+            return convert(port.getObjectByPath(repositoryId, path, filter, includeAllowableActions,
+                    convert(EnumIncludeRelationships.class, includeRelationships), renditionFilter, includePolicyIds,
                     includeACL, convert(extension)));
         } catch (CmisException e) {
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#getProperties(java.
-     * lang.String, java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
 
@@ -419,17 +316,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#getRenditions(java.
-     * lang.String, java.lang.String, java.lang.String, java.math.BigInteger,
-     * java.math.BigInteger, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public List<RenditionData> getRenditions(String repositoryId, String objectId, String renditionFilter,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -454,17 +345,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#moveObject(java.lang
-     * .String, org.apache.opencmis.client.provider.Holder, java.lang.String,
-     * java.lang.String, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
             ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -481,19 +366,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#setContentStream(java
-     * .lang.String, org.apache.opencmis.client.provider.Holder,
-     * java.lang.Boolean, org.apache.opencmis.client.provider.Holder,
-     * org.apache.opencmis.client.provider.ContentStreamData,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void setContentStream(String repositoryId, Holder<String> objectId, Boolean overwriteFlag,
             Holder<String> changeToken, ContentStream contentStream, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -513,18 +390,11 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.ObjectService#deleteContentStream
-     * (java.lang.String, org.apache.opencmis.client.provider.Holder,
-     * org.apache.opencmis.client.provider.Holder,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void deleteContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
             ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -543,6 +413,8 @@ public class ObjectServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java Sat May  7 02:35:34 2011
@@ -50,14 +50,6 @@ public class PolicyServiceImpl extends A
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.PolicyService#applyPolicy(java.lang
-     * .String, java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void applyPolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
         PolicyServicePort port = portProvider.getPolicyServicePort();
 
@@ -71,17 +63,11 @@ public class PolicyServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.PolicyService#removePolicy(java.lang
-     * .String, java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public void removePolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
         PolicyServicePort port = portProvider.getPolicyServicePort();
 
@@ -95,17 +81,11 @@ public class PolicyServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.PolicyService#getAppliedPolicies(
-     * java.lang.String, java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public List<ObjectData> getAppliedPolicies(String repositoryId, String objectId, String filter,
             ExtensionsData extension) {
         PolicyServicePort port = portProvider.getPolicyServicePort();
@@ -115,7 +95,7 @@ public class PolicyServiceImpl extends A
                     convert(extension));
 
             List<ObjectData> result = new ArrayList<ObjectData>();
-            
+
             // no list?
             if (policyList == null) {
                 return result;
@@ -131,6 +111,8 @@ public class PolicyServiceImpl extends A
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java Sat May  7 02:35:34 2011
@@ -29,7 +29,6 @@ import javax.xml.ws.handler.MessageConte
 import javax.xml.ws.soap.MTOMFeature;
 
 import org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper;
-import org.apache.chemistry.opencmis.client.bindings.spi.AbstractAuthenticationProvider;
 import org.apache.chemistry.opencmis.client.bindings.spi.Session;
 import org.apache.chemistry.opencmis.commons.SessionParameter;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
@@ -44,6 +43,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.jaxb.RelationshipService;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.RepositoryService;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.VersioningService;
+import org.apache.chemistry.opencmis.commons.spi.AuthenticationProvider;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.w3c.dom.Element;
@@ -136,7 +136,7 @@ public class PortProvider extends Abstra
             }
 
             // add SOAP and HTTP authentication headers
-            AbstractAuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(session);
+            AuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(session);
             Map<String, List<String>> httpHeaders = null;
             if (authProvider != null) {
                 // SOAP header

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java Sat May  7 02:35:34 2011
@@ -47,31 +47,21 @@ public class RelationshipServiceImpl ext
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seeorg.apache.opencmis.client.provider.RelationshipService#
-     * getObjectRelationships(java.lang.String, java.lang.String,
-     * java.lang.Boolean,
-     * org.apache.opencmis.commons.enums.RelationshipDirection,
-     * java.lang.String, java.lang.String, java.lang.Boolean,
-     * java.math.BigInteger, java.math.BigInteger,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public ObjectList getObjectRelationships(String repositoryId, String objectId, Boolean includeSubRelationshipTypes,
             RelationshipDirection relationshipDirection, String typeId, String filter, Boolean includeAllowableActions,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
         RelationshipServicePort port = portProvider.getRelationshipServicePort();
 
         try {
-            return convert(port.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes, convert(
-                    EnumRelationshipDirection.class, relationshipDirection), typeId, filter, includeAllowableActions,
-                    maxItems, skipCount, convert(extension)));
+            return convert(port.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes,
+                    convert(EnumRelationshipDirection.class, relationshipDirection), typeId, filter,
+                    includeAllowableActions, maxItems, skipCount, convert(extension)));
         } catch (CmisException e) {
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
-
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java Sat May  7 02:35:34 2011
@@ -53,13 +53,6 @@ public class RepositoryServiceImpl exten
         this.portProvider = portProvider;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.RepositoryService#getRepositoryInfos
-     * (org.apache.opencmis.client.provider .ExtensionsData)
-     */
     public List<RepositoryInfo> getRepositoryInfos(ExtensionsData extension) {
         RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
@@ -81,18 +74,13 @@ public class RepositoryServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
 
         return infos;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.RepositoryService#getRepositoryInfo
-     * (java.lang.String, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
         RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
@@ -102,17 +90,11 @@ public class RepositoryServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.RepositoryService#getTypeDefinition
-     * (java.lang.String, java.lang.String,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
         RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
@@ -122,18 +104,11 @@ public class RepositoryServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.RepositoryService#getTypeChildren
-     * (java.lang.String, java.lang.String, java.lang.Boolean,
-     * java.math.BigInteger, java.math.BigInteger,
-     * org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
         RepositoryServicePort port = portProvider.getRepositoryServicePort();
@@ -145,17 +120,11 @@ public class RepositoryServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.apache.opencmis.client.provider.RepositoryService#getTypeDescendants
-     * (java.lang.String, java.lang.String, java.math.BigInteger,
-     * java.lang.Boolean, org.apache.opencmis.client.provider.ExtensionsData)
-     */
     public List<TypeDefinitionContainer> getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
             Boolean includePropertyDefinitions, ExtensionsData extension) {
         RepositoryServicePort port = portProvider.getRepositoryServicePort();
@@ -167,7 +136,8 @@ public class RepositoryServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
-
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java Sat May  7 02:35:34 2011
@@ -76,6 +76,8 @@ public class VersioningServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
@@ -92,6 +94,8 @@ public class VersioningServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
@@ -113,6 +117,8 @@ public class VersioningServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
@@ -140,6 +146,8 @@ public class VersioningServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
@@ -156,6 +164,8 @@ public class VersioningServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 
@@ -170,6 +180,8 @@ public class VersioningServiceImpl exten
             throw convertException(e);
         } catch (Exception e) {
             throw new CmisRuntimeException("Error: " + e.getMessage(), e);
+        } finally {
+            portProvider.endCall(port);
         }
     }
 }

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/AuthenticationProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/AuthenticationProvider.java?rev=1100433&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/AuthenticationProvider.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/AuthenticationProvider.java Sat May  7 02:35:34 2011
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.commons.spi;
+
+import java.util.List;
+import java.util.Map;
+
+import org.w3c.dom.Element;
+
+/**
+ * Authentication provider interface.
+ */
+public interface AuthenticationProvider {
+    /**
+     * Returns a set of HTTP headers (key-value pairs) that should be added to a
+     * HTTP call. This will be called by the AtomPub and the Web Services
+     * binding. You might want to check the binding in use before you set the
+     * headers.
+     * 
+     * @param url
+     *            the URL of the HTTP call
+     * 
+     * @return the HTTP headers or <code>null</code> if no additional headers
+     *         should be set
+     */
+    Map<String, List<String>> getHTTPHeaders(String url);
+
+    /**
+     * Returns a SOAP header that should be added to a Web Services call.
+     * 
+     * @param portObject
+     *            the port object
+     * 
+     * @return the SOAP headers or <code>null</code> if no additional headers
+     *         should be set
+     */
+    Element getSOAPHeaders(Object portObject);
+
+    /**
+     * Receives the HTTP headers after a call.
+     * 
+     * @param headers
+     *            the HTTP headers
+     */
+    void setResponseHeaders(String url, Map<String, List<String>> headers);
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/AuthenticationProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/CmisBinding.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/CmisBinding.java?rev=1100433&r1=1100432&r2=1100433&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/CmisBinding.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/CmisBinding.java Sat May  7 02:35:34 2011
@@ -22,7 +22,7 @@ package org.apache.chemistry.opencmis.co
  * Entry point for all CMIS binding related operations. It provides access to
  * the service interface objects which are very similar to the CMIS 1.0 domain
  * model.
- *
+ * 
  * <p>
  * Each instance of this class represents a session. A session comprises of a
  * connection to one CMIS endpoint over one binding for one particular user and
@@ -84,6 +84,11 @@ public interface CmisBinding {
     BindingsObjectFactory getObjectFactory();
 
     /**
+     * Gets the authentication provider.
+     */
+    AuthenticationProvider getAuthenticationProvider();
+
+    /**
      * Clears all caches of the current CMIS binding session.
      */
     void clearAllCaches();
@@ -91,7 +96,7 @@ public interface CmisBinding {
     /**
      * Clears all caches of the current CMIS binding session that are related to
      * the given repository.
-     *
+     * 
      * @param repositoryId
      *            the repository id
      */