Author: fmui
Date: Sun May 11 16:20:20 2014
New Revision: 1593810

URL: http://svn.apache.org/r1593810
Log:
OpenCMIS client: added JAX-WS implementation detection

Modified:
    
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java
    
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.bat
    
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.sh

Modified: 
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/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java?rev=1593810&r1=1593809&r2=1593810&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/CmisWebServicesSpi.java
 Sun May 11 16:20:20 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.chemistry.opencmis.client.bindings.spi.webservices;
 
+import javax.xml.ws.spi.Provider;
+
 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
 import org.apache.chemistry.opencmis.client.bindings.spi.CmisSpi;
 import org.apache.chemistry.opencmis.commons.SessionParameter;
@@ -76,7 +78,27 @@ public class CmisWebServicesSpi implemen
                 jaxwsImpl = 
System.getProperty("org.apache.chemistry.opencmis.binding.webservices.jaxws.impl");
             }
 
-            if (jaxwsImpl == null || JAXWS_IMPL_JRE.equals(jaxwsImpl)) {
+            if (jaxwsImpl == null) {
+                Provider provider = Provider.provider();
+                if (provider == null) {
+                    throw new CmisRuntimeException("No JAX-WS implementation 
found!");
+                }
+
+                String providerPackage = 
provider.getClass().getPackage().getName();
+
+                if (providerPackage.startsWith("com.sun.xml.internal.ws.spi")) 
{
+                    portProvider = new SunJREPortProvider();
+                } else if (providerPackage.startsWith("com.sun.xml.ws.spi")) {
+                    portProvider = new SunRIPortProvider();
+                } else if (providerPackage.startsWith("org.apache.cxf.jaxws")) 
{
+                    portProvider = new CXFPortProvider();
+                } else if 
(providerPackage.startsWith("org.apache.axis2.jaxws.spi")) {
+                    portProvider = new Axis2PortProvider();
+                } else {
+                    throw new CmisRuntimeException("Could not detect JAX-WS 
implementation! Use session parameter "
+                            + SessionParameter.WEBSERVICES_JAXWS_IMPL + " to 
specify one.");
+                }
+            } else if (JAXWS_IMPL_JRE.equals(jaxwsImpl)) {
                 portProvider = new SunJREPortProvider();
             } else if (JAXWS_IMPL_RI.equals(jaxwsImpl)) {
                 portProvider = new SunRIPortProvider();
@@ -104,6 +126,10 @@ public class CmisWebServicesSpi implemen
             portProvider = (AbstractPortProvider) portProviderObj;
         }
 
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Session {}: Port provider class: {}", 
session.getSessionId(), portProvider.getClass().getName());
+        }
+
         portProvider.setSession(session);
 
         repositoryService = new RepositoryServiceImpl(session, portProvider);

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.bat
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.bat?rev=1593810&r1=1593809&r2=1593810&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.bat
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.bat
 Sun May 11 16:20:20 2014
@@ -28,6 +28,6 @@ rem set no_proxy=localhost,127.0.0.0,.lo
 
 
 for /F "delims=/" %%x in ('"java -classpath .;* 
org.apache.chemistry.opencmis.workbench.ProxyDetector -j -s"') do set 
"JAVA_PROXY_CONF=%%x"
-set JAVA_OPTS=%JAVA_PROXY_CONF% 
-Dorg.apache.chemistry.opencmis.binding.webservices.jaxws.impl=sunjre
+set JAVA_OPTS=%JAVA_PROXY_CONF%
 
 start /B javaw %JAVA_OPTS% %CUSTOM_JAVA_OPTS% -classpath ".;*" 
org.apache.chemistry.opencmis.workbench.Workbench
\ No newline at end of file

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.sh
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.sh?rev=1593810&r1=1593809&r2=1593810&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.sh
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/start/workbench.sh
 Sun May 11 16:20:20 2014
@@ -48,6 +48,6 @@ done
 
 
 JAVA_PROXY_CONF=$($JAVA -classpath $WCP 
org.apache.chemistry.opencmis.workbench.ProxyDetector -j -s)
-JAVA_OPTS="$JAVA_PROXY_CONF 
-Dorg.apache.chemistry.opencmis.binding.webservices.jaxws.impl=sunjre"
+JAVA_OPTS="$JAVA_PROXY_CONF"
 
 exec $JAVA $JAVA_OPTS $CUSTOM_JAVA_OPTS -classpath $WCP 
org.apache.chemistry.opencmis.workbench.Workbench &
\ No newline at end of file


Reply via email to