Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-9736

Remove org.objectweb.asm.Opcodes as implemented interface in most (all?) places

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.5
    • Fix Version/s: 4.0.0-alpha-1
    • Component/s: None
    • Labels:

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              paulk Paul King
              Reporter:
              paulk Paul King
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 20m
                20m