Thanks Gianny. I could add the MBE to TomcatBuilder by modifying config.xml. I have added the following gbean under "org.apache.geronimo.configs/tomcat6-deployer/2.1.3/car" to modify the reference to include a new MBE:
<gbean name="TomcatWebBuilder"> <reference name="ModuleBuilderExtensions"> <pattern> <name>PersistenceUnitBuilder</name> </pattern> <pattern> <name>JspModuleBuilderExtension</name> </pattern> <pattern> <name>MyFacesModuleBuilderExtension</name> </pattern> <pattern> <name>TuscanyModuleBuilderExtension</name> </pattern> </reference> </gbean> On Thu, Nov 13, 2008 at 4:10 PM, Gianny Damour < [EMAIL PROTECTED]> wrote: > On 13/11/2008, at 10:08 AM, David Jencks wrote: > > >> On Nov 12, 2008, at 1:07 PM, Vamsavardhana Reddy wrote: >> >> As part of deploying SCA enhanced Web Applications in Geronimo with >>> Tuscany Plugin, I am looking to add a ModuleBuilderExtension (MBE) to >>> TomcatModuleBuilder and a NamingBuilder. The purpose of the MBE is to add >>> SCA related EmbeddedRuntimeGBean to the web application config which will >>> deploy the application composite to the SCA domain. The purpose of the >>> NamingBuilder is to add SCA Domain and other objects (required for injection >>> of SCA references in servlets etc.) into the WebAppContext. I am seeing >>> that the MBE and NamingBuilder GBeans which are added as part of the Tuscany >>> Plugin can not get dynamically added to the MBEs configured in >>> tomcat6-builder config and NamingBuilders configured in j2ee-deployer >>> config. The one option I see is to update the plan.xml files in >>> tomcat6-builder and j2ee-deployer configs and rebuild the server. But this >>> won't be like the MBE and NamingBuilder is getting added as part of >>> Tuscany-plugin installation. The other option is to add (don't know if it >>> is easy to do this hack) the MBE and NamingBuilder to the corresponding >>> collections in TomcatModuleBuilder and NamingBuilder GBeans. I appreciate >>> any suggestions/comments or inputs on any alternate approach that I am not >>> seeing. >>> >> >> Yup, this is a problem. So far we've sidestepped it by just adding all >> the known desired MBE's to the appropriate *-deployer plan, and as you have >> found this is non-extensible. >> > > I do not understand why overriding the relevant TomcatModuleBuilder GBean > pattern in config.xml does not work. This is better than having to redeploy > the tomcat6-builder plugin. > > If the problem is to provide a way to update the tomcat6-builder plugin > when the Tuscany Plugin is installed, then an approach is to package within > the Tuscany plugin a script to update the reference patterns of the GBean > TomcatWebBuilder. For instance, by dropping a file named > > GBeansTuscanyEnhancer.groovy > > in the folder > > > repository/org/apache/geronimo/configs/tomcat6-deployer/2.*/tomcat6-deployer-2.*.car/ > > which kind of looks like (indicative...) > > import org.apache.geronimo.gbean.AbstractNameQuery > > def tomcatWebBuilderGBean = gbeanDatas.find { it.gbeanInfo.className == > 'org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder' } > def moduleBuilderExtensionsPatterns = > tomcatWebBuilderGBean.getReferencePatterns('ModuleBuilderExtensions') > Set newPatterns = [] > newPatterns.addAll(moduleBuilderExtensionsPatterns.patterns) > newPatterns.add(new AbstractNameQuery(new > URI(PUT_YOUR_TUSCANY_MBE_PATTERN_NAME_HERE))) > tomcatWebBuilderGBean.setReferencePatterns(newPatterns) > > > You should be done. > > Thanks, > Gianny > > > >> One possiblitly would be to define marker interfaces such as WebMBE, >> EjbMBE, etc that the appropriate MBE's could implement and use the interface >> in the references pattern. >> >> Anyone have a better idea? >> >> thanks >> david jencks >> >> >>> >>> Thanks, >>> Vamsi >>> >> >> > -- Vamsi