[
https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marc Bridner updated SANDBOX-418:
---------------------------------
Comment: was deleted
(was: Patch file.)
> Support for Java 7 using ASM 4.0
> --------------------------------
>
> Key: SANDBOX-418
> URL: https://issues.apache.org/jira/browse/SANDBOX-418
> Project: Commons Sandbox
> Issue Type: Improvement
> Components: Javaflow
> Reporter: Marc Bridner
> Attachments: javaflow-2.0.patch
>
>
> Javaflow doesn't work with Java 7 since ASM 3.x doesn't support Java 7,
> mainly due to frame size computing issues.
> So... this patch lifts everything to Java 7 and ASM 4.0.
> Changes:
> * Removed BCEL support, including testcases and dependencies.
> * Now depends on ASM 4.0 instead of 3.x.
> * Debug output for tests (bytecode trace) is now output to
> target/test-instrumentation instead of the root directory.
> * COMPUTE_FRAMES is used when writing instrumenting so that Java 7 stays
> happy :)
> * Re-added some testcases I found on this JIRA to make sure I didn't
> reintroduce an old bug.
> * All instrumented classes will now implement the empty Continuable
> interface. If instrumentation is attempted on a class that implements
> Continuable, an exception will be thrown. This is because multiple
> instrumentation by mistake = very bad.
> * Suppressed a lot of warnings in the testcases.
> * Changed target java version to Java 7 in the pom file (might be better to
> leave it at 1.5?)
> * Javaflow version is now 2.0-SNAPSHOT due to breaking changes (removal of
> BCEL)
>
> I've also made a maven plugin for instrumenting code (instead of the ANT
> task), but it is not included in this patch since I'm unsure of the commons
> project structure. It basically has to be in its own project and depend on
> this one.
> On my TODO list:
> * Add a check that ensures that the class version of the file being
> instrumented isn't changed by instrumentation. Happened a few times when code
> was compiled using Java 6 and JavaFlow was compiled with Java 7 and Java 7
> was used for instrumentation.
> * Add more testcases, check existing ones.
> * Remove all warnings (by fixing them, not suppressing them).
> * Add comments where possible.
> * Detect and throw an exception if something not instrumented and is on the
> call stack when suspending/resuming. Not sure if possible, but definitely
> needed. Easy to miss something when not using class loader instrumentation
> (say, using OSGi you don't want to do that...)
> * Make Javaflow an OSGi bundle.
> It'd be nice if someone took a close (!) look at the patch, since I'm fairly
> new when it comes to ASM.
> Also, what version of Java should be targeted in the pom file?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira