Neat idea.

I would include the configuration information in the scan.xml so that tooling 
would know the criteria used in the scan and decide whether or not to scan for 
other annotations or inplementations.

I would also put the scan.xml file in some package specific place like 
META-INF/org/apache/xbean/scan.xml.


Regards,
Alan

 
On Feb 20, 2012, at 2:40 PM, David Blevins wrote:

> We've chatted occasionally on creating a scanning.xml file where people could 
> setup includes and excludes and, overall, optimize classpath scanning.
> 
> Romain is already busy hacking of course :)  Here's the idea for a plugin to 
> effectively do the most expensive part of scanning in advance:
> 
>    <plugin>
>      <groupId>org.apache.xbean</groupId>
>      <artifactId>maven-xbean-finder-plugin</artifactId>
>      <configuration>
>        <annotations>
>          <annotation>javax.ejb.Stateless</annotation>
>          <annotation>javax.ejb.Stateful</annotation>
>          <annotation>javax.ejb.Singleton</annotation>
>          <annotation>javax.annotation.ManagedBean</annotation>
>        </annotations>
>        <subclasses>
>          <subclass>javax.ws.rs.core.Application</subclass>
>        </subclasses>
>        <implementations>
>          
> <implementation>org.apache.openejb.server.ServerService</implementation>
>        </implementations>
>      </configuration>
>    </plugin>
> 
> With a configuration like the above, the plugin would scan the jar for 
> subclasses of javax.ws.rs.core.Application, classes annotated with 
> @Stateless, @Singleton, @Stateful and classes that implement ServiceService.
> 
> The result would be a META-INF/scan.xml class that looks like so:
> 
>    <scan>
>      <classes>
>        <class>org.superbiz.Foo</class>
>        <class>org.superbiz.Bar</class>
>        <class>org.superbiz.Baz</class>
>      </classes>
>    </scan>
> 
> And on the TODO list would be future support for <packages>
> 
>    <scan>
>      <packages>
>        <package>org.superbiz.foo</package>
>        <package>org.superbiz.bar</package>
>      </packages>
>    </scan>
> 
> With the above you could easily create scan.xml file by hand that would at 
> least be far faster than scanning an entire jar.
> 
> 
> Thoughts?
> 
> 
> -David
> 

Reply via email to