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/01/17 16:06:25 UTC

svn commit: r1059944 - /incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/

Author: fmui
Date: Mon Jan 17 15:06:25 2011
New Revision: 1059944

URL: http://svn.apache.org/viewvc?rev=1059944&view=rev
Log:
- added CXF support for the client side (experimental, not supported and you have to build it yourself) 

Added:
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java   (with props)
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java-cxf
Modified:
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java

Added: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java?rev=1059944&view=auto
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java (added)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java Mon Jan 17 15:06:25 2011
@@ -0,0 +1,245 @@
+/*
+ * 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.client.bindings.spi.webservices;
+
+import java.net.URL;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+
+import org.apache.chemistry.opencmis.client.bindings.spi.Session;
+import org.apache.chemistry.opencmis.commons.SessionParameter;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.ACLService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.ACLServicePort;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.DiscoveryService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.DiscoveryServicePort;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.MultiFilingService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.MultiFilingServicePort;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.NavigationService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.NavigationServicePort;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.ObjectService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.ObjectServicePort;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.PolicyService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.PolicyServicePort;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.RelationshipService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.RelationshipServicePort;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.RepositoryService;
+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.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public abstract class AbstractPortProvider {
+
+    private static Log log = LogFactory.getLog(AbstractPortProvider.class);
+
+    public static final String CMIS_NAMESPACE = "http://docs.oasis-open.org/ns/cmis/ws/200908/";
+
+    public static final String REPOSITORY_SERVICE = "RepositoryService";
+    public static final String OBJECT_SERVICE = "ObjectService";
+    public static final String DISCOVERY_SERVICE = "DiscoveryService";
+    public static final String NAVIGATION_SERVICE = "NavigationService";
+    public static final String MULTIFILING_SERVICE = "MultiFilingService";
+    public static final String VERSIONING_SERVICE = "VersioningService";
+    public static final String RELATIONSHIP_SERVICE = "RelationshipService";
+    public static final String POLICY_SERVICE = "PolicyService";
+    public static final String ACL_SERVICE = "ACLService";
+
+    protected static final int CHUNK_SIZE = 64 * 1024;
+
+    protected Session session;
+
+    /**
+     * Return the Repository Service port object.
+     */
+    public RepositoryServicePort getRepositoryServicePort() {
+        return (RepositoryServicePort) getPortObject(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE);
+    }
+
+    /**
+     * Return the Navigation Service port object.
+     */
+    public NavigationServicePort getNavigationServicePort() {
+        return (NavigationServicePort) getPortObject(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE);
+    }
+
+    /**
+     * Return the Object Service port object.
+     */
+    public ObjectServicePort getObjectServicePort() {
+        return (ObjectServicePort) getPortObject(SessionParameter.WEBSERVICES_OBJECT_SERVICE);
+    }
+
+    /**
+     * Return the Versioning Service port object.
+     */
+    public VersioningServicePort getVersioningServicePort() {
+        return (VersioningServicePort) getPortObject(SessionParameter.WEBSERVICES_VERSIONING_SERVICE);
+    }
+
+    /**
+     * Return the Discovery Service port object.
+     */
+    public DiscoveryServicePort getDiscoveryServicePort() {
+        return (DiscoveryServicePort) getPortObject(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE);
+    }
+
+    /**
+     * Return the MultiFiling Service port object.
+     */
+    public MultiFilingServicePort getMultiFilingServicePort() {
+        return (MultiFilingServicePort) getPortObject(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE);
+    }
+
+    /**
+     * Return the Relationship Service port object.
+     */
+    public RelationshipServicePort getRelationshipServicePort() {
+        return (RelationshipServicePort) getPortObject(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE);
+    }
+
+    /**
+     * Return the Policy Service port object.
+     */
+    public PolicyServicePort getPolicyServicePort() {
+        return (PolicyServicePort) getPortObject(SessionParameter.WEBSERVICES_POLICY_SERVICE);
+    }
+
+    /**
+     * Return the ACL Service port object.
+     */
+    public ACLServicePort getACLServicePort() {
+        return (ACLServicePort) getPortObject(SessionParameter.WEBSERVICES_ACL_SERVICE);
+    }
+
+    // ---- internal ----
+
+    /**
+     * Gets a port object from the session or (re-)initializes the port objects.
+     */
+    @SuppressWarnings("unchecked")
+    protected Object getPortObject(String serviceKey) {
+        Map<String, Service> serviceMap = (Map<String, Service>) session.get(SpiSessionParameter.SERVICES);
+
+        // does the service map exist?
+        if (serviceMap == null) {
+            session.writeLock();
+            try {
+                // try again
+                serviceMap = (Map<String, Service>) session.get(SpiSessionParameter.SERVICES);
+                if (serviceMap == null) {
+                    serviceMap = Collections.synchronizedMap(new HashMap<String, Service>());
+                    session.put(SpiSessionParameter.SERVICES, serviceMap, true);
+                }
+
+                if (serviceMap.containsKey(serviceKey)) {
+                    return createPortObject(serviceMap.get(serviceKey));
+                }
+
+                // create service object
+                Service serviceObject = initServiceObject(serviceKey);
+                serviceMap.put(serviceKey, serviceObject);
+
+                // create port object
+                return createPortObject(serviceObject);
+            } finally {
+                session.writeUnlock();
+            }
+        }
+
+        // is the service in the service map?
+        if (!serviceMap.containsKey(serviceKey)) {
+            session.writeLock();
+            try {
+                // try again
+                if (serviceMap.containsKey(serviceKey)) {
+                    return createPortObject(serviceMap.get(serviceKey));
+                }
+
+                // create object
+                Service serviceObject = initServiceObject(serviceKey);
+                serviceMap.put(serviceKey, serviceObject);
+
+                return createPortObject(serviceObject);
+            } finally {
+                session.writeUnlock();
+            }
+        }
+
+        return createPortObject(serviceMap.get(serviceKey));
+    }
+
+    /**
+     * Creates a service object.
+     */
+    protected Service initServiceObject(String serviceKey) {
+        Service serviceObject = null;
+
+        if (log.isDebugEnabled()) {
+            log.debug("Initializing Web Service " + serviceKey + "...");
+        }
+
+        try {
+            // get WSDL URL
+            URL wsdlUrl = new URL((String) session.get(serviceKey));
+
+            // build the requested service object
+            if (SessionParameter.WEBSERVICES_REPOSITORY_SERVICE.equals(serviceKey)) {
+                serviceObject = new RepositoryService(wsdlUrl, new QName(CMIS_NAMESPACE, REPOSITORY_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_NAVIGATION_SERVICE.equals(serviceKey)) {
+                serviceObject = new NavigationService(wsdlUrl, new QName(CMIS_NAMESPACE, NAVIGATION_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_OBJECT_SERVICE.equals(serviceKey)) {
+                serviceObject = new ObjectService(wsdlUrl, new QName(CMIS_NAMESPACE, OBJECT_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_VERSIONING_SERVICE.equals(serviceKey)) {
+                serviceObject = new VersioningService(wsdlUrl, new QName(CMIS_NAMESPACE, VERSIONING_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_DISCOVERY_SERVICE.equals(serviceKey)) {
+                serviceObject = new DiscoveryService(wsdlUrl, new QName(CMIS_NAMESPACE, DISCOVERY_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_MULTIFILING_SERVICE.equals(serviceKey)) {
+                serviceObject = new MultiFilingService(wsdlUrl, new QName(CMIS_NAMESPACE, MULTIFILING_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE.equals(serviceKey)) {
+                serviceObject = new RelationshipService(wsdlUrl, new QName(CMIS_NAMESPACE, RELATIONSHIP_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_POLICY_SERVICE.equals(serviceKey)) {
+                serviceObject = new PolicyService(wsdlUrl, new QName(CMIS_NAMESPACE, POLICY_SERVICE));
+            } else if (SessionParameter.WEBSERVICES_ACL_SERVICE.equals(serviceKey)) {
+                serviceObject = new ACLService(wsdlUrl, new QName(CMIS_NAMESPACE, ACL_SERVICE));
+            } else {
+                throw new CmisRuntimeException("Cannot find Web Services service object [" + serviceKey + "]!");
+            }
+        } catch (CmisBaseException ce) {
+            throw ce;
+        } catch (Exception e) {
+            throw new CmisConnectionException("Cannot initalize Web Services service object [" + serviceKey + "]: "
+                    + e.getMessage(), e);
+        }
+
+        return serviceObject;
+    }
+
+    /**
+     * Creates a port object.
+     */
+    protected abstract Object createPortObject(Service service);
+}

Propchange: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AclServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -32,20 +32,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * ACL Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class AclServiceImpl extends AbstractWebServicesService implements AclService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public AclServiceImpl(Session session, PortProvider portProvider) {
+    public AclServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -60,7 +57,7 @@ public class AclServiceImpl extends Abst
      */
     public Acl applyAcl(String repositoryId, String objectId, Acl addACEs, Acl removeACEs,
             AclPropagation aclPropagation, ExtensionsData extension) {
-        ACLServicePort port = fPortProvider.getACLServicePort();
+        ACLServicePort port = portProvider.getACLServicePort();
 
         try {
             return convert(port.applyACL(repositoryId, objectId, convert(addACEs), convert(removeACEs), convert(
@@ -81,7 +78,7 @@ public class AclServiceImpl extends Abst
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
-        ACLServicePort port = fPortProvider.getACLServicePort();
+        ACLServicePort port = portProvider.getACLServicePort();
 
         try {
             return convert(port.getACL(repositoryId, objectId, onlyBasicPermissions, convert(extension)));

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java Mon Jan 17 15:06:25 2011
@@ -63,7 +63,7 @@ public class CmisWebServicesSpi implemen
             log.debug("Initializing Web Services SPI...");
         }
 
-        PortProvider portProvider = new PortProvider(session);
+        AbstractPortProvider portProvider = new PortProvider(session);
 
         repositoryService = new RepositoryServiceImpl(session, portProvider);
         navigationService = new NavigationServiceImpl(session, portProvider);

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/DiscoveryServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -38,20 +38,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * Discovery Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class DiscoveryServiceImpl extends AbstractWebServicesService implements DiscoveryService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public DiscoveryServiceImpl(Session session, PortProvider portProvider) {
+    public DiscoveryServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -66,7 +63,7 @@ public class DiscoveryServiceImpl extend
      */
     public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
             String filter, Boolean includePolicyIds, Boolean includeACL, BigInteger maxItems, ExtensionsData extension) {
-        DiscoveryServicePort port = fPortProvider.getDiscoveryServicePort();
+        DiscoveryServicePort port = portProvider.getDiscoveryServicePort();
 
         try {
             javax.xml.ws.Holder<String> portChangeLokToken = convertHolder(changeLogToken);
@@ -98,7 +95,7 @@ public class DiscoveryServiceImpl extend
     public ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
-        DiscoveryServicePort port = fPortProvider.getDiscoveryServicePort();
+        DiscoveryServicePort port = portProvider.getDiscoveryServicePort();
 
         try {
             return convert(port.query(repositoryId, statement, searchAllVersions, includeAllowableActions, convert(

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/MultiFilingServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -31,20 +31,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * MultiFiling Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class MultiFilingServiceImpl extends AbstractWebServicesService implements MultiFilingService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public MultiFilingServiceImpl(Session session, PortProvider portProvider) {
+    public MultiFilingServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -57,7 +54,7 @@ public class MultiFilingServiceImpl exte
      */
     public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
             ExtensionsData extension) {
-        MultiFilingServicePort port = fPortProvider.getMultiFilingServicePort();
+        MultiFilingServicePort port = portProvider.getMultiFilingServicePort();
 
         try {
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
@@ -81,7 +78,7 @@ public class MultiFilingServiceImpl exte
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
-        MultiFilingServicePort port = fPortProvider.getMultiFilingServicePort();
+        MultiFilingServicePort port = portProvider.getMultiFilingServicePort();
 
         try {
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/NavigationServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -42,20 +42,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * Navigation Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class NavigationServiceImpl extends AbstractWebServicesService implements NavigationService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public NavigationServiceImpl(Session session, PortProvider portProvider) {
+    public NavigationServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -72,7 +69,7 @@ public class NavigationServiceImpl exten
     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 = fPortProvider.getNavigationServicePort();
+        NavigationServicePort port = portProvider.getNavigationServicePort();
 
         try {
             return convert(port.getChildren(repositoryId, folderId, filter, orderBy, includeAllowableActions, convert(
@@ -98,7 +95,7 @@ public class NavigationServiceImpl exten
     public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
-        NavigationServicePort port = fPortProvider.getNavigationServicePort();
+        NavigationServicePort port = portProvider.getNavigationServicePort();
 
         try {
             List<CmisObjectInFolderContainerType> containerList = port.getDescendants(repositoryId, folderId, depth,
@@ -133,7 +130,7 @@ public class NavigationServiceImpl exten
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
-        NavigationServicePort port = fPortProvider.getNavigationServicePort();
+        NavigationServicePort port = portProvider.getNavigationServicePort();
 
         try {
             return convert(port.getFolderParent(repositoryId, folderId, filter, convert(extension)));
@@ -157,7 +154,7 @@ public class NavigationServiceImpl exten
     public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
-        NavigationServicePort port = fPortProvider.getNavigationServicePort();
+        NavigationServicePort port = portProvider.getNavigationServicePort();
 
         try {
             List<CmisObjectInFolderContainerType> containerList = port.getFolderTree(repositoryId, folderId, depth,
@@ -195,7 +192,7 @@ public class NavigationServiceImpl exten
     public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
             Boolean includeRelativePathSegment, ExtensionsData extension) {
-        NavigationServicePort port = fPortProvider.getNavigationServicePort();
+        NavigationServicePort port = portProvider.getNavigationServicePort();
 
         try {
             List<CmisObjectParentsType> parentsList = port.getObjectParents(repositoryId, objectId, filter,
@@ -235,7 +232,7 @@ public class NavigationServiceImpl exten
     public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
-        NavigationServicePort port = fPortProvider.getNavigationServicePort();
+        NavigationServicePort port = portProvider.getNavigationServicePort();
 
         try {
             return convert(port.getCheckedOutDocs(repositoryId, folderId, filter, orderBy, includeAllowableActions,

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -53,20 +53,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * Object Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class ObjectServiceImpl extends AbstractWebServicesService implements ObjectService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public ObjectServiceImpl(Session session, PortProvider portProvider) {
+    public ObjectServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -84,7 +81,7 @@ public class ObjectServiceImpl extends A
     public String createDocument(String repositoryId, Properties properties, String folderId,
             ContentStream contentStream, VersioningState versioningState, List<String> policies, Acl addACEs,
             Acl removeACEs, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> objectId = new javax.xml.ws.Holder<String>();
@@ -119,7 +116,7 @@ public class ObjectServiceImpl extends A
     public String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
             String folderId, VersioningState versioningState, List<String> policies, Acl addACEs, Acl removeACEs,
             ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> objectId = new javax.xml.ws.Holder<String>();
@@ -152,7 +149,7 @@ public class ObjectServiceImpl extends A
      */
     public String createFolder(String repositoryId, Properties properties, String folderId, List<String> policies,
             Acl addACEs, Acl removeACEs, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> objectId = new javax.xml.ws.Holder<String>();
@@ -184,7 +181,7 @@ public class ObjectServiceImpl extends A
      */
     public String createPolicy(String repositoryId, Properties properties, String folderId, List<String> policies,
             Acl addACEs, Acl removeACEs, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> objectId = new javax.xml.ws.Holder<String>();
@@ -215,7 +212,7 @@ public class ObjectServiceImpl extends A
      */
     public String createRelationship(String repositoryId, Properties properties, List<String> policies, Acl addACEs,
             Acl removeACEs, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> objectId = new javax.xml.ws.Holder<String>();
@@ -246,7 +243,7 @@ public class ObjectServiceImpl extends A
      */
     public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
             Properties properties, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> portObjectId = convertHolder(objectId);
@@ -274,7 +271,7 @@ public class ObjectServiceImpl extends A
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
@@ -300,7 +297,7 @@ public class ObjectServiceImpl extends A
      */
     public FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
             UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             return convert(port.deleteTree(repositoryId, folderId, allVersions, convert(EnumUnfileObject.class,
@@ -321,7 +318,7 @@ public class ObjectServiceImpl extends A
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             return convert(port.getAllowableActions(repositoryId, objectId, convert(extension)));
@@ -342,7 +339,7 @@ public class ObjectServiceImpl extends A
      */
     public ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
             BigInteger length, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             return convert(port.getContentStream(repositoryId, objectId, streamId, offset, length, convert(extension)));
@@ -366,7 +363,7 @@ public class ObjectServiceImpl extends A
     public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
             Boolean includeACL, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             return convert(port.getObject(repositoryId, objectId, filter, includeAllowableActions, convert(
@@ -392,7 +389,7 @@ public class ObjectServiceImpl extends A
     public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
             Boolean includeACL, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             return convert(port.getObjectByPath(repositoryId, path, filter, includeAllowableActions, convert(
@@ -414,7 +411,7 @@ public class ObjectServiceImpl extends A
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             return convert(port.getProperties(repositoryId, objectId, filter, convert(extension)));
@@ -435,7 +432,7 @@ public class ObjectServiceImpl extends A
      */
     public List<RenditionData> getRenditions(String repositoryId, String objectId, String renditionFilter,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             List<CmisRenditionType> renditionList = port.getRenditions(repositoryId, objectId, renditionFilter,
@@ -470,7 +467,7 @@ public class ObjectServiceImpl extends A
      */
     public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
             ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> portObjectId = convertHolder(objectId);
@@ -499,7 +496,7 @@ public class ObjectServiceImpl extends A
      */
     public void setContentStream(String repositoryId, Holder<String> objectId, Boolean overwriteFlag,
             Holder<String> changeToken, ContentStream contentStream, ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> portObjectId = convertHolder(objectId);
@@ -530,7 +527,7 @@ public class ObjectServiceImpl extends A
      */
     public void deleteContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
             ExtensionsData extension) {
-        ObjectServicePort port = fPortProvider.getObjectServicePort();
+        ObjectServicePort port = portProvider.getObjectServicePort();
 
         try {
             javax.xml.ws.Holder<String> portObjectId = convertHolder(objectId);

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PolicyServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -37,20 +37,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * Policy Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class PolicyServiceImpl extends AbstractWebServicesService implements PolicyService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public PolicyServiceImpl(Session session, PortProvider portProvider) {
+    public PolicyServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -62,7 +59,7 @@ public class PolicyServiceImpl extends A
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public void applyPolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
-        PolicyServicePort port = fPortProvider.getPolicyServicePort();
+        PolicyServicePort port = portProvider.getPolicyServicePort();
 
         try {
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
@@ -86,7 +83,7 @@ public class PolicyServiceImpl extends A
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public void removePolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
-        PolicyServicePort port = fPortProvider.getPolicyServicePort();
+        PolicyServicePort port = portProvider.getPolicyServicePort();
 
         try {
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
@@ -111,7 +108,7 @@ public class PolicyServiceImpl extends A
      */
     public List<ObjectData> getAppliedPolicies(String repositoryId, String objectId, String filter,
             ExtensionsData extension) {
-        PolicyServicePort port = fPortProvider.getPolicyServicePort();
+        PolicyServicePort port = portProvider.getPolicyServicePort();
 
         try {
             List<CmisObjectType> policyList = port.getAppliedPolicies(repositoryId, objectId, filter,

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java Mon Jan 17 15:06:25 2011
@@ -18,13 +18,9 @@
  */
 package org.apache.chemistry.opencmis.client.bindings.spi.webservices;
 
-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;
@@ -38,23 +34,14 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.ACLService;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.ACLServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.DiscoveryService;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.DiscoveryServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.MultiFilingService;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.MultiFilingServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.NavigationService;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.NavigationServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.ObjectService;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.ObjectServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.PolicyService;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.PolicyServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.RelationshipService;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.RelationshipServicePort;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.RepositoryService;
-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.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.w3c.dom.Element;
@@ -67,203 +54,21 @@ import com.sun.xml.ws.developer.WSBindin
 /**
  * Provides CMIS Web Services port objects. Handles authentication headers.
  */
-public class PortProvider {
+public class PortProvider extends AbstractPortProvider {
 
     private static Log log = LogFactory.getLog(PortProvider.class);
 
-    public static final String CMIS_NAMESPACE = "http://docs.oasis-open.org/ns/cmis/ws/200908/";
-
-    public static final String REPOSITORY_SERVICE = "RepositoryService";
-    public static final String OBJECT_SERVICE = "ObjectService";
-    public static final String DISCOVERY_SERVICE = "DiscoveryService";
-    public static final String NAVIGATION_SERVICE = "NavigationService";
-    public static final String MULTIFILING_SERVICE = "MultiFilingService";
-    public static final String VERSIONING_SERVICE = "VersioningService";
-    public static final String RELATIONSHIP_SERVICE = "RelationshipService";
-    public static final String POLICY_SERVICE = "PolicyService";
-    public static final String ACL_SERVICE = "ACLService";
-
-    private static final int CHUNK_SIZE = 64 * 1024;
-
-    private final Session fSession;
-
     /**
      * Constructor.
      */
     public PortProvider(Session session) {
-        fSession = session;
-    }
-
-    /**
-     * Return the Repository Service port object.
-     */
-    public RepositoryServicePort getRepositoryServicePort() {
-        return (RepositoryServicePort) getPortObject(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE);
-    }
-
-    /**
-     * Return the Navigation Service port object.
-     */
-    public NavigationServicePort getNavigationServicePort() {
-        return (NavigationServicePort) getPortObject(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE);
-    }
-
-    /**
-     * Return the Object Service port object.
-     */
-    public ObjectServicePort getObjectServicePort() {
-        return (ObjectServicePort) getPortObject(SessionParameter.WEBSERVICES_OBJECT_SERVICE);
-    }
-
-    /**
-     * Return the Versioning Service port object.
-     */
-    public VersioningServicePort getVersioningServicePort() {
-        return (VersioningServicePort) getPortObject(SessionParameter.WEBSERVICES_VERSIONING_SERVICE);
-    }
-
-    /**
-     * Return the Discovery Service port object.
-     */
-    public DiscoveryServicePort getDiscoveryServicePort() {
-        return (DiscoveryServicePort) getPortObject(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE);
-    }
-
-    /**
-     * Return the MultiFiling Service port object.
-     */
-    public MultiFilingServicePort getMultiFilingServicePort() {
-        return (MultiFilingServicePort) getPortObject(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE);
-    }
-
-    /**
-     * Return the Relationship Service port object.
-     */
-    public RelationshipServicePort getRelationshipServicePort() {
-        return (RelationshipServicePort) getPortObject(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE);
-    }
-
-    /**
-     * Return the Policy Service port object.
-     */
-    public PolicyServicePort getPolicyServicePort() {
-        return (PolicyServicePort) getPortObject(SessionParameter.WEBSERVICES_POLICY_SERVICE);
-    }
-
-    /**
-     * Return the ACL Service port object.
-     */
-    public ACLServicePort getACLServicePort() {
-        return (ACLServicePort) getPortObject(SessionParameter.WEBSERVICES_ACL_SERVICE);
-    }
-
-    // ---- internal ----
-
-    /**
-     * Gets a port object from the session or (re-)initializes the port objects.
-     */
-    @SuppressWarnings("unchecked")
-    private Object getPortObject(String serviceKey) {
-        Map<String, Service> serviceMap = (Map<String, Service>) fSession.get(SpiSessionParameter.SERVICES);
-
-        // does the service map exist?
-        if (serviceMap == null) {
-            fSession.writeLock();
-            try {
-                // try again
-                serviceMap = (Map<String, Service>) fSession.get(SpiSessionParameter.SERVICES);
-                if (serviceMap == null) {
-                    serviceMap = Collections.synchronizedMap(new HashMap<String, Service>());
-                    fSession.put(SpiSessionParameter.SERVICES, serviceMap, true);
-                }
-
-                if (serviceMap.containsKey(serviceKey)) {
-                    return createPortObject(serviceMap.get(serviceKey));
-                }
-
-                // create service object
-                Service serviceObject = initServiceObject(serviceKey);
-                serviceMap.put(serviceKey, serviceObject);
-
-                // create port object
-                return createPortObject(serviceObject);
-            } finally {
-                fSession.writeUnlock();
-            }
-        }
-
-        // is the service in the service map?
-        if (!serviceMap.containsKey(serviceKey)) {
-            fSession.writeLock();
-            try {
-                // try again
-                if (serviceMap.containsKey(serviceKey)) {
-                    return createPortObject(serviceMap.get(serviceKey));
-                }
-
-                // create object
-                Service serviceObject = initServiceObject(serviceKey);
-                serviceMap.put(serviceKey, serviceObject);
-
-                return createPortObject(serviceObject);
-            } finally {
-                fSession.writeUnlock();
-            }
-        }
-
-        return createPortObject(serviceMap.get(serviceKey));
-    }
-
-    /**
-     * Creates a service object.
-     */
-    private Service initServiceObject(String serviceKey) {
-        Service serviceObject = null;
-
-        if (log.isDebugEnabled()) {
-            log.debug("Initializing Web Service " + serviceKey + "...");
-        }
-
-        try {
-            // get WSDL URL
-            URL wsdlUrl = new URL((String) fSession.get(serviceKey));
-
-            // build the requested service object
-            if (SessionParameter.WEBSERVICES_REPOSITORY_SERVICE.equals(serviceKey)) {
-                serviceObject = new RepositoryService(wsdlUrl, new QName(CMIS_NAMESPACE, REPOSITORY_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_NAVIGATION_SERVICE.equals(serviceKey)) {
-                serviceObject = new NavigationService(wsdlUrl, new QName(CMIS_NAMESPACE, NAVIGATION_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_OBJECT_SERVICE.equals(serviceKey)) {
-                serviceObject = new ObjectService(wsdlUrl, new QName(CMIS_NAMESPACE, OBJECT_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_VERSIONING_SERVICE.equals(serviceKey)) {
-                serviceObject = new VersioningService(wsdlUrl, new QName(CMIS_NAMESPACE, VERSIONING_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_DISCOVERY_SERVICE.equals(serviceKey)) {
-                serviceObject = new DiscoveryService(wsdlUrl, new QName(CMIS_NAMESPACE, DISCOVERY_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_MULTIFILING_SERVICE.equals(serviceKey)) {
-                serviceObject = new MultiFilingService(wsdlUrl, new QName(CMIS_NAMESPACE, MULTIFILING_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE.equals(serviceKey)) {
-                serviceObject = new RelationshipService(wsdlUrl, new QName(CMIS_NAMESPACE, RELATIONSHIP_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_POLICY_SERVICE.equals(serviceKey)) {
-                serviceObject = new PolicyService(wsdlUrl, new QName(CMIS_NAMESPACE, POLICY_SERVICE));
-            } else if (SessionParameter.WEBSERVICES_ACL_SERVICE.equals(serviceKey)) {
-                serviceObject = new ACLService(wsdlUrl, new QName(CMIS_NAMESPACE, ACL_SERVICE));
-            } else {
-                throw new CmisRuntimeException("Cannot find Web Services service object [" + serviceKey + "]!");
-            }
-        } catch (CmisBaseException ce) {
-            throw ce;
-        } catch (Exception e) {
-            throw new CmisConnectionException("Cannot initalize Web Services service object [" + serviceKey + "]: "
-                    + e.getMessage(), e);
-        }
-
-        return serviceObject;
+        this.session = session;
     }
 
     /**
      * Creates a port object.
      */
-    private Object createPortObject(Service service) {
+    protected Object createPortObject(Service service) {
         Object portObject = null;
 
         if (log.isDebugEnabled()) {
@@ -279,7 +84,7 @@ public class PortProvider {
             } else if (service instanceof ObjectService) {
                 int threshold = 4 * 1024 * 1024;
                 try {
-                    threshold = Integer.parseInt((String) fSession.get(SessionParameter.WEBSERVICES_MEMORY_THRESHOLD));
+                    threshold = Integer.parseInt((String) session.get(SessionParameter.WEBSERVICES_MEMORY_THRESHOLD));
                 } catch (Exception e) {
                 }
                 portObject = ((ObjectService) service).getObjectServicePort(new MTOMFeature(),
@@ -303,7 +108,7 @@ public class PortProvider {
             }
 
             // add SOAP and HTTP authentication headers
-            AbstractAuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(fSession);
+            AbstractAuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(session);
             if (authProvider != null) {
                 // SOAP header
                 Element soapHeader = authProvider.getSOAPHeaders(portObject);

Added: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java-cxf
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java-cxf?rev=1059944&view=auto
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java-cxf (added)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/PortProvider.java-cxf Mon Jan 17 15:06:25 2011
@@ -0,0 +1,134 @@
+/*
+ * 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.client.bindings.spi.webservices;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Binding;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Service;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.soap.SOAPBinding;
+
+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.exceptions.CmisBaseException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.ACLService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.DiscoveryService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.MultiFilingService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.NavigationService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.ObjectService;
+import org.apache.chemistry.opencmis.commons.impl.jaxb.PolicyService;
+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.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.cxf.headers.Header;
+import org.w3c.dom.Element;
+
+/**
+ * Provides CMIS Web Services port objects. Handles authentication headers.
+ */
+public class PortProvider extends AbstractPortProvider {
+
+    private static Log log = LogFactory.getLog(PortProvider.class);
+
+    /**
+     * Constructor.
+     */
+    public PortProvider(Session session) {
+        this.session = session;
+    }
+
+    /**
+     * Creates a port object.
+     */
+    protected Object createPortObject(Service service) {
+        Object portObject = null;
+
+        if (log.isDebugEnabled()) {
+            log.debug("Creating Web Service port object of " + (service == null ? "???" : service.getServiceName())
+                    + "...");
+        }
+
+        try {
+            if (service instanceof RepositoryService) {
+                portObject = ((RepositoryService) service).getRepositoryServicePort();
+            } else if (service instanceof NavigationService) {
+                portObject = ((NavigationService) service).getNavigationServicePort();
+            } else if (service instanceof ObjectService) {
+                portObject = ((ObjectService) service).getObjectServicePort();
+            } else if (service instanceof VersioningService) {
+                portObject = ((VersioningService) service).getVersioningServicePort();
+            } else if (service instanceof DiscoveryService) {
+                portObject = ((DiscoveryService) service).getDiscoveryServicePort();
+            } else if (service instanceof MultiFilingService) {
+                portObject = ((MultiFilingService) service).getMultiFilingServicePort();
+            } else if (service instanceof RelationshipService) {
+                portObject = ((RelationshipService) service).getRelationshipServicePort();
+            } else if (service instanceof PolicyService) {
+                portObject = ((PolicyService) service).getPolicyServicePort();
+            } else if (service instanceof ACLService) {
+                portObject = ((ACLService) service).getACLServicePort();
+            } else {
+                throw new CmisRuntimeException("Cannot find Web Services service object!");
+            }
+
+            Binding binding = ((BindingProvider) portObject).getBinding();
+            ((SOAPBinding) binding).setMTOMEnabled(true);
+
+            // add SOAP and HTTP authentication headers
+            AbstractAuthenticationProvider authProvider = CmisBindingsHelper.getAuthenticationProvider(session);
+            if (authProvider != null) {
+                // SOAP header
+                Element soapHeader = authProvider.getSOAPHeaders(portObject);
+                if (soapHeader != null) {
+                    ((BindingProvider) portObject).getRequestContext().put(Header.HEADER_LIST,
+                            Collections.singletonList(convertToHeader(soapHeader)));
+                }
+
+                // HTTP header
+                Map<String, List<String>> httpHeaders = authProvider.getHTTPHeaders(service.getWSDLDocumentLocation()
+                        .toString());
+                if (httpHeaders != null) {
+                    ((BindingProvider) portObject).getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS,
+                            httpHeaders);
+                }
+            }
+        } catch (CmisBaseException ce) {
+            throw ce;
+        } catch (Exception e) {
+            throw new CmisConnectionException("Cannot initalize Web Services port object: " + e.getMessage(), e);
+        }
+
+        return portObject;
+    }
+
+    private Header convertToHeader(Element element) {
+        QName qname = new QName(element.getNamespaceURI(), element.getLocalName());
+        return new Header(qname, element);
+    }
+}

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RelationshipServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -34,20 +34,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * Relationship Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class RelationshipServiceImpl extends AbstractWebServicesService implements RelationshipService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public RelationshipServiceImpl(Session session, PortProvider portProvider) {
+    public RelationshipServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -64,7 +61,7 @@ public class RelationshipServiceImpl ext
     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 = fPortProvider.getRelationshipServicePort();
+        RelationshipServicePort port = portProvider.getRelationshipServicePort();
 
         try {
             return convert(port.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes, convert(

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -40,20 +40,17 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * Repository Service Web Services client.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class RepositoryServiceImpl extends AbstractWebServicesService implements RepositoryService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public RepositoryServiceImpl(Session session, PortProvider portProvider) {
+    public RepositoryServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     /*
@@ -64,7 +61,7 @@ public class RepositoryServiceImpl exten
      * (org.apache.opencmis.client.provider .ExtensionsData)
      */
     public List<RepositoryInfo> getRepositoryInfos(ExtensionsData extension) {
-        RepositoryServicePort port = fPortProvider.getRepositoryServicePort();
+        RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
         List<RepositoryInfo> infos = null;
         try {
@@ -97,7 +94,7 @@ public class RepositoryServiceImpl exten
      * (java.lang.String, org.apache.opencmis.client.provider.ExtensionsData)
      */
     public RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
-        RepositoryServicePort port = fPortProvider.getRepositoryServicePort();
+        RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
         try {
             return convert(port.getRepositoryInfo(repositoryId, convert(extension)));
@@ -117,7 +114,7 @@ public class RepositoryServiceImpl exten
      * org.apache.opencmis.client.provider.ExtensionsData)
      */
     public TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
-        RepositoryServicePort port = fPortProvider.getRepositoryServicePort();
+        RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
         try {
             return convert(port.getTypeDefinition(repositoryId, typeId, convert(extension)));
@@ -139,7 +136,7 @@ public class RepositoryServiceImpl exten
      */
     public TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
-        RepositoryServicePort port = fPortProvider.getRepositoryServicePort();
+        RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
         try {
             return convert(port.getTypeChildren(repositoryId, typeId, includePropertyDefinitions, maxItems, skipCount,
@@ -161,7 +158,7 @@ public class RepositoryServiceImpl exten
      */
     public List<TypeDefinitionContainer> getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
             Boolean includePropertyDefinitions, ExtensionsData extension) {
-        RepositoryServicePort port = fPortProvider.getRepositoryServicePort();
+        RepositoryServicePort port = portProvider.getRepositoryServicePort();
 
         try {
             return convertTypeContainerList(port.getTypeDescendants(repositoryId, typeId, depth,

Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java?rev=1059944&r1=1059943&r2=1059944&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/VersioningServiceImpl.java Mon Jan 17 15:06:25 2011
@@ -48,19 +48,19 @@ import org.apache.chemistry.opencmis.com
  */
 public class VersioningServiceImpl extends AbstractWebServicesService implements VersioningService {
 
-    private final PortProvider fPortProvider;
+    private final AbstractPortProvider portProvider;
 
     /**
      * Constructor.
      */
-    public VersioningServiceImpl(Session session, PortProvider portProvider) {
+    public VersioningServiceImpl(Session session, AbstractPortProvider portProvider) {
         setSession(session);
-        fPortProvider = portProvider;
+        this.portProvider = portProvider;
     }
 
     public void checkOut(String repositoryId, Holder<String> objectId, ExtensionsData extension,
             Holder<Boolean> contentCopied) {
-        VersioningServicePort port = fPortProvider.getVersioningServicePort();
+        VersioningServicePort port = portProvider.getVersioningServicePort();
 
         try {
             javax.xml.ws.Holder<String> portObjectId = convertHolder(objectId);
@@ -80,7 +80,7 @@ public class VersioningServiceImpl exten
     }
 
     public void cancelCheckOut(String repositoryId, String objectId, ExtensionsData extension) {
-        VersioningServicePort port = fPortProvider.getVersioningServicePort();
+        VersioningServicePort port = portProvider.getVersioningServicePort();
 
         try {
             javax.xml.ws.Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
@@ -98,7 +98,7 @@ public class VersioningServiceImpl exten
     public void checkIn(String repositoryId, Holder<String> objectId, Boolean major, Properties properties,
             ContentStream contentStream, String checkinComment, List<String> policies, Acl addACEs, Acl removeACEs,
             ExtensionsData extension) {
-        VersioningServicePort port = fPortProvider.getVersioningServicePort();
+        VersioningServicePort port = portProvider.getVersioningServicePort();
 
         try {
             javax.xml.ws.Holder<String> portObjectId = convertHolder(objectId);
@@ -118,7 +118,7 @@ public class VersioningServiceImpl exten
 
     public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
             Boolean includeAllowableActions, ExtensionsData extension) {
-        VersioningServicePort port = fPortProvider.getVersioningServicePort();
+        VersioningServicePort port = portProvider.getVersioningServicePort();
 
         try {
             List<CmisObjectType> versionList = port.getAllVersions(repositoryId, versionSeriesId, filter,
@@ -146,7 +146,7 @@ public class VersioningServiceImpl exten
     public ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
             Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
             String renditionFilter, Boolean includePolicyIds, Boolean includeACL, ExtensionsData extension) {
-        VersioningServicePort port = fPortProvider.getVersioningServicePort();
+        VersioningServicePort port = portProvider.getVersioningServicePort();
 
         try {
             return convert(port.getObjectOfLatestVersion(repositoryId, versionSeriesId, major, filter,
@@ -161,7 +161,7 @@ public class VersioningServiceImpl exten
 
     public Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
             Boolean major, String filter, ExtensionsData extension) {
-        VersioningServicePort port = fPortProvider.getVersioningServicePort();
+        VersioningServicePort port = portProvider.getVersioningServicePort();
 
         try {
             return convert(port.getPropertiesOfLatestVersion(repositoryId, versionSeriesId, major, filter,