You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jb...@apache.org on 2006/11/28 22:46:41 UTC
svn commit: r480224 -
/geronimo/sandbox/javaee5/modules-jee5/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java
Author: jbohn
Date: Tue Nov 28 13:46:40 2006
New Revision: 480224
URL: http://svn.apache.org/viewvc?view=rev&rev=480224
Log:
Add updates to match trunk changes in rev 479496:
GERONIMO-2597 make web service builder optional and allow multiple builders
Modified:
geronimo/sandbox/javaee5/modules-jee5/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java
Modified: geronimo/sandbox/javaee5/modules-jee5/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/javaee5/modules-jee5/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java?view=diff&rev=480224&r1=480223&r2=480224
==============================================================================
--- geronimo/sandbox/javaee5/modules-jee5/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java (original)
+++ geronimo/sandbox/javaee5/modules-jee5/geronimo-cxf-builder/src/main/java/org/apache/geronimo/cxf/builder/CXFBuilder.java Tue Nov 28 13:46:40 2006
@@ -30,6 +30,7 @@
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
+import org.apache.geronimo.j2ee.deployment.WebModule;
import org.apache.geronimo.j2ee.deployment.Module;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.cxf.PortInfo;
@@ -46,6 +47,7 @@
private static final Logger LOG = Logger.getLogger(CXFBuilder.class.getName());
private final Environment defaultEnvironment;
+ private static final String KEY = CXFBuilder.class.getName();
private JAXBContext ctx;
@@ -53,19 +55,18 @@
this.defaultEnvironment = defaultEnvironment;
}
- public Map findWebServices(JarFile moduleFile, boolean isEJB, Map servletLocations, Environment environment) throws DeploymentException {
+ public void findWebServices(JarFile moduleFile, boolean isEJB, Map servletLocations, Environment environment, Map sharedContext) throws DeploymentException {
final String path = isEJB ? "META-INF/webservices.xml" : "WEB-INF/webservices.xml";
try {
URL wsDDUrl = DeploymentUtil.createJarURL(moduleFile, path);
- Map result = parseWebServiceDescriptor(wsDDUrl, moduleFile, isEJB, servletLocations);
- if (result != null) {
+ Map portMap = parseWebServiceDescriptor(wsDDUrl, moduleFile, isEJB, servletLocations);
+ if (portMap != null) {
EnvironmentBuilder.mergeEnvironments(environment, defaultEnvironment);
- return result;
+ sharedContext.put(KEY, portMap);
}
} catch (MalformedURLException e) {
// The webservices.xml file doesn't exist.
}
- return Collections.EMPTY_MAP;
}
private Map<String, PortInfo> parseWebServiceDescriptor(URL wsDDUrl, JarFile moduleFile, boolean isEJB, Map correctedPortLocations) throws DeploymentException {
@@ -122,21 +123,27 @@
}
- public void configurePOJO(GBeanData targetGBean, Module module, Object pi, String seiClassName, DeploymentContext context) throws DeploymentException {
+ public boolean configurePOJO(GBeanData targetGBean, String servletName, Module module, String seiClassName, DeploymentContext context) throws DeploymentException {
- assert pi instanceof PortInfo : "received incorrect portInfo object";
+ // assert pi instanceof PortInfo : "received incorrect portInfo object";
+
+ Map sharedContext = ((WebModule) module).getSharedContext();
+ Map portInfoMap = (Map) sharedContext.get(KEY);
+ PortInfo portInfo = (PortInfo) portInfoMap.get(servletName);
+ if (portInfo == null) {
+ //not ours
+ return false;
+ }
- PortInfo portInfo = (PortInfo) pi;
- LOG.info("configuring POJO webservice: " + pi + " sei: " + seiClassName);
+ LOG.info("configuring POJO webservice: " + servletName + " sei: " + seiClassName);
// verify that the class is loadable
ClassLoader classLoader = context.getClassLoader();
loadSEI(seiClassName, classLoader);
/*List<Handler> handlers =*/ buildHandlerChain(portInfo);
- AbstractName servletName = targetGBean.getAbstractName();
- AbstractName containerFactoryName = context.getNaming().createChildName(servletName, NameFactory.GERONIMO_SERVICE, "cxfWebServiceContainerFactory");
+ AbstractName containerFactoryName = context.getNaming().createChildName(targetGBean.getAbstractName(), "cxfWebServiceContainerFactory", NameFactory.GERONIMO_SERVICE);
GBeanData containerFactoryData = new GBeanData(containerFactoryName, CXFWebServiceContainerFactoryGBean.GBEAN_INFO);
containerFactoryData.setAttribute("portInfo", portInfo);
containerFactoryData.setAttribute("endpointClassName", seiClassName);
@@ -148,13 +155,11 @@
targetGBean.setReferencePattern("WebServiceContainerFactory", containerFactoryName);
targetGBean.setAttribute("pojoClassName", seiClassName);
+ return true;
}
- public void configureEJB(GBeanData targetGBean, JarFile moduleFile, Object portInfo,
- ClassLoader classLoader)
- throws DeploymentException {
-
+ public boolean configureEJB(GBeanData targetGBean, String ejbName, JarFile moduleFile, Map sharedContext, ClassLoader classLoader) throws DeploymentException {
throw new DeploymentException("configureEJB NYI");
}