geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gurkan Erdogdu <cgurkanerdo...@gmail.com>
Subject Re: Webapp Annotation processing for 299
Date Sat, 22 Aug 2009 15:25:54 GMT
Great help David!

Thanks a lot. I will try to fill the blanks.

--Gurkan

2009/8/22 David Blevins <david.blevins@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 <rickmcg@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 <rickmcg@gmail.com <mailto:rickmcg@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.blevins@visi.com
>>       <mailto:david.blevins@visi.com> <mailto:david.blevins@visi.com
>>
>>       <mailto:david.blevins@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

Mime
View raw message