Thanks for your comment Nicklas! I didn't look at the RI implementation side that closely, because this shouldn't become a copy & past lesson ;)
What I've learned from the link you've posted: .) it seems we are not that far off the track, since the RI also has a SPI for JNDI and resource lookup (~ our singleton finder) .) the RI also aims at non EE environments, and not even EJB lite containers but also even more lightweight (which is not mentioned in the spec btw, isn't?) .) there seems to be a gap between the RI and the spec (or I did miss the point) >From the link you've posted > public interface NamingContext > for example in an environment where JNDI isn't available and from the spec: > Alternatively, the application may obtain the Manager object from > JNDI. The container must register an instance of > Manager with name java:app/Manager in JNDI at deployment time. But any JNDI lookup will fail if we run in a non-JNDI setup as mentioned in the SPI docu (like e.g. a standalone swing client). What really confuses my now is the last sentence in the linked page: > If you are integrating the Web Beans into an environment that > supports deployment of applications, you must insert the > webbeans-ri.jar into the applications isolated classloader. It > cannot be loaded from a shared classloader. I always thought that WebBeans would be an integral part of the EE6 spec and therefore be a provided base functionality of any EE6 certified appsrv? So I did expect that the RI will handle application isolation itself, or did I misinterpret something? It's really late now, I hope I wasn't too confused already to form clear thoughts and write them down ;) txs and LieGrue, strub --- Nicklas Karlsson <[email protected]> schrieb am Mi, 4.2.2009: > Von: Nicklas Karlsson <[email protected]> > Betreff: Re: JNDI usage question > An: [email protected] > Datum: Mittwoch, 4. Februar 2009, 23:49 > _They_ are watching and don't think so: > http://docs.jboss.org/webbeans/reference/1.0.0.ALPHA2/en-US/html/ri-spi.html#d0e3649 > ;-) > > On Thu, Feb 5, 2009 at 12:12 AM, Mark Struberg > <[email protected]> wrote: > > So, after a few hous of not thinking about this > problem, here is the (possible) answer: > > > > The Spec only mentions the JNDI because _they_ need it > in _their_ scenario! > > And what is their scenario? > > The WebBeans RI is designed to be an integral part of > the JBoss J2EE Server, so the webbeans-ri.jar will reside in > the app servers jar classpath and NOT be packaged in any EAR > or WAR file. > > So the webbeans-ri classes will be loaded through the > app-servers parent classloader, which is the same for _all_ > webapps running in this server. In this scenario one has to > make sure that each webapp gets its own javax.inject.Manager > singleton, and the easiest way is to use a JNDI > java:comp/env environment (because a singleton using static > would simply not work)! > > > > But all this magic is completely futile if our > openwebbeans-impl.jar is packaged inside the EAR or WAR, > because in this case we are already in the correct > per-webapp-classloader. > > > > So we either always lookup the Manager from > java:comp/env/Manager or our ManagerObjectFactory or even > the WebBeansFinder has to be a SPI with a JNDI > implementation for running on a server level and an > implementation using statics if being packaged with the app. > > > > I can imagine that that there is standard answer to > our problem, because using JNDI for each and every Manager > access is not the fastest solution. So come on EE guys, > enlighten us :) > > > > Any thoughts on this? > > > > LieGrü, > > strub > > > > --- Mark Struberg <[email protected]> schrieb am > Mi, 4.2.2009: > > > >> Von: Mark Struberg <[email protected]> > >> Betreff: JNDI usage question > >> An: [email protected] > >> Datum: Mittwoch, 4. Februar 2009, 14:53 > >> Hi! > >> > >> > >> The JNDI context set by OpenWebBean is > >> > >> WebBeansConstants.WEB_BEANS_MANAGER_JNDI_NAME > >> > >> But although I see where is gets bound and und > bound, I > >> cannot see where it is actually being used? > >> > >> So maybe I'm blind, but what for do we > currently use > >> the JNDI context? Is this work in progress, or did > I miss > >> something? > >> > >> Just to make sure we have the same undersanding: > how should > >> @ApplicationScoped work in > >> a) a WAR in a ServletEngine like tomcat > >> b) a EAR in a J2EE Server like Geronimo > >> c) a WAR (solo, without EAR) in a J2EE Server like > Geronimo > >> > >> LieGrue, > >> strub > > > > > > > > > > > > -- > --- > Nik
