Author: rmannibucau Date: Sat Aug 9 16:56:55 2014 New Revision: 1616992 URL: http://svn.apache.org/r1616992 Log: getting rid of AsynchronousInheritanceAnnotationFinder
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1616992&r1=1616991&r2=1616992&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Sat Aug 9 16:56:55 2014 @@ -426,7 +426,7 @@ public class AnnotationDeployer implemen public AppModule deploy(AppModule appModule) throws OpenEJBException { if (!appModule.isWebapp() && !appModule.getWebModules().isEmpty()) { // need to scan for jsf stuff at least try { - appModule.setEarLibFinder(FinderFactory.createFinder(appModule, true)); + appModule.setEarLibFinder(FinderFactory.createFinder(appModule)); } catch (final Exception e) { logger.error("Can't create a finder for ear libs", e); } @@ -498,7 +498,7 @@ public class AnnotationDeployer implemen if (finder == null) { try { - finder = FinderFactory.createFinder(clientModule, false); + finder = FinderFactory.createFinder(clientModule); } catch (final MalformedURLException e) { startupLogger.warning("startup.scrapeFailedForClientModule.url", clientModule.getJarLocation()); return clientModule; @@ -552,7 +552,7 @@ public class AnnotationDeployer implemen IAnnotationFinder finder = connectorModule.getFinder(); if (finder == null) { try { - finder = FinderFactory.createFinder(connectorModule, false); + finder = FinderFactory.createFinder(connectorModule); connectorModule.setFinder(finder); } catch (final Exception e) { // TODO: some sort of error @@ -1059,7 +1059,7 @@ public class AnnotationDeployer implemen try { if (webModule.getFinder() == null) { - webModule.setFinder(FinderFactory.createFinder(webModule, true)); + webModule.setFinder(FinderFactory.createFinder(webModule)); } } catch (final Exception e) { startupLogger.warning("Unable to scrape for @WebService or @WebServiceProvider annotations. AnnotationFinder failed.", e); @@ -1277,7 +1277,7 @@ public class AnnotationDeployer implemen try { if (ejbModule.getFinder() == null) { - ejbModule.setFinder(FinderFactory.createFinder(ejbModule, true)); + ejbModule.setFinder(FinderFactory.createFinder(ejbModule)); } } catch (final MalformedURLException e) { startupLogger.warning("startup.scrapeFailedForModule", ejbModule.getJarLocation()); Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1616992&r1=1616991&r2=1616992&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Sat Aug 9 16:56:55 2014 @@ -831,7 +831,7 @@ public class DeploymentLoader implements webModule.setFinder(finder); webEjbModule.setFinder(finder); } else { - final IAnnotationFinder finder = FinderFactory.createFinder(webModule, true); + final IAnnotationFinder finder = FinderFactory.createFinder(webModule); webModule.setFinder(finder); webEjbModule.setFinder(finder); } @@ -1119,7 +1119,7 @@ public class DeploymentLoader implements IAnnotationFinder finder; try { - finder = FinderFactory.createFinder(appModule, true); + finder = FinderFactory.createFinder(appModule); } catch (final Exception e) { finder = new FinderFactory.ModuleLimitedFinder(new org.apache.xbean.finder.AnnotationFinder(new WebappAggregatedArchive(appModule.getClassLoader(), appModule.getAltDDs(), xmls))); } Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java?rev=1616992&r1=1616991&r2=1616992&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java Sat Aug 9 16:56:55 2014 @@ -44,7 +44,6 @@ import java.util.List; public class FinderFactory { private static final FinderFactory factory = new FinderFactory(); - public static final String ASYNC_SCAN = "openejb.scanning.inheritance.asynchronous"; public static final String FORCE_LINK = "openejb.finder.force.link"; private static FinderFactory get() { @@ -52,27 +51,27 @@ public class FinderFactory { return factory != null ? factory : FinderFactory.factory; } - public static IAnnotationFinder createFinder(final DeploymentModule module, final boolean allowAsync) throws Exception { - return get().create(module, allowAsync); + public static IAnnotationFinder createFinder(final DeploymentModule module) throws Exception { + return get().create(module); } - public static AnnotationFinder getFinder(final ClassLoader classLoader, final URL url, final boolean allowAsync) { - return newFinder(ClasspathArchive.archive(classLoader, url), allowAsync); + public static AnnotationFinder getFinder(final ClassLoader classLoader, final URL url) { + return newFinder(ClasspathArchive.archive(classLoader, url)); } - public IAnnotationFinder create(final DeploymentModule module, final boolean allowAsync) throws Exception { + public IAnnotationFinder create(final DeploymentModule module) throws Exception { final AnnotationFinder finder; if (module instanceof WebModule) { final WebModule webModule = (WebModule) module; - final AnnotationFinder annotationFinder = newFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls()), allowAsync); + final AnnotationFinder annotationFinder = newFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls())); enableFinderOptions(annotationFinder); finder = annotationFinder; } else if (module instanceof ConnectorModule) { final ConnectorModule connectorModule = (ConnectorModule) module; - finder = newFinder(new ConfigurableClasspathArchive(connectorModule, connectorModule.getLibraries()), allowAsync).link(); + finder = newFinder(new ConfigurableClasspathArchive(connectorModule, connectorModule.getLibraries())).link(); } else if (module instanceof AppModule) { final Collection<URL> urls = NewLoaderLogic.applyBuiltinExcludes(new UrlSet(AppModule.class.cast(module).getAdditionalLibraries())).getUrls(); - finder = newFinder(new WebappAggregatedArchive(module.getClassLoader(), module.getAltDDs(), urls), allowAsync); + finder = newFinder(new WebappAggregatedArchive(module.getClassLoader(), module.getAltDDs(), urls)); } else if (module.getJarLocation() != null) { final String location = module.getJarLocation(); final File file = new File(location); @@ -91,9 +90,9 @@ public class FinderFactory { if (module instanceof Module) { final DebugArchive archive = new DebugArchive(new ConfigurableClasspathArchive((Module) module, url)); - finder = newFinder(archive, allowAsync); + finder = newFinder(archive); } else { - finder = newFinder(new DebugArchive(new ConfigurableClasspathArchive(module.getClassLoader(), url)), allowAsync); + finder = newFinder(new DebugArchive(new ConfigurableClasspathArchive(module.getClassLoader(), url))); } if ("true".equals(SystemInstance.get().getProperty(FORCE_LINK, module.getProperties().getProperty(FORCE_LINK, "false")))) { finder.link(); @@ -108,11 +107,8 @@ public class FinderFactory { return new ModuleLimitedFinder(finder); } - private static AnnotationFinder newFinder(final Archive archive, final boolean allowAsync) { - if (allowAsync && "true".equals(SystemInstance.get().getProperty(ASYNC_SCAN, "true"))) { - return new AsynchronousInheritanceAnnotationFinder(archive); - } - return new AnnotationFinder(archive); + private static AnnotationFinder newFinder(final Archive archive) { + return new OpenEJBAnnotationFinder(archive); } public static final class DebugArchive implements Archive { @@ -384,4 +380,26 @@ public class FinderFactory { } } } + + private static class OpenEJBAnnotationFinder extends AnnotationFinder { + private static final String[] JVM_SCANNING_CONFIG = SystemInstance.get().getProperty("openejb.scanning.xbean.jvm", "java.").split(","); + + public OpenEJBAnnotationFinder(final Archive archive) { + super(archive); + } + + @Override + protected boolean isJvm(final String name) { + return sharedIsJvm("java."); + } + + // don't reuse URLClassLoaderFirst one since this one can kill scanning perf + // using a raw but efficient impl + public static boolean sharedIsJvm(final String name) { + for (final String s : JVM_SCANNING_CONFIG) { + return name.startsWith(s); + } + return false; + } + } }