You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2011/04/10 14:57:09 UTC

svn commit: r1090794 - /geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2Builder.java

Author: xuhaihong
Date: Sun Apr 10 12:57:09 2011
New Revision: 1090794

URL: http://svn.apache.org/viewvc?rev=1090794&view=rev
Log:
GERONIMO-5839 Workaround for WSDL path in EAR package

Modified:
    geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2Builder.java

Modified: geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2Builder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2Builder.java?rev=1090794&r1=1090793&r2=1090794&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2Builder.java (original)
+++ geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2Builder.java Sun Apr 10 12:57:09 2011
@@ -47,6 +47,7 @@ import org.apache.geronimo.jaxws.builder
 import org.apache.geronimo.jaxws.builder.WARWebServiceFinder;
 import org.apache.geronimo.jaxws.builder.wsdl.WsdlGenerator;
 import org.apache.geronimo.jaxws.builder.wsdl.WsdlGeneratorOptions;
+import org.apache.geronimo.kernel.config.ConfigurationModuleType;
 import org.apache.geronimo.kernel.repository.Environment;
 import org.apache.openejb.jee.HandlerChains;
 import org.apache.openejb.jee.JaxbJavaee;
@@ -208,15 +209,22 @@ public class Axis2Builder extends JAXWSS
     protected void initialize(GBeanData targetGBean, Class serviceClass, PortInfo portInfo, Module module, Bundle bundle) throws DeploymentException {
         targetGBean.setReferencePattern("axis2ModuleRegistry", new AbstractNameQuery(Axis2ModuleRegistry.class.getName()));
         String serviceName = (portInfo.getServiceName() == null ? serviceClass.getName() : portInfo.getServiceName());
-        if(portInfo.getWsdlFile() != null && !portInfo.getWsdlFile().trim().equals("")) {
+        String wsdlFile = portInfo.getWsdlFile();
+        if(wsdlFile != null && wsdlFile.trim().length() > 0) {
             if (log.isDebugEnabled()) {
                 log.debug("Service " + serviceName + " has WSDL. " + portInfo.getWsdlFile());
             }
+            //TODO Workaround codes for web modules in the EAR package, need to add web module name prefix
+            if (module.getType().equals(ConfigurationModuleType.WAR) && !isURL(wsdlFile)) {
+                portInfo.setWsdlFile(module.getTargetPathURI().resolve(wsdlFile).toString());
+            }
             return;
         } else if(JAXWSUtils.containsWsdlLocation(serviceClass, bundle)){
-            String wsdlFile = JAXWSUtils.getServiceWsdlLocation(serviceClass, bundle);
+            wsdlFile = JAXWSUtils.getServiceWsdlLocation(serviceClass, bundle);
             //TODO Workaround codes for web modules in the EAR package, need to add web module name prefix
-            portInfo.setWsdlFile(module.getTargetPathURI().resolve(wsdlFile).toString());
+            if (module.getType().equals(ConfigurationModuleType.WAR) && !isURL(wsdlFile)) {
+                portInfo.setWsdlFile(module.getTargetPathURI().resolve(wsdlFile).toString());
+            }
             if(log.isDebugEnabled()) {
                 log.debug("Service "  + serviceName + " has WSDL configured in annotation " + wsdlFile + " and is resolved as " + portInfo.getWsdlFile());
             }
@@ -261,7 +269,7 @@ public class Axis2Builder extends JAXWSS
             options.setWsdlPort(portInfo.getWsdlPort());
         }
 
-        String wsdlFile = wsdlGenerator.generateWsdl(module, serviceClass.getName(), module.getEarContext(), options);
+        wsdlFile = wsdlGenerator.generateWsdl(module, serviceClass.getName(), module.getEarContext(), options);
         portInfo.setWsdlFile(wsdlFile);
 
         if (log.isDebugEnabled()) {
@@ -269,4 +277,12 @@ public class Axis2Builder extends JAXWSS
         }
     }
 
+    private boolean isURL(String name) {
+        try {
+            new URL(name);
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
 }