Repository: tomee Updated Branches: refs/heads/master 78c5a55c4 -> 4e1fb384e
TOMEE-1907 avoid useless warning for junit rules/statements Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/4e1fb384 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4e1fb384 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4e1fb384 Branch: refs/heads/master Commit: 4e1fb384ec5b41be0247309cbbc7d20e034070c1 Parents: 78c5a55 Author: Romain manni-Bucau <rmannibu...@gmail.com> Authored: Wed Aug 17 11:53:07 2016 +0200 Committer: Romain manni-Bucau <rmannibu...@gmail.com> Committed: Wed Aug 17 11:53:07 2016 +0200 ---------------------------------------------------------------------- .../common/TomEEInjectionEnricher.java | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/4e1fb384/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java index a85c0f1..c48133e 100644 --- a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java +++ b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java @@ -45,11 +45,16 @@ public class TomEEInjectionEnricher implements TestEnricher { if (!SystemInstance.isInitialized()) { return; } - OpenEJBEnricher.enrich(o, getAppContext(o.getClass())); + final Class<?> oClass = o.getClass(); + if (oClass.getName().startsWith("org.junit.rules.")) { // no need of enrichments + return; + } + OpenEJBEnricher.enrich(o, getAppContext(oClass)); } private AppContext getAppContext(final Class<?> clazz) { final String clazzName = clazz.getName(); + final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class); if (deployment != null && deployment.get() != null) { final BeanContext context = containerSystem.getBeanContext(deployment.get().getDescription().getName() + "_" + clazzName); @@ -71,13 +76,24 @@ public class TomEEInjectionEnricher implements TestEnricher { } } - if (deployment != null && deployment.get() != null && deployment.get().getDescription().testable()) { + if (deployment != null && deployment.get() != null && deployment.get().getDescription().testable() + && !isJunitComponent(clazz) /*app context will be found by classloader, no need to log anything there*/) { Logger.getLogger(TomEEInjectionEnricher.class.getName()).log(Level.WARNING, "Failed to find AppContext for: " + clazzName); } return null; } + private boolean isJunitComponent(final Class<?> clazz) { + final ClassLoader classLoader = clazz.getClassLoader(); + try { + return classLoader.loadClass("org.junit.rules.TestRule").isAssignableFrom(clazz) + || classLoader.loadClass("org.junit.runners.model.Statement").isAssignableFrom(clazz); + } catch (final ClassNotFoundException e) { + return false; + } + } + @Override public Object[] resolve(final Method method) { return OpenEJBEnricher.resolve(getAppContext(method.getDeclaringClass()), testClass.get(), method);