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/11 22:34:50 UTC
svn commit: r1617358 - in
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb:
assembler/ExclusionInfo.java config/AnnotationDeployer.java
config/FinderFactory.java
Author: rmannibucau
Date: Mon Aug 11 20:34:49 2014
New Revision: 1617358
URL: http://svn.apache.org/r1617358
Log:
hack for tests to avoid too much regressions for lazy guys
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/ExclusionInfo.java
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/FinderFactory.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/ExclusionInfo.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/ExclusionInfo.java?rev=1617358&r1=1617357&r2=1617358&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/ExclusionInfo.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/ExclusionInfo.java Mon Aug 11 20:34:49 2014
@@ -17,13 +17,13 @@
package org.apache.openejb.assembler;
-import org.apache.openejb.assembler.classic.CommonInfoObject;
+import org.apache.openejb.assembler.classic.InfoObject;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
-public class ExclusionInfo extends CommonInfoObject {
+public class ExclusionInfo extends InfoObject {
public final List<String> availableClasses = new LinkedList<>();
public final List<String> notAvailableClasses = new LinkedList<>();
public final List<String> systemPropertiesPresence = new LinkedList<>();
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=1617358&r1=1617357&r2=1617358&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 Mon Aug 11 20:34:49 2014
@@ -3504,7 +3504,7 @@ public class AnnotationDeployer implemen
/*
* @AroundTimeout
*/
- if (apply(override, invokable.getAroundInvoke())) {
+ if (apply(override, invokable.getAroundTimeout())) {
for (final Annotated<Method> method : sortMethods(annotationFinder.findMetaAnnotatedMethods(javax.interceptor.AroundTimeout.class))) {
invokable.getAroundTimeout().add(new AroundTimeout(method.get()));
}
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=1617358&r1=1617357&r2=1617358&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 Mon Aug 11 20:34:49 2014
@@ -65,13 +65,15 @@ public class FinderFactory {
}
public IAnnotationFinder create(final DeploymentModule module) throws Exception {
- final AnnotationFinder finder;
+ OpenEJBAnnotationFinder finder;
if (module instanceof WebModule) {
final WebModule webModule = (WebModule) module;
- finder = newFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls())).link();
+ finder = newFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls()));
+ finder.link();
} else if (module instanceof ConnectorModule) {
final ConnectorModule connectorModule = (ConnectorModule) module;
- finder = newFinder(new ConfigurableClasspathArchive(connectorModule, connectorModule.getLibraries())).link();
+ finder = newFinder(new ConfigurableClasspathArchive(connectorModule, connectorModule.getLibraries()));
+ finder.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));
@@ -97,15 +99,24 @@ public class FinderFactory {
} else {
finder = newFinder(new DebugArchive(new ConfigurableClasspathArchive(module.getClassLoader(), url)));
}
+ if (!finder.foundSomething()) { // test case too, should be removed in absolute. Next else should be hit but if jar location was set we are here.
+ finder = fallbackAnnotationFinder(module);
+ }
finder.link();
} else {
// TODO: error. Here it means we'll not find anything so helping a bit (if you hit it outside a test fix it)
- finder = new AnnotationFinder(new ClassesArchive(ensureMinimalClasses(module))).enableMetaAnnotations();
+ finder = fallbackAnnotationFinder(module);
}
return MODULE_LIMITED ? new ModuleLimitedFinder(finder) : finder;
}
+ private OpenEJBAnnotationFinder fallbackAnnotationFinder(DeploymentModule module) {
+ final OpenEJBAnnotationFinder finder = new OpenEJBAnnotationFinder(new ClassesArchive(ensureMinimalClasses(module)));
+ finder.enableMetaAnnotations();
+ return finder;
+ }
+
private Class<?>[] ensureMinimalClasses(final DeploymentModule module) {
if (EjbModule.class.isInstance(module)) {
final Collection<Class<?>> finderClasses = new HashSet<>();
@@ -125,6 +136,13 @@ public class FinderFactory {
// no-op
}
}
+ for (final org.apache.openejb.jee.Interceptor interceptor : ejb.getEjbJar().getInterceptors()) {
+ try {
+ finderClasses.addAll(ancestors(classLoader.loadClass(interceptor.getInterceptorClass())));
+ } catch (final ClassNotFoundException e) {
+ // no-op
+ }
+ }
final Beans beans = ejb.getBeans();
if (beans != null && ejb.getEjbJar() != null) {
@@ -165,7 +183,7 @@ public class FinderFactory {
return new Class<?>[0];
}
- private static AnnotationFinder newFinder(final Archive archive) {
+ private static OpenEJBAnnotationFinder newFinder(final Archive archive) {
return new OpenEJBAnnotationFinder(archive);
}
@@ -439,5 +457,9 @@ public class FinderFactory {
}
return false;
}
+
+ public boolean foundSomething() {
+ return !classInfos.isEmpty();
+ }
}
}