You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by rw...@apache.org on 2011/05/10 08:58:39 UTC

svn commit: r1101342 - in /geronimo/server/trunk/plugins: axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/ cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/ jaxws/geronimo-jaxws-builder/src/main/java/o...

Author: rwonly
Date: Tue May 10 06:58:39 2011
New Revision: 1101342

URL: http://svn.apache.org/viewvc?rev=1101342&view=rev
Log:
GERONIMO-5839 only normalize the wsdl path for a) an ear contains a war, b) an ear contains a war which contains an ejb.

Modified:
    geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2Builder.java
    geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2ServiceRefBuilder.java
    geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java
    geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFServiceRefBuilder.java
    geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSBuilderUtils.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=1101342&r1=1101341&r2=1101342&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 Tue May 10 06:58:39 2011
@@ -214,20 +214,20 @@ public class Axis2Builder extends JAXWSS
         String serviceName = (portInfo.getServiceName() == null ? serviceClass.getName() : portInfo.getServiceName());
         String wsdlFile = portInfo.getWsdlFile();
         if(wsdlFile != null && wsdlFile.trim().length() > 0) {
+            //TODO Workaround codes for web modules in the EAR package, need to add web module name prefix
+            portInfo.setWsdlFile(JAXWSBuilderUtils.normalizeWsdlPath(module, wsdlFile));
+            
             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 (JAXWSBuilderUtils.isWSDLNormalizedRequired(module, wsdlFile)) {
-                portInfo.setWsdlFile(module.getTargetPathURI().resolve(wsdlFile).toString());
-            }
             return;
-        } else if(JAXWSUtils.containsWsdlLocation(serviceClass, bundle)){
+        } 
+        
+        if(JAXWSUtils.containsWsdlLocation(serviceClass, bundle)){
             wsdlFile = JAXWSUtils.getServiceWsdlLocation(serviceClass, bundle);
             //TODO Workaround codes for web modules in the EAR package, need to add web module name prefix
-            if (JAXWSBuilderUtils.isWSDLNormalizedRequired(module, wsdlFile)) {
-                portInfo.setWsdlFile(module.getTargetPathURI().resolve(wsdlFile).toString());
-            }
+            portInfo.setWsdlFile(JAXWSBuilderUtils.normalizeWsdlPath(module, wsdlFile));
+            
             if(log.isDebugEnabled()) {
                 log.debug("Service "  + serviceName + " has WSDL configured in annotation " + wsdlFile + " and is resolved as " + portInfo.getWsdlFile());
             }

Modified: geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2ServiceRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2ServiceRefBuilder.java?rev=1101342&r1=1101341&r2=1101342&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2ServiceRefBuilder.java (original)
+++ geronimo/server/trunk/plugins/axis2/geronimo-axis2-builder/src/main/java/org/apache/geronimo/axis2/builder/Axis2ServiceRefBuilder.java Tue May 10 06:58:39 2011
@@ -71,9 +71,8 @@ public class Axis2ServiceRefBuilder exte
 
         wsdlURI = builder.getWsdlURI();
         //TODO For non standalone web application, it is embbed of directory style in the EAR package
-        if (JAXWSBuilderUtils.isWSDLNormalizedRequired(module, wsdlURI.toString())) {
-            wsdlURI = module.getTargetPathURI().resolve(wsdlURI);
-        }
+        wsdlURI = JAXWSBuilderUtils.normalizeWsdlPath(module, wsdlURI);
+
         serviceQName = builder.getServiceQName();
         Map<Object, EndpointInfo> seiInfoMap = builder.getEndpointInfo();
 

Modified: geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java?rev=1101342&r1=1101341&r2=1101342&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java (original)
+++ geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java Tue May 10 06:58:39 2011
@@ -220,12 +220,12 @@ public class CXFBuilder extends JAXWSSer
         String serviceName = (portInfo.getServiceName() == null ? serviceClass.getName() : portInfo.getServiceName());
         String wsdlFile = portInfo.getWsdlFile();
         if (isWsdlSet(portInfo, serviceClass, bundle)) {
+
+            portInfo.setWsdlFile(JAXWSBuilderUtils.normalizeWsdlPath(module, wsdlFile));
+
             if (LOG.isDebugEnabled()) {
                 LOG.debug("Service " + serviceName + " has WSDL.");
             }
-            if (JAXWSBuilderUtils.isWSDLNormalizedRequired(module, wsdlFile)) {
-                portInfo.setWsdlFile(module.getTargetPathURI().resolve(wsdlFile).toString());
-            }
             return;
         }
 

Modified: geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFServiceRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFServiceRefBuilder.java?rev=1101342&r1=1101341&r2=1101342&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFServiceRefBuilder.java (original)
+++ geronimo/server/trunk/plugins/cxf/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFServiceRefBuilder.java Tue May 10 06:58:39 2011
@@ -64,9 +64,8 @@ public class CXFServiceRefBuilder extend
         wsdlURI = builder.getWsdlURI();
 
         //TODO For non standalone web application, it is embbed of directory style in the EAR package
-        if (JAXWSBuilderUtils.isWSDLNormalizedRequired(module, wsdlURI.toString())) {
-            wsdlURI = module.getTargetPathURI().resolve(wsdlURI);
-        }
+        wsdlURI = JAXWSBuilderUtils.normalizeWsdlPath(module, wsdlURI);
+
         serviceQName = builder.getServiceQName();
         Map<Object, EndpointInfo> seiInfoMap = builder.getEndpointInfo();
 

Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSBuilderUtils.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSBuilderUtils.java?rev=1101342&r1=1101341&r2=1101342&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSBuilderUtils.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSBuilderUtils.java Tue May 10 06:58:39 2011
@@ -17,13 +17,14 @@
 
 package org.apache.geronimo.jaxws.builder;
 
+import java.net.URI;
 import java.net.URL;
 
 import org.apache.geronimo.j2ee.deployment.Module;
 import org.apache.geronimo.kernel.config.ConfigurationModuleType;
 
 public class JAXWSBuilderUtils {    
-    public static boolean isURL(String name) {
+    private static boolean isURL(String name) {
         try {
             new URL(name);
             return true;
@@ -32,9 +33,52 @@ public class JAXWSBuilderUtils {    
         }
     }
 
-    public static boolean isWSDLNormalizedRequired(Module module, String wsdlLocation) {
-        return (module.getType().equals(ConfigurationModuleType.WAR) || (module.getType().equals(ConfigurationModuleType.EJB) && module.getParentModule() != null && module.getParentModule().getType()
-                .equals(ConfigurationModuleType.WAR)))
-                && !isURL(wsdlLocation);
+    public static String normalizeWsdlPath(Module module, String wsdlLocation){
+        // is Absolute URL path
+        if (isURL(wsdlLocation)) return wsdlLocation;
+        
+        // EAR
+        //   L WAR
+        if (module.getType().equals(ConfigurationModuleType.WAR) && module.getParentModule() != null && module.getParentModule().getType().equals(ConfigurationModuleType.EAR))
+            return module.getTargetPathURI().resolve(wsdlLocation).toString();
+        
+        // EAR 
+        //   L WAR
+        //       L EJB
+        if (module.getType().equals(ConfigurationModuleType.EJB) && module.getParentModule() != null && module.getParentModule().getType().equals(ConfigurationModuleType.WAR)
+                && module.getParentModule().getParentModule() != null && module.getParentModule().getParentModule().getType().equals(ConfigurationModuleType.EAR))
+            return module.getParentModule().getTargetPathURI().resolve(wsdlLocation).toString();
+        
+            
+        return wsdlLocation;
+    }
+    
+    private static boolean isURL(URI name) {
+        try {
+            name.toURL();
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
+    public static URI normalizeWsdlPath(Module module, URI wsdlUri){
+        // is Absolute URL path
+        if (isURL(wsdlUri)) return wsdlUri;
+        
+        // EAR
+        //   L WAR
+        if (module.getType().equals(ConfigurationModuleType.WAR) && module.getParentModule() != null && module.getParentModule().getType().equals(ConfigurationModuleType.EAR))
+            return module.getTargetPathURI().resolve(wsdlUri);
+        
+        // EAR 
+        //   L WAR
+        //       L EJB
+        if (module.getType().equals(ConfigurationModuleType.EJB) && module.getParentModule() != null && module.getParentModule().getType().equals(ConfigurationModuleType.WAR)
+                && module.getParentModule().getParentModule() != null && module.getParentModule().getParentModule().getType().equals(ConfigurationModuleType.EAR))
+            return module.getParentModule().getTargetPathURI().resolve(wsdlUri);
+        
+            
+        return wsdlUri;
     }
 }