#-----------------------------------------------------------------------------
#
# jdk.conf - JDK configuration file for Oracle FCP IDE.
#
# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
#
# Relative paths are resolved against the parent directory of this file.
#
#-----------------------------------------------------------------------------

#AddVMOption -Xbootclasspath/p:../../ide/lib/awt-tree-lock-assert-1.5.jar
#AddVMOption -Xbootclasspath/p:../../ide/lib/awt-tree-lock-assert-1.6.jar

#
# Prevent Swing painting issues and hangs on some graphics cards and/or
# multiple monitor setups and/or Windows 7.
#
AddVMOption  -Dsun.java2d.noddraw=true


#
# Workaround for JDK bug 19787445, prevents NullPointer exceptions in this
# class due to a problem with the JIT in JDK 8
#
AddVMOption -XX:CompileCommand=quiet
AddVMOption -XX:CompileCommand=exclude,javax/swing/text/GlyphView,getBreakSpot

# There is still some code in the IDE that uses these private JDK packages
AddVM9OrHigherOption --add-exports=java.desktop/com.sun.java.swing.plaf.motif=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED

# The sun.awt export is for various code accessing AppContext
AddVM9OrHigherOption --add-exports=java.desktop/sun.awt=ALL-UNNAMED

# The com.sun.xml.internal.stream.events export is for SAXManifestParser and potentially other 
# areas using the SAX pasrer's AttributeImpl class.
AddVM9OrHigherOption --add-exports=java.xml/com.sun.xml.internal.stream.events=ALL-UNNAMED

# Various add exports that JDeveloper uses for the runtime
AddVM9OrHigherOption --add-exports=java.desktop/com.sun.beans.editors=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=java.desktop/java.awt.peer=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=java.desktop/sun.awt.im=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=java.desktop/sun.swing=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=java.management/sun.management=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED

# Add exports option JDeveloper needs for the GUI on various platforms
# Only Unix systems with uname Linux, Darwin (Mac) and SunOS (Solaris) are recognized
# If your Unix has a different uname, you might need to add an
# explicit AddVMOption --add-exports for the AWT implementation package
AddLinuxVM9OrHigherOption --add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED
AddMacVM9OrHigherOption --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED
AddSolarisVM9OrHigherOption --add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED

# Needed for version control
AddVM9OrHigherOption --add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=java.base/sun.security.util=ALL-UNNAMED

# Needed for Abbot
AddVM9OrHigherOption --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED

# Add modules option needed for various projects
AddVM9OrHigherOption --add-modules=java.activation
AddVM9OrHigherOption --add-modules=java.corba
AddVM9OrHigherOption --add-modules=java.transaction
AddVM9OrHigherOption --add-modules=java.xml.bind
AddVM9OrHigherOption --add-modules=java.xml.ws
AddVM9OrHigherOption --add-modules=jdk.jdi

# This option will show stacktraces when setAccessible fails
# In JDK9, setAccessible will fail for any module that forbids it,
# contrary to JDK8 where it only fails if the security manager
# forbids it
AddVM9OrHigherOption -Dsun.reflect.debugModuleAccessChecks=true

# Needed for audit-javac. Javac sometimes issues incomplete diagnostics
# and the only way to get more information is to read protected
# fields in supers of the diagnostic
AddVM9OrHigherOption --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
AddVM9OrHigherOption --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED

# SetAccessible is severely restricted in JDK9 and higher.
# The following options are needed to work-around this.
AddVM9OrHigherOption --add-opens=java.base/java.net=ALL-UNNAMED
AddVM9OrHigherOption --add-opens=java.base/java.lang=ALL-UNNAMED
AddVM9OrHigherOption --add-opens=java.base/java.util=ALL-UNNAMED
AddVM9OrHigherOption --add-opens=java.desktop/javax.swing=ALL-UNNAMED
AddVM9OrHigherOption --add-opens=java.desktop/java.awt.event=ALL-UNNAMED
AddVM9OrHigherOption --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED
AddVM9OrHigherOption --add-opens=java.logging/java.util.logging=ALL-UNNAMED

AddLinuxVM9OrHigherOption --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED
AddSolarisVM9OrHigherOption --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED
