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 Sun, 23 Aug 2009 12:32:00 GMT
Hi David;

I have deployed plugins(2 car ) into the server. Server calls
OpenWebBeansModuleBuilderExtension while it starts. But it never calls
"createModule, addGBeans" methods. Do I have to configure something for
this?

Thanks;

--Gurkan

2009/8/22 Gurkan Erdogdu <cgurkanerdogdu@gmail.com>

> 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
>



-- 
Gurkan Erdogdu
http://gurkanerdogdu.blogspot.com

Mime
View raw message