Hey folks,

A user recently reported an issue building royale-compiler with Maven and a
newer version of Java (they were trying with Java 19). It resulted in the
following error, which I was able to reproduce if I switched to the latest
Java:

[ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-antlr-plugin:2.0-beta-1:
>      generate (generate-as-parser) on project compiler:
> Execution generate-as-parser of goal
> org.apache.maven.plugins:maven-antlr-plugin:2.0-beta-1:generate failed:
>
> The Security Manager is deprecated and will be removed in a future release
> -> [Help 1]
>

The reporter determined that the issue was caused by the
org.apache.maven.plugins.maven-antlr-plugin dependency used by the Maven
build for royale-compiler.

They suggested a different org.omnifaces.antlr-maven-plugin dependency that
is compatible, but doesn't have the Security Manager issue. I confirmed
that this fixed the issue, and things still seemed to be working correctly,
so I merged the updated dependency.

I didn't notice it at the time, but I just discovered that this new
dependency requires Java 11 at minimum. Until now, we've supported Java 8
at minimum. Unfortunately, I could not find another alternative Antlr
plugin for Maven that still supports Java 8, so it looks like we'll need to
update our minimum requirements for Royale too. At least for the Maven
build. However, for our sanity, we should probably just require Java 11
minimum across the board (in the Ant build too).

For reference, Java 8 was released in 2014. Java 11 was released in 2018.
Both are considered LTS (Long Term Support) versions and continue to
receive updates from OpenJDK vendors. Java 17 and 21 are newer LTS versions
that are also available.

--
Josh Tynjala
Bowler Hat LLC <https://bowlerhat.dev>

Reply via email to