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>