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/23 09:13:32 UTC
svn commit: r1292692 - in /openejb/trunk/openejb/container/openejb-core/src:
main/java/org/apache/openejb/config/
test/java/org/apache/openejb/config/scanning/
test/java/org/apache/openejb/config/scanning/bean/ test/resources/
Author: rmannibucau
Date: Thu Feb 23 08:13:31 2012
New Revision: 1292692
URL: http://svn.apache.org/viewvc?rev=1292692&view=rev
Log:
adding ConfigurableClasspathArchive
Added:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurableClasspathArchive.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ScanConstants.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/AbstractXmlAnnotationFinderTest.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlClassesAnnotationFinderTest.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlPackageAnnotationFinderTest.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyAnnotation.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean1.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean2.java
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean3.java
openejb/trunk/openejb/container/openejb-core/src/test/resources/test-package-scan.xml
openejb/trunk/openejb/container/openejb-core/src/test/resources/test-scan.xml
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AggregatedArchive.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AggregatedArchive.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AggregatedArchive.java?rev=1292692&r1=1292691&r2=1292692&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AggregatedArchive.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AggregatedArchive.java Thu Feb 23 08:13:31 2012
@@ -16,16 +16,20 @@
*/
package org.apache.openejb.config;
+import org.apache.openejb.xbean.xml.XMLAnnotationFinderHelper;
+import org.apache.xbean.finder.ResourceFinder;
import org.apache.xbean.finder.archive.Archive;
import org.apache.xbean.finder.archive.ClasspathArchive;
import org.apache.xbean.finder.archive.CompositeArchive;
import org.apache.xbean.finder.archive.FilteredArchive;
import org.apache.xbean.finder.filter.Filter;
+import javax.xml.bind.JAXBException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -34,7 +38,7 @@ import java.util.Map;
/**
* @version $Rev$ $Date$
*/
-public class AggregatedArchive implements Archive {
+public class AggregatedArchive implements Archive, ScanConstants {
private final Map<URL, List<String>> classesMap = new HashMap<URL, List<String>>();
private final Archive archive;
@@ -44,9 +48,21 @@ public class AggregatedArchive implement
for (URL url : urls) {
+ Archive rawArchive;
+
+ final ResourceFinder scanFinder = new ResourceFinder("", url);
+ try {
+ final URL scanXml = scanFinder.find(SCAN_XML);
+ rawArchive = XMLAnnotationFinderHelper.xmlArchive(scanXml.openStream(), loader, Arrays.asList(url));
+ } catch (IOException e) {
+ rawArchive = ClasspathArchive.archive(loader, url);
+ } catch (JAXBException e) {
+ rawArchive = ClasspathArchive.archive(loader, url);
+ }
+
final List<String> classes = new ArrayList<String>();
- final Archive archive = new FilteredArchive(ClasspathArchive.archive(loader, url), new Filter(){
+ final Archive archive = new FilteredArchive(rawArchive, new Filter() {
@Override
public boolean accept(String name) {
classes.add(name);
Added: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurableClasspathArchive.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurableClasspathArchive.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurableClasspathArchive.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurableClasspathArchive.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,165 @@
+package org.apache.openejb.config;
+
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.xbean.finder.ResourceFinder;
+import org.apache.xbean.finder.archive.Archive;
+import org.apache.xbean.finder.archive.ClassesArchive;
+import org.apache.xbean.finder.archive.ClasspathArchive;
+import org.apache.xbean.finder.archive.CompositeArchive;
+import org.apache.xbean.finder.archive.FilteredArchive;
+import org.apache.xbean.finder.filter.Filter;
+import org.apache.xbean.finder.filter.FilterList;
+import org.apache.xbean.finder.filter.PackageFilter;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class ConfigurableClasspathArchive extends CompositeArchive implements ScanConstants {
+ private static final SAXParserFactory SAX_FACTORY = SAXParserFactory.newInstance();
+
+ public ConfigurableClasspathArchive(final ClassLoader loader, final URL... urls) {
+ this(loader, Arrays.asList(urls));
+ }
+
+ public ConfigurableClasspathArchive(final ClassLoader loader, final Iterable<URL> urls) {
+ super(archive(loader, urls));
+ }
+
+ public static List<Archive> archive(final ClassLoader loader, final Iterable<URL> urls) {
+ final List<Archive> archives = new ArrayList<Archive>();
+ for (URL location : urls) {
+ try {
+ archives.add(archive(loader, location));
+ } catch (Exception e) {
+ // ignored
+ }
+ }
+ return archives;
+ }
+
+ public static Archive archive(final ClassLoader loader, final URL location) {
+ final ResourceFinder scanFinder = new ResourceFinder("", location);
+ try {
+ final URL scanXml = scanFinder.find(SystemInstance.get().getProperty(SCAN_XML_PROPERTY, SCAN_XML));
+ final ScanHandler scan = read(scanXml);
+ final Archive packageArchive = packageArchive(scan.getPackages(), loader, location);
+ final Archive classesArchive = classesArchive(scan.getPackages(), scan.getClasses(), loader);
+
+ if (packageArchive != null && classesArchive != null) {
+ return new CompositeArchive(classesArchive, packageArchive);
+ } else if (packageArchive != null) {
+ return packageArchive;
+ }
+ return classesArchive;
+ } catch (IOException e) {
+ return ClasspathArchive.archive(loader, location);
+ }
+ }
+
+ private static ScanHandler read(final URL scanXml) throws IOException {
+ try {
+ final SAXParser parser = SAX_FACTORY.newSAXParser();
+ final ScanHandler handler = new ScanHandler();
+ parser.parse(new BufferedInputStream(scanXml.openStream()), handler);
+ return handler;
+ } catch (Exception e) {
+ throw new IOException("can't parse " + scanXml.toExternalForm());
+ }
+ }
+
+ public static Archive packageArchive(final Set<String> packageNames, final ClassLoader loader, final URL url) {
+ if (!packageNames.isEmpty()) {
+ return new FilteredArchive(ClasspathArchive.archive(loader, url), filters(packageNames));
+ }
+ return null;
+ }
+
+ private static Filter filters(final Set<String> packageNames) {
+ final List<Filter> filters = new ArrayList<Filter>();
+ for (String packageName : packageNames) {
+ filters.add(new PackageFilter(packageName));
+ }
+ return new FilterList(filters);
+ }
+
+ public static Archive classesArchive(final Set<String> packages, final Set<String> classnames, final ClassLoader loader) {
+ Class<?>[] classes = new Class<?>[classnames.size()];
+ int i = 0;
+ for (String clazz : classnames) {
+ // skip classes managed by package filtering
+ if (packages != null && clazzInPackage(packages, clazz)) {
+ continue;
+ }
+
+ try {
+ classes[i++] = loader.loadClass(clazz);
+ } catch (ClassNotFoundException e) {
+ // ignored
+ }
+ }
+
+ if (i != classes.length) { // shouldn't occur
+ final Class<?>[] updatedClasses = new Class<?>[i];
+ System.arraycopy(classes, 0, updatedClasses, 0, i);
+ classes = updatedClasses;
+ }
+
+ return new ClassesArchive(classes);
+ }
+
+ private static boolean clazzInPackage(final Collection<String> packagename, final String clazz) {
+ for (String str : packagename) {
+ if (clazz.startsWith(str)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static final class ScanHandler extends DefaultHandler {
+ private final Set<String> classes = new HashSet<String>();
+ private final Set<String> packages = new HashSet<String>();
+ private Set<String> current = null;
+
+ @Override
+ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+ if (qName.equals("class")) {
+ current = classes;
+ } else if (qName.equals("package")) {
+ current = packages;
+ }
+ }
+
+ @Override
+ public void characters(char ch[], int start, int length) throws SAXException {
+ if (current != null) {
+ current.add(new String(ch, start, length));
+ }
+ }
+
+ @Override
+ public void endElement(final String uri, final String localName, final String qName) throws SAXException {
+ current = null;
+ }
+
+ public Set<String> getPackages() {
+ return packages;
+ }
+
+ public Set<String> getClasses() {
+ return classes;
+ }
+ }
+}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java?rev=1292692&r1=1292691&r2=1292692&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java Thu Feb 23 08:13:31 2012
@@ -16,30 +16,16 @@
*/
package org.apache.openejb.config;
-import org.apache.openejb.xbean.xml.XMLAnnotationFinderHelper;
+import org.apache.openejb.loader.SystemInstance;
import org.apache.xbean.finder.AnnotationFinder;
import org.apache.xbean.finder.IAnnotationFinder;
-import org.apache.openejb.util.Logger;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.loader.SystemInstance;
import org.apache.xbean.finder.archive.ClassesArchive;
-import org.apache.xbean.finder.archive.ClasspathArchive;
-import javax.xml.bind.JAXBException;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
import java.net.URL;
-import java.util.Arrays;
public class FinderFactory {
- private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB, FinderFactory.class);
-
- private static final String SCAN_XML = "META-INF/org/apache/xbean/scan.xml";
- private static final String WEB_SCAN_XML = SCAN_XML.replace("META-INF", "WEB-INF");
-
private static final FinderFactory factory = new FinderFactory();
private static FinderFactory get() {
@@ -55,21 +41,13 @@ public class FinderFactory {
if (module instanceof WebModule) {
WebModule webModule = (WebModule) module;
final ClassLoader webClassLoader = webModule.getClassLoader();
- final IAnnotationFinder finder = xmlFinder(module, inputStream(webModule.getFile(), WEB_SCAN_XML), webModule.getScannableUrls(), AggregatedArchive.class);
- if (finder != null) {
- return finder;
- }
return new AnnotationFinder(new AggregatedArchive(webClassLoader, webModule.getScannableUrls())).link();
}
if (module instanceof ConnectorModule) {
ConnectorModule connectorModule = (ConnectorModule) module;
final ClassLoader connectorClassLoader = connectorModule.getClassLoader();
- final IAnnotationFinder finder = xmlFinder(module, connectorClassLoader.getResourceAsStream(SCAN_XML), connectorModule.getLibraries());
- if (finder != null) {
- return finder;
- }
- return new AnnotationFinder(new ClasspathArchive(connectorClassLoader, connectorModule.getLibraries())).link();
+ return new AnnotationFinder(new ConfigurableClasspathArchive(connectorClassLoader, connectorModule.getLibraries())).link();
}
if (module.getJarLocation() != null) {
@@ -80,55 +58,17 @@ public class FinderFactory {
if (file.exists()) {
url = file.toURI().toURL();
- File webInfClassesFolder = new File(file, "WEB-INF/classes");
+ File webInfClassesFolder = new File(file, "WEB-INF/classes"); // is it possible?? normally no
if (webInfClassesFolder.exists() && webInfClassesFolder.isDirectory()) {
url = webInfClassesFolder.toURI().toURL();
}
- if (webInfClassesFolder.getParentFile().exists()) {
- final FileInputStream fis = inputStream(webInfClassesFolder.getParentFile().getParentFile(), WEB_SCAN_XML);
- final IAnnotationFinder finder = xmlFinder(module, fis, Arrays.asList(url));
- if (finder != null) {
- return finder;
- }
- }
} else {
url = new URL(location);
}
- final IAnnotationFinder finder = xmlFinder(module, module.getClassLoader().getResourceAsStream(SCAN_XML), Arrays.asList(url));
- if (finder != null) {
- return finder;
- }
-
- return new AnnotationFinder(new ClasspathArchive(module.getClassLoader(), url)).link();
+ return new AnnotationFinder(new ConfigurableClasspathArchive(module.getClassLoader(), url)).link();
} else {
return new AnnotationFinder(new ClassesArchive()).link();
}
}
-
- private static IAnnotationFinder xmlFinder(final DeploymentModule module, final InputStream scanIs, final Iterable<URL> urls, final Class<?> clazz) {
- if (scanIs != null) {
- try {
- final IAnnotationFinder finder = XMLAnnotationFinderHelper.finderFromXml(scanIs, module.getClassLoader(), urls, clazz);
- logger.info("using scan.xml for module " + module.getModuleId());
- return finder;
- } catch (JAXBException jaxbEx) {
- logger.warning("can't use scan.xml for " + module.getModuleId());
- }
- }
- return null;
- }
-
- private static IAnnotationFinder xmlFinder(final DeploymentModule module, final InputStream scanIs, final Iterable<URL> urls) {
- return xmlFinder(module, scanIs, urls, null);
- }
-
- private static FileInputStream inputStream(final File file, final String xml) throws FileNotFoundException {
- final File scanFile = new File(file, xml);
- if (scanFile.exists()) {
- return new FileInputStream(scanFile);
- }
- return null;
- }
-
}
Added: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ScanConstants.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ScanConstants.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ScanConstants.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ScanConstants.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,6 @@
+package org.apache.openejb.config;
+
+public interface ScanConstants {
+ static final String SCAN_XML_PROPERTY = "openejb.scan.xml.name";
+ static final String SCAN_XML = "META-INF/scan.xml";
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/AbstractXmlAnnotationFinderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/AbstractXmlAnnotationFinderTest.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/AbstractXmlAnnotationFinderTest.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/AbstractXmlAnnotationFinderTest.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,61 @@
+package org.apache.openejb.config.scanning;
+
+import org.apache.openejb.config.ConfigurableClasspathArchive;
+import org.apache.openejb.config.scanning.bean.MyAnnotation;
+import org.apache.openejb.config.scanning.bean.MyBean1;
+import org.apache.openejb.config.scanning.bean.MyBean2;
+import org.apache.openejb.config.scanning.bean.MyBean3;
+import org.apache.xbean.finder.AnnotationFinder;
+import org.apache.xbean.finder.IAnnotationFinder;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public abstract class AbstractXmlAnnotationFinderTest {
+ protected IAnnotationFinder finder;
+
+ @Before
+ public void initFinder() throws Exception {
+ final ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ System.setProperty("openejb.scan.xml.name", scanXml());
+ finder = new AnnotationFinder(new ConfigurableClasspathArchive(loader,
+ new URL[] {
+ new URL(loader.getResource(scanXml()).toExternalForm().replace(scanXml(), ""))
+ }
+ ));
+ System.clearProperty("openejb.scan.xml.name");
+ }
+
+ protected abstract String scanXml();
+
+ @Test
+ public void findClass() {
+ final List<Class<?>> myClassAnnotated = finder.findAnnotatedClasses(MyAnnotation.class);
+ assertEquals(1, myClassAnnotated.size());
+ assertEquals(MyBean1.class, myClassAnnotated.iterator().next());
+ }
+
+ @Test
+ public void findMethod() {
+ final List<Method> myMethodAnnotated = finder.findAnnotatedMethods(MyAnnotation.class);
+ assertEquals(1, myMethodAnnotated.size());
+ final Method method = myMethodAnnotated.iterator().next();
+ assertEquals(MyBean2.class, method.getDeclaringClass());
+ assertEquals("aMethod", method.getName());
+ }
+
+ @Test
+ public void findField() {
+ final List<Field> myFieldAnnotated = finder.findAnnotatedFields(MyAnnotation.class);
+ assertEquals(1, myFieldAnnotated.size());
+ final Field field = myFieldAnnotated.iterator().next();
+ assertEquals(MyBean3.class, field.getDeclaringClass());
+ assertEquals("aField", field.getName());
+ }
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlClassesAnnotationFinderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlClassesAnnotationFinderTest.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlClassesAnnotationFinderTest.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlClassesAnnotationFinderTest.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,8 @@
+package org.apache.openejb.config.scanning;
+
+public class XmlClassesAnnotationFinderTest extends AbstractXmlAnnotationFinderTest {
+ @Override
+ public String scanXml() {
+ return "test-scan.xml";
+ }
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlPackageAnnotationFinderTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlPackageAnnotationFinderTest.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlPackageAnnotationFinderTest.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/XmlPackageAnnotationFinderTest.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,8 @@
+package org.apache.openejb.config.scanning;
+
+public class XmlPackageAnnotationFinderTest extends AbstractXmlAnnotationFinderTest {
+ @Override
+ protected String scanXml() {
+ return "test-package-scan.xml";
+ }
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyAnnotation.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyAnnotation.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyAnnotation.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyAnnotation.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,11 @@
+package org.apache.openejb.config.scanning.bean;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
+public @interface MyAnnotation {
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean1.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean1.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean1.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean1.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,5 @@
+package org.apache.openejb.config.scanning.bean;
+
+@MyAnnotation
+public class MyBean1 {
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean2.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean2.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean2.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean2.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,6 @@
+package org.apache.openejb.config.scanning.bean;
+
+public class MyBean2 {
+ @MyAnnotation
+ public void aMethod() {}
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean3.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean3.java?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean3.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/scanning/bean/MyBean3.java Thu Feb 23 08:13:31 2012
@@ -0,0 +1,6 @@
+package org.apache.openejb.config.scanning.bean;
+
+public class MyBean3 {
+ @MyAnnotation
+ private int aField;
+}
Added: openejb/trunk/openejb/container/openejb-core/src/test/resources/test-package-scan.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/resources/test-package-scan.xml?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/resources/test-package-scan.xml (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/resources/test-package-scan.xml Thu Feb 23 08:13:31 2012
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<scan>
+ <packages>
+ <package>org.apache.openejb.config.scanning.bean</package>
+ </packages>
+</scan>
Added: openejb/trunk/openejb/container/openejb-core/src/test/resources/test-scan.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/resources/test-scan.xml?rev=1292692&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/resources/test-scan.xml (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/resources/test-scan.xml Thu Feb 23 08:13:31 2012
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<scan>
+ <classes>
+ <class>org.apache.openejb.config.scanning.bean.MyBean1</class>
+ <class>org.apache.openejb.config.scanning.bean.MyBean2</class>
+ <class>org.apache.openejb.config.scanning.bean.MyBean3</class>
+ </classes>
+ <packages/>
+</scan>