Jim Ma [
http://community.jboss.org/people/jim.ma] created the discussion
"CXF jms integration"
To view the discussion, visit:
http://community.jboss.org/message/536441#536441
--------------------------------------------------------------
After looked at Alessio's work about cxf descriptor deployment and lazy bus load
removal , I'd like to discuss with you about my thoughts about jms integration. Here
is what in my mind so far .As we talked before , we need to introduce other deployer or
deployerAspect to make cxf stack directly deploy/load jbossws-cxf.xml. IMO, the easy
approach to implement this is adding several real stage deployers to the current deployer
chain to take care of the jms deployment without web.xml:
`--org.jboss.webservices.integration.deployers.WSEJBAdapterDeployer@4007f4
`--org.jboss.webservices.integration.deployers.WSTypeDeployer@d6f833
`--org.jboss.webservices.integration.deployers.WSDeploymentDeployer@103ddfd
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1279d82(org.jboss.wsf.framework.deployment.EndpointMetricsDeploymentAspect(a)b77801)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1fa6e43(org.jboss.webservices.integration.metadata.ContainerMetaDataDeploymentAspect(a)1e7c7fb)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@fcc66a(org.jboss.wsf.framework.deployment.EndpointHandlerDeploymentAspect(a)18b3f9a)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@124a94(org.jboss.wsf.framework.deployment.BackwardCompatibleContextRootDeploymentAspect(a)6fcd57)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@4aba6a(org.jboss.wsf.framework.deployment.URLPatternDeploymentAspect(a)fb39f6)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@8d69f8(org.jboss.wsf.framework.deployment.EndpointAddressDeploymentAspect(a)13bf9ce)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1f99aa6(org.jboss.wsf.framework.deployment.EndpointNameDeploymentAspect(a)929ed4)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1f8a03f(org.jboss.wsf.framework.deployment.VirtualHostDeploymentAspect(a)4a9acb)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@e9635a(org.jboss.wsf.framework.deployment.JAXBIntroDeploymentAspect(a)12cebd2)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1744996(org.jboss.wsf.stack.cxf.deployment.aspect.DescriptorDeploymentAspect(a)1e890b4)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@864ae7(org.jboss.wsf.stack.cxf.deployment.aspect.ResourceResolverDeploymentAspect(a)1214a13)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@4fdf56(org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect(a)79bca4)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@6e1cbf(org.jboss.wsf.framework.deployment.ContextPropertiesDeploymentAspect(a)827b51)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@786a44(org.jboss.webservices.integration.tomcat.WebMetaDataCreatingDeploymentAspect(a)c9f31e)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1850507(org.jboss.webservices.integration.tomcat.WebMetaDataModifyingDeploymentAspect(a)b6cddb)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1ee86f2(org.jboss.webservices.integration.security.JACCPermissionsDeploymentAspect(a)1ec0b9d)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@31613(org.jboss.webservices.integration.injection.InjectionMetaDataDeploymentAspect(a)182ac61)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1d61032(org.jboss.wsf.framework.deployment.EndpointRegistryDeploymentAspect(a)d91c60)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1d37602(org.jboss.wsf.framework.deployment.EndpointRecordProcessorDeploymentAspect(a)9f987a)
`--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer@1a30367(org.jboss.wsf.framework.deployment.EndpointLifecycleDeploymentAspect(a)1bb1dd2)
+ org.jboss.wsf.stack.cxf.deployment.JBossWSCXFMetaDataDeployer(to parse the
jbossws-cxf.xml and create JBossWSCXFMetaData) +
org.jboss.wsf.stack.cxf.deployment.JBossWSCXFJAXBIntroDeploymentDeployer(to do the jaxb
databinding customization) +
org.jboss.wsf.stack.cxf.deployment.JBossWSCXFDeploymentBuilderDeployer(to create
deployment, service and endpoint etc) +
org.jboss.wsf.stack.cxf.deployment.JBossWSCXFDeploymentDeployer(to let the cxf bus load
the jbossws-cxf.xml) +
org.jboss.wsf.stack.cxf.deployment.JBossWSCXFEndpointRegistryDeployer(to register the
endpoint) I marked the new add deployer with "+" prefix and these new add
deployers will be put the end of the DeploymentAspect deplyers. As you can see ,there
will be some duplicate work/code in the these deployers with above DeploymentAspects. But
it makes the deployer structure more clear and these new added deployers are dedicated to
handle the jms deployment and other stack specific deployment without web.xml. The
another option is we handle it both in integration layer and cxf stack : 1. Create a
unified MetaData/holder to reprsent or place the stack specific deployment
:jbossws-cxf.xml. 2. Modify the WSDeploymentDeployer to handle the deployment without
JBossWebMetaData 3. Add the code in the current DepoymentAspects ,for example
EndpointHandlerDeploymentAspect, DescriptorDeploymentAspect and BusDeploymentAspectin to
process the stack specific deployment (without web.xml). We can put the code to process
the cxf jms deployment in each DeploymentAspect, so this approach will reuse the function
in each deployment aspect.This will change a lot in current integration layer and
deployers framework and it's a little bit complex. After the comparison, I prefer
to the first approach. Because at the moment, only cxf has this requirement to deploy
stack specific deployment. And it is also simple :only adding some new additional
deployers for cxf stack can make it work . It will not impact the other components :
integration layer , spi and framework codebase. You thoughts ?
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/536441#536441]
Start a new discussion in JBoss Web Services Development at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]