cxbrooks / test

Second test for bugzilla to git
0 stars 0 forks source link

CapeCode fails to compile under JDK 1.9/Java 9 #17

Closed cxbrooks closed 6 years ago

cxbrooks commented 6 years ago

Note: the issue was created automatically with bugzilla2github tool

Original bug ID: BZ#548 From: @cxbrooks Reported version: unspecified CC: accessors-devel@terraswarm.org

cxbrooks commented 6 years ago

Java 1.9 has a new module system.

Some of the internal objects are not exported.

In particular, we are using jdk.nashorn.internal.objects.NativeArray, which is not exported.

There are other errors:

[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/actor/lib/jjs/HelperBase.java:41: error: package javax.xml.bind is not visible
[javac] import javax.xml.bind.DatatypeConverter;
[javac]                 ^
[javac]   (package javax.xml.bind is declared in module java.xml.bind, which is not in the module graph)
[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/actor/lib/jjs/HelperBase.java:44: error: package jdk.nashorn.internal.objects is not visible
[javac] import jdk.nashorn.internal.objects.NativeArray;
[javac]                            ^
[javac]   (package jdk.nashorn.internal.objects is declared in module jdk.scripting.nashorn, which does not export it to the unnamed module)
[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/actor/lib/jjs/modules/crypto/CryptoHelper.java:64: error: package javax.xml.bind is not visible
[javac] import javax.xml.bind.DatatypeConverter;
[javac]                 ^
[javac]   (package javax.xml.bind is declared in module java.xml.bind, which is not in the module graph)
[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/actor/lib/jjs/modules/crypto/CryptoHelper.java:67: error: package jdk.nashorn.internal.objects is not visible
[javac] import jdk.nashorn.internal.objects.NativeArray;
[javac]                            ^
[javac]   (package jdk.nashorn.internal.objects is declared in module jdk.scripting.nashorn, which does not export it to the unnamed module)
[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/copernicus/applet/JarSigner.java:61: error: cannot find symbol
[javac] import sun.misc.BASE64Encoder;
[javac]                ^
[javac]   symbol:   class BASE64Encoder
[javac]   location: package sun.misc
[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/copernicus/applet/JarSigner.java:62: error: package sun.security.util is not visible
[javac] import sun.security.util.ManifestDigester;
[javac]                    ^
[javac]   (package sun.security.util is declared in module java.base, which does not export it to the unnamed module)
[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/copernicus/applet/JarSigner.java:816: error: cannot find symbol
[javac]     private static BASE64Encoder _b64Encoder = new BASE64Encoder();
[javac]                    ^
[javac]   symbol:   class BASE64Encoder
[javac]   location: class JarSigner
[javac] /Users/cxh/src/ptII11.0.devel/ptolemy/media/AudioViewer.java:50: error: package sun.audio does not exist
[javac] import sun.audio.AudioPlayer;
[javac]                 ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 8 errors
[javac] 4 warnings
cxbrooks commented 6 years ago

As of r77111, Ptolemy II now compiles under Java 9.

build.xml.in: javac target now has @ JAVAC_COMPILERARG@ , which gets substituted

configure.in: If we are under Java 9 1) Set @ JAVAC_COMPILERARG@ to so that javax.xml.bind.DatatypeConverter can be found in jjs/HelperBase.java 2) Exclude ptolemy/copernicus/applet/ and ptolemy/media because they use sun internal classes

ptolemy/actor/lib/jjs/HelperBase.java: Exclude jdk.nashorn.internal.objects.NativeArray. This could cause troubles in the future.

ptolemy/actor/lib/jjs/modules/crypto/CryptoHelper.java: Exclude: jdk.nashorn.internal.objects.NativeArray. This could cause troubles in the future

ptolemy/gui/Top.java: Under Mac and Java 9, don't try to add Mac specific menus and bindings. I'll add a bug for this.

cxbrooks commented 6 years ago

Ptolemy II can compile with Java 9. The tests pass.

Closing this.