You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/04/16 08:00:22 UTC
svn commit: r1326495 -
/openejb/branches/openejb-4.0.0/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
Author: dblevins
Date: Mon Apr 16 06:00:22 2012
New Revision: 1326495
URL: http://svn.apache.org/viewvc?rev=1326495&view=rev
Log:
TOMEE-162
Conditionally enable heavier AnnotationFinder features
Modified:
openejb/branches/openejb-4.0.0/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
Modified: openejb/branches/openejb-4.0.0/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-4.0.0/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java?rev=1326495&r1=1326494&r2=1326495&view=diff
==============================================================================
--- openejb/branches/openejb-4.0.0/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java (original)
+++ openejb/branches/openejb-4.0.0/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java Mon Apr 16 06:00:22 2012
@@ -52,7 +52,10 @@ public class FinderFactory {
IAnnotationFinder finder;
if (module instanceof WebModule) {
WebModule webModule = (WebModule) module;
- finder = new AnnotationFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls())).link();
+ final AnnotationFinder annotationFinder = new AnnotationFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls()));
+ if (annotationFinder.hasMetaAnnotations()) annotationFinder.enableMetaAnnotations();
+ if (enableFindSubclasses()) annotationFinder.enableFindSubclasses();
+ finder = annotationFinder;
} else if (module instanceof ConnectorModule) {
ConnectorModule connectorModule = (ConnectorModule) module;
finder = new AnnotationFinder(new ConfigurableClasspathArchive(connectorModule, connectorModule.getLibraries())).link();
@@ -84,6 +87,19 @@ public class FinderFactory {
return new ModuleLimitedFinder(finder);
}
+ private boolean enableFindSubclasses() {
+ return isJaxRsInstalled() && SystemInstance.get().getOptions().get("tomee.jaxrs.deploy.undeclared", false);
+ }
+
+ public boolean isJaxRsInstalled() {
+ try {
+ this.getClass().getClassLoader().loadClass("org.apache.openejb.server.rest.RsRegistry");
+ return true;
+ } catch (Throwable e) {
+ return false;
+ }
+ }
+
public static class ModuleLimitedFinder implements IAnnotationFinder {
private final IAnnotationFinder delegate;