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