Tim,

A couple of questions on the design/implementation:

1) Since the module builders will get an updated deployment
descriptors, in general, the annotation processors in Tomcat, Jetty,
Web services, EJB, etc. will just need to lookup the resources in
JNDI, right?

2) One thing I'm unclear of is how we are going to deal with the
geronimo-*.xml deployment descriptors? For example, if a service wants
to access the system data source it needs to provide the following
information (in geronimo-web.xml file):

<web-app>
   ....
      <dependencies>
           <dependency>
               <groupId>org.apache.geronimo.configs</groupId>
               <artifactId>system-database</artifactId>
           </dependency>
       </dependencies>
  ....
   <resource-ref>
       <ref-name>jdbc/MyDataSource</ref-name>
       <resource-link>SystemDatasource</resource-link>
   </resource-ref>
</web-app>

I think the annotation.mappedName can be used for the resource-ref
info but what about the dependency? Will user still need to provide
that or Geronimo will attempt to figure it out somehow?

Thanks,
Jarek

On 1/17/07, Tim McConnell <[EMAIL PROTECTED]> wrote:
Hi, I still think there needs to be a general consensus for the handling of 
annotations in Geronimo.
So, to better explain this design proposal I've
created a few simple UML diagrams that demonstrates how it might work with one 
of the Geronimo
builders--i.e. Tomcat.

Here's the link to the URL diagrams: 
http://cwiki.apache.org/GMOxDEV/jsr-88-12.html

-- The first is just a diagram of the pertinent high-level use cases for JSR-88 
1.2

-- The second is an interaction diagram of deployment at a very high-level as 
it currently works for
Tomcat

-- The third is the proposed interaction diagram of how deployment will 
generally flow with
annotations. Namely:
         -- Geronimo will find/discover all the annotations in the artifact 
being deployed prior to
the createModule invocation on the TomcatBuilder
         -- Geronimo will then update the deployment descriptor tags in the XML 
accordingly and then
set the Metadata-Complete tag
         -- Finally, during installation of module, Geronimo will invoke 
Tomcat's
AnnotationProcessor implementation and pass it the array of annotations that 
have been discovered,
and Tomcat's AnnotationProcessor will handle handle those runtime-type 
annotations (e.g.,
PreDestory, PostConstruct, etc...) without corresponding deployment descriptor 
tags. Note also that
Tomcat's AnnotationProcessor handles the resource injection as well.

-- The fourth is just a class diagram (not yet complete) that shows the new 
Geronimo annotation classes


Questions:
-- Is this a pattern that can be consistently used for other builders as well 
like Jetty, Axis,
OpenEJB, Web Services, etc ??
-- Is it reasonable to assume that these other components will have their own 
AnnotationProcessor
implementation (like Tomcat) that can be invoked by Geronimo during deployment 
??

--
Thanks,
Tim McConnell

Reply via email to