Author: struberg
Date: Fri May 31 06:05:16 2013
New Revision: 1488102

URL: http://svn.apache.org/r1488102
Log:
OPENJPA-2388 support for xbean shaded ASM4

txs to rmannibucau for the patch!

Modified:
    
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java?rev=1488102&r1=1488101&r2=1488102&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
 (original)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
 Fri May 31 06:05:16 2013
@@ -59,13 +59,18 @@ public final class AsmAdaptor {
     static {
         // try the "real" asm first, then the others
         tryClass("org.objectweb.asm.");
+        tryClass("org.apache.xbean.asm4.");
         tryClass("org.apache.xbean.asm.");
         tryClass("org.springframework.asm.");
 
         // get needed stuff
         try {
             COMPUTE_FRAMES = cwClass.getField("COMPUTE_FRAMES").getInt(null);
-            classReaderAccept = crClass.getMethod("accept", 
cwClass.getInterfaces()[0], int.class);
+            if (cwClass.getInterfaces().length > 0) { // ASM 3
+                classReaderAccept = crClass.getMethod("accept", 
cwClass.getInterfaces()[0], int.class);
+            } else { // ASM 4
+                classReaderAccept = crClass.getMethod("accept", 
cwClass.getSuperclass(), int.class);
+            }
             classReaderConstructor = crClass.getConstructor(InputStream.class);
             classWriterConstructor = cwClass.getConstructor(int.class);
             classWritertoByteArray = cwClass.getMethod("toByteArray");


Reply via email to