You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (Jira)" <ji...@apache.org> on 2020/09/16 09:48:00 UTC

[jira] [Resolved] (GROOVY-9736) Remove org.objectweb.asm.Opcodes as implemented interface in most (all?) places

     [ https://issues.apache.org/jira/browse/GROOVY-9736?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul King resolved GROOVY-9736.
-------------------------------
    Fix Version/s: 4.0.0-alpha-1
         Assignee: Paul King
       Resolution: Fixed

Proposed PR merged.

> Remove org.objectweb.asm.Opcodes as implemented interface in most (all?) places
> -------------------------------------------------------------------------------
>
>                 Key: GROOVY-9736
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9736
>             Project: Groovy
>          Issue Type: Improvement
>    Affects Versions: 3.0.5
>            Reporter: Paul King
>            Assignee: Paul King
>            Priority: Major
>              Labels: breaking
>             Fix For: 4.0.0-alpha-1
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Back before Java had static imports, a common usage pattern for using `org.objectweb.asm.Opcodes` was just to implement that interface. Then, referencing the constants within that interface was simply a matter of referencing them directly rather than requiring them to be prefixed with the class name. Since static imports, it is generally better to statically import the required constants. This avoids that class from leaking into our public API. It is even slightly more problematic than normal for us since that class is one of the ones we jarjar, so the leaked class might have a different package (groovyjarjarasm) than the one some might expect.
> This issue is to consider removing all such usage (targeting Groovy 4). Code which extends any impacted classes might now need to add additional static imports. One the plus side, the jarjar side of things will then remain better hidden.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)