You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/04/03 09:07:48 UTC

svn commit: r1463842 - in /tomee/tomee/trunk: ./ container/openejb-core/ container/openejb-core/src/main/java/org/apache/openejb/config/

Author: rmannibucau
Date: Wed Apr  3 07:07:47 2013
New Revision: 1463842

URL: http://svn.apache.org/r1463842
Log:
TOMEE-884 removing wsdl4j from webprofile distrib

Modified:
    tomee/tomee/trunk/container/openejb-core/pom.xml
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java
    tomee/tomee/trunk/pom.xml

Modified: tomee/tomee/trunk/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/pom.xml?rev=1463842&r1=1463841&r2=1463842&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/pom.xml (original)
+++ tomee/tomee/trunk/container/openejb-core/pom.xml Wed Apr  3 07:07:47 2013
@@ -91,11 +91,11 @@
       javax.ws.rs,
       javax.ws.rs.core,
       javax.ws.rs.ext,
-      javax.wsdl,
-      javax.wsdl.extensions.http,
-      javax.wsdl.extensions.soap,
-      javax.wsdl.factory,
-      javax.wsdl.xml,
+      javax.wsdl;resolution:=optional,,
+      javax.wsdl.extensions.http;resolution:=optional,,
+      javax.wsdl.extensions.soap;resolution:=optional,,
+      javax.wsdl.factory;resolution:=optional,,
+      javax.wsdl.xml;resolution:=optional,,
       javax.xml.bind,
       javax.xml.bind.annotation,
       javax.xml.bind.annotation.adapters,
@@ -541,6 +541,7 @@
     <dependency>
       <groupId>wsdl4j</groupId>
       <artifactId>wsdl4j</artifactId>
+      <optional>true</optional>
     </dependency>
     <dependency>
       <groupId>org.quartz-scheduler</groupId>

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1463842&r1=1463841&r2=1463842&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Wed Apr  3 07:07:47 2013
@@ -127,6 +127,7 @@ public class ConfigurationFactory implem
     private static final Messages messages = new Messages(ConfigurationFactory.class);
 
     private static final String IGNORE_DEFAULT_VALUES_PROP = "IgnoreDefaultValues";
+    private static final boolean WSDL4J_AVAILABLE = exists("javax.wsdl.xml.WSDLLocator");
 
     private String configLocation;
     private OpenEjbConfiguration sys;
@@ -144,6 +145,17 @@ public class ConfigurationFactory implem
         this(!shouldAutoDeploy());
     }
 
+    private static boolean exists(final String s) {
+        try {
+            ConfigurationFactory.class.getClassLoader().loadClass(s);
+            return true;
+        } catch (final ClassNotFoundException e) {
+            return false;
+        } catch (final NoClassDefFoundError e) {
+            return false;
+        }
+    }
+
     private static boolean shouldAutoDeploy() {
         final Options options = SystemInstance.get().getOptions();
         final boolean b = options.get(ConfigurationFactory.OFFLINE_PROPERTY, false);
@@ -224,7 +236,7 @@ public class ConfigurationFactory implem
             chain.add(new DebuggableVmHackery());
         }
 
