You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2005/07/02 02:03:04 UTC

svn commit: r208809 - in /geronimo/trunk/modules: axis-builder/src/java/org/apache/geronimo/axis/builder/ jetty-builder/src/java/org/apache/geronimo/jetty/deployment/ tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/

Author: djencks
Date: Fri Jul  1 17:02:58 2005
New Revision: 208809

URL: http://svn.apache.org/viewcvs?rev=208809&view=rev
Log:
fix broken openejb and tomcat wsdl-lookup tests

Modified:
    geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/PortInfo.java
    geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/SchemaInfoBuilder.java
    geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/WSDescriptorParser.java
    geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
    geronimo/trunk/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java

Modified: geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/PortInfo.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/PortInfo.java?rev=208809&r1=208808&r2=208809&view=diff
==============================================================================
--- geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/PortInfo.java (original)
+++ geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/PortInfo.java Fri Jul  1 17:02:58 2005
@@ -29,7 +29,7 @@
  * @version $Rev:  $ $Date:  $
  */
 public class PortInfo {
-    private final String portName;
+    private final String portComponentName;
     private final QName portQName;
     private final SchemaInfoBuilder schemaInfoBuilder;
     private final JavaWsdlMappingType javaWsdlMapping;
@@ -41,8 +41,8 @@
 
     private final String wsdlLocation;
 
-    public PortInfo(String portName, QName portQName, SchemaInfoBuilder schemaInfoBuilder, JavaWsdlMappingType javaWsdlMapping, String seiInterfaceName, PortComponentHandlerType[] handlers, Port port, ServiceEndpointInterfaceMappingType seiMapping, String wsdlLocation, URI contextURI) {
-        this.portName = portName;
+    public PortInfo(String portComponentName, QName portQName, SchemaInfoBuilder schemaInfoBuilder, JavaWsdlMappingType javaWsdlMapping, String seiInterfaceName, PortComponentHandlerType[] handlers, Port port, ServiceEndpointInterfaceMappingType seiMapping, String wsdlLocation, URI contextURI) {
+        this.portComponentName = portComponentName;
         this.portQName = portQName;
         this.schemaInfoBuilder = schemaInfoBuilder;
         this.javaWsdlMapping = javaWsdlMapping;
@@ -58,12 +58,8 @@
         return wsdlLocation;
     }
 
-    public String getPortName() {
-        return getPortComponentName();
-    }
-
     public String getPortComponentName() {
-        return portName;
+        return portComponentName;
     }
 
     public QName getPortQName() {

Modified: geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/SchemaInfoBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/SchemaInfoBuilder.java?rev=208809&r1=208808&r2=208809&view=diff
==============================================================================
--- geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/SchemaInfoBuilder.java (original)
+++ geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/SchemaInfoBuilder.java Fri Jul  1 17:02:58 2005
@@ -577,28 +577,22 @@
                     XmlCursor portCursor = port.newCursor();
                     try {
                         if (portCursor.toChild(ADDRESS_QNAME)) {
-                            //TODO rewrite the path from the actual deployed location, and just replace the schema/host/port
-                            portCursor.setAttributeText(LOCATION_QNAME, AxisWebServiceContainer.LOCATION_REPLACEMENT_TOKEN + "/" + servletLocation);
+                            if (servletLocation == null) {
+                                String original = portCursor.getAttributeText(LOCATION_QNAME);
+                                URI originalURI = new URI(original);
+                                servletLocation = originalURI.getPath();
+                            }
+                            portCursor.setAttributeText(LOCATION_QNAME, AxisWebServiceContainer.LOCATION_REPLACEMENT_TOKEN + servletLocation);
                             return;
                         }
+                    } catch (URISyntaxException e) {
+                        throw new DeploymentException("Could not construct URI for ejb location in wsdl", e);
                     } finally {
                         portCursor.dispose();
                     }
                 }
             }
         }
-
-
-//        Map services = definition.getServices();
-//        for (Iterator iterator = services.values().iterator(); iterator.hasNext();) {
-//            Service service = (Service) iterator.next();
-//            Port port = service.getPort(portComponentName);
-//            if (port != null) {
-//                SOAPAddress soapAddress = (SOAPAddress) getExtensibilityElement(SOAPAddress.class, port.getExtensibilityElements());
-//                soapAddress.setLocationURI(AxisWebServiceContainer.LOCATION_REPLACEMENT_TOKEN + "/" +  servletLocation);
-//                return;
-//            }
-//        }
         throw new DeploymentException("No port found with name " + portComponentName + " expected at " + servletLocation);
     }
 
@@ -666,7 +660,6 @@
                 ZipEntry entry = moduleFile.getEntry(latestImportURI.toString());
                 importInputStream = moduleFile.getInputStream(entry);
                 try {
-//                    Definition definition = wsdlReader.readWSDL(wsdlURI.toString(), new InputSource(importInputStream));
                     DefinitionsDocument definition = DefinitionsDocument.Factory.parse(importInputStream);
                     importInputStream.close();
                     wsdlMap.put(latestImportURI, definition);

Modified: geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/WSDescriptorParser.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/WSDescriptorParser.java?rev=208809&r1=208808&r2=208809&view=diff
==============================================================================
--- geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/WSDescriptorParser.java (original)
+++ geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/WSDescriptorParser.java Fri Jul  1 17:02:58 2005
@@ -333,10 +333,10 @@
                     if (servletLocation == null) {
                         throw new DeploymentException("No servlet mapping for port " + portQName);
                     }
-                    schemaInfoBuilder.movePortLocation(portComponentName, servletLocation);
-//                    portLocations.put(portComponentName, servletLocation);
+                    schemaInfoBuilder.movePortLocation(portQName.getLocalPart(), servletLocation);
                 } else {
                     linkName = serviceImplBeanType.getEjbLink().getStringValue().trim();
+                    schemaInfoBuilder.movePortLocation(portQName.getLocalPart(), null);
                 }
                 PortComponentHandlerType[] handlers = portComponent.getHandlerArray();
 

