[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: KernelRegistryPlugins and dependencies

bill.burke@jboss.com do-not-reply at jboss.com
Thu Sep 6 19:29:59 EDT 2007


There are 3 approaches to this I believe

1. Don't have a JNDI dependency, use real dependencies that can be figured out at the DESCRIBE phase.

Advantages:  A pure solution.

Disadvantages: 
a) Every component will need to change to add supplies
b) Doesn't work with non-JBoss components.  Components we don't control.  user will have to explicitly say, HEY don't have a dependency for this thing!  
c) Doesn't work with remote JNDI bindings
d) This is an all-or-nothing improvement

2. If a component has a JNDI dependency, register a depends with the Kernel of that JNDI name.  Add a JNDIRegistryPlugin to the kernel.  Extend JBoss JNDI so that listener objects could register for event callbacks.  A Bind/unbind listener could install/remove JNDI beans that resolve the dependency

Advantages:
a) Minimal impact to other components (like JCA, etc...)

Disadvantages: 
a) Doesn't work with remote JNDI bindings


3. If a component has a JNDI dependency, register a depends with the Kernel of that JNDI name.  create a background thread that pings JNDI for unresolved JNDI names.  When it pops up install a JNDI bean, when it disappears uninstall it.

Advantages:
a) Works with any JNDI dependency
b) minimal changes

Disadvantages:
a) Every EJB3 SFSB lookup creates a session :).  We're covered locally because dependency layer should create a real hard dependency for @EJB.  But remote?
b) requires a background thread that could slow deployment.

I like #2 the best combined with #3.  #3 would be there to soley handle remote JNDI dependencies.  The reason I want #2 is that it doesn't require changes to everything.  #1 is really bad as the user may encounter an error and will not know about the extra metadata they need to provide.  #2 may also be useful for other things beyond kernel dependencies.

Thoughts?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4081904#4081904

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4081904



More information about the jboss-dev-forums mailing list