Author: richard.opalka(a)jboss.com
Date: 2009-06-26 09:23:05 -0400 (Fri, 26 Jun 2009)
New Revision: 10241
Added:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDescriptorDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSEJBAdapterDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSTypeDeployer.java
Removed:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentTypeDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServicesMetaDataDeployer.java
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java
container/jboss50/branches/ropalka-jboss510/src/main/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-jboss-beans.xml
Log:
[JBWS-2332][JBWS-2382] refactoring (WIP)
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -21,17 +21,8 @@
*/
package org.jboss.wsf.container.jboss50.deployer;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.logging.Logger;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.virtual.VirtualFile;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.deployment.*;
@@ -49,10 +40,7 @@
// provide logging
protected final Logger log = Logger.getLogger(getClass());
- private static final WSVirtualFileFilter WS_FILEFILTER = new WSVirtualFileFilter();
-
private DeploymentAspectManager deploymentAspectManager;
- private DeploymentModelFactory deploymentModelFactory;
protected String deploymentManagerName;
@@ -73,62 +61,6 @@
return deploymentAspectManager;
}
- public DeploymentModelFactory getDeploymentModelFactory()
- {
- if(null == deploymentModelFactory)
- {
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- deploymentModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
- }
-
- return deploymentModelFactory;
- }
-
- public ArchiveDeployment newDeployment(DeploymentUnit unit)
- {
- try
- {
- DeploymentModelFactory factory = getDeploymentModelFactory();
- ArchiveDeployment dep =
(ArchiveDeployment)factory.newDeployment(unit.getSimpleName(), unit.getClassLoader());
- if (unit instanceof VFSDeploymentUnit)
- {
- VFSDeploymentUnit vfsUnit = (VFSDeploymentUnit)unit;
- List<VirtualFile> virtualFiles =
vfsUnit.getMetaDataFiles(WS_FILEFILTER); //get all wsdl and xsd files
- Set<UnifiedVirtualFile> uVirtualFiles = new
HashSet<UnifiedVirtualFile>();
- for (VirtualFile vf : virtualFiles)
- {
- // Adding the roots of the virtual files.
- uVirtualFiles.add(new VirtualFileAdaptor(vf.getVFS().getRoot()));
- }
- dep.setMetadataFiles(new
LinkedList<UnifiedVirtualFile>(uVirtualFiles));
- }
-
- if (unit.getParent() != null)
- {
- DeploymentUnit parentUnit = unit.getParent();
- ArchiveDeployment parentDep =
(ArchiveDeployment)factory.newDeployment(parentUnit.getSimpleName(),
parentUnit.getClassLoader());
- dep.setParent(parentDep);
- }
- return dep;
- }
- catch (Exception ex)
- {
- throw new WSFDeploymentException("Cannot load spi.deployment.Deployment
class", ex);
- }
- }
-
- public Endpoint newEndpoint(String targetBean)
- {
- try
- {
- return getDeploymentModelFactory().newEndpoint(targetBean);
- }
- catch (Exception ex)
- {
- throw new WSFDeploymentException("Cannot load spi.deployment.Endpoint
class", ex);
- }
- }
-
/** Return true if this deployment should be ignored
*/
public boolean ignoreDeployment(DeploymentUnit unit)
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -21,24 +21,10 @@
*/
package org.jboss.wsf.container.jboss50.deployer;
-import java.net.URL;
-
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.virtual.VirtualFile;
-import org.jboss.wsf.common.DOMUtils;
import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
-import org.jboss.wsf.spi.deployment.WSFDeploymentException;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesFactory;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
-import org.jboss.xb.binding.ObjectModelFactory;
-import org.jboss.xb.binding.Unmarshaller;
-import org.jboss.xb.binding.UnmarshallerFactory;
-import org.w3c.dom.Element;
/**
* An abstract web service deployer.
@@ -67,12 +53,6 @@
{
log.debug("deploy: " + unit.getName());
Deployment dep = getDeployment(unit);
- if (dep == null)
- {
- dep = createDeployment(unit);
- dep.addAttachment(DeploymentUnit.class, unit);
- }
-
unit.addAttachment(Deployment.class, dep);
getDeploymentAspectManager().deploy(dep);
}
@@ -100,13 +80,6 @@
return this.getDeploymentType().equals( deploymentType );
}
- /** Create the Deployment for a given DeploymentUnit
- */
- public Deployment createDeployment(DeploymentUnit unit)
- {
- return unit.getAttachment(Deployment.class);
- }
-
/** Get the Deployment for a given DeploymentUnit
*/
public Deployment getDeployment(DeploymentUnit unit)
@@ -115,11 +88,4 @@
return (dep != null && dep.getType() == getDeploymentType() ? dep : null);
}
- /** Unmrashall the webservices.xml if there is one
- */
- protected WebservicesMetaData getWebservicesMetaData(DeploymentUnit unit)
- {
- return unit.getAttachment(WebservicesMetaData.class);
- }
-
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -21,20 +21,7 @@
*/
package org.jboss.wsf.container.jboss50.deployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.deployment.Service;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.metadata.webservices.PortComponentMetaData;
-import org.jboss.wsf.spi.metadata.webservices.WebserviceDescriptionMetaData;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
/**
* A deployer hook for JAXRPC EJB21 Endpoints.
@@ -53,54 +40,4 @@
return DeploymentType.JAXRPC_EJB21;
}
- @Override
- public Deployment createDeployment(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setRuntimeClassLoader(unit.getClassLoader());
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- JBossMetaData jbmd = unit.getAttachment(JBossMetaData.class);
- if (jbmd == null)
- throw new IllegalStateException("Deployment unit does not contain
application meta data");
-
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
- if (wsMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain
webservices meta data");
-
- WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment == null)
- throw new IllegalStateException("Deployment unit does not contain
webServiceDeployment");
-
- // Copy the attachments
- dep.addAttachment(WebservicesMetaData.class, wsMetaData);
- dep.addAttachment(JBossMetaData.class, jbmd);
- dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
-
- for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions())
- {
- for (PortComponentMetaData pcmd : wsd.getPortComponents())
- {
- String ejbLink = pcmd.getEjbLink();
- if (ejbLink == null)
- throw new IllegalStateException("ejb-link cannot be null");
-
- JBossEnterpriseBeanMetaData beanMetaData = jbmd.getEnterpriseBean(ejbLink);
- if (beanMetaData == null)
- throw new IllegalStateException("Cannot obtain bean meta data for:
" + ejbLink);
-
- String ejbClass = beanMetaData.getEjbClass();
-
- // Create the endpoint
- Endpoint ep = newEndpoint(ejbClass);
- ep.setShortName(ejbLink);
- service.addEndpoint(ep);
- }
- }
- return dep;
- }
-
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -21,20 +21,7 @@
*/
package org.jboss.wsf.container.jboss50.deployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.deployment.Service;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.metadata.webservices.PortComponentMetaData;
-import org.jboss.wsf.spi.metadata.webservices.WebserviceDescriptionMetaData;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
/**
* A phase one deployer hook for JAXRPC JSE Endpoints.
@@ -53,62 +40,4 @@
return DeploymentType.JAXRPC_JSE;
}
- /**
- * Create an endpoint for every servlet-link in webservices.xml
- */
- @Override
- public Deployment createDeployment(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setRuntimeClassLoader(null);
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
- if (webMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain web meta
data");
-
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
- if (wsMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain
webservices meta data");
-
- // Copy the attachments
- dep.addAttachment(WebservicesMetaData.class, wsMetaData);
- dep.addAttachment(JBossWebMetaData.class, webMetaData);
-
- for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions())
- {
- for (PortComponentMetaData pcmd : wsd.getPortComponents())
- {
- String servletLink = pcmd.getServletLink();
- if (servletLink == null)
- throw new IllegalStateException("servlet-link cannot be null");
-
- ServletMetaData servlet = getServletForName(webMetaData, servletLink);
- String targetBean = DeployerUtils.getTargetBean(servlet);
-
- // Create the endpoint
- Endpoint ep = newEndpoint(targetBean);
- ep.setShortName(servletLink);
- service.addEndpoint(ep);
- }
- }
-
- return dep;
- }
-
- private ServletMetaData getServletForName(JBossWebMetaData wmd, String servletLink)
- {
- for (JBossServletMetaData servlet : wmd.getServlets())
- {
- if (servletLink.equals(servlet.getName()))
- {
- return servlet;
- }
- }
- throw new IllegalStateException("Cannot find servlet for link: " +
servletLink);
- }
-
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -21,19 +21,7 @@
*/
package org.jboss.wsf.container.jboss50.deployer;
-import java.util.Iterator;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.deployment.Service;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-import org.jboss.wsf.container.jboss50.invocation.InvocationHandlerEJB3;
/**
* A deployer hook for JAXWS EJB3 Endpoints.
@@ -52,46 +40,4 @@
return DeploymentType.JAXWS_EJB3;
}
- @Override
- public Deployment createDeployment(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setRuntimeClassLoader(unit.getClassLoader());
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment == null)
- throw new IllegalStateException("Deployment unit does not contain
webServiceDeployment");
-
- // Copy the attachments
- dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
-
- Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
- {
- WebServiceDeclaration container = it.next();
- if (DeployerUtils.isWebServiceBean(container))
- {
- String ejbName = container.getComponentName();
- String epBean = container.getComponentClassName();
-
- // Create the endpoint
- Endpoint ep = newEndpoint(epBean);
- ep.setShortName(ejbName);
-
- String containName = container.getContainerName();
- if(null==containName)
- throw new IllegalArgumentException("Target container name not
set");
- ep.setProperty(InvocationHandlerEJB3.CONTAINER_NAME, containName);
-
- service.addEndpoint(ep);
- }
- }
-
- return dep;
- }
-
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -21,18 +21,7 @@
*/
package org.jboss.wsf.container.jboss50.deployer;
-import java.util.List;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.deployment.Service;
/**
* A phase one deployer hook for JAXWS JSE Endpoints.
@@ -51,35 +40,4 @@
return DeploymentType.JAXWS_JSE;
}
- @Override
- public Deployment createDeployment(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
- if (webMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain web meta
data");
-
- // Copy the attachments
- dep.addAttachment(JBossWebMetaData.class, webMetaData);
-
- List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXWSServlets(webMetaData, unit.getClassLoader());
- for (ServletMetaData servlet : servlets)
- {
- String servletName = servlet.getName();
- String targetBean = DeployerUtils.getTargetBean(servlet);
-
- // Create the endpoint
- Endpoint ep = newEndpoint(targetBean);
- ep.setShortName(servletName);
- service.addEndpoint(ep);
- }
-
- return dep;
- }
-
}
Added:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentDeployer.java
(rev 0)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentDeployer.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -0,0 +1,348 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss50.deployer;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.serviceref.VirtualFileAdaptor;
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.virtual.VirtualFile;
+import org.jboss.wsf.container.jboss50.invocation.InvocationHandlerEJB3;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentModelFactory;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
+import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
+import org.jboss.wsf.spi.deployment.WSFDeploymentException;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+import org.jboss.wsf.spi.metadata.webservices.PortComponentMetaData;
+import org.jboss.wsf.spi.metadata.webservices.WebserviceDescriptionMetaData;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+
+/**
+ * This deployer initializes JBossWS deployment meta data.
+ *
+ * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
+ */
+public final class WSDeploymentDeployer extends AbstractRealDeployer
+{
+
+ private static final WSVirtualFileFilter WS_FILEFILTER = new WSVirtualFileFilter();
+ private DeploymentModelFactory deploymentModelFactory;
+
+ /**
+ * Constructor.
+ */
+ public WSDeploymentDeployer()
+ {
+ super();
+
+ // inputs
+ this.addInput( JBossWebMetaData.class );
+ this.addInput( DeploymentType.class );
+
+ // outputs
+ this.addOutput( JBossWebMetaData.class );
+ this.addOutput( Deployment.class );
+
+ // [JBDEPLOY-201] workaround
+ this.setRelativeOrder( 2 );
+ }
+
+ @Override
+ protected void internalDeploy( final DeploymentUnit unit ) throws DeploymentException
+ {
+ final DeploymentType deploymentType = unit.getAttachment( DeploymentType.class );
+ if ( deploymentType != null )
+ {
+ if ( DeploymentType.JAXRPC_EJB21.equals( deploymentType ) )
+ {
+ this.newJAXRPCEJB21Deployment( unit );
+ }
+ else if ( DeploymentType.JAXWS_EJB3.equals( deploymentType ) )
+ {
+ this.newJAXWSEJB3Deployment( unit );
+ }
+ else if ( DeploymentType.JAXRPC_JSE.equals( deploymentType ) )
+ {
+ this.newJAXRPCJSEDeployment( unit );
+ }
+ else if ( DeploymentType.JAXWS_JSE.equals( deploymentType ) )
+ {
+ this.newJAXWSJSEDeployment( unit );
+ }
+ }
+ }
+
+ private void newJAXRPCEJB21Deployment( final DeploymentUnit unit )
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setRuntimeClassLoader(unit.getClassLoader());
+ dep.setType(unit.getAttachment( DeploymentType.class ));
+
+ Service service = dep.getService();
+
+ JBossMetaData jbmd = unit.getAttachment(JBossMetaData.class);
+ if (jbmd == null)
+ throw new IllegalStateException("Deployment unit does not contain
application meta data");
+
+ WebservicesMetaData wsMetaData = unit.getAttachment(WebservicesMetaData.class);
+ if (wsMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain
webservices meta data");
+
+ WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
+ if (webServiceDeployment == null)
+ throw new IllegalStateException("Deployment unit does not contain
webServiceDeployment");
+
+ // Copy the attachments
+ dep.addAttachment(WebservicesMetaData.class, wsMetaData);
+ dep.addAttachment(JBossMetaData.class, jbmd);
+ dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
+
+ for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions())
+ {
+ for (PortComponentMetaData pcmd : wsd.getPortComponents())
+ {
+ String ejbLink = pcmd.getEjbLink();
+ if (ejbLink == null)
+ throw new IllegalStateException("ejb-link cannot be null");
+
+ JBossEnterpriseBeanMetaData beanMetaData = jbmd.getEnterpriseBean(ejbLink);
+ if (beanMetaData == null)
+ throw new IllegalStateException("Cannot obtain bean meta data for:
" + ejbLink);
+
+ String ejbClass = beanMetaData.getEjbClass();
+
+ // Create the endpoint
+ Endpoint ep = newEndpoint(ejbClass);
+ ep.setShortName(ejbLink);
+ service.addEndpoint(ep);
+ }
+ }
+
+ dep.addAttachment(DeploymentUnit.class, unit);
+ unit.addAttachment( Deployment.class, dep );
+ }
+
+ private void newJAXWSEJB3Deployment( final DeploymentUnit unit )
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setRuntimeClassLoader(unit.getClassLoader());
+ dep.setType(unit.getAttachment( DeploymentType.class ));
+
+ Service service = dep.getService();
+
+ WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
+ if (webServiceDeployment == null)
+ throw new IllegalStateException("Deployment unit does not contain
webServiceDeployment");
+
+ // Copy the attachments
+ dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
+
+ Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+ if (DeployerUtils.isWebServiceBean(container))
+ {
+ String ejbName = container.getComponentName();
+ String epBean = container.getComponentClassName();
+
+ // Create the endpoint
+ Endpoint ep = newEndpoint(epBean);
+ ep.setShortName(ejbName);
+
+ String containName = container.getContainerName();
+ if(null==containName)
+ throw new IllegalArgumentException("Target container name not
set");
+ ep.setProperty(InvocationHandlerEJB3.CONTAINER_NAME, containName);
+
+ service.addEndpoint(ep);
+ }
+ }
+
+ dep.addAttachment(DeploymentUnit.class, unit);
+ unit.addAttachment( Deployment.class, dep );
+ }
+
+ private void newJAXRPCJSEDeployment( final DeploymentUnit unit )
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setRuntimeClassLoader(null);
+ dep.setType(unit.getAttachment( DeploymentType.class ));
+
+ Service service = dep.getService();
+
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+ if (webMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain web meta
data");
+
+ WebservicesMetaData wsMetaData = unit.getAttachment(WebservicesMetaData.class);
+ if (wsMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain
webservices meta data");
+
+ // Copy the attachments
+ dep.addAttachment(WebservicesMetaData.class, wsMetaData);
+ dep.addAttachment(JBossWebMetaData.class, webMetaData);
+
+ for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions())
+ {
+ for (PortComponentMetaData pcmd : wsd.getPortComponents())
+ {
+ String servletLink = pcmd.getServletLink();
+ if (servletLink == null)
+ throw new IllegalStateException("servlet-link cannot be null");
+
+ ServletMetaData servlet = getServletForName(webMetaData, servletLink);
+ String targetBean = DeployerUtils.getTargetBean(servlet);
+
+ // Create the endpoint
+ Endpoint ep = newEndpoint(targetBean);
+ ep.setShortName(servletLink);
+ service.addEndpoint(ep);
+ }
+ }
+
+ dep.addAttachment(DeploymentUnit.class, unit);
+ unit.addAttachment( Deployment.class, dep );
+ }
+
+ private void newJAXWSJSEDeployment( final DeploymentUnit unit )
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setType(unit.getAttachment( DeploymentType.class ));
+
+ Service service = dep.getService();
+
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+ if (webMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain web meta
data");
+
+ // Copy the attachments
+ dep.addAttachment(JBossWebMetaData.class, webMetaData);
+
+ List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXWSServlets(webMetaData, unit.getClassLoader());
+ for (ServletMetaData servlet : servlets)
+ {
+ String servletName = servlet.getName();
+ String targetBean = DeployerUtils.getTargetBean(servlet);
+
+ // Create the endpoint
+ Endpoint ep = newEndpoint(targetBean);
+ ep.setShortName(servletName);
+ service.addEndpoint(ep);
+ }
+
+ dep.addAttachment(DeploymentUnit.class, unit);
+ unit.addAttachment( Deployment.class, dep );
+ }
+
+ private ServletMetaData getServletForName(JBossWebMetaData wmd, String servletLink)
+ {
+ for (JBossServletMetaData servlet : wmd.getServlets())
+ {
+ if (servletLink.equals(servlet.getName()))
+ {
+ return servlet;
+ }
+ }
+ throw new IllegalStateException("Cannot find servlet for link: " +
servletLink);
+ }
+
+ private ArchiveDeployment newDeployment(DeploymentUnit unit)
+ {
+ try
+ {
+ DeploymentModelFactory factory = getDeploymentModelFactory();
+ ArchiveDeployment dep =
(ArchiveDeployment)factory.newDeployment(unit.getSimpleName(), unit.getClassLoader());
+ if (unit instanceof VFSDeploymentUnit)
+ {
+ VFSDeploymentUnit vfsUnit = (VFSDeploymentUnit)unit;
+ List<VirtualFile> virtualFiles =
vfsUnit.getMetaDataFiles(WS_FILEFILTER); //get all wsdl and xsd files
+ Set<UnifiedVirtualFile> uVirtualFiles = new
HashSet<UnifiedVirtualFile>();
+ for (VirtualFile vf : virtualFiles)
+ {
+ // Adding the roots of the virtual files.
+ uVirtualFiles.add(new VirtualFileAdaptor(vf.getVFS().getRoot()));
+ }
+ dep.setMetadataFiles(new
LinkedList<UnifiedVirtualFile>(uVirtualFiles));
+ }
+
+ if (unit.getParent() != null)
+ {
+ DeploymentUnit parentUnit = unit.getParent();
+ ArchiveDeployment parentDep =
(ArchiveDeployment)factory.newDeployment(parentUnit.getSimpleName(),
parentUnit.getClassLoader());
+ dep.setParent(parentDep);
+ }
+ return dep;
+ }
+ catch (Exception ex)
+ {
+ throw new WSFDeploymentException("Cannot load spi.deployment.Deployment
class", ex);
+ }
+ }
+
+ private DeploymentModelFactory getDeploymentModelFactory()
+ {
+ if(null == deploymentModelFactory)
+ {
+ SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+ deploymentModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
+ }
+
+ return deploymentModelFactory;
+ }
+
+ private Endpoint newEndpoint(String targetBean)
+ {
+ try
+ {
+ return getDeploymentModelFactory().newEndpoint(targetBean);
+ }
+ catch (Exception ex)
+ {
+ throw new WSFDeploymentException("Cannot load spi.deployment.Endpoint
class", ex);
+ }
+ }
+
+}
Added:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDescriptorDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDescriptorDeployer.java
(rev 0)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDescriptorDeployer.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss50.deployer;
+
+import org.jboss.deployers.vfs.spi.deployer.ObjectModelFactoryDeployer;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesFactory;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+import org.jboss.xb.binding.ObjectModelFactory;
+
+/**
+ * webservices.xml deployer.
+ *
+ * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
+ */
+public final class WSDescriptorDeployer extends ObjectModelFactoryDeployer<
WebservicesMetaData >
+{
+
+ /**
+ * Constructor.
+ */
+ public WSDescriptorDeployer()
+ {
+ super( WebservicesMetaData.class );
+ }
+
+ /**
+ * Model factory generator.
+ */
+ @Override
+ protected ObjectModelFactory getObjectModelFactory( final WebservicesMetaData root )
+ {
+ return new WebservicesFactory( null );
+ }
+
+}
Added:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSEJBAdapterDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSEJBAdapterDeployer.java
(rev 0)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSEJBAdapterDeployer.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -0,0 +1,269 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss50.deployer;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.naming.Context;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb.deployers.EjbDeployment;
+import org.jboss.ejb.deployers.MergedJBossMetaDataDeployer;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+
+/**
+ * WebServiceDeployment deployer processes EJB containers and its metadata and creates WS
adapters wrapping it.
+ *
+ * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
+ */
+public final class WSEJBAdapterDeployer extends AbstractRealDeployer
+{
+
+ /**
+ * Constructor.
+ */
+ public WSEJBAdapterDeployer()
+ {
+ super();
+
+ // inputs
+ this.addInput( MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME );
+ this.addInput( EjbDeployment.class );
+ this.addInput( Ejb3Deployment.class );
+ this.addInput( WebservicesMetaData.class );
+
+ // outputs
+ this.addOutput( WebServiceDeployment.class );
+ }
+
+ /**
+ * Deploys WebServiceDeployment meta data.
+ */
+ @Override
+ protected void internalDeploy( final DeploymentUnit unit ) throws DeploymentException
+ {
+ final JBossMetaData mergedMD = ( JBossMetaData )unit.getAttachment(
+ MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME
+ );
+ final Ejb3Deployment ejb3Deployment = unit.getAttachment( Ejb3Deployment.class );
+
+ if( mergedMD != null )
+ {
+ final WebServiceDeploymentAdapter wsDeploymentAdapter = new
WebServiceDeploymentAdapter();
+ final Iterator< JBossEnterpriseBeanMetaData > ejbIterator =
mergedMD.getEnterpriseBeans().iterator();
+
+ while( ejbIterator.hasNext() )
+ {
+ final JBossEnterpriseBeanMetaData ejbMD = ejbIterator.next();
+ final EJBContainer ejbContainer = this.getContainer( ejb3Deployment, ejbMD
);
+
+ if( ejbMD.getEjbClass() != null )
+ {
+ wsDeploymentAdapter.getServiceEndpoints().add(
+ new WebServiceDeclarationAdapter( ejbMD, ejbContainer,
unit.getClassLoader() )
+ );
+ }
+ else
+ {
+ log.warn( "Ingoring ejb deployment with null classname: " +
ejbMD );
+ }
+ }
+
+ unit.addAttachment( WebServiceDeployment.class, wsDeploymentAdapter );
+ }
+ }
+
+ /**
+ * Returns EJB container if EJB3 deployment is detected and EJB meta data does not
represent entity bean.
+ *
+ * @param ejb3Deployment EJB3 deployment meta data
+ * @param ejbMD EJB meta data
+ * @return EJB container or null if not EJB3 stateless bean
+ * @throws DeploymentException if some error occurs
+ */
+ private EJBContainer getContainer( final Ejb3Deployment ejb3Deployment, final
JBossEnterpriseBeanMetaData ejbMD )
+ throws DeploymentException
+ {
+ if ( ( ejb3Deployment != null ) && ( ejbMD.isEntity() == false ) )
+ {
+ try
+ {
+ final ObjectName objName = new ObjectName( ejbMD.determineContainerName() );
+ return ( EJBContainer ) ejb3Deployment.getContainer( objName );
+ }
+ catch ( MalformedObjectNameException e )
+ {
+ throw new DeploymentException( e );
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Adopts EJB3 bean meta data to a
+ * {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration}.
+ */
+ private static class WebServiceDeclarationAdapter implements WebServiceDeclaration
+ {
+
+ private final JBossEnterpriseBeanMetaData ejbMetaData;
+ private final EJBContainer ejbContainer;
+ private final ClassLoader loader;
+
+ /**
+ * Constructor.
+ *
+ * @param ejbMetaData EJB metadata
+ * @param ejbContainer EJB container
+ * @param loader class loader
+ */
+ private WebServiceDeclarationAdapter
+ (
+ final JBossEnterpriseBeanMetaData ejbMetaData,
+ final EJBContainer ejbContainer,
+ final ClassLoader loader
+ )
+ {
+ super();
+
+ this.ejbMetaData = ejbMetaData;
+ this.ejbContainer = ejbContainer;
+ this.loader = loader;
+ }
+
+ /**
+ * Returns EJB container name.
+ *
+ * @return container name
+ */
+ public String getContainerName()
+ {
+ return this.ejbMetaData.determineContainerName();
+ }
+
+ /**
+ * Returns JNDI context associated with EJB container.
+ *
+ * @return JNDI context
+ */
+ public Context getContext()
+ {
+ return this.ejbContainer.getEnc();
+ }
+
+ /**
+ * Returns EJB name.
+ *
+ * @returns name
+ */
+ public String getComponentName()
+ {
+ return this.ejbMetaData.getName();
+ }
+
+ /**
+ * Returns EJB class name.
+ *
+ * @return class name
+ */
+ public String getComponentClassName()
+ {
+ return this.ejbMetaData.getEjbClass();
+ }
+
+ /**
+ * Returns requested annotation associated with EJB container or EJB bean.
+ *
+ * @return requested annotation or null if not found
+ */
+ public < T extends Annotation > T getAnnotation( final Class<T>
annotationType )
+ {
+ final boolean haveEjbContainer = this.ejbContainer != null;
+
+ if ( haveEjbContainer )
+ {
+ return this.ejbContainer.getAnnotation( annotationType );
+ }
+ else
+ {
+ final Class< ? > bean = this.getComponentClass();
+ return ( T ) bean.getAnnotation( annotationType );
+ }
+ }
+
+ /**
+ * Loads ejb class from associated loader.
+ *
+ * @return ejb class instance
+ */
+ private Class< ? > getComponentClass()
+ {
+ try
+ {
+ return this.loader.loadClass( this.getComponentClassName() );
+ }
+ catch ( ClassNotFoundException cnfe )
+ {
+ throw new RuntimeException( "Failed to load component class: " +
+ this.getComponentClassName() + " from loader: " + this.loader
);
+ }
+ }
+
+ }
+
+ /**
+ * Adopts an EJB deployment to a
+ * {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeployment}
+ */
+ private static class WebServiceDeploymentAdapter implements WebServiceDeployment
+ {
+
+ /** List of endpoints. */
+ private final List< WebServiceDeclaration > endpoints = new ArrayList<
WebServiceDeclaration >();
+
+ /**
+ * Returns endpoints list.
+ *
+ * @return endpoints list
+ */
+ public List< WebServiceDeclaration > getServiceEndpoints()
+ {
+ return endpoints;
+ }
+
+ }
+
+}
Added:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSTypeDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSTypeDeployer.java
(rev 0)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSTypeDeployer.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -0,0 +1,171 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss50.deployer;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+
+/**
+ * Detects webservice deployment type.
+ * TODO: move all isWebServiceDeployment staff here, use DeploymentVisitor?
+ *
+ * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
+ */
+public final class WSTypeDeployer extends AbstractRealDeployer
+{
+
+ /**
+ * Constructor.
+ */
+ public WSTypeDeployer()
+ {
+ super();
+
+ // inputs
+ this.addInput( JBossWebMetaData.class );
+ this.addInput( WebservicesMetaData.class );
+ this.addInput( WebServiceDeployment.class );
+
+ // outputs
+ this.addOutput( DeploymentType.class );
+ this.addOutput( JBossWebMetaData.class );
+
+ // [JBDEPLOY-201] workaround
+ this.setRelativeOrder( 1 );
+ }
+
+ /**
+ * Detects deployment type and puts it to the deployment unit attachment.
+ */
+ @Override
+ protected void internalDeploy( final DeploymentUnit unit ) throws DeploymentException
+ {
+ if ( isJAXRPCEJB21DeploymentType( unit ) )
+ {
+ unit.addAttachment( DeploymentType.class, DeploymentType.JAXRPC_EJB21 );
+ }
+ else if ( isJAXWSEJB3DeploymentType( unit ) )
+ {
+ unit.addAttachment( DeploymentType.class, DeploymentType.JAXWS_EJB3 );
+ }
+ else if ( isJAXRPCJSEDeploymentType( unit ) )
+ {
+ unit.addAttachment( DeploymentType.class, DeploymentType.JAXRPC_JSE );
+ }
+ else if ( isJAXWSJSEDeploymentType( unit ) )
+ {
+ unit.addAttachment( DeploymentType.class, DeploymentType.JAXWS_JSE );
+ }
+ }
+
+ private boolean isJAXRPCEJB21DeploymentType( final DeploymentUnit unit )
+ {
+ WebservicesMetaData wsMetaData = unit.getAttachment( WebservicesMetaData.class );
+ return ( wsMetaData != null ) && ( unit.getAllMetaData( JBossMetaData.class
).size() > 0 );
+ }
+
+ private boolean isJAXRPCJSEDeploymentType( final DeploymentUnit unit )
+ {
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+
+ if (webMetaData == null)
+ {
+ return false;
+ }
+
+ WebservicesMetaData wsMetaData = unit.getAttachment( WebservicesMetaData.class );
+ if ( wsMetaData == null )
+ {
+ return false;
+ }
+
+ boolean isWebServiceDeployment = false;
+ try
+ {
+ List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXRPCServlets(webMetaData, unit.getClassLoader());
+ isWebServiceDeployment = servlets.size() > 0;
+ }
+ catch (Exception ex)
+ {
+ log.error("Cannot process web deployment", ex);
+ }
+
+ return isWebServiceDeployment;
+ }
+
+ private boolean isJAXWSEJB3DeploymentType( final DeploymentUnit unit )
+ {
+ WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
+ if (null == webServiceDeployment )
+ return false;
+
+ boolean isWebServiceDeployment = false;
+
+ Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+ if (DeployerUtils.isWebServiceBean(container))
+ {
+ isWebServiceDeployment = true;
+ break;
+ }
+ }
+
+ return isWebServiceDeployment;
+ }
+
+ public boolean isJAXWSJSEDeploymentType( final DeploymentUnit unit )
+ {
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+
+ if (webMetaData == null)
+ {
+ return false;
+ }
+
+ boolean isWebServiceDeployment = false;
+ try
+ {
+ List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXWSServlets(webMetaData, unit.getClassLoader());
+ isWebServiceDeployment = servlets.size() > 0;
+ }
+ catch (Exception ex)
+ {
+ log.error("Cannot process web deployment", ex);
+ }
+
+ return isWebServiceDeployment;
+ }
+
+}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -22,7 +22,7 @@
package org.jboss.wsf.container.jboss50.deployer;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.deployment.Deployment;
/**
* This it the web service deployer for EJB. It gets
@@ -46,13 +46,13 @@
// inputs
this.addInput( JBossWebMetaData.class );
- this.addInput( DeploymentType.class );
+ this.addInput( Deployment.class );
// outputs
this.addOutput( JBossWebMetaData.class );
// [JBDEPLOY-201] workaround
- this.setRelativeOrder( 2 );
+ this.setRelativeOrder( 3 );
}
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -22,7 +22,7 @@
package org.jboss.wsf.container.jboss50.deployer;
import org.jboss.web.deployers.WarDeployment;
-import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.deployment.Deployment;
/**
* The phase two web service deployer for JSE.
@@ -42,7 +42,7 @@
super();
// inputs
- this.addInput( DeploymentType.class );
+ this.addInput( Deployment.class );
this.addInput( WarDeployment.class );
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -22,7 +22,7 @@
package org.jboss.wsf.container.jboss50.deployer;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.deployment.Deployment;
/**
* The phase one web service deployer for JSE.
@@ -43,13 +43,13 @@
// inputs
this.addInput( JBossWebMetaData.class );
- this.addInput( DeploymentType.class );
+ this.addInput( Deployment.class );
// outputs
this.addOutput( JBossWebMetaData.class );
// [JBDEPLOY-201] workaround
- this.setRelativeOrder( 3 ); // [JBDEPLOY-201] workaround
+ this.setRelativeOrder( 4 );
}
}
Deleted:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentDeployer.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentDeployer.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -1,269 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2009, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.wsf.container.jboss50.deployer;
-
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.naming.Context;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb.deployers.EjbDeployment;
-import org.jboss.ejb.deployers.MergedJBossMetaDataDeployer;
-import org.jboss.ejb3.EJBContainer;
-import org.jboss.ejb3.Ejb3Deployment;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
-
-/**
- * WebServiceDeployment deployer processes EJB containers and its metadata and creates WS
adapters wrapping it.
- *
- * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
- */
-public final class WebServiceDeploymentDeployer extends AbstractRealDeployer
-{
-
- /**
- * Constructor.
- */
- public WebServiceDeploymentDeployer()
- {
- super();
-
- // inputs
- this.addInput( MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME );
- this.addInput( EjbDeployment.class );
- this.addInput( Ejb3Deployment.class );
- this.addInput( WebservicesMetaData.class );
-
- // outputs
- this.addOutput( WebServiceDeployment.class );
- }
-
- /**
- * Deploys WebServiceDeployment meta data.
- */
- @Override
- protected void internalDeploy( final DeploymentUnit unit ) throws DeploymentException
- {
- final JBossMetaData mergedMD = ( JBossMetaData )unit.getAttachment(
- MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME
- );
- final Ejb3Deployment ejb3Deployment = unit.getAttachment( Ejb3Deployment.class );
-
- if( mergedMD != null )
- {
- final WebServiceDeploymentAdapter wsDeploymentAdapter = new
WebServiceDeploymentAdapter();
- final Iterator< JBossEnterpriseBeanMetaData > ejbIterator =
mergedMD.getEnterpriseBeans().iterator();
-
- while( ejbIterator.hasNext() )
- {
- final JBossEnterpriseBeanMetaData ejbMD = ejbIterator.next();
- final EJBContainer ejbContainer = this.getContainer( ejb3Deployment, ejbMD
);
-
- if( ejbMD.getEjbClass() != null )
- {
- wsDeploymentAdapter.getServiceEndpoints().add(
- new WebServiceDeclarationAdapter( ejbMD, ejbContainer,
unit.getClassLoader() )
- );
- }
- else
- {
- log.warn( "Ingoring ejb deployment with null classname: " +
ejbMD );
- }
- }
-
- unit.addAttachment( WebServiceDeployment.class, wsDeploymentAdapter );
- }
- }
-
- /**
- * Returns EJB container if EJB3 deployment is detected and EJB meta data does not
represent entity bean.
- *
- * @param ejb3Deployment EJB3 deployment meta data
- * @param ejbMD EJB meta data
- * @return EJB container or null if not EJB3 stateless bean
- * @throws DeploymentException if some error occurs
- */
- private EJBContainer getContainer( final Ejb3Deployment ejb3Deployment, final
JBossEnterpriseBeanMetaData ejbMD )
- throws DeploymentException
- {
- if ( ( ejb3Deployment != null ) && ( ejbMD.isEntity() == false ) )
- {
- try
- {
- final ObjectName objName = new ObjectName( ejbMD.determineContainerName() );
- return ( EJBContainer ) ejb3Deployment.getContainer( objName );
- }
- catch ( MalformedObjectNameException e )
- {
- throw new DeploymentException( e );
- }
- }
-
- return null;
- }
-
- /**
- * Adopts EJB3 bean meta data to a
- * {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration}.
- */
- private static class WebServiceDeclarationAdapter implements WebServiceDeclaration
- {
-
- private final JBossEnterpriseBeanMetaData ejbMetaData;
- private final EJBContainer ejbContainer;
- private final ClassLoader loader;
-
- /**
- * Constructor.
- *
- * @param ejbMetaData EJB metadata
- * @param ejbContainer EJB container
- * @param loader class loader
- */
- private WebServiceDeclarationAdapter
- (
- final JBossEnterpriseBeanMetaData ejbMetaData,
- final EJBContainer ejbContainer,
- final ClassLoader loader
- )
- {
- super();
-
- this.ejbMetaData = ejbMetaData;
- this.ejbContainer = ejbContainer;
- this.loader = loader;
- }
-
- /**
- * Returns EJB container name.
- *
- * @return container name
- */
- public String getContainerName()
- {
- return this.ejbMetaData.determineContainerName();
- }
-
- /**
- * Returns JNDI context associated with EJB container.
- *
- * @return JNDI context
- */
- public Context getContext()
- {
- return this.ejbContainer.getEnc();
- }
-
- /**
- * Returns EJB name.
- *
- * @returns name
- */
- public String getComponentName()
- {
- return this.ejbMetaData.getName();
- }
-
- /**
- * Returns EJB class name.
- *
- * @return class name
- */
- public String getComponentClassName()
- {
- return this.ejbMetaData.getEjbClass();
- }
-
- /**
- * Returns requested annotation associated with EJB container or EJB bean.
- *
- * @return requested annotation or null if not found
- */
- public < T extends Annotation > T getAnnotation( final Class<T>
annotationType )
- {
- final boolean haveEjbContainer = this.ejbContainer != null;
-
- if ( haveEjbContainer )
- {
- return this.ejbContainer.getAnnotation( annotationType );
- }
- else
- {
- final Class< ? > bean = this.getComponentClass();
- return ( T ) bean.getAnnotation( annotationType );
- }
- }
-
- /**
- * Loads ejb class from associated loader.
- *
- * @return ejb class instance
- */
- private Class< ? > getComponentClass()
- {
- try
- {
- return this.loader.loadClass( this.getComponentClassName() );
- }
- catch ( ClassNotFoundException cnfe )
- {
- throw new RuntimeException( "Failed to load component class: " +
- this.getComponentClassName() + " from loader: " + this.loader
);
- }
- }
-
- }
-
- /**
- * Adopts an EJB deployment to a
- * {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeployment}
- */
- private static class WebServiceDeploymentAdapter implements WebServiceDeployment
- {
-
- /** List of endpoints. */
- private final List< WebServiceDeclaration > endpoints = new ArrayList<
WebServiceDeclaration >();
-
- /**
- * Returns endpoints list.
- *
- * @return endpoints list
- */
- public List< WebServiceDeclaration > getServiceEndpoints()
- {
- return endpoints;
- }
-
- }
-
-}
Deleted:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentTypeDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentTypeDeployer.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServiceDeploymentTypeDeployer.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -1,171 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2009, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.wsf.container.jboss50.deployer;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
-
-/**
- * Detects webservice deployment type.
- * TODO: move all isWebServiceDeployment staff here, use DeploymentVisitor?
- *
- * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
- */
-public final class WebServiceDeploymentTypeDeployer extends AbstractRealDeployer
-{
-
- /**
- * Constructor.
- */
- public WebServiceDeploymentTypeDeployer()
- {
- super();
-
- // inputs
- this.addInput( JBossWebMetaData.class );
- this.addInput( WebservicesMetaData.class );
- this.addInput( WebServiceDeployment.class );
-
- // outputs
- this.addOutput( DeploymentType.class );
- this.addOutput( JBossWebMetaData.class );
-
- // [JBDEPLOY-201] workaround
- this.setRelativeOrder( 1 );
- }
-
- /**
- * Detects deployment type and puts it to the deployment unit attachment.
- */
- @Override
- protected void internalDeploy( final DeploymentUnit unit ) throws DeploymentException
- {
- if ( isJAXRPCEJB21DeploymentType( unit ) )
- {
- unit.addAttachment( DeploymentType.class, DeploymentType.JAXRPC_EJB21 );
- }
- else if ( isJAXWSEJB3DeploymentType( unit ) )
- {
- unit.addAttachment( DeploymentType.class, DeploymentType.JAXWS_EJB3 );
- }
- else if ( isJAXRPCJSEDeploymentType( unit ) )
- {
- unit.addAttachment( DeploymentType.class, DeploymentType.JAXRPC_JSE );
- }
- else if ( isJAXWSJSEDeploymentType( unit ) )
- {
- unit.addAttachment( DeploymentType.class, DeploymentType.JAXWS_JSE );
- }
- }
-
- private boolean isJAXRPCEJB21DeploymentType( final DeploymentUnit unit )
- {
- WebservicesMetaData wsMetaData = unit.getAttachment( WebservicesMetaData.class );
- return ( wsMetaData != null ) && ( unit.getAllMetaData( JBossMetaData.class
).size() > 0 );
- }
-
- private boolean isJAXRPCJSEDeploymentType( final DeploymentUnit unit )
- {
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
-
- if (webMetaData == null)
- {
- return false;
- }
-
- WebservicesMetaData wsMetaData = unit.getAttachment( WebservicesMetaData.class );
- if ( wsMetaData == null )
- {
- return false;
- }
-
- boolean isWebServiceDeployment = false;
- try
- {
- List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXRPCServlets(webMetaData, unit.getClassLoader());
- isWebServiceDeployment = servlets.size() > 0;
- }
- catch (Exception ex)
- {
- log.error("Cannot process web deployment", ex);
- }
-
- return isWebServiceDeployment;
- }
-
- private boolean isJAXWSEJB3DeploymentType( final DeploymentUnit unit )
- {
- WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
- if (null == webServiceDeployment )
- return false;
-
- boolean isWebServiceDeployment = false;
-
- Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
- {
- WebServiceDeclaration container = it.next();
- if (DeployerUtils.isWebServiceBean(container))
- {
- isWebServiceDeployment = true;
- break;
- }
- }
-
- return isWebServiceDeployment;
- }
-
- public boolean isJAXWSJSEDeploymentType( final DeploymentUnit unit )
- {
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
-
- if (webMetaData == null)
- {
- return false;
- }
-
- boolean isWebServiceDeployment = false;
- try
- {
- List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXWSServlets(webMetaData, unit.getClassLoader());
- isWebServiceDeployment = servlets.size() > 0;
- }
- catch (Exception ex)
- {
- log.error("Cannot process web deployment", ex);
- }
-
- return isWebServiceDeployment;
- }
-
-}
Deleted:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServicesMetaDataDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServicesMetaDataDeployer.java 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WebServicesMetaDataDeployer.java 2009-06-26
13:23:05 UTC (rev 10241)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2009, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.wsf.container.jboss50.deployer;
-
-import org.jboss.deployers.vfs.spi.deployer.ObjectModelFactoryDeployer;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesFactory;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
-import org.jboss.xb.binding.ObjectModelFactory;
-
-/**
- * webservices.xml deployer.
- *
- * @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
- */
-public final class WebServicesMetaDataDeployer
-extends ObjectModelFactoryDeployer< WebservicesMetaData >
-{
-
- /**
- * Constructor.
- */
- public WebServicesMetaDataDeployer()
- {
- super( WebservicesMetaData.class );
- }
-
- /**
- * Model factory generator.
- */
- @Override
- protected ObjectModelFactory getObjectModelFactory( final WebservicesMetaData root )
- {
- return new WebservicesFactory( null );
- }
-
-}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-jboss-beans.xml
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-jboss-beans.xml 2009-06-26
13:14:21 UTC (rev 10240)
+++
container/jboss50/branches/ropalka-jboss510/src/main/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-jboss-beans.xml 2009-06-26
13:23:05 UTC (rev 10241)
@@ -76,15 +76,17 @@
*********************************************************************************************************************
-->
- <bean name="WebServicesMetaDataDeployer"
class="org.jboss.wsf.container.jboss50.deployer.WebServicesMetaDataDeployer">
+ <bean name="WSDescriptorDeployer"
class="org.jboss.wsf.container.jboss50.deployer.WSDescriptorDeployer">
<property name="name">webservices.xml</property>
<property name="useSchemaValidation">true</property>
</bean>
- <bean name="WebServiceDeploymentDeployer"
class="org.jboss.wsf.container.jboss50.deployer.WebServiceDeploymentDeployer"/>
+ <bean name="WSEJBAdapterDeployer"
class="org.jboss.wsf.container.jboss50.deployer.WSEJBAdapterDeployer"/>
- <bean name="WebServiceDeploymentTypeDeployer"
class="org.jboss.wsf.container.jboss50.deployer.WebServiceDeploymentTypeDeployer"/>
+ <bean name="WSTypeDeployer"
class="org.jboss.wsf.container.jboss50.deployer.WSTypeDeployer"/>
+ <bean name="WSDeploymentDeployer"
class="org.jboss.wsf.container.jboss50.deployer.WSDeploymentDeployer"/>
+
<bean name="WebServiceDeployerEJB"
class="org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerEJB"/>
<bean name="WebServiceDeployerPreJSE"
class="org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerPreJSE"/>