Cool. Feel free to ping me in freenode if you want; dblevins in
#openejb, #geronimo and #asfinfra.
-David
On Aug 7, 2009, at 9:30 AM, Filip Hanik - Dev Lists wrote:
I'll take a look at this after I'm done with the async stuff
On 08/04/2009 03:28 PM, David Blevins wrote:
On Aug 4, 2009, at 1:22 PM, Costin Manolache wrote:
Thanks - so objectweb instead of BCEL.
I'll try it out - it's a bit different from what I had in mind, it
looks
like xbean-finder first finds all classes and
than reads the files using the class loader ( but not
Class.forName, which
is good ) and keeps track of all annotations.
I was thinking of a simple File/zip based scanning, without any
class loader
- and just select the few
annotations we need and write a web.xml fragment as it goes,
without keeping
anything in memory.
I've been thinking about adding in a sort of "filter" for the
scanning. Something that could be supplied in the constructor.
Something simple like:
public interface Filter {
boolean accept(String annotationName);
}
Then you would implement that and be guaranteed to only have
metadata for the annotations you cared about. In this case @Filter
and @Servlet. I actually already experimented with it in a little
copy of the ClassFinder, would only take like 10 minutes to
integrate the change in.
In terms of keeping things in memory, there really isn't that much
in memory, especially if you filter out the annotations you don't
care about. As far as needing a classloader, that is only there so
we can return a list of classes (or methods, or fields, etc.) when
you ask for things that have a specific annotation. Someone has to
load the class to get the annotation data so it's just in the API
for convenience.
Another thing I've been experimenting with is some additional byte
code reading optimizations. Basically if you know your annotations
are class-level annotations only, you can get a boost in scan time
by just reading the top of the class def and skipping the rest.
The technique is proven, just need to think of an elegant way to
specify that is the behavior you want.
I guess in 3.0 a deploy tool / phase is absolutely needed - we
can't have
tomcat scan all files
each time it starts up, so the user will have to do something to
re-initiate
the scanning. Like touch
web.xml, or run a re-deploy tool.
I'm curious - why objectweb and not BCEL ?
We (OpenEJB) already had a bunch of code using ASM so that's what I
went with -- I wrote it OpenEJB and moved it over into XBean later
so others could use it. I also know a couple ASM guys and find
it's good getting direct tips for best performance as well as
getting any features in we need.
-David
On Tue, Aug 4, 2009 at 12:50 PM, David Jencks <david_jen...@yahoo.com
>wrote:
We use xbean-finder for this in geronimo/openejb/etc.
http://repo2.maven.org/maven2/org/apache/xbean/xbean-finder/3.5/
https://svn.apache.org/repos/asf/geronimo/xbean/trunk/xbean-finder
We also have a servlet 3.0 spec jar I've been trying to keep up
to date
with the glassfish javadocs.
https://repository.apache.org/content/repositories/snapshots/org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0-EA-SNAPSHOT/
https://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-servlet_3.0_spec
thanks
david jencks
On Aug 4, 2009, at 11:11 AM, Costin Manolache wrote:
Hi, anyone working on the @Filter, @Servlet annotation scanner for
tomcat-trunk ?
If I'm understanding it correctly, tomcat will have to read all
files in
classes and lib and look for the
annotation - and I would guess the only reasonable option is
looking at
bytecode.
I checked BCEL - seems reasonably easy, but if anyone has
different code -
I
would rather reuse it in
tomcat-lite :-)
BTW - there is a typo in javax.servlet.ServletRegistration -
should be
Dynamic, not Dynmaic.
I can fix it next time I get some free time...
Costin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org