You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/02/21 16:15:14 UTC
svn commit: r1291850 -
/openejb/trunk/maven-plugins/xbean-xml/src/main/java/org/apache/openejb/xbean/xml/XMLAnnotationFinderHelper.java
Author: rmannibucau
Date: Tue Feb 21 15:15:14 2012
New Revision: 1291850
URL: http://svn.apache.org/viewvc?rev=1291850&view=rev
Log:
adding a missing helper method to create a finder from a scan.xml file without providing an archive class
Modified:
openejb/trunk/maven-plugins/xbean-xml/src/main/java/org/apache/openejb/xbean/xml/XMLAnnotationFinderHelper.java
Modified: openejb/trunk/maven-plugins/xbean-xml/src/main/java/org/apache/openejb/xbean/xml/XMLAnnotationFinderHelper.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/xbean-xml/src/main/java/org/apache/openejb/xbean/xml/XMLAnnotationFinderHelper.java?rev=1291850&r1=1291849&r2=1291850&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/xbean-xml/src/main/java/org/apache/openejb/xbean/xml/XMLAnnotationFinderHelper.java (original)
+++ openejb/trunk/maven-plugins/xbean-xml/src/main/java/org/apache/openejb/xbean/xml/XMLAnnotationFinderHelper.java Tue Feb 21 15:15:14 2012
@@ -52,6 +52,23 @@ public final class XMLAnnotationFinderHe
return new AnnotationFinder(archive); // don't link here
}
+ public static IAnnotationFinder finderFromXml(final InputStream is, final ClassLoader loader, final Iterable<URL> urls) throws JAXBException {
+ final Scan scan = (Scan) JAXB_CONTEXT.createUnmarshaller().unmarshal(new BufferedInputStream(is));
+
+ final Archive packageArchive = packageArchive(scan.getPackagename(), loader, urls, null);
+ final Archive classesArchive = classesArchive(scan, loader);
+
+ final Archive archive;
+ if (packageArchive != null && classesArchive != null) {
+ archive = new CompositeArchive(classesArchive, packageArchive);
+ } else if (packageArchive != null) {
+ archive = packageArchive;
+ } else {
+ archive = classesArchive;
+ }
+ return new AnnotationFinder(archive); // don't link here
+ }
+
public static Archive classesArchive(final Scan scan, final ClassLoader loader) {
Class<?>[] classes = new Class<?>[scan.getClassname().size()];
int i = 0;