You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by rm...@apache.org on 2014/03/23 18:08:54 UTC

svn commit: r1580541 - in /incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache: sirona/javaagent/InJvmTransformerRunner.java test/sirona/javaagent/OpenEJBTest.java

Author: rmannibucau
Date: Sun Mar 23 17:08:54 2014
New Revision: 1580541

URL: http://svn.apache.org/r1580541
Log:
wrong classloader impl, fixing reloading

Modified:
    incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/sirona/javaagent/InJvmTransformerRunner.java
    incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/test/sirona/javaagent/OpenEJBTest.java

Modified: incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/sirona/javaagent/InJvmTransformerRunner.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/sirona/javaagent/InJvmTransformerRunner.java?rev=1580541&r1=1580540&r2=1580541&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/sirona/javaagent/InJvmTransformerRunner.java (original)
+++ incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/sirona/javaagent/InJvmTransformerRunner.java Sun Mar 23 17:08:54 2014
@@ -76,11 +76,16 @@ public class InJvmTransformerRunner exte
                 }
 
                 @Override
-                public Class<?> loadClass(String name) throws ClassNotFoundException {
+                public Class<?> loadClass(final String name) throws ClassNotFoundException {
                     if (!name.startsWith(getTestClass().getName())) {
                         return getParent().loadClass(name);
                     }
 
+                    final Class<?> existing  = findLoadedClass(name);
+                    if (existing != null) {
+                        return existing;
+                    }
+
                     try {
                         final String resourceName = name.replaceAll("\\.", "/") + ".class";
                         final InputStream is = getResourceAsStream(resourceName);

Modified: incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/test/sirona/javaagent/OpenEJBTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/test/sirona/javaagent/OpenEJBTest.java?rev=1580541&r1=1580540&r2=1580541&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/test/sirona/javaagent/OpenEJBTest.java (original)
+++ incubator/sirona/trunk/agent/javaagent/src/test/java/org/apache/test/sirona/javaagent/OpenEJBTest.java Sun Mar 23 17:08:54 2014
@@ -16,9 +16,12 @@
  */
 package org.apache.test.sirona.javaagent;
 
+import org.apache.openejb.loader.JarLocation;
 import org.apache.openejb.util.proxy.LocalBeanProxyFactory;
 import org.apache.sirona.javaagent.InJvmTransformerRunner;
 import org.apache.sirona.repositories.Repository;
+import org.apache.xbean.finder.AnnotationFinder;
+import org.apache.xbean.finder.archive.FileArchive;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -35,6 +38,7 @@ import javax.persistence.NoResultExcepti
 import javax.persistence.PersistenceContext;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
+import java.net.MalformedURLException;
 import java.util.Collection;
 import java.util.List;
 
@@ -50,6 +54,12 @@ public class OpenEJBTest {
     }
 
     @Test
+    public void scanning() throws MalformedURLException {
+        final AnnotationFinder finder = new AnnotationFinder(new FileArchive(Thread.currentThread().getContextClassLoader(), JarLocation.jarLocation(TicTacToeServiceEJB.class).toURI().toURL())).link();
+        assertEquals(1, finder.findMetaAnnotatedFields(PersistenceContext.class).size());
+    }
+
+    @Test
     public void checkEJBAreInstrumented() throws Throwable {
         assertEquals(0, Repository.INSTANCE.counters().size());
         TicTacToeServiceEJB.class.cast(LocalBeanProxyFactory.newProxyInstance(