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);

Reply via email to