Author: richard.opalka(a)jboss.com
Date: 2009-07-02 09:24:31 -0400 (Thu, 02 Jul 2009)
New Revision: 10291
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/DeployerUtils.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentAspectDeployer.java
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/WSTypeDeployer.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java
Log:
[JBWS-2332][JBWS-2382] refactoring (WIP)
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/DeployerUtils.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/DeployerUtils.java 2009-07-02
11:22:52 UTC (rev 10290)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/DeployerUtils.java 2009-07-02
13:24:31 UTC (rev 10291)
@@ -22,18 +22,22 @@
package org.jboss.wsf.container.jboss50.deployer;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
import javax.jws.WebService;
import javax.servlet.Servlet;
import javax.xml.ws.WebServiceProvider;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.logging.Logger;
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
/**
* TODO: javadoc
@@ -63,24 +67,43 @@
return isWebServiceBean;
}
+
+ static final boolean isEjb3Deployment( final DeploymentUnit unit )
+ {
+ final WebServiceDeployment wsDeployment = unit.getAttachment(
WebServiceDeployment.class );
+
+ Iterator<WebServiceDeclaration> it =
wsDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+ if (DeployerUtils.isWebServiceBean(container))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
- static final List<ServletMetaData> getRelevantJAXWSServlets( final
JBossWebMetaData webMD, final ClassLoader loader)
+ static final List<ServletMetaData> getJaxwsServlets( final DeploymentUnit unit
)
{
- return DeployerUtils.getRelevantServlets( webMD, loader, true );
+ return DeployerUtils.getRelevantServlets( unit, true );
}
- static List<ServletMetaData> getRelevantJAXRPCServlets( final JBossWebMetaData
webMD, final ClassLoader loader)
+ static List<ServletMetaData> getJaxrpcServlets( final DeploymentUnit unit )
{
- return DeployerUtils.getRelevantServlets( webMD, loader, false );
+ return DeployerUtils.getRelevantServlets( unit, false );
}
- private static final List< ServletMetaData > getRelevantServlets
- (
- final JBossWebMetaData webMD, final ClassLoader loader, final boolean jaxws
- )
+ private static final List< ServletMetaData > getRelevantServlets( final
DeploymentUnit unit, final boolean jaxws )
{
+ try
+ {
+ final JBossWebMetaData jbossWebMD = unit.getAttachment(JBossWebMetaData.class);
+ final ClassLoader loader = unit.getClassLoader();
+
List<ServletMetaData> endpoints = new ArrayList<ServletMetaData>();
- for (ServletMetaData servlet : webMD.getServlets())
+ for (ServletMetaData servlet : jbossWebMD.getServlets())
{
String servletClassName = getTargetBean(servlet);
@@ -120,6 +143,12 @@
}
return endpoints;
+ }
+ catch (Exception ex)
+ {
+ log.error("Cannot process web deployment", ex);
+ return Collections.emptyList();
+ }
}
static String getTargetBean(ServletMetaData servlet)
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentAspectDeployer.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentAspectDeployer.java 2009-07-02
11:22:52 UTC (rev 10290)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentAspectDeployer.java 2009-07-02
13:24:31 UTC (rev 10291)
@@ -27,25 +27,29 @@
import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.container.jboss50.ASIntegrationHelper;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.DeploymentAspect;
-import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
/**
* A deployer that delegates to JBossWS deployment aspect.
*
* @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
*/
-public class WSDeploymentAspectDeployer extends AbstractRealDeployer
+public final class WSDeploymentAspectDeployer extends AbstractRealDeployer
{
+ /** JBossWS specific inputs/outputs prefix. */
private static final String JBOSSWS_ATTACHMENT_PREFIX = "jbossws.";
+ /** Delegee. */
private final DeploymentAspect aspect;
/**
* Constructor.
+ *
+ * @param aspect deployment aspect
*/
- public WSDeploymentAspectDeployer( DeploymentAspect aspect )
+ public WSDeploymentAspectDeployer( final DeploymentAspect aspect )
{
super();
@@ -59,7 +63,7 @@
final Set< String > inputs = aspect.getRequiresAsSet();
for ( String input : inputs )
{
- this.addInput( JBOSSWS_ATTACHMENT_PREFIX + input );
+ this.addInput( WSDeploymentAspectDeployer.JBOSSWS_ATTACHMENT_PREFIX + input );
}
// outputs
@@ -69,14 +73,21 @@
final Set< String > outputs = aspect.getProvidesAsSet();
for ( String output : outputs )
{
- this.addOutput( JBOSSWS_ATTACHMENT_PREFIX + output );
+ this.addOutput( WSDeploymentAspectDeployer.JBOSSWS_ATTACHMENT_PREFIX + output
);
}
}
+ /**
+ * If deployed unit is related to web services this method delegates
+ * to deployment aspect and calls its create() and start() methods.
+ *
+ * @param unit deployment unit
+ * @throws DeploymentException on deployment failure
+ */
@Override
- public void internalDeploy(DeploymentUnit unit) throws DeploymentException
+ public void internalDeploy( final DeploymentUnit unit ) throws DeploymentException
{
- if ( this.isWebServiceDeployment( unit ) )
+ if ( ASIntegrationHelper.isWebServiceDeployment( unit ) )
{
log.debug( this.aspect.getClass() + " deploy: " + unit.getName() );
final Deployment dep = unit.getAttachment( Deployment.class );
@@ -85,10 +96,16 @@
}
}
+ /**
+ * If undeployed unit is related to web services this method delegates
+ * to deployment aspect and calls its stop() and destroy() methods.
+ *
+ * @param unit deployment unit
+ */
@Override
- public void internalUndeploy(DeploymentUnit unit)
+ public void internalUndeploy( final DeploymentUnit unit )
{
- if ( this.isWebServiceDeployment( unit ) )
+ if ( ASIntegrationHelper.isWebServiceDeployment( unit ) )
{
log.debug( this.aspect.getClass() + " undeploy: " + unit.getName() );
final Deployment dep = unit.getAttachment( Deployment.class );
@@ -97,9 +114,4 @@
}
}
- private boolean isWebServiceDeployment( final DeploymentUnit unit )
- {
- return unit.getAttachment( DeploymentType.class ) != null;
- }
-
}
Modified:
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 2009-07-02
11:22:52 UTC (rev 10290)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSDeploymentDeployer.java 2009-07-02
13:24:31 UTC (rev 10291)
@@ -255,7 +255,7 @@
// Copy the attachments
dep.addAttachment(JBossWebMetaData.class, webMetaData);
- List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXWSServlets(webMetaData, unit.getClassLoader());
+ List<ServletMetaData> servlets = DeployerUtils.getJaxwsServlets(unit);
for (ServletMetaData servlet : servlets)
{
String servletName = servlet.getName();
Modified:
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 2009-07-02
11:22:52 UTC (rev 10290)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployer/WSTypeDeployer.java 2009-07-02
13:24:31 UTC (rev 10291)
@@ -21,23 +21,17 @@
*/
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?
+ * Detects Web Service deployment type.
*
* @author <a href="ropalka(a)redhat.com">Richard Opalka</a>
*/
@@ -62,107 +56,105 @@
}
/**
- * Detects deployment type and puts it to the deployment unit attachment.
+ * Detects WS deployment type and puts it to the deployment unit attachments.
+ *
+ * @param unit deployment unit
+ * @throws DeploymentException on failure
*/
@Override
protected void internalDeploy( final DeploymentUnit unit ) throws DeploymentException
{
- if ( isJAXRPCEJB21DeploymentType( unit ) )
+ if ( this.isJaxrpcEjbDeployment( unit ) )
{
unit.addAttachment( DeploymentType.class, DeploymentType.JAXRPC_EJB21 );
}
- else if ( isJAXWSEJB3DeploymentType( unit ) )
+ else if ( this.isJaxwsEjbDeployment( unit ) )
{
unit.addAttachment( DeploymentType.class, DeploymentType.JAXWS_EJB3 );
}
- else if ( isJAXRPCJSEDeploymentType( unit ) )
+ else if ( this.isJaxrpcPojoDeployment( unit ) )
{
unit.addAttachment( DeploymentType.class, DeploymentType.JAXRPC_JSE );
}
- else if ( isJAXWSJSEDeploymentType( unit ) )
+ else if ( this.isJaxwsPojoDeployment( unit ) )
{
unit.addAttachment( DeploymentType.class, DeploymentType.JAXWS_JSE );
}
}
- private boolean isJAXRPCEJB21DeploymentType( final DeploymentUnit unit )
+ /**
+ * Returns true if JAXRPC EJB deployment is detected.
+ *
+ * @param unit deployment unit
+ * @return true if JAXRPC EJB, false otherwise
+ */
+ private boolean isJaxrpcEjbDeployment( final DeploymentUnit unit )
{
- WebservicesMetaData wsMetaData = unit.getAttachment( WebservicesMetaData.class );
- return ( wsMetaData != null ) && ( unit.getAllMetaData( JBossMetaData.class
).size() > 0 );
+ final boolean isJaxrpc = unit.getAttachment( WebservicesMetaData.class ) != null;
+ final boolean hasJBossMD = unit.getAllMetaData( JBossMetaData.class ).size() >
0;
+
+ return isJaxrpc && hasJBossMD;
}
- private boolean isJAXRPCJSEDeploymentType( final DeploymentUnit unit )
+ /**
+ * Returns true if JAXRPC POJO deployment is detected.
+ *
+ * @param unit deployment unit
+ * @return true if JAXRPC POJO, false otherwise
+ */
+ private boolean isJaxrpcPojoDeployment( final DeploymentUnit unit )
{
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
-
- if (webMetaData == null)
+ final boolean isJaxrpc = unit.getAttachment( WebservicesMetaData.class ) != null;
+ final boolean hasJBossWebMD = unit.getAttachment( JBossWebMetaData.class ) !=
null;
+
+ if ( isJaxrpc && hasJBossWebMD )
{
- return false;
+ return DeployerUtils.getJaxrpcServlets( unit ).size() > 0;
}
-
- WebservicesMetaData wsMetaData = unit.getAttachment( WebservicesMetaData.class );
- if ( wsMetaData == null )
+ else
{
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 )
+ /**
+ * Returns true if JAXWS EJB deployment is detected.
+ *
+ * @param unit deployment unit
+ * @return true if JAXWS EJB, false otherwise
+ */
+ private boolean isJaxwsEjbDeployment( final DeploymentUnit unit )
{
- WebServiceDeployment webServiceDeployment =
unit.getAttachment(WebServiceDeployment.class);
- if (null == webServiceDeployment )
- return false;
+ final boolean hasWSDeployment = unit.getAttachment( WebServiceDeployment.class ) !=
null;
- boolean isWebServiceDeployment = false;
-
- Iterator<WebServiceDeclaration> it =
webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
+ if ( hasWSDeployment )
{
- WebServiceDeclaration container = it.next();
- if (DeployerUtils.isWebServiceBean(container))
- {
- isWebServiceDeployment = true;
- break;
- }
+ return DeployerUtils.isEjb3Deployment( unit );
}
-
- return isWebServiceDeployment;
- }
-
- public boolean isJAXWSJSEDeploymentType( final DeploymentUnit unit )
- {
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
-
- if (webMetaData == null)
+ else
{
return false;
}
+ }
- boolean isWebServiceDeployment = false;
- try
+ /**
+ * Returns true if JAXWS POJO deployment is detected.
+ *
+ * @param unit deployment unit
+ * @return true if JAXWS POJO, false otherwise
+ */
+ private boolean isJaxwsPojoDeployment( final DeploymentUnit unit )
+ {
+ final boolean hasJBossWebMD = unit.getAttachment( JBossWebMetaData.class ) !=
null;
+
+ if ( hasJBossWebMD )
{
- List<ServletMetaData> servlets =
DeployerUtils.getRelevantJAXWSServlets(webMetaData, unit.getClassLoader());
- isWebServiceDeployment = servlets.size() > 0;
+ return DeployerUtils.getJaxwsServlets( unit ).size() > 0;
}
- catch (Exception ex)
+ else
{
- log.error("Cannot process web deployment", ex);
+ return false;
}
-
- return isWebServiceDeployment;
}
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java 2009-07-02
11:22:52 UTC (rev 10290)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java 2009-07-02
13:24:31 UTC (rev 10291)
@@ -33,7 +33,6 @@
{
static String PROPERTY_WEBAPP_CONTEXT_PARAMETERS =
"org.jboss.ws.webapp.ContextParameterMap";
static String PROPERTY_WEBAPP_SERVLET_CLASS =
"org.jboss.ws.webapp.ServletClass";
- static String PROPERTY_WEBAPP_SERVLET_CONTEXT_LISTENER =
"org.jboss.ws.webapp.ServletContextListener";
- void modifyMetaData( Deployment dep ) throws ClassNotFoundException;
+ void modifyMetaData( Deployment dep );
}
Modified:
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java
===================================================================
---
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java 2009-07-02
11:22:52 UTC (rev 10290)
+++
container/jboss50/branches/ropalka-jboss510/src/main/java/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java 2009-07-02
13:24:31 UTC (rev 10291)
@@ -91,19 +91,6 @@
}
}
- String listenerClass =
(String)dep.getProperty(PROPERTY_WEBAPP_SERVLET_CONTEXT_LISTENER);
- if (listenerClass != null)
- {
- List<ListenerMetaData> listeners = jbwmd.getListeners();
- if (listeners == null)
- {
- listeners = new ArrayList<ListenerMetaData>();
- jbwmd.setListeners(listeners);
- }
- ListenerMetaData listener = new ListenerMetaData();
- listener.setListenerClass(listenerClass);
- }
-
for (Iterator it = jbwmd.getServlets().iterator(); it.hasNext();)
{
JBossServletMetaData servlet = (JBossServletMetaData)it.next();