-        if (options.get(WEBSERVICES_ENABLED, true)) {
+        if (options.get(WEBSERVICES_ENABLED, true) && WSDL4J_AVAILABLE) {
             chain.add(new WsDeployer());
         } else {
             chain.add(new RemoveWebServices());

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1463842&r1=1463841&r2=1463842&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Wed Apr  3 07:07:47 2013
@@ -63,9 +63,6 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
 
-import javax.wsdl.Definition;
-import javax.wsdl.factory.WSDLFactory;
-import javax.wsdl.xml.WSDLReader;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
 import javax.xml.parsers.ParserConfigurationException;
@@ -675,23 +672,6 @@ public class ReadDescriptors implements 
         return wsdlMapping;
     }
 
-    public static Definition readWsdl(final URL url) throws OpenEJBException {
-        final Definition definition;
-        try {
-            final WSDLFactory factory = WSDLFactory.newInstance();
-            final WSDLReader reader = factory.newWSDLReader();
-            reader.setFeature("javax.wsdl.verbose", true);
-            reader.setFeature("javax.wsdl.importDocuments", true);
-            final WsdlResolver wsdlResolver = new WsdlResolver(new URL(url, ".").toExternalForm(), new InputSource(IO.read(url)));
-            definition = reader.readWSDL(wsdlResolver);
-        } catch (IOException e) {
-            throw new OpenEJBException("Cannot read the wsdl file: " + url.toExternalForm(), e);
-        } catch (Exception e) {
-            throw new OpenEJBException("Encountered unknown error parsing the wsdl file: " + url.toExternalForm(), e);
-        }
-        return definition;
-    }
-
     public static Connector readConnector(final URL url) throws OpenEJBException {
         Connector connector;
         try {

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java?rev=1463842&r1=1463841&r2=1463842&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/WsDeployer.java Wed Apr  3 07:07:47 2013
@@ -18,6 +18,7 @@ package org.apache.openejb.config;
 
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.core.webservices.JaxWsUtils;
+import org.apache.openejb.core.webservices.WsdlResolver;
 import org.apache.openejb.jee.EnterpriseBean;
 import org.apache.openejb.jee.HandlerChains;
 import org.apache.openejb.jee.JndiConsumer;
@@ -32,18 +33,23 @@ import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.jee.WebserviceDescription;
 import org.apache.openejb.jee.Webservices;
 import org.apache.openejb.jee.oejb3.EjbDeployment;
+import org.apache.openejb.loader.IO;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.URLs;
+import org.xml.sax.InputSource;
 
 import javax.jws.HandlerChain;
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.extensions.http.HTTPAddress;
 import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 import javax.xml.ws.soap.SOAPBinding;
 import java.io.File;
+import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
@@ -378,7 +384,7 @@ public class WsDeployer implements Dynam
                 wsdlUrl = new URL(baseUrl, wsdlFile);
             }
 
-            Definition definition = ReadDescriptors.readWsdl(wsdlUrl);
+            Definition definition = readWsdl(wsdlUrl);
             module.getAltDDs().put(wsdlFile, definition);
             return definition;
         } catch (Exception e) {
@@ -388,6 +394,24 @@ public class WsDeployer implements Dynam
         return null;
     }
 
+    // don't put it in ReadDescriptors to respect classloader dependencies (wsdl4j is optional)
+    public static Definition readWsdl(final URL url) throws OpenEJBException {
+        final Definition definition;
+        try {
+            final WSDLFactory factory = WSDLFactory.newInstance();
+            final WSDLReader reader = factory.newWSDLReader();
+            reader.setFeature("javax.wsdl.verbose", true);
+            reader.setFeature("javax.wsdl.importDocuments", true);
+            final WsdlResolver wsdlResolver = new WsdlResolver(new URL(url, ".").toExternalForm(), new InputSource(IO.read(url)));
+            definition = reader.readWSDL(wsdlResolver);
+        } catch (IOException e) {
+            throw new OpenEJBException("Cannot read the wsdl file: " + url.toExternalForm(), e);
+        } catch (Exception e) {
+            throw new OpenEJBException("Encountered unknown error parsing the wsdl file: " + url.toExternalForm(), e);
+        }
+        return definition;
+    }
+
     private URL getBaseUrl(DeploymentModule module) throws MalformedURLException {
         File file = new File(module.getJarLocation());
         if (!file.exists()) {

Modified: tomee/tomee/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1463842&r1=1463841&r2=1463842&view=diff
==============================================================================
--- tomee/tomee/trunk/pom.xml (original)
+++ tomee/tomee/trunk/pom.xml Wed Apr  3 07:07:47 2013
@@ -1357,7 +1357,7 @@
       <dependency>
         <groupId>wsdl4j</groupId>
         <artifactId>wsdl4j</artifactId>
-        <version>1.6.2</version>
+        <version>1.6.3</version>
       </dependency>
       <dependency>
         <groupId>xmlunit</groupId>