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/02/28 07:41:42 UTC
svn commit: r1075220 - in /geronimo/server/trunk:
plugingroups/webservices-axis2/
plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/wsdl/
plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/...
Author: xuhaihong
Date: Mon Feb 28 06:41:41 2011
New Revision: 1075220
URL: http://svn.apache.org/viewvc?rev=1075220&view=rev
Log:
a. Enable POJO web service class enhancement on the runtime for Tomcat assembly
b. Disable web service deployer in UDDI module temporarily
Modified:
geronimo/server/trunk/plugingroups/webservices-axis2/pom.xml
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/wsdl/WsdlGeneratorUtils.java
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/JAXWSTools.java
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/WsdlGenerator.java
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
geronimo/server/trunk/plugins/uddi/uddi-jetty/pom.xml
geronimo/server/trunk/plugins/uddi/uddi-tomcat/pom.xml
Modified: geronimo/server/trunk/plugingroups/webservices-axis2/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugingroups/webservices-axis2/pom.xml?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugingroups/webservices-axis2/pom.xml (original)
+++ geronimo/server/trunk/plugingroups/webservices-axis2/pom.xml Mon Feb 28 06:41:41 2011
@@ -59,12 +59,12 @@
<!--<type>car</type>-->
<!--</dependency>-->
- <!--<dependency>-->
- <!--<groupId>org.apache.geronimo.configs</groupId>-->
- <!--<artifactId>jaxws-tools</artifactId>-->
- <!--<version>${project.version}</version>-->
- <!--<type>car</type>-->
- <!--</dependency>-->
+ <<dependency>
+ <groupId>org.apache.geronimo.configs</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>${project.version}</version>
+ <type>car</type>
+ </dependency>
<!--<dependency>-->
<!--<groupId>org.apache.geronimo.configs</groupId>-->
Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/wsdl/WsdlGeneratorUtils.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/wsdl/WsdlGeneratorUtils.java?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/wsdl/WsdlGeneratorUtils.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/wsdl/WsdlGeneratorUtils.java Mon Feb 28 06:41:41 2011
@@ -201,11 +201,7 @@ public class WsdlGeneratorUtils {
String path = file.getAbsolutePath();
if (path.startsWith(basePath)) {
- if (File.separatorChar == path.charAt(basePath.length())) {
- return path.substring(basePath.length() + 1);
- } else {
- return path.substring(basePath.length());
- }
+ return baseDir.toURI().relativize(file.toURI()).toString();
} else {
return file.toURI().toString();
}
Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/JAXWSTools.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/JAXWSTools.java?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/JAXWSTools.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/JAXWSTools.java Mon Feb 28 06:41:41 2011
@@ -196,7 +196,7 @@ public class JAXWSTools {
}
}
- public String getEndorsedDirectory(Collection<? extends Repository> repositories) throws Exception {
+ public String getEndorsedPath(Collection<? extends Repository> repositories) throws Exception {
StringBuilder endorsedDirectories = new StringBuilder();
for (String[] lib : ENDORSED_ARTIFACTS) {
Artifact artifact = new Artifact(lib[0], lib[1], (Version) null, "jar");
Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/WsdlGenerator.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/WsdlGenerator.java?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/WsdlGenerator.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/sun/tools/WsdlGenerator.java Mon Feb 28 06:41:41 2011
@@ -68,7 +68,7 @@ public class WsdlGenerator {
private String getEndorsedPath(DeploymentContext context) throws Exception {
ConfigurationManager cm = context.getConfigurationManager();
Collection<? extends Repository> repositories = cm.getRepositories();
- return jaxwsTools.getEndorsedDirectory(repositories);
+ return jaxwsTools.getEndorsedPath(repositories);
}
private String[] buildArguments(String sei, String classPath, File moduleBaseDir, PortInfo portInfo) throws Exception{
@@ -164,8 +164,7 @@ public class WsdlGenerator {
throw new DeploymentException("Unable to find the service wsdl file");
}
if (this.options.getAddToClassPath()) {
-// TODO: This isn't available on configuraitons any more...need to figure out if/how this gets replaced.
-// context.getConfiguration().addToClassPath(baseDir.getName());
+ context.addToClassPath(baseDir.getName());
}
return WsdlGeneratorUtils.getRelativeNameOrURL(moduleBase, wsdlFile);
} else {
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Mon Feb 28 06:41:41 2011
@@ -52,6 +52,7 @@ import org.apache.geronimo.gbean.Abstrac
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.gbean.ReferencePatterns;
import org.apache.geronimo.gbean.annotation.GBean;
import org.apache.geronimo.gbean.annotation.ParamAttribute;
import org.apache.geronimo.gbean.annotation.ParamReference;
@@ -590,43 +591,38 @@ public class TomcatModuleBuilder extends
} catch (ClassNotFoundException e) {
throw new DeploymentException("Could not load javax.servlet.Servlet in bundle " + bundle, e);
}
-// for (org.apache.openejb.jee.Servlet servletType : servletTypes) {
-//
-// if (servletType.getServletClass() != null) {
-// String servletName = servletType.getServletName().trim();
-// String servletClassName = servletType.getServletClass().trim();
-// Class servletClass;
-// try {
-// servletClass = webBundle.loadClass(servletClassName);
-// } catch (ClassNotFoundException e) {
-// throw new DeploymentException("Could not load servlet class " + servletClassName + " from bundle " + bundle, e);
-// }
-// if (!baseServletClass.isAssignableFrom(servletClass)) {
-// //fake servletData
-// AbstractName servletAbstractName = moduleContext.getNaming().createChildName(moduleName, servletName, NameFactory.SERVLET);
-// GBeanData servletData = new GBeanData();
-// servletData.setAbstractName(servletAbstractName);
-// //let the web service builder deal with configuring the gbean with the web service stack
-// //Here we just extract the factory reference
-// boolean configured = false;
-// for (WebServiceBuilder serviceBuilder : webServiceBuilder) {
-// if (serviceBuilder.configurePOJO(servletData, servletName, module, servletClassName, moduleContext)) {
-// configured = true;
-// break;
-// }
-// }
-// if (!configured) {
-// throw new DeploymentException("POJO web service: " + servletName + " not configured by any web service builder");
-// }
-// ReferencePatterns patterns = servletData.getReferencePatterns("WebServiceContainerFactory");
-// AbstractName wsContainerFactoryName = patterns.getAbstractName();
-// webServices.put(servletName, wsContainerFactoryName);
-// //force all the factories to start before the web app that needs them.
-// webModuleData.addDependency(wsContainerFactoryName);
-// }
-//
-// }
-// }
+
+ for (ServletInfo servletInfo : webAppInfo.servlets) {
+ Class<?> servletClass;
+ try {
+ servletClass = webBundle.loadClass(servletInfo.servletClass);
+ } catch (ClassNotFoundException e) {
+ throw new DeploymentException("Could not load servlet class " + servletInfo.servletClass + " from bundle " + bundle, e);
+ }
+ if (!baseServletClass.isAssignableFrom(servletClass)) {
+ //fake servletData
+ AbstractName servletAbstractName = moduleContext.getNaming().createChildName(moduleName, servletInfo.servletName, NameFactory.SERVLET);
+ GBeanData servletData = new GBeanData();
+ servletData.setAbstractName(servletAbstractName);
+ //let the web service builder deal with configuring the gbean with the web service stack
+ //Here we just extract the factory reference
+ boolean configured = false;
+ for (WebServiceBuilder serviceBuilder : webServiceBuilder) {
+ if (serviceBuilder.configurePOJO(servletData, servletInfo.servletName, module, servletInfo.servletClass, moduleContext)) {
+ configured = true;
+ break;
+ }
+ }
+ if (!configured) {
+ throw new DeploymentException("POJO web service: " + servletInfo.servletName + " not configured by any web service builder");
+ }
+ ReferencePatterns patterns = servletData.getReferencePatterns("WebServiceContainerFactory");
+ AbstractName wsContainerFactoryName = patterns.getAbstractName();
+ webServices.put(servletInfo.servletName, wsContainerFactoryName);
+ //force all the factories to start before the web app that needs them.
+ webModuleData.addDependency(wsContainerFactoryName);
+ }
+ }
webModuleData.setAttribute("webServices", webServices);
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java Mon Feb 28 06:41:41 2011
@@ -320,7 +320,13 @@ public class GeronimoStandardContext ext
this.setManager(manager);
pipelineInitialized = true;
- this.webServiceMap = ctx.getWebServices();
+
+ ClassLoader oldClassLoader = bindThread();
+ try {
+ webServiceMap = ctx.getWebServices();
+ } finally {
+ unbindThread(oldClassLoader);
+ }
Map<String, String> contextAttributes = ctx.getContextAttributes();
@@ -513,53 +519,6 @@ public class GeronimoStandardContext ext
}
@Override
- public void addChild(Container child) {
- Wrapper wrapper = (Wrapper) child;
-
- String servletClassName = wrapper.getServletClass();
- if (servletClassName == null) {
- super.addChild(child);
- return;
- }
-
- ClassLoader cl = this.getParentClassLoader();
-
- Class<?> baseServletClass;
- Class<?> servletClass;
- try {
- baseServletClass = cl.loadClass(Servlet.class.getName());
- servletClass = cl.loadClass(servletClassName);
- //Check if the servlet is of type Servlet class
- if (!baseServletClass.isAssignableFrom(servletClass)) {
- //Nope - its probably a webservice, so lets see...
- if (webServiceMap != null) {
- WebServiceContainer webServiceContainer = webServiceMap.get(wrapper.getName());
-
- if (webServiceContainer != null) {
- //Yep its a web service
- //So swap it out with a POJOWebServiceServlet
- wrapper.setServletClass("org.apache.geronimo.webservices.POJOWebServiceServlet");
-
- //Set the WebServiceContainer stuff
- String webServicecontainerID = wrapper.getName() + WebServiceContainerInvoker.WEBSERVICE_CONTAINER + webServiceContainer.hashCode();
- getServletContext().setAttribute(webServicecontainerID, webServiceContainer);
- wrapper.addInitParameter(WebServiceContainerInvoker.WEBSERVICE_CONTAINER, webServicecontainerID);
-
- //Set the SEI Class in the attribute
- String pojoClassID = wrapper.getName() + POJOWebServiceServlet.POJO_CLASS + servletClass.hashCode();
- getServletContext().setAttribute(pojoClassID, servletClass);
- wrapper.addInitParameter(POJOWebServiceServlet.POJO_CLASS, pojoClassID);
- }
- }
- }
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e.getMessage(), e);
- }
-
- super.addChild(child);
- }
-
- @Override
public synchronized void setLoader(final Loader delegate) {
Loader loader = new Loader() {
@@ -809,6 +768,41 @@ public class GeronimoStandardContext ext
if (wrapper.getServlet() == null || webSecurityConstraintStore.isContainerCreatedDynamicServlet(wrapper.getServlet())) {
webSecurityConstraintStore.addContainerCreatedDynamicServletEntry(registration, wrapper.getServletClass());
}
+
+ //Special handle for web service
+ ClassLoader cl = this.getParentClassLoader();
+ Class<?> baseServletClass;
+ Class<?> servletClass;
+ try {
+ baseServletClass = cl.loadClass(Servlet.class.getName());
+ servletClass = cl.loadClass(wrapper.getServletClass());
+ //Check if the servlet is of type Servlet class
+ if (!baseServletClass.isAssignableFrom(servletClass)) {
+ //Nope - its probably a webservice, so lets see...
+ if (webServiceMap != null) {
+ WebServiceContainer webServiceContainer = webServiceMap.get(wrapper.getName());
+
+ if (webServiceContainer != null) {
+ //Yep its a web service
+ //So swap it out with a POJOWebServiceServlet
+ wrapper.setServletClass("org.apache.geronimo.webservices.POJOWebServiceServlet");
+
+ //Set the WebServiceContainer stuff
+ String webServicecontainerID = wrapper.getName() + WebServiceContainerInvoker.WEBSERVICE_CONTAINER + webServiceContainer.hashCode();
+ getServletContext().setAttribute(webServicecontainerID, webServiceContainer);
+ wrapper.addInitParameter(WebServiceContainerInvoker.WEBSERVICE_CONTAINER, webServicecontainerID);
+
+ //Set the SEI Class in the attribute
+ String pojoClassID = wrapper.getName() + POJOWebServiceServlet.POJO_CLASS + servletClass.hashCode();
+ getServletContext().setAttribute(pojoClassID, servletClass);
+ wrapper.addInitParameter(POJOWebServiceServlet.POJO_CLASS, pojoClassID);
+ }
+ }
+ }
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e.getMessage(), e);
+ }
+
return registration;
}
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java Mon Feb 28 06:41:41 2011
@@ -112,7 +112,7 @@ public class TomcatWebAppContext impleme
private final TrackedConnectionAssociator trackedConnectionAssociator;
private final SecurityHolder securityHolder;
private final J2EEServer server;
- private final Map<String, WebServiceContainer> webServices;
+ private Map<String, WebServiceContainer> webServices = null;
private final String objectName;
private final String originalSpecDD;
private final String modulePath;
@@ -135,6 +135,8 @@ public class TomcatWebAppContext impleme
private final Valve clusteredValve;
private final WebAppInfo webAppInfo;
+ private Map<String, AbstractName> webServiceAbNames;
+
public TomcatWebAppContext(
@ParamSpecial(type = SpecialAttributeType.classLoader) ClassLoader classLoader,
@ParamSpecial(type = SpecialAttributeType.bundle) Bundle bundle,
@@ -186,14 +188,6 @@ public class TomcatWebAppContext impleme
this.objectName = objectName;
this.deploymentAttributes = deploymentAttributes;
this.webAppInfo = webAppInfo;
-// URI root;
-//// TODO is there a simpler way to do this?
-// if (configurationBaseUrl.getProtocol().equalsIgnoreCase("file")) {
-// root = new URI("file", configurationBaseUrl.getPath(), null);
-// } else {
-// root = URI.create(configurationBaseUrl.toString());
-// }
-// this.setDocBase(root.getPath());
this.container = container;
this.bundle = bundle;
this.modulePath = modulePath;
@@ -272,7 +266,7 @@ public class TomcatWebAppContext impleme
this.manager = null;
}
- this.webServices = createWebServices(webServices, kernel);
+ this.webServiceAbNames = webServices;
this.classLoader = classLoader;
@@ -448,6 +442,13 @@ public class TomcatWebAppContext impleme
}
public Map<String, WebServiceContainer> getWebServices() {
+ if(webServices == null) {
+ try {
+ webServices = createWebServices(webServiceAbNames, kernel);
+ } catch (Exception e) {
+ throw new RuntimeException("Fail to initialize web service", e);
+ }
+ }
return webServices;
}
Modified: geronimo/server/trunk/plugins/uddi/uddi-jetty/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/uddi/uddi-jetty/pom.xml?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/uddi/uddi-jetty/pom.xml (original)
+++ geronimo/server/trunk/plugins/uddi/uddi-jetty/pom.xml Mon Feb 28 06:41:41 2011
@@ -147,7 +147,7 @@
<deploymentConfig>${gbeanDeployer}</deploymentConfig>
<deploymentConfig>${j2eeDeployer}</deploymentConfig>
<deploymentConfig>${jettyDeployer}</deploymentConfig>
- <deploymentConfig>${cxfDeployer}</deploymentConfig>
+ <!--deploymentConfig>${cxfDeployer}</deploymentConfig-->
<deploymentConfig>${jasperDeployer}</deploymentConfig>
</deploymentConfigs>
<category>Web Services</category>
Modified: geronimo/server/trunk/plugins/uddi/uddi-tomcat/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/uddi/uddi-tomcat/pom.xml?rev=1075220&r1=1075219&r2=1075220&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/uddi/uddi-tomcat/pom.xml (original)
+++ geronimo/server/trunk/plugins/uddi/uddi-tomcat/pom.xml Mon Feb 28 06:41:41 2011
@@ -99,8 +99,8 @@
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxr_1.0_spec</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jaxr_1.0_spec</artifactId>
</dependency>
<dependency>
@@ -108,32 +108,30 @@
<artifactId>scout</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.juddi</groupId>
+ <dependency>
+ <groupId>org.apache.juddi</groupId>
<artifactId>uddi-ws</artifactId>
</dependency>
- <dependency>
+ <dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.geronimo.bundles</groupId>
- <artifactId>commons-digester</artifactId>
- </dependency>
-
- <dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
- </dependency>
-
-
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.bundles</groupId>
+ <artifactId>commons-digester</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ </dependency>
</dependencies>
<build>
@@ -146,7 +144,7 @@
<deploymentConfig>${gbeanDeployer}</deploymentConfig>
<deploymentConfig>${j2eeDeployer}</deploymentConfig>
<deploymentConfig>${tomcatDeployer}</deploymentConfig>
- <deploymentConfig>${axis2Deployer}</deploymentConfig>
+ <!--deploymentConfig>${axis2Deployer}</deploymentConfig-->
<deploymentConfig>${jasperDeployer}</deploymentConfig>
</deploymentConfigs>
<category>Web Services</category>