[jboss-user] [JBoss Web Services Development] - CXF jms integration

Jim Ma do-not-reply at jboss.com
Thu Apr 8 23:04:38 EDT 2010


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 at 4007f4 `--org.jboss.webservices.integration.deployers.WSTypeDeployer at d6f833 `--org.jboss.webservices.integration.deployers.WSDeploymentDeployer at 103ddfd `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1279d82(org.jboss.wsf.framework.deployment.EndpointMetricsDeploymentAspect at b77801) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1fa6e43(org.jboss.webservices.integration.metadata.ContainerMetaDataDeploymentAspect at 1e7c7fb) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at fcc66a(org.jboss.wsf.framework.deployment.EndpointHandlerDeploymentAspect at 18b3f9a) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 124a94(org.jboss.wsf.framework.deployment.BackwardCompatibleContextRootDeploymentAspect at 6fcd57) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 4aba6a(org.jboss.wsf.framework.deployment.URLPatternDeploymentAspect at fb39f6) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 8d69f8(org.jboss.wsf.framework.deployment.EndpointAddressDeploymentAspect at 13bf9ce) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1f99aa6(org.jboss.wsf.framework.deployment.EndpointNameDeploymentAspect at 929ed4) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1f8a03f(org.jboss.wsf.framework.deployment.VirtualHostDeploymentAspect at 4a9acb) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at e9635a(org.jboss.wsf.framework.deployment.JAXBIntroDeploymentAspect at 12cebd2) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1744996(org.jboss.wsf.stack.cxf.deployment.aspect.DescriptorDeploymentAspect at 1e890b4) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 864ae7(org.jboss.wsf.stack.cxf.deployment.aspect.ResourceResolverDeploymentAspect at 1214a13) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 4fdf56(org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect at 79bca4) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 6e1cbf(org.jboss.wsf.framework.deployment.ContextPropertiesDeploymentAspect at 827b51) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 786a44(org.jboss.webservices.integration.tomcat.WebMetaDataCreatingDeploymentAspect at c9f31e) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1850507(org.jboss.webservices.integration.tomcat.WebMetaDataModifyingDeploymentAspect at b6cddb) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1ee86f2(org.jboss.webservices.integration.security.JACCPermissionsDeploymentAspect at 1ec0b9d) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 31613(org.jboss.webservices.integration.injection.InjectionMetaDataDeploymentAspect at 182ac61) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1d61032(org.jboss.wsf.framework.deployment.EndpointRegistryDeploymentAspect at d91c60) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1d37602(org.jboss.wsf.framework.deployment.EndpointRecordProcessorDeploymentAspect at 9f987a) `--org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer at 1a30367(org.jboss.wsf.framework.deployment.EndpointLifecycleDeploymentAspect at 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&containerType=14&container=2047]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20100408/2b244683/attachment.html 


More information about the jboss-user mailing list