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 Tue, 25 Aug 2009 05:56:15 GMT
>>>Quick correction, rar modules are not eligible as far as I know.
But it is defined in the specification.

>From the specification, defined in Chapter - 12.1 Bean Deployment Archives

> In an application deployed as an ear, the container searches every bean
> deployment archive belonging to the ear. The bean deployment archive may be
> library jars, ejb jars, rars or WEB-INF/classes" directory.
>

Thanks;

--Gurkan

2009/8/25 David Blevins <david.blevins@visi.com>

> Quick correction, rar modules are not eligible as far as I know.
>
> Basically, anywhere you can use a persistence.xml you can have a beans.xml.
>
> -David
>
>
> On Aug 23, 2009, at 11:00 PM, Gurkan Erdogdu wrote:
>
>  Thanks a lot david jencks. Actually, webbeans can be included in any
>> ejb,war,ear,rar and library modules. But it is a good start with web
>> builders. Let's see how it works.
>>
>> --Gurkan
>>
>> 2009/8/23 David Jencks <david_jencks@yahoo.com>
>> Hi Gurkan,
>>
>> to get a ModuleBuilderExtension to do anything it has to be associated
>> with a ModuleBuilder for a type of ee app which will call it at the
>> appropriate points during deployment.  I'm not sure what kinds of ee modules
>> web beans can included in, but I added the OWBMBE to the jetty7 and tomcat6
>> builders in rev 806989.  If this is not quite right you should be able to
>> figure out what to do with other module builders.
>>
>> hope this is in the right direction :-)
>>
>> thanks
>> david jencks
>>
>> On Aug 23, 2009, at 5:32 AM, Gurkan Erdogdu wrote:
>>
>>  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
>>>
>>
>>
>>
>>
>> --
>> Gurkan Erdogdu
>> http://gurkanerdogdu.blogspot.com
>>
>
>


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

Mime
View raw message