Modified: geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java?rev=208809&r1=208808&r2=208809&view=diff
==============================================================================
--- geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java (original)
+++ geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java Fri Jul  1 17:02:58 2005
@@ -249,6 +249,7 @@
      * @return
      */
     private Map buildServletNameToPathMap(WebAppType webApp, String contextRoot) {
+        contextRoot = "/" + contextRoot;
         Map map = new HashMap();
         ServletMappingType[] servletMappings = webApp.getServletMappingArray();
         for (int j = 0; j < servletMappings.length; j++) {

Modified: geronimo/trunk/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?rev=208809&r1=208808&r2=208809&view=diff
==============================================================================
--- geronimo/trunk/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original)
+++ geronimo/trunk/modules/tomcat-builder/src/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Fri Jul  1 17:02:58 2005
@@ -137,14 +137,14 @@
     }
 
     public Module createModule(File plan, JarFile moduleFile) throws DeploymentException {
-        return createModule(plan, moduleFile, "war", null, true);
+        return createModule(plan, moduleFile, "war", null, true, null);
     }
 
     public Module createModule(Object plan, JarFile moduleFile, String targetPath, URL specDDUrl, URI earConfigId, Object moduleContextInfo) throws DeploymentException {
-        return createModule(plan, moduleFile, targetPath, specDDUrl, false);
+        return createModule(plan, moduleFile, targetPath, specDDUrl, false, (String) moduleContextInfo);
     }
 
-    private Module createModule(Object plan, JarFile moduleFile, String targetPath, URL specDDUrl, boolean standAlone) throws DeploymentException {
+    private Module createModule(Object plan, JarFile moduleFile, String targetPath, URL specDDUrl, boolean standAlone, String contextRoot) throws DeploymentException {
         assert moduleFile != null: "moduleFile is null";
         assert targetPath != null: "targetPath is null";
         assert !targetPath.endsWith("/"): "targetPath must not end with a '/'";
@@ -175,18 +175,6 @@
         }
         check(webApp);
 
-        //look for a webservices dd
-        Map portMap = Collections.EMPTY_MAP;
-        //TODO make this like jetty !!
-        Map servletNameToPathMap = new HashMap();
-        if (webServiceBuilder != null) {
-            try {
-                URL wsDDUrl = DeploymentUtil.createJarURL(moduleFile, "WEB-INF/webservices.xml");
-                portMap = webServiceBuilder.parseWebServiceDescriptor(wsDDUrl, moduleFile, false, servletNameToPathMap);
-            } catch (MalformedURLException e) {
-                //no descriptor
-            }
-        }
 
         // parse vendor dd
         TomcatWebAppType tomcatWebApp = getTomcatWebApp(plan, moduleFile, standAlone, targetPath, webApp);
@@ -209,10 +197,44 @@
         } else {
             parentId = defaultParentId;
         }
+        if (contextRoot == null) {
+            contextRoot = tomcatWebApp.getContextRoot();
+        }
+        //look for a webservices dd
+        Map portMap = Collections.EMPTY_MAP;
+        //TODO Jeff, please review
+        Map servletNameToPathMap = buildServletNameToPathMap(webApp, contextRoot);
+        if (webServiceBuilder != null) {
+            try {
+                URL wsDDUrl = DeploymentUtil.createJarURL(moduleFile, "WEB-INF/webservices.xml");
+                portMap = webServiceBuilder.parseWebServiceDescriptor(wsDDUrl, moduleFile, false, servletNameToPathMap);
+            } catch (MalformedURLException e) {
+                //no descriptor
+            }
+        }
 
         WebModule module = new WebModule(standAlone, configId, parentId, moduleFile, targetPath, webApp, tomcatWebApp, specDD, portMap);
-        module.setContextRoot(tomcatWebApp.getContextRoot());
+        module.setContextRoot(contextRoot);
         return module;
+    }
+
+    /**
+     * Some servlets will have multiple url patterns.  However, webservice servlets
+     * will only have one, which is what this method is intended for.
+     * @param webApp
+     * @param contextRoot
+     * @return
+     */
+    private Map buildServletNameToPathMap(WebAppType webApp, String contextRoot) {
+        contextRoot = "/" + contextRoot;
+        Map map = new HashMap();
+        ServletMappingType[] servletMappings = webApp.getServletMappingArray();
+        for (int j = 0; j < servletMappings.length; j++) {
+            ServletMappingType servletMapping = servletMappings[j];
+            String servletName = servletMapping.getServletName().getStringValue().trim();
+            map.put(servletName, contextRoot + servletMapping.getUrlPattern().getStringValue());
+        }
+        return map;
     }
 
     TomcatWebAppType getTomcatWebApp(Object plan, JarFile moduleFile, boolean standAlone, String targetPath, WebAppType webApp) throws DeploymentException {