While working on injections for jetty I ran into a problem with ejb
annotations not indicating whether they are local or remote. I
solved it with a rather brute force attack of just building an
additional ClassFinder and looking for all the ejbs. This is really
unpleasant because openejb has to do the same work all over again.
After talking with David Blevins on IRC for a bit to try to
understand the problem better I've come to the conclusion that our
current division of responsibility between the annotation stuff Tim's
been working on and the NamingBuilders is not very good. Actually
figuring out what xml is the accurate representation of an annotation
requires deep understanding of the meaning of the annotation, not
just a mechanical translation. As such it should be done by the
NamingBuilder that is part of the implementation of the system we are
referring to.
This means that the NamingBuilders need more information that just
the xml from the spec dd. They also need information about the
annotations involved and they need to be the code that modifies the
spec dd.
IIUC Tim is working on providing an interface that provides for
updating spec dds with additional refs. I think that this can be
used by NamingBuilders to add whatever xml they come up with. I
expect a lot of the code in EjbAnnotationHelper and
ResourceAnnotationHelper is going to need to move to NamingBuilders.
So, I've concluded that the information in the annotations need to be
supplied to the NamingBuilders in some form, but I don't have a clear
idea yet about exactly what form. I think that something like a map
from annotation to Member might be adequate. It might be better so
extract the info into something more like the xml info, or it might
be better to pass in the classes with annotations, or something else.
I expect to be thinking about this over the next day or two and
comments and ideas are more than welcome.
thanks
david jencks
- Division of responsibilities for annotations to xml and jndi... David Jencks
-