geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vamsavardhana Reddy" <c1vams...@gmail.com>
Subject Re: Dynamically adding ModuleBuilderExtensions and NamingBuilders
Date Thu, 13 Nov 2008 17:58:18 GMT
I agree that we need a general solution to dynamically add MBEs. The trick
that Gianny showed does got me going with the Tuscany plugin work that I am
doing.

On Thu, Nov 13, 2008 at 11:21 PM, David Jencks <david_jencks@yahoo.com>wrote:

> These solutions certainly work but don't address the fundamental problem of
> adding MBE's dynamically to some builders and not others.  For instance we
> can just modify the tomcat6-deployer plan right now to include the tuscany
> MBE and guess that eventually we'll have a jetspeed MBE and try to think of
> some more.  But when someone comes up with a new one we didn't imagine --
> jspwiki MBE or something -- they'll have to update the list again.  I would
> like to solve the problem once and for all so that no specific configuration
> for particular MBE's is needed.
> Making the reference go the other way -- giving the MBE a reference to the
> web deployer -- won't work well for the same reason, we don't know how many
> web deployers there will be next week, even if we only have two this week.
>
> thanks
> david jencks
>
> On Nov 13, 2008, at 3:21 AM, Vamsavardhana Reddy wrote:
>
> 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 <
> gianny.damour@optusnet.com.au> 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
>
>
>


-- 
Vamsi

Mime
View raw message