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 2014/08/09 18:56:56 UTC
svn commit: r1616992 - in
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config:
AnnotationDeployer.java DeploymentLoader.java FinderFactory.java
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;
+ }
+ }
}