You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@daffodil.apache.org by Mike Beckerle <mb...@apache.org> on 2021/11/03 15:46:53 UTC

Java 17 compatibility for DFDL schemas requires update to scala 2.12.15 in build.sbt

We support Daffodil on all the Java "long term support" releases, which are
currently Java 8, Java 11, and Java 17 (new).

In attempting to regression test a wide variety of DFDL schemas against
Daffodil using Java 17 I discovered that most have a build.sbt specifying
scala 2.12.11 to be used when testing the schema.

Java 17 is not compatible with scala 2.12.11. It requires scala 2.12.15.

I have verified that scala 2.12.15 and java 17 are backward compatible with
at least Daffodil 3.1.0, 2.6.0, and 2.4.0.

So if you have products/applications still using earlier versions, updating
your schemas' build.sbt files to specify scala 2.12.15 should not break
their tests.

So just upgrading all schemas to scala 2.12.15 in build.sbt unconditionally
seems appropriate.

You can then use any Java LTS version, 8, 11, or 17, for testing them.

Note that there is still an annoying warning *from sbt* with Java 17.

WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by sbt.TrapExit$
(file:/home/mbeckerle/.sbt/boot/scala-2.12.14/org.scala-sbt/sbt/1.5.5/run_2.12-1.5.5.jar)
WARNING: Please consider reporting this to the maintainers of sbt.TrapExit$
WARNING: System::setSecurityManager will be removed in a future release


 I have tried sbt 1.5.5 (the latest as of today) and it does NOT fix this
warning, but it is just a warning.