openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Romain Manni-Bucau (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (OPENJPA-2283) Upgrade to ASM 4 dependency
Date Fri, 04 Oct 2013 14:37:42 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-2283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13786193#comment-13786193
] 

Romain Manni-Bucau edited comment on OPENJPA-2283 at 10/4/13 2:36 PM:
----------------------------------------------------------------------

Can't it be fixed with:

{code}
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", findClassVisitor(), int.class);
            classReaderConstructor = crClass.getConstructor(InputStream.class);
            classWriterConstructor = cwClass.getConstructor(int.class);
            classWritertoByteArray = cwClass.getMethod("toByteArray");
        } catch (Exception e) {
            throw new IllegalStateException(_loc.get("static-asm-exception").getMessage(),
e);
        }
    }

    private static Class<?> findClassVisitor() throws ClassNotFoundException {
        final String cwName = cwClass.getName();
        return cwClass.getClassLoader().loadClass(cwName.substring(0, cwName.length() - "ClassWriter".length())
+ "ClassVisitor");
    }
{code}


was (Author: romain.manni-bucau):
Can't it be fixed with:


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", findClassVisitor(), int.class);
            classReaderConstructor = crClass.getConstructor(InputStream.class);
            classWriterConstructor = cwClass.getConstructor(int.class);
            classWritertoByteArray = cwClass.getMethod("toByteArray");
        } catch (Exception e) {
            throw new IllegalStateException(_loc.get("static-asm-exception").getMessage(),
e);
        }
    }

    private static Class<?> findClassVisitor() throws ClassNotFoundException {
        final String cwName = cwClass.getName();
        return cwClass.getClassLoader().loadClass(cwName.substring(0, cwName.length() - "ClassWriter".length())
+ "ClassVisitor");
    }

> Upgrade to ASM 4 dependency
> ---------------------------
>
>                 Key: OPENJPA-2283
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2283
>             Project: OpenJPA
>          Issue Type: New Feature
>          Components: Enhance
>    Affects Versions: 2.3.0
>            Reporter: Kevin Sutter
>             Fix For: 2.3.0
>
>
> OpenJPA currently has a dependency on ASM 3.2 for some post-enhancement processing to
fix up the stack map tables (Java 7 requirement).  The latest release of ASM is 4.1, which
just came out last week.  The immediate need is to move up to ASM 4.0.  We can entertain 4.1
at a later date.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message