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 2006/09/21 23:55:20 UTC
svn commit: r448705 - in /geronimo/server/trunk/modules:
geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/
geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/
geronimo-jetty-builder/src/main/java/org/apache/gero...
Author: djencks
Date: Thu Sep 21 14:55:19 2006
New Revision: 448705
URL: http://svn.apache.org/viewvc?view=rev&rev=448705
Log:
GERONIMO-2291 port web service builder changes from 1.1 branch: ws builder gets to determine if there is something to deploy
Modified:
geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/UnavailableWebServiceBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/WebServiceBuilder.java
geronimo/server/trunk/modules/geronimo-jetty-builder/src/main/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
geronimo/server/trunk/modules/geronimo-tomcat-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
Modified: geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java?view=diff&rev=448705&r1=448704&r2=448705
==============================================================================
--- geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java Thu Sep 21 14:55:19 2006
@@ -72,19 +72,28 @@
import org.apache.geronimo.xbeans.j2ee.JavaXmlTypeMappingType;
import org.apache.geronimo.xbeans.j2ee.ServiceEndpointInterfaceMappingType;
import org.apache.geronimo.xbeans.j2ee.ServiceEndpointMethodMappingType;
+import org.apache.geronimo.deployment.util.DeploymentUtil;
/**
* @version $Rev$ $Date$
*/
public class AxisBuilder implements WebServiceBuilder {
-// private static final Class[] SERVICE_CONSTRUCTOR_TYPES = new Class[]{Map.class, Map.class};
private static final SOAPConstants SOAP_VERSION = SOAPConstants.SOAP11_CONSTANTS;
- //WebServiceBuilder
- public Map parseWebServiceDescriptor(URL wsDDUrl, JarFile moduleFile, boolean isEJB, Map servletLocations) throws DeploymentException {
- return WSDescriptorParser.parseWebServiceDescriptor(wsDDUrl, moduleFile, isEJB, servletLocations);
+ public Map findWebServices(JarFile moduleFile, boolean isEJB, Map servletLocations) throws DeploymentException {
+ final String path = isEJB ? "META-INF/webservices.xml" : "WEB-INF/webservices.xml";
+ try {
+ URL wsDDUrl = DeploymentUtil.createJarURL(moduleFile, path);
+ Map result = WSDescriptorParser.parseWebServiceDescriptor(wsDDUrl, moduleFile, isEJB, servletLocations);
+ if (result != null) {
+ return result;
+ }
+ } catch (MalformedURLException e) {
+ // The webservices.xml file doesn't exist.
+ }
+ return Collections.EMPTY_MAP;
}
public void configurePOJO(GBeanData targetGBean, JarFile moduleFile, Object portInfoObject, String seiClassName, ClassLoader classLoader) throws DeploymentException {
Modified: geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/UnavailableWebServiceBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/UnavailableWebServiceBuilder.java?view=diff&rev=448705&r1=448704&r2=448705
==============================================================================
--- geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/UnavailableWebServiceBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/UnavailableWebServiceBuilder.java Thu Sep 21 14:55:19 2006
@@ -16,15 +16,14 @@
*/
package org.apache.geronimo.j2ee.deployment;
-import java.util.jar.JarFile;
+import java.util.Collections;
import java.util.Map;
-import java.util.HashMap;
-import java.net.URL;
+import java.util.jar.JarFile;
+import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
/**
@@ -32,8 +31,8 @@
*/
public class UnavailableWebServiceBuilder implements WebServiceBuilder {
- public Map parseWebServiceDescriptor(URL wsDDUrl, JarFile moduleFile, boolean isEJB, Map correctedPortLocations) throws DeploymentException {
- return new HashMap();
+ public Map findWebServices(JarFile moduleFile, boolean isEJB, Map correctedPortLocations) throws DeploymentException {
+ return Collections.EMPTY_MAP;
}
public void configurePOJO(GBeanData targetGBean, JarFile moduleFile, Object portInfo, String seiClassName, ClassLoader classLoader) throws DeploymentException {
Modified: geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/WebServiceBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/WebServiceBuilder.java?view=diff&rev=448705&r1=448704&r2=448705
==============================================================================
--- geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/WebServiceBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/WebServiceBuilder.java Thu Sep 21 14:55:19 2006
@@ -27,8 +27,19 @@
*/
public interface WebServiceBuilder {
- Map parseWebServiceDescriptor(URL wsDDUrl, JarFile moduleFile, boolean isEJB, Map correctedPortLocations) throws DeploymentException;
-
+ /**
+ * Introspects on the module file to locate web service for deployment.
+ *
+ * @param moduleFile J2EE module
+ * @param isEJB is this an EJB archive?
+ * @param correctedPortLocations mapping between port locations and paths.
+ * @return Mapping of servlet names to port information, or an
+ * empty map if no web services found. Port information is opaque
+ * to all except the WebServiceBuilder itself.
+ * @throws DeploymentException if error encountered while introspecting the module.
+ */
+ Map findWebServices(JarFile moduleFile, boolean isEJB, Map correctedPortLocations) throws DeploymentException;
+
//obviously these need the deployment descriptors, but I'm not sure in what form yet.
/**
* configure the supplied GBeanData to implement the POJO web service described in the deployment descriptor.
Modified: geronimo/server/trunk/modules/geronimo-jetty-builder/src/main/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty-builder/src/main/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java?view=diff&rev=448705&r1=448704&r2=448705
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty-builder/src/main/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty-builder/src/main/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java Thu Sep 21 14:55:19 2006
@@ -20,7 +20,6 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.net.MalformedURLException;
import java.net.URL;
import java.security.Permission;
import java.security.PermissionCollection;
@@ -61,9 +60,9 @@
import org.apache.geronimo.j2ee.deployment.EARContext;
import org.apache.geronimo.j2ee.deployment.Module;
import org.apache.geronimo.j2ee.deployment.ModuleBuilder;
+import org.apache.geronimo.j2ee.deployment.NamingBuilder;
import org.apache.geronimo.j2ee.deployment.WebModule;
import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
-import org.apache.geronimo.j2ee.deployment.NamingBuilder;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.jetty.DefaultWebApplicationHandlerFactory;
import org.apache.geronimo.jetty.Host;
@@ -77,8 +76,8 @@
import org.apache.geronimo.kernel.GBeanNotFoundException;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.Naming;
-import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.repository.Environment;
import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
import org.apache.geronimo.naming.deployment.GBeanResourceEnvironmentBuilder;
@@ -244,15 +243,7 @@
Map servletNameToPathMap = buildServletNameToPathMap(webApp, contextRoot);
- //look for a webservices dd
- Map portMap = Collections.EMPTY_MAP;
- try {
- URL wsDDUrl = DeploymentUtil.createJarURL(moduleFile, "WEB-INF/webservices.xml");
- portMap = getWebServiceBuilder().parseWebServiceDescriptor(wsDDUrl, moduleFile, false, servletNameToPathMap);
- } catch (MalformedURLException e) {
- //no descriptor
- }
- AbstractName moduleName;
+ Map portMap = getWebServiceBuilder().findWebServices(moduleFile, false, servletNameToPathMap); AbstractName moduleName;
if (earName == null) {
earName = naming.createRootName(environment.getConfigId(), NameFactory.NULL, NameFactory.J2EE_APPLICATION);
moduleName = naming.createChildName(earName, environment.getConfigId().toString(), NameFactory.WEB_MODULE);
@@ -343,7 +334,7 @@
//this may add to the web classpath with enhanced classes.
//N.B. we use the ear context which has all the gbeans we could possibly be looking up from this ear.
- Map compContext = buildComponentContext(earContext, webModule, webApp, jettyWebApp, moduleClassLoader);
+ Map compContext = buildComponentContext(earContext, webModule, webApp, jettyWebApp);
GBeanData webModuleData = new GBeanData(moduleName, JettyWebAppContext.GBEAN_INFO);
try {
@@ -1000,7 +991,7 @@
return servletAbstractName;
}
- private Map buildComponentContext(EARContext earContext, Module webModule, WebAppType webApp, JettyWebAppType jettyWebApp, ClassLoader cl) throws DeploymentException {
+ private Map buildComponentContext(EARContext earContext, Module webModule, WebAppType webApp, JettyWebAppType jettyWebApp) throws DeploymentException {
Map componentContext = new HashMap();
Configuration earConfiguration = earContext.getConfiguration();
getNamingBuilders().buildNaming(webApp, jettyWebApp, earConfiguration, earConfiguration, webModule, componentContext);
Modified: geronimo/server/trunk/modules/geronimo-tomcat-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-tomcat-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?view=diff&rev=448705&r1=448704&r2=448705
==============================================================================
--- geronimo/server/trunk/modules/geronimo-tomcat-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-tomcat-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Thu Sep 21 14:55:19 2006
@@ -20,13 +20,11 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.net.MalformedURLException;
import java.net.URL;
import java.security.Permission;
import java.security.PermissionCollection;
import java.security.Permissions;
import java.util.Collection;
-import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
@@ -52,14 +50,14 @@
import org.apache.geronimo.j2ee.deployment.EARContext;
import org.apache.geronimo.j2ee.deployment.Module;
import org.apache.geronimo.j2ee.deployment.ModuleBuilder;
+import org.apache.geronimo.j2ee.deployment.NamingBuilder;
import org.apache.geronimo.j2ee.deployment.WebModule;
import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
-import org.apache.geronimo.j2ee.deployment.NamingBuilder;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.Naming;
-import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.repository.Environment;
import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
import org.apache.geronimo.naming.deployment.GBeanResourceEnvironmentBuilder;
@@ -177,14 +175,7 @@
Map servletNameToPathMap = buildServletNameToPathMap(webApp, contextRoot);
- //look for a webservices dd
- Map portMap = Collections.EMPTY_MAP;
- try {
- URL wsDDUrl = DeploymentUtil.createJarURL(moduleFile, "WEB-INF/webservices.xml");
- portMap = getWebServiceBuilder().parseWebServiceDescriptor(wsDDUrl, moduleFile, false, servletNameToPathMap);
- } catch (MalformedURLException e) {
- //no descriptor
- }
+ Map portMap = getWebServiceBuilder().findWebServices(moduleFile, false, servletNameToPathMap);
AbstractName moduleName;
if (earName == null) {
earName = naming.createRootName(environment.getConfigId(), NameFactory.NULL, NameFactory.J2EE_APPLICATION);
@@ -278,7 +269,7 @@
//this may add to the web classpath with enhanced classes.
//N.B. we use the ear context which has all the gbeans we could possibly be looking up from this ear.
- Map compContext = buildComponentContext(earContext, webModule, webApp, tomcatWebApp, moduleClassLoader);
+ Map compContext = buildComponentContext(earContext, webModule, webApp, tomcatWebApp);
GBeanData webModuleData = new GBeanData(moduleName, TomcatWebAppContext.GBEAN_INFO);
try {
@@ -445,7 +436,7 @@
}
- private Map buildComponentContext(EARContext earContext, Module webModule, WebAppType webApp, TomcatWebAppType tomcatWebApp, ClassLoader cl) throws DeploymentException {
+ private Map buildComponentContext(EARContext earContext, Module webModule, WebAppType webApp, TomcatWebAppType tomcatWebApp) throws DeploymentException {
Map componentContext = new HashMap();
Configuration earConfiguration = earContext.getConfiguration();
getNamingBuilders().buildNaming(webApp, tomcatWebApp, earConfiguration, earConfiguration, webModule, componentContext);