Hi Sven! Yea, I'm aiming for something like that. The major benefit would be that we do not trash our ClassLoader with all the reflection stuff only needed for the initial class scanning. This is currently eating up lots of PermGenSpace.
Btw, the reflections project is based on the original scannotation code from Bill Burke, so we aint that far away ;) We are also looking for probably moving it over to xbean-finder which David wrote for OpenEJB and is now also being used in geronimo and a few other apache projects. But we'll do that after 1.1.0 ;) txs and LieGrue, strub --- On Mon, 3/21/11, Sven Linstaedt <[email protected]> wrote: > From: Sven Linstaedt <[email protected]> > Subject: Re: Classpath Scanner proposal > To: [email protected] > Date: Monday, March 21, 2011, 5:35 PM > Another interesting use case would > look like using some kind of > pre-generated scanning information created during > build-time. > > Artifacts are in general considered final after creation, > so scans done at > runtime will return the same result. This result could be > generated during > build-time and inlined into the artifact in a serialized > form, which in turn > in used during runtime to further speed up scan jobs. [1] > is doing something > similar by providing a maven plugin. > > br, Sven > > > [1] http://code.google.com/p/reflections/ > > > 2011/2/27 Mark Struberg <[email protected]> > > > I think it should be enough if the classscanner > implementation itself > > shades any such 3rd party jar into a inner > dependency. > > My main focus currently is to design the API flexible > enough to allow all > > necessary use cases to work. > > > > LieGrue, > > strub > > > > --- On Sun, 2/27/11, Jan-Kees van Andel <[email protected]> > wrote: > > > > > From: Jan-Kees van Andel <[email protected]> > > > Subject: Re: Classpath Scanner proposal > > > To: [email protected], > [email protected] > > > Date: Sunday, February 27, 2011, 1:35 PM > > > +1, although I think Jar hell is a > > > real issue. Think about libraries like > > > cglib, asm or commons-*** and the pain they > sometimes > > > cause. > > > > > > But we can easily work around it, for example by > packaging > > > all > > > using-frameworks as uber-jars and renaming > > > the "org.apache.commons.classscan" packages to > something > > > like > "org.apache.myfaces.org.apache.commons.classscan" > > > and > "org.apache.webbeans.org.apache.commons.classscan". > > > This way we prevent > > > any future versioning issues that libraries like > cglib and > > > asm currently > > > have. > > > > > > Regards, > > > Jan-Kees > > > > > > > > > 2011/2/27 Mark Struberg <[email protected]> > > > > > > > Hi Jan-Kees! > > > > > > > > Txs for this info! > > > > > > > > Of course, I think the downside of getting > another > > > dependency to myfaces > > > > would highly be outvalued by the benefit > we'd gain > > > from it :) > > > > > > > > LieGrue, > > > > strub > > > > > > > > --- On Sun, 2/27/11, Jan-Kees van Andel > <[email protected]> > > > wrote: > > > > > > > > > From: Jan-Kees van Andel <[email protected]> > > > > > Subject: Re: Classpath Scanner > proposal > > > > > To: [email protected], > > > [email protected], > > > "Mark > > > > Struberg" <[email protected]> > > > > > Date: Sunday, February 27, 2011, 12:58 > PM > > > > > Hey Mark, > > > > > > > > > > About the JSR proposal. I've actually > been > > > talking to some > > > > > Oracle folks > > > > > about this idea some (like 3?) years > ago. They > > > didn't > > > > > really like it, since > > > > > the classpath is only a VM > implementation > > > detail. > > > > > I proposed it, because back then there > were > > > already rumours > > > > > about module > > > > > systems and writing a mechanism that > relies on > > > the > > > > > classpath seemed like a > > > > > bad idea at that time. A JSR (like 277 > back then) > > > could > > > > > keep annotation > > > > > scanning in mind while writing the > spec. > > > > > I pinged them again (I think it was > last year) > > > and they > > > > > responded that they > > > > > would think about adding an annotation > scanner to > > > Jigsaw, > > > > > but a JSR was out > > > > > of the question. > > > > > > > > > > I think mentioning their names here is > > > inappropriate, but > > > > > they're influential people in the > Java/JCP > > > world... > > > > > > > > > > This is not a reason to not write a > framework or > > > to not > > > > > submit a JSR, but I > > > > > thought I'd mention it... > > > > > > > > > > Ps. Maybe it's a good idea to "promote" > XBean > > > Finder and > > > > > use it in > > > > > MyFaces/OWB/etc...? > > > > > Ps2. IIRC, we implemented our own > scanner for > > > MyFaces, for > > > > > the simple reason > > > > > that it removes an additional > dependency. But, > > > OTOH, using > > > > > XBean Finder with > > > > > the Maven Shade Plugin would also > work... > > > > > > > > > > Regards, > > > > > Jan-Kees > > > > > > > > > > > > > > > 2011/2/27 Mark Struberg <[email protected]> > > > > > > > > > > > Hi Ivan! > > > > > > > > > > > > Yes, I already prepared for the > addition of > > > a > > > > > xbean-finder based > > > > > > ClassScanner implementation. But > since I > > > didn't reach > > > > > David yesterday and I > > > > > > personally don't know xbean-finder > well > > > enough, I just > > > > > started hacking on a > > > > > > scannotation based one (similar to > the one > > > we use in > > > > > OpenWebBeans). > > > > > > > > > > > > > > > > > > LieGrue, > > > > > > strub > > > > > > > > > > > > --- On Sun, 2/27/11, Ivan <[email protected]> > > > > > wrote: > > > > > > > > > > > > > From: Ivan <[email protected]> > > > > > > > Subject: Re: Classpath > Scanner > > > proposal > > > > > > > To: [email protected], > > > > > [email protected] > > > > > > > Date: Sunday, February 27, > 2011, 12:01 > > > PM > > > > > > > Totally agree the idea, in > Geronimo, > > > > > > > it is definitely an issue, as > many > > > > > > > components need to scan the > target > > > application, > > > > > and we are > > > > > > > trying to improve > > > > > > > this, e,g. In the > xbean-finder, we use > > > some > > > > > filter to limit > > > > > > > the scanning > > > > > > > scope. Also, we hope to have > a > > > sharable > > > > > annotation scanning > > > > > > > tool, and open a > > > > > > > JIRA to track this. > > > > > > > > > > > > > > [1] https://issues.apache.org/jira/browse/GERONIMO-5644 > > > > > > > [2] > > > > > > > > > > > > > > > > > > > https://svn.apache.org/repos/asf/geronimo/xbean/trunk/xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/ResourceDiscoveryFilter.java > > > > > > > > > > > > > > 2011/2/27 Mark Struberg > <[email protected]> > > > > > > > > > > > > > > > hi folks! > > > > > > > > > > > > > > > > Since I'm tired of > waiting for my > > > EE stack > > > > > to startup > > > > > > > because each and > > > > > > > > every library implements > it's own > > > classpath > > > > > scanner > > > > > > > over and over again, I > > > > > > > > thought about > introducing a > > > proposal for a > > > > > framework > > > > > > > which allows to first > > > > > > > > register 'ScanJobs' and > then just > > > does all > > > > > the > > > > > > > necessary classpath scanning > > > > > > > > only once. > > > > > > > > > > > > > > > > If it turns out to work > well, then > > > I even > > > > > consider > > > > > > > this to get submitted as > > > > > > > > JSR... > > > > > > > > > > > > > > > > But before this point > gets > > > reached, a lot of > > > > > work is > > > > > > > still waiting. > > > > > > > > > > > > > > > > I hope a few people are > interested > > > in this > > > > > work and > > > > > > > help me > > > > > > > > specifying/testing the > needs! > > > > > > > > > > > > > > > > The api and a bit of > docs can be > > > found at my > > > > > github > > > > > > > repo [1][2]. > > > > > > > > > > > > > > > > I'm currently working > on > > > 'scannizing' > > > > > OpenWebBeans > > > > > > > (and later MyFaces) as a > > > > > > > > real world example. > > > > > > > > > > > > > > > > LieGrue, > > > > > > > > strub > > > > > > > > > > > > > > > > [1] https://github.com/struberg/Apache-commons-classscanner/ > > > > > > > > [2] > > > > > > > > > > > > > > > > > > > > https://github.com/struberg/Apache-commons-classscanner/wiki/Apache-Commons-ClassScan-proposal > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > Ivan > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
