geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Boynes <>
Subject Re: GBeans: Saving Changes
Date Wed, 27 Jul 2005 02:35:30 GMT
Starting a new sub-thread...

One of the examples we use all the time when talking about bundles is 
that of a web connector. However, this is bad example to take because it 
is too simple to highlight some of the issues.

* it only contains one GBean
* that bean has a couple of fairly simple properties
* nothing references that GBean so it has little impact on other bundles

I think the last issue there is systemic to this kind of component: it 
is an edge component that takes something from the outside world (i.e. 
an inbound socket connection) and hands it off to other services inside 
the server. So in Jetty, the HTTPConnector references the JettyContainer 
but not the other way around. The same can be said for other edge 
connectors such as the EJB Daemon, the ORB, the JMX Connector ...

The first two issues also cloud things because they simplify the 
connector to a degenerate case. Things would be more interesting if we 
considered a HTTPS connector that split the functionality into three 
components: a socket listener, a thread pool and an SSL keystore.

Then, when the user wanted to add an HTTPS port we would need to create 
three GBeans and wire them together properly. Bear in mind that 
depending on the runtime, the user may want the thread pool and SSL 
keystore to be bundled with the connector or may want to use ones from 
other bundles.

Other things that may seem quite simple to the user may require several 
GBeans be constructed - this is what we do when we package an 
application, we create a new bundle with a bucket load of GBeans in it 
(e.g. servlet holders, ejb containers, admin objects, ...). Simplicity 
comes from not exposing all this detail to the user.


View raw message