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

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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0.5
    • 4.0.0-alpha-1
    • None

    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

            paulk Paul King
            paulk Paul King
            Votes:
            0 Vote for this issue
            Watchers:
            4 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