geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan <>
Subject Re: Web Annotation and web fragment support in Geronimo 3.0
Date Tue, 26 Jan 2010 02:30:07 GMT
1. I saw the empty web.xml file also, I would suggest that even if we really
need that file, it should be added by DeploymentContext, not directly write
to repository.

2. Thanks for the suggest of using JAXB, I am sure that it would be easy to
parse/generate xml file. But how about generating a full jaxb classes for
Java EE deployment descriptors. I knew that we have had a XMLBeans version,
but I wish that we should replace it in the future.
Anyway, I would first try to generate the jaxb classes for
web-3.0/web-fragment/web-common and the required reference types from javaee
schema, so that it would keep the effect in the web-builder module.

2010/1/26 David Jencks <>

> On Jan 25, 2010, at 2:51 PM, Jarek Gawor wrote:
>  I agree. I think it would good for Geronimo to construct the
>> metadata-complete web.xml and pass it to Tomcat to handle the rest.
>> Btw, in TomcatModuleBuilder.addGBeans() there is a bit of code that
>> (re)writes a web.xml. Does anybody know why is that (still) needed?
>> The comment above that bit of code talks about when web.xml is missing
>> (in jaxws case) but the code seems to be writing an empty web.xml even
>> if web.xml is present and has Java EE namespace.
> The only way to be sure is to take it out and see what happens :-)
> IIRC the main purpose is to write the metada-complete web.xml out for
> tomcat to find... but I may not RC.
> thanks
> david jencks
>> Jarek
>> On Mon, Jan 25, 2010 at 1:31 PM, David Jencks <>
>> wrote:
>>> On Jan 25, 2010, at 7:20 AM, Ivan wrote:
>>>  Hi,
>>>>   Recently, I am looking at the annoation  and web fragment in Servlet
>>>> 3.0. After checking some integration codes, it seems that we have
>>>> different
>>>> strategy for Tomcat and Jetty, in Tomcat plugin, after doing some
>>>> verification and web service process work, Geronimo will pass the
>>>> web.xml
>>>> file directly to Tomcat, and then Tomcat will parse the web.xml file and
>>>> call the addChild method to register all the servlets to context. While
>>>> in
>>>> Jetty plugin, all the work is done in Servlet GBean and Jetty will not
>>>> check
>>>> the web.xml file (At least for servlet configurations).
>>>>   So in Geronimo 3.0, who will be resposible for the annotation and web
>>>> fragment scanning. For Tomcat, one way is still to let Tomcat does it,
>>>> actually I found some related codes are added in ContextConfig class.
>>>> Although I found some errors while trying it, it should be easy to
>>>> solve.
>>>> Another way is to scan by Geronimo, then create a gbean for each servlet
>>>> like Jetty, or just generate a full web.xml file.
>>>>   Personally, I wish to do it by Geronimo, so that Geronimo could have a
>>>> full control of it, which keeps the same way with Jetty. Also, I have
>>>> another idea about improving the class scanning, IIRC, many builders
>>>> require
>>>> annoation scanning or file scanning, like web-builder,
>>>> webservice-builder,
>>>> etc. I am thinking that whether we could do all the scanning work in one
>>>> round, not a new round search would be triggered by each builder. Maybe,
>>>> we
>>>> could add some methods like registerScanningHandler in the
>>>> DeploymentContext, and once the temp bundle is installed, all the
>>>> scanning
>>>> work be will done in one round.
>>>>   Any comment ? Thanks !
>>> In tomcat, I think we have to let tomcat create the servlet wrapper
>>> objects.
>>>  Several people have tried to turn them into gbeans but it conflicts with
>>> tomcat's attempt to manage the component lifecycle.  I think we could
>>> write
>>> a jaxb-based processor to replace the tomcat digester one and this might
>>> simplify our code.
>>> I would prefer that geronimo scan for annotations and construct a
>>> complete
>>> web.xml from them and then process the web.xml either through our code
>>> (like
>>> in jetty) or through the web containers code (like in tomcat).
>>> Another possibility would be to use the new servlet 3.0 apis for adding
>>> servlets etc to a web app.  We might be able to write a single processor
>>> to
>>> read through the metadata-complete web.xml and call the appropriate
>>> methods
>>> to construct the web app.  At the moment I don't recall any
>>> geronimo-specific configuration that applies to specific servlets,
>>> filters,
>>> or listeners so this code might not need to look in geronimo plans very
>>> much.
>>> I like your idea of combining the annotation scanning.
>>> thanks
>>> david jencks
>>>  Ivan


View raw message