Hi folks,
I bumped ASM on the GROOVY_4_0_X branch. I think that is the least
controversial of the changes mentioned here, but we'll do such bumps
less often as we move our focus to Groovy 6 and 7. It allows Gradle to
iterate along one more JDK version without making the jump to a newer
Groovy version. I also added the JDK26/27 constants to
CompilerConfiguration.
We have previously bumped the ASM version to cover JDK27 for Groovy 5.
But I also added the JDK27 constant on the GROOVY_5_0_X branch.
Nearly everything seems to work fine under JDK26/27 except for a known
issue we have with JApplet no longer being available (removed). It is
mentioned in SwingBuilder and Console. We can get around the
SwingBuilder mention with reflection. But for Console we have a method
that has been deprecated since at least Groovy 3:
void run(javax.swing.JApplet applet) { ... }
While this method exists in the class, the groovyConsole won't work on JDK26+.
We don't normally remove such methods in a patch/point release but
what do folks think of doing that for the upcoming releases. I suspect
that method hasn't been used by anyone in more than 10 years - but I
could be wrong.
I have looked into various other options like tricking metaclass
handling to skip JApplet with nothing looking viable. The only other
option we have is to provide a method like:
void run(java.awt.Container applet) { }
Where Container is a super class that still exists (or we can use one
of JApplet's interfaces). This would provide a backwards runtime hook
but is still a binary breaking change, I presume for no ones benefit.
If we think it is less of a sin to just say Console isn't compatible
with JDK26+ (it is already documented that way now), then we can leave
it as is.
If we do remove, another option for versioning is to go 4.1.0 and
5.1.0 as the next version numbers.
And just for the record, all the applet stuff was removed in master
before alpha-1 I believe.
Thoughts ?
Paul.