You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Marc Bridner (JIRA)" <ji...@apache.org> on 2012/06/05 18:40:25 UTC

[jira] [Created] (SANDBOX-418) Support for Java 7 using ASM 4.0

Marc Bridner created SANDBOX-418:
------------------------------------

             Summary: 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


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

        

[jira] [Updated] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Marc Bridner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Bridner updated SANDBOX-418:
---------------------------------

    Attachment: javaflow-2.0.patch
    
> 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

        

[jira] [Updated] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Marc Bridner (JIRA)" <ji...@apache.org>.
     [ 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

        

[jira] [Resolved] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Torsten Curdt (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Torsten Curdt resolved SANDBOX-418.
-----------------------------------

    Resolution: Fixed
    
> 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
>            Assignee: Torsten Curdt
>         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

        

[jira] [Updated] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Marc Bridner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Bridner updated SANDBOX-418:
---------------------------------

    Attachment:     (was: javaflow-2.0.patch)
    
> 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

        

[jira] [Updated] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Marc Bridner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Bridner updated SANDBOX-418:
---------------------------------

    Description: 
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?

  was:
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?)
 
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?

    
> 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

        

[jira] [Commented] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Torsten Curdt (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13403737#comment-13403737 ] 

Torsten Curdt commented on SANDBOX-418:
---------------------------------------

Sorry it took so long but - a big thank you for all your work. It's great someone pushes forward here. Since it's such a big step I think it deserves we create a 1.x branch and move trunk to 2.0 for these changes.

I am sure commons could also host the maven plugin - but if you want to maintain it on e.g. github that would be fine, too. Just having one is great.
                
> 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

        

[jira] [Updated] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Marc Bridner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Bridner updated SANDBOX-418:
---------------------------------

    Attachment: javaflow-2.0.patch

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

        

[jira] [Updated] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Marc Bridner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Bridner updated SANDBOX-418:
---------------------------------

    Attachment:     (was: javaflow-2.0.patch)
    
> 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

        

[jira] [Updated] (SANDBOX-418) Support for Java 7 using ASM 4.0

Posted by "Marc Bridner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SANDBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Bridner updated SANDBOX-418:
---------------------------------

    Attachment: javaflow-2.0.patch
    
> 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