Mercurial > hg > release > icedtea-web-1.8
changeset 1461:a1070aa6e46f
made usable with jdk9 again
* acinclude.m4: IT_CHECK_FOR_CLASS removed no longer valid -Xmodule usage
* launcher/launchers.in: made immune to missing plugin jar
* netx/net/sourceforge/jnlp/jdk89acesses/SunMiscLauncher.java: moved to reflection, made javaws buildable under jdk9
author | Jiri Vanek <jvanek@redhat.com> |
---|---|
date | Wed, 19 Jul 2017 17:06:18 +0200 |
parents | ebb1725ebfd7 |
children | e543b472fd2c |
files | ChangeLog acinclude.m4 launcher/launchers.in netx/net/sourceforge/jnlp/jdk89acesses/SunMiscLauncher.java |
diffstat | 4 files changed, 24 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Jul 18 17:28:21 2017 +0200 +++ b/ChangeLog Wed Jul 19 17:06:18 2017 +0200 @@ -1,3 +1,11 @@ +2017-07-19 Jiri Vanek <jvanek@redhat.com> + + made usable with jdk9 again + * acinclude.m4: IT_CHECK_FOR_CLASS removed no longer valid -Xmodule usage + * launcher/launchers.in: made immune to missing plugin jar + * netx/net/sourceforge/jnlp/jdk89acesses/SunMiscLauncher.java: moved to reflection, made javaws buildable under jdk9 + + 2017-07-18 Jiri Vanek <jvanek@redhat.com> * netx/net/sourceforge/jnlp/security/dialogs/CertsInfoPane.java: HexEncoder loaded by reflection
--- a/acinclude.m4 Tue Jul 18 17:28:21 2017 +0200 +++ b/acinclude.m4 Wed Jul 19 17:06:18 2017 +0200 @@ -506,7 +506,6 @@ # fourth, optional is module MODULE_NAME="$4" if test -n "$MODULE_NAME" ; then - XMODULE="-Xmodule:$MODULE_NAME" PATCH_MODULE="--patch-module $MODULE_NAME=." fi PKGPATH=`echo $3 | sed "s;\\.;/;g" ` @@ -530,7 +529,7 @@ } ] EOF -if $JAVAC -cp . $XMODULE $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then +if $JAVAC $PATCH_MODULE -cp . $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then if $JAVA $PATCH_MODULE -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then it_cv_$1=yes; else
--- a/launcher/launchers.in Tue Jul 18 17:28:21 2017 +0200 +++ b/launcher/launchers.in Wed Jul 19 17:06:18 2017 +0200 @@ -89,10 +89,14 @@ k=$((k+1)) # jsobject must be pathched separately from plugin # otherwise netscape pkg would be shared by two modules, which is forbiden -COMMAND[k]="--patch-module" -k=$((k+1)) -COMMAND[k]="jdk.jsobject=@JSOBJECT_JAR@" -k=$((k+1)) +JSOBJECT_JAR=@JSOBJECT_JAR@ +# plugin jar may not be built +if [ ! "x$JSOBJECT_JAR" == "x" ] ; then + COMMAND[k]="--patch-module" + k=$((k+1)) + COMMAND[k]="jdk.jsobject=$JSOBJECT_JAR" + k=$((k+1)) +fi COMMAND[k]="--add-reads" k=$((k+1))
--- a/netx/net/sourceforge/jnlp/jdk89acesses/SunMiscLauncher.java Tue Jul 18 17:28:21 2017 +0200 +++ b/netx/net/sourceforge/jnlp/jdk89acesses/SunMiscLauncher.java Wed Jul 19 17:06:18 2017 +0200 @@ -32,6 +32,7 @@ statement from your version.*/ package net.sourceforge.jnlp.jdk89acesses; +import java.lang.reflect.Method; import javax.swing.ImageIcon; import net.sourceforge.jnlp.util.logging.OutputController; @@ -44,8 +45,12 @@ public static ImageIcon getSecureImageIcon(String resource) { try { - return new ImageIcon((new sun.misc.Launcher()).getClassLoader().getResource(resource)); - } catch (java.lang.NoClassDefFoundError ex) { + Class clazz = Class.forName("sun.misc.Launcher"); + Object obj = clazz.newInstance(); + Method m = clazz.getMethod("getClassLoader"); + ClassLoader cl = (ClassLoader) m.invoke(obj); + return new ImageIcon(cl.getResource(resource)); + } catch (Exception ex) { OutputController.getLogger().log(ex); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "sun.misc.Launcher not found. Running jdk9 or higher? Using unsecure BootClassLoader"); return new ImageIcon(ClassLoader.getSystemClassLoader().getParent().getResource(resource));