# HG changeset patch # User František Kučera # Date 1599991295 -7200 # Node ID d8442b266ca81d4fd5d06d1b0fb60fe7f377ac64 # Parent a9d4a8d5c57f0498bc9884fee30fa51a1b0dd379 combatibility with Java 9+, Tested with Java 11; JAXB library diff -r a9d4a8d5c57f -r d8442b266ca8 distributions/debian/build.sh --- a/distributions/debian/build.sh Sat Jul 25 17:25:19 2020 +0200 +++ b/distributions/debian/build.sh Sun Sep 13 12:01:35 2020 +0200 @@ -50,7 +50,7 @@ Package: sql-dk Version: $VERSION Maintainer: $NAME -Depends: java7-runtime-headless | java7-runtime | java8-runtime-headless | java8-runtime +Depends: default-jre-headless (>= 2:1.8) | java8-runtime-headless, jaxb Suggests: libpostgresql-jdbc-java,libmysql-java Copyright: $COPYRIGHT_FILE Extra-Files: config.xsd, config.rnc, config.xsl diff -r a9d4a8d5c57f -r d8442b266ca8 java/sql-dk/pom.xml --- a/java/sql-dk/pom.xml Sat Jul 25 17:25:19 2020 +0200 +++ b/java/sql-dk/pom.xml Sun Sep 13 12:01:35 2020 +0200 @@ -15,6 +15,17 @@ + jakarta.xml.bind + jakarta.xml.bind-api + 2.3.3 + + + com.sun.xml.bind + jaxb-impl + 2.3.3 + runtime + + org.junit.jupiter junit-jupiter-engine ${junit.version} @@ -86,6 +97,22 @@ + + maven-dependency-plugin + 3.1.1 + + + process-sources + + copy-dependencies + + + ${project.build.directory}/lib + runtime + + + + diff -r a9d4a8d5c57f -r d8442b266ca8 scripts/sql-dk.sh --- a/scripts/sql-dk.sh Sat Jul 25 17:25:19 2020 +0200 +++ b/scripts/sql-dk.sh Sun Sep 13 12:01:35 2020 +0200 @@ -18,6 +18,24 @@ "/usr/share/java/mysql.jar" ); +# Standard libraries +[ -n "$STANDARD_LIB" ] || STANDARD_LIB=( + "/usr/share/java/jaxb-api.jar" + "/usr/share/java/jaxb-runtime.jar" +); +# JAXB library is needed since Java 9 (up to Java 8 it was part of the JRE). +# By default, we use JARs from the distribution. +# Some distributions might contain older versions of the JAXB library (2.3.0) +# that work but generate following waringns: +# WARNING: An illegal reflective access operation has occurred +# WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector (file:/usr/share/java/jaxb-runtime.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) +# WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector +# WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations +# WARNING: All illegal access operations will be denied in a future release +# In order to get rid of them, the user can use newer JARs from Maven that are copied into the java/sql-dk/target/lib/ directory during build. +# This is done by adding them in the STANDARD_LIB variable in his environment.sh file. + + # Additional JDBC drivers might be specified in CUSTOM_JDBC array # Plugins (formatters etc.) might be specified in PLUGINS array @@ -26,7 +44,7 @@ CLASS_PATH="$JAR"; -for e in "${STANDARD_JDBC[@]}" "${CUSTOM_JDBC[@]}" "${PLUGINS[@]}"; do +for e in "${CUSTOM_JDBC[@]}" "${PLUGINS[@]}" "${STANDARD_JDBC[@]}" "${STANDARD_LIB[@]}"; do CLASS_PATH="$CLASS_PATH:$e"; done