Great help David! Thanks a lot. I will try to fill the blanks.
--Gurkan 2009/8/22 David Blevins <david.blev...@visi.com> > Great summary, thanks! > > So as I mentioned on the OpenEJB list and the reason I kicked the thread > over here is that the ServletContextListener approach to scanning doesn't > work as none of those things exist at deploy time. > > To try and move things forward I've created a basic plugin for OpenWebBeans > that can serve as a starting point for the integration. This will help get > us out of the abstract and right down to the nuts and bolts. > > DEPLOYMENT > > Long story short, the code that scans the managed bean classes for > @Resource etc. goes here: > > > http://svn.apache.org/repos/asf/geronimo/server/trunk/plugins/openwebbeans/geronimo-openwebbeans-builder/src/main/java/org/apache/geronimo/openwebbeans/deployment/OpenWebBeansModuleBuilderExtension.java > > The code to do the @Resource scanning is actually in there already, it's > the line like this: > namingBuilders.buildNaming(webApp, jettyWebApp, webModule, > buildingContext); > What needs to happen in this class is we need to get a complete list of the > managed bean classes so they can be scanned by the Geronimo naming builder. > This class is an extension to the Geronimo deployment system, so no webapp > objects exist yet. I know that the OpenWebBeans code doesn't currently work > like this and relies on ServetContext and other things. We will have to > find a way to get that to work without the use of any servet APIs. > > A bonus is that you can install any servlets or filters or listeners you > like into the webapp so when it boots, anything you'd like to add will be > there without the user having to add it. A pretty cool advantage to being > part of the deployment system. I've got some code in there that adds a > ServletContextListener -- I left the classname of the listener blank, you > just need to fill it in. > > For a great example of what the JSF deployer extension looks like, see this > class: > > > https://svn.apache.org/repos/asf/geronimo/server/trunk/plugins/myfaces/geronimo-myfaces-builder/src/main/java/org/apache/geronimo/myfaces/deployment/MyFacesModuleBuilderExtension.java > > > RUNTIME > > Here's where you can add any startup and shutdown code you'd like: > > > http://svn.apache.org/repos/asf/geronimo/server/trunk/plugins/openwebbeans/geronimo-openwebbeans/src/main/java/org/apache/geronimo/openwebbeans/OpenWebBeansGBean.java > > This will be guaranteed to run just before the webapp starts up and stop > just after the webapp stops. Great place for initialization code and taking > care of getting any hooks into Geronimo that you might need/want for while > the webapp is running. > > This doesn't tackle everything on the TODO list but is a step in the right > direction. > > -David > > > On Aug 20, 2009, at 8:01 AM, Gurkan Erdogdu wrote: > > I want to give brief introduction about current implementation in the view >> of integration points >> >> Brief Summary About Current Situation >> --------------------------------------------------------- >> Currently we bootstrap OpenWebBeans via ServletContextListener. It >> supports following containers >> >> - Java Web Containers like Jetty, Tomcat etc. >> - Tomcat Embeddable OpenEJB Container >> >> If developer wants to use OWB functionality in his application, it has to >> configure its "web.xml" to include some OWB specific classes. For EJB >> functionality, we use embeddable Tomcat OpenEJB container. To use EJB >> functionality, developer must annotate their EJB classes with OWB specific >> "Interceptor" class. >> >> How OWB Boots Currently(From integration point of view) >> ------------------------------------------------------- >> 1* Web Container calls OWB specific context listener's "application >> started" method >> 2* OWB container scans related classes from the artifacts (if >> META-INF/beans.xml, or WEB-INF/beans.xml exists. beans.xml is a marker for >> deployment) >> 3* If developer configures OWB to use EJB functionality, for each scanned >> class, it asks OpenEJB to learn whether it is an EJB class or not (Using EJB >> Plugin that is written accroding to the OpenEJB) >> 4* If it is an EJB class, it creates EJB bean and register it with the OWB >> container otherwise if it is a Java EE defined Managed Bean Class, it >> creates a "Managed Bean" and register it with the OWB container. >> >> Developer Responsibility to Use OWB >> -------------------------------------------------------- >> 1* Add servlet context listener to his web module's "web.xml" >> 2* Annotate EJB classes with OWB interceptor >> 3* Configure OWB container to use EJB functionality >> 4* Configure some OWB specific parameters (For example : if use JMS >> injections, specify ConnectionFactory JNDI name) >> >> Current Problems >> ----------------------------------------------------- >> 1* Currently we just support "WAR" module with embeddable EJB. >> 2* Developer requires to update WAR/EJB module metadata files to use OWB. >> 3* Standalone EJB JAR,RAR, EAR not supported >> 4* Injections into "Managed Beans" class not well supported. (For example >> : @Resource, @WebServiceRef, @EJB, @PersistenceUnit,@PersistenceContext.) >> >> How Could We Integrate with Geronimo >> --------------------------------------------------------- >> 1* Geronimo looks for deployment. If it contains "beans.xml", it >> automatically registers OWB servlet context listener with WAR's web.xml at >> deployment time >> 2* Automatically registers OWB EJB interceptor with EJBs at deployment >> time (If module is EJB module or EAR module containing EJB modules) >> 3* Support EJB JAR, EAR, RAR modules >> 4* Write EJB Plugin for Geronimo >> 5* Supports injections for Managed Beans >> >> I hope this helps a bit more >> >> Thanks; >> >> --Gurkan >> >> 2009/8/20 Rick McGuire <rick...@gmail.com> >> Gurkan Erdogdu wrote: >> >>>We'd be interested in any details about what integration work might be >> needed to add this to Geronimo. >> It is a really fascinating thing that you support us to finish >> implementation and pass TCK :) We really need a help. >> I think there is a great willingness to help you with this, but I was >> looking form something more specific, such as the actual areas/functions >> where integration assistance is needed. >> Rick >> >> >> Thanks; >> >> --Gurkan >> >> 2009/8/20 Rick McGuire <rick...@gmail.com <mailto:rick...@gmail.com>> >> >> >> Gurkan Erdogdu wrote: >> >> Hi; >> >> Thanks for kicking discussion David. >> >> As you may already know Java EE 6 will be planned to release >> on November. Do you have any plan or roadmap to integrate >> JSR-299 with Geronimo? >> >> We have a tentative roadmap for implementing the Web Profile at: >> >> >> http://cwiki.apache.org/confluence/display/GMOxDEV/Road+map+for+JEE6+Web+Profile >> >> For the JEE6 plans, the web profile did not include JSR 299, which >> I guess has changed recently. We'd be interested in any details >> about what integration work might be needed to add this to Geronimo. >> Rick >> >> >> We are working hard to implement full specification but it has >> some parts that requires to integrate with Java EE server tightly. >> >> Thanks; >> >> --Gurkan >> >> 2009/8/20 David Blevins <david.blev...@visi.com >> <mailto:david.blev...@visi.com> <mailto:david.blev...@visi.com >> >> <mailto:david.blev...@visi.com>>> >> >> >> I've been talking with Gurkan of OpenWebBeans over on the >> OpenEJB >> list and it seemed like a good idea to kick the thread over >> here >> as well. >> >> The long and short of it is that we'll need to scan 299 managed >> beans at deploy time exactly as we do for JSF. >> >> Wanted to point him at the JSF scanning code, but can't >> remember >> the details. Anyone remember? An svn link is fine. >> >> >> -David >> >> >> >> >> >> >> -- Gurkan Erdogdu >> http://gurkanerdogdu.blogspot.com >> >> >> >> >> >> -- >> Gurkan Erdogdu >> http://gurkanerdogdu.blogspot.com >> >> >> >> >> -- >> Gurkan Erdogdu >> http://gurkanerdogdu.blogspot.com >> > > -- Gurkan Erdogdu http://gurkanerdogdu.blogspot.com