geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <>
Subject Re: Kernel Limitations
Date Mon, 05 Sep 2005 17:31:38 GMT

On Sep 4, 2005, at 7:10 PM, Dain Sundstrom wrote:

> On Sep 4, 2005, at 6:52 PM, Aaron Mulder wrote:
>> On Sun, 4 Sep 2005, Dain Sundstrom wrote:
>>>>     But what if there are two containers named MyJettyContainer, one
>>>> in Configuration JettyAdminStuff and one in Configuration
>>>> JettyUserStuff?
>>> The J2EEModule property above is the configuration name, so you would
>>> have two unique names one containing the property
>>> J2EEModule=JettyAdminStuff and one containing the property
>>> J2EEModule=JettyUserStuff.
>>     This only works if the container and connector are in the same
>> Configuration, right?  Because you don't have a separate
>> "WebContainerJ2EEModule=Foo".  I guess I'm fine if we establish that  
>> as a
>> convention (and it's how the console currently behaves), but I don't  
>> know
>> how we'd enforce if it people start writing their own plans.
> That is an excellent point.  The JSR77 model is based on containment,  
> so in this case the web container would "contain" (own) the connector.  
>  Using the JSR77 rules, if the web container name was:
> geronimo.server: 
> j2eeType=WebContainer,name=MyJettyContainer,J2EEModule=org/apache/ 
> geronimo/Server,J2EEApplication=null,J2EEServer=geronimo
> The web connector would be:
> geronimo.server: 
> j2eeType=WebConnector,name=MyConnector,WebContainer=MyJettyContainer,J2 
> EEModule=org/apache/geronimo/ 
> Server,J2EEApplication=null,J2EEServer=geronimo
> This is regardless of which configuration the connector was declared  
> the name must be as declared above to achieve containment.  The name  
> building rules are specified in JSR77.3.1.1 Attribute Detail.  I don't  
> think this is how we are currently building object names.  If we  
> wanted to fully use the JSR77 rules for GBeans, I think we need to add  
> a parent="parentName" attribute to the gbean element in our  
> configuration xml documents.  I'm thinking of something like this:
> <gbean name="JettyContainer"  
> class="org.apache.geronimo.jetty.JettyContainerImpl"/>
> <gbean name="JettyWebConnector" parent="JettyContainer"  
> class="org.apache.geronimo.jetty.connector.HTTPConnector"/>

I think this might work, but it is a pretty big change to our naming  

To my mind there are 2 concepts of containment that happen to be the  
same for most j2ee components, but not for gbeans:

1. which deployment unit (app, module) describes the component
2. which functional component "owns" the component.

For say a servlet, all the servlets in a j2ee web app have to be  
deployed in that web app, so the containment relationships between the  
web module (which we are modeling with the WebAppContext gbean) and  
servlets are the same in both these senses.

There are several places the current system breaks down to some extent,  

"link" components such as web filter mappings and web service "links"  
which have 2 equal parents
useless components required by jsr-77 such as application gbeans and  
resource module gbeans.
admin object gbeans that are not really tied to any particular resource  
adapter instance but only to the classes they use.

Anyway, right now we construct non-j2ee gbean names based on the  
configuration they are defined in.  This has no necessary connection to  
the "containment hierarchy" for things like web container/web  
connector.  We have 3 choices:

1. keep current system, only track configuration name in the gbean name
2. track both configuration name and functional hierarchy in gbean name
3. track only functional hierarchy in gbean name, dropping the  
configuration information.

I think I'd prefer (2) but I'd really like to see a fairly extensive  
set of examples worked out before deciding.  I don't expect to have  
time to do this for several days.

david jencks

> -dain

View raw message