[jbossws-dev] [Design of JBoss Web Services] - Re: JBossWS Deployers Integration

richard.opalka@jboss.com do-not-reply at jboss.com
Tue Jun 16 09:06:05 EDT 2009


First our current deployers architecture:

We have three deployers in place, namely:
* WebServiceDeployerEJB
* WebServiceDeployerPreJSE
* WebServiceDeployerPostJSE

These are ordered in the following way:
ordering1) EJBDeployer < WebServiceDeployerEJB < WarDeployer
ordering2) WebServiceDeployerPreJSE < WarDeployer < WebServiceDeployerPostJSE

ordering1) is followed when EJB as WS is deployed (only one WS deployer does all the WS magic)
ordering2) is followed in case POJO as WS is deployed (two WS deployers do all the WS magic)

Each WS deployer has two deployer hooks registered (JAX-RPC and JAX-WS):

 +--- WebServiceDeployerEJB ( holds WSDeploymentAspectManagerEJB )
 |     |
 |     +--- JAXRPCDeployerHookEJB21
 |     |
 |     +--- JAXWSDeployerHookEJB3
 |
 +--- WebServiceDeployerPreJSE ( holds WSDeploymentAspectManagerPreJSE )
 |     |
 |     +--- JAXRPCDeployerHookPreJSE
 |     |
 |     +--- JAXWSDeployerHookPreJSE
 |
 +--- WebServiceDeployerPostJSE ( holds WSDeploymentAspectManagerPostJSE )
       |
       +--- JAXRPCDeployerHookPostJSE
       |
       +--- JAXWSDeployerHookPostJSE

Deployer hook represents JBossAS 4 style deployer that does almost all the WS processing stuff.
It usually does the following things:
 * determines the WS deployment type (JAX-WS or JAX-RPC)
 * constructs initial JBossWS Metadata model that is later used by JBossWS deployment aspects
 * calls WS deployment aspect manager to build/process WS Metadata model using registered WS deployment aspects

The following deployment aspects are registered with particular deployment aspect managers:
(AS guys can imagine them like AS deployers, they are following the same chain-of-responsibility pattern
and are also kind of ordered set of processors like AS deployers are).

 WSDeploymentAspectManagerEJB
  |
  +--- AS
  |     |- WSContainerMetaDataDeploymentAspect = org.jboss.wsf.container.jboss50.deployment.metadata.ContainerMetaDataDeploymentAspect
  |     |- WSInjectionMetaDataDeploymentAspect = org.jboss.wsf.container.jboss50.deployment.metadata.InjectionMetaDataDeploymentAspect
  |     |- WSContextRootDeploymentAspect = org.jboss.wsf.framework.deployment.BackwardCompatibleContextRootDeploymentAspect
  |     |- WSVirtualHostDeploymentAspect = org.jboss.wsf.framework.deployment.VirtualHostDeploymentAspect
  |     |- WSEndpointAddressDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointAddressDeploymentAspect
  |     |- WSEndpointHandlerDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointHandlerDeploymentAspect
  |     |- WSEndpointLifecycleDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointLifecycleDeploymentAspect
  |     |- WSEndpointMetricsDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointMetricsDeploymentAspect
  |     |- WSEndpointNameDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointNameDeploymentAspect
  |     |- WSEndpointRegistryDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointRegistryDeploymentAspect
  |     |- WSURLPatternDeploymentAspect = org.jboss.wsf.framework.deployment.BackwardCompatibleURLPatternDeploymentAspect
  |     |- WSRuntimeLoaderDeploymentAspect = org.jboss.wsf.container.jboss50.deployment.RuntimeLoaderDeploymentAspect
  |     |- WSWebAppDeploymentAspect = org.jboss.wsf.container.jboss50.transport.WebAppDeploymentAspect
  |     +- WSWebAppGeneratorDeploymentAspect = org.jboss.wsf.container.jboss50.transport.WebAppGeneratorDeploymentAspect
  |
  +--- Native
        |- WSNativeContextPropertiesDeploymentAspect = org.jboss.wsf.framework.deployment.ContextPropertiesDeploymentAspect
        |- WSNativeEagerInitializeDeploymentAspect = org.jboss.wsf.stack.jbws.EagerInitializeDeploymentAspect
        |- WSNativeEndpointHandlerDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointHandlerDeploymentAspect
        |- WSNativeEndpointRecordProcessorDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointRecordProcessorDeploymentAspect
        |- WSNativeEventingDeploymentAspect = org.jboss.wsf.stack.jbws.EventingDeploymentAspect
        |- WSNativePublishContractDeploymentAspect = org.jboss.wsf.stack.jbws.PublishContractDeploymentAspect
        |- WSNativeServiceEndpointInvokerDeploymentAspect = org.jboss.wsf.stack.jbws.ServiceEndpointInvokerDeploymentAspect
        |- WSNativeRMDeploymentAspect = org.jboss.ws.extensions.wsrm.server.RMDeploymentAspect
        |- WSNativeUnifiedMetaDataDeploymentAspect = org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect
        +- WSJAXBIntroDeploymentAspect = org.jboss.wsf.stack.jbws.JAXBIntroDeploymentAspect

 WSDeploymentAspectManagerPreJSE
  |
  +--- AS
  |     |- WSContainerMetaDataDeploymentAspect = org.jboss.wsf.container.jboss50.deployment.metadata.ContainerMetaDataDeploymentAspect
  |     |- WSInjectionMetaDataDeploymentAspect = org.jboss.wsf.container.jboss50.deployment.metadata.InjectionMetaDataDeploymentAspect
  |     |- WSContextRootDeploymentAspect = org.jboss.wsf.framework.deployment.BackwardCompatibleContextRootDeploymentAspect
  |     |- WSEndpointAddressDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointAddressDeploymentAspect
  |     |- WSEndpointHandlerDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointHandlerDeploymentAspect
  |     |- WSEndpointMetricsDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointMetricsDeploymentAspect
  |     |- WSEndpointNameDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointNameDeploymentAspect
  |     |- WSEndpointRegistryDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointRegistryDeploymentAspect
  |     |- WSModifyWebMetaDataDeploymentAspect = org.jboss.wsf.container.jboss50.deployment.tomcat.ModifyWebMetaDataDeploymentAspect
  |     +- WSURLPatternDeploymentAspect = org.jboss.wsf.framework.deployment.BackwardCompatibleURLPatternDeploymentAspect
  |
  +--- Native
        +- WSNativeContextPropertiesDeploymentAspect = org.jboss.wsf.framework.deployment.ContextPropertiesDeploymentAspect

 WSDeploymentAspectManagerPostJSE
  |
  +--- AS
  |     |- WSEndpointLifecycleDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointLifecycleDeploymentAspect
  |     +- WSRuntimeLoaderDeploymentAspect = org.jboss.wsf.container.jboss50.deployment.RuntimeLoaderDeploymentAspect
  |
  +--- Native
        |- WSNativeEndpointHandlerDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointHandlerDeploymentAspect
        |- WSNativeEndpointRecordProcessorDeploymentAspect = org.jboss.wsf.framework.deployment.EndpointRecordProcessorDeploymentAspect
        |- WSNativeEventingDeploymentAspect = org.jboss.wsf.stack.jbws.EventingDeploymentAspect
        |- WSNativePublishContractDeploymentAspect = org.jboss.wsf.stack.jbws.PublishContractDeploymentAspect
        |- WSNativeServiceEndpointInvokerDeploymentAspect = org.jboss.wsf.stack.jbws.ServiceEndpointInvokerDeploymentAspect
        |- WSNativeRMDeploymentAspect = org.jboss.ws.extensions.wsrm.server.RMDeploymentAspect
        |- WSNativeUnifiedMetaDataDeploymentAspect = org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect
        |- WSNativeEagerInitializeDeploymentAspect = org.jboss.wsf.stack.jbws.EagerInitializeDeploymentAspect
        +- WSJAXBIntroDeploymentAspect = org.jboss.wsf.stack.jbws.JAXBIntroDeploymentAspect


View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4237911#4237911

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4237911



More information about the jbossws-dev mailing list