changeset 10886:0cd88e183e61 jdk-11+7

8195799: Use System logger instead of platform logger in javafx modules Reviewed-by: kcr, mchung, dfuchs, jvos
author aghaisas
date Tue, 27 Mar 2018 15:09:54 +0530
parents 018c75e3aad8
children 6c3c1c0c5a76 2c83d37f9435
files build.gradle buildSrc/addExports dependencies/java.base/module-info.java.extra modules/javafx.base/src/main/java/com/sun/javafx/binding/Logging.java modules/javafx.base/src/main/java/com/sun/javafx/binding/SelectBinding.java modules/javafx.base/src/main/java/com/sun/javafx/collections/ArrayListenerHelper.java modules/javafx.base/src/main/java/com/sun/javafx/collections/ListListenerHelper.java modules/javafx.base/src/main/java/com/sun/javafx/collections/MapListenerHelper.java modules/javafx.base/src/main/java/com/sun/javafx/collections/SetListenerHelper.java modules/javafx.base/src/main/java/com/sun/javafx/logging/PlatformLogger.java modules/javafx.base/src/main/java/module-info.java modules/javafx.base/src/test/addExports modules/javafx.base/src/test/java/test/com/sun/javafx/binding/SelectBindingTest.java modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/Logging.java modules/javafx.controls/src/main/java/javafx/scene/control/Control.java modules/javafx.controls/src/main/java/javafx/scene/control/PopupControl.java modules/javafx.controls/src/main/java/javafx/scene/control/TableView.java modules/javafx.controls/src/main/java/javafx/scene/control/cell/PropertyValueFactory.java modules/javafx.controls/src/main/java/javafx/scene/control/cell/TreeItemPropertyValueFactory.java modules/javafx.controls/src/main/java/javafx/scene/control/skin/VirtualFlow.java modules/javafx.controls/src/test/addExports modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java modules/javafx.graphics/src/main/java/com/sun/javafx/css/StyleManager.java modules/javafx.graphics/src/main/java/com/sun/javafx/scene/layout/region/Margins.java modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/PrismImageLoader2.java modules/javafx.graphics/src/main/java/com/sun/javafx/util/Logging.java modules/javafx.graphics/src/main/java/com/sun/marlin/MarlinUtils.java modules/javafx.graphics/src/main/java/com/sun/prism/d3d/D3DPhongMaterial.java modules/javafx.graphics/src/main/java/com/sun/prism/es2/ES2PhongMaterial.java modules/javafx.graphics/src/main/java/com/sun/prism/impl/BaseMesh.java modules/javafx.graphics/src/main/java/javafx/concurrent/Service.java modules/javafx.graphics/src/main/java/javafx/css/CssParser.java modules/javafx.graphics/src/main/java/javafx/css/StyleConverter.java modules/javafx.graphics/src/main/java/javafx/css/converter/EnumConverter.java modules/javafx.graphics/src/main/java/javafx/css/converter/URLConverter.java modules/javafx.graphics/src/main/java/javafx/scene/Camera.java modules/javafx.graphics/src/main/java/javafx/scene/CssStyleHelper.java modules/javafx.graphics/src/main/java/javafx/scene/LightBase.java modules/javafx.graphics/src/main/java/javafx/scene/Node.java modules/javafx.graphics/src/main/java/javafx/scene/PerspectiveCamera.java modules/javafx.graphics/src/main/java/javafx/scene/Scene.java modules/javafx.graphics/src/main/java/javafx/scene/SnapshotParameters.java modules/javafx.graphics/src/main/java/javafx/scene/SubScene.java modules/javafx.graphics/src/main/java/javafx/scene/layout/Region.java modules/javafx.graphics/src/main/java/javafx/scene/paint/Material.java modules/javafx.graphics/src/main/java/javafx/scene/shape/Mesh.java modules/javafx.graphics/src/main/java/javafx/scene/shape/Shape3D.java modules/javafx.graphics/src/main/java/javafx/scene/shape/TriangleMesh.java modules/javafx.graphics/src/test/addExports modules/javafx.graphics/src/test/java/test/javafx/css/HonorDeveloperSettingsTest.java modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java tests/system/src/test/addExports
diffstat 53 files changed, 401 insertions(+), 130 deletions(-) [+]
line wrap: on
line diff
--- a/build.gradle	Fri Mar 23 16:46:29 2018 -0700
+++ b/build.gradle	Tue Mar 27 15:09:54 2018 +0530
@@ -1581,16 +1581,11 @@
 
 // Qualified exports needed by javafx.* modules (excluding javafx.swing)
 def qualExportsCore = [
-    "--add-exports=java.base/sun.util.logging=javafx.base",
-    "--add-exports=java.base/sun.util.logging=javafx.controls",
-    "--add-exports=java.base/sun.util.logging=javafx.fxml",
-    "--add-exports=java.base/sun.util.logging=javafx.graphics",
     "--add-exports=java.desktop/sun.print=javafx.graphics",
 ]
 
 // Qualified exports needed by javafx.swing
 def qualExportsSwing = [
-        "--add-exports=java.base/sun.util.logging=javafx.swing",
         "--add-exports=java.desktop/java.awt.dnd.peer=javafx.swing",
         "--add-exports=java.desktop/sun.awt=javafx.swing",
         "--add-exports=java.desktop/sun.awt.dnd=javafx.swing",
@@ -2130,9 +2125,6 @@
             "-DCSS_META_DATA_TEST_DIR=$cssDir"
     }
 
-    List<String> css2BinAddExports = [
-            '--add-exports=java.base/sun.util.logging=javafx.graphics',
-            ]
     def modulePath = "${project.sourceSets.main.java.outputDir}"
     modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.graphics/build/classes/java/main"
     modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/java/main"
@@ -2149,7 +2141,6 @@
                 jvmArgs += patchModuleArgs
                 jvmArgs += "--module-path=$modulePath"
                 jvmArgs += "--add-modules=javafx.graphics"
-                jvmArgs += css2BinAddExports
                 main = "com.sun.javafx.css.parser.Css2Bin"
                 args css
             }
--- a/buildSrc/addExports	Fri Mar 23 16:46:29 2018 -0700
+++ b/buildSrc/addExports	Tue Mar 27 15:09:54 2018 +0530
@@ -9,6 +9,10 @@
 #
 # Reads for JDK-8195801
 --add-reads=javafx.graphics=jdk.unsupported
+# Qualified exports for JDK-8195799
+--add-exports=javafx.base/com.sun.javafx.logging=javafx.controls
+--add-exports=javafx.base/com.sun.javafx.logging=javafx.fxml
+--add-exports=javafx.base/com.sun.javafx.logging=javafx.swing
 #
 # ----------------------------------------------------------------------
 #
--- a/dependencies/java.base/module-info.java.extra	Fri Mar 23 16:46:29 2018 -0700
+++ b/dependencies/java.base/module-info.java.extra	Tue Mar 27 15:09:54 2018 +0530
@@ -23,11 +23,6 @@
  * questions.
  */
 
-exports sun.util.logging to javafx.base;
-exports sun.util.logging to javafx.controls;
-exports sun.util.logging to javafx.fxml;
-exports sun.util.logging to javafx.graphics;
-exports sun.util.logging to javafx.swing;
 exports sun.security.pkcs to jdk.packager;
 exports sun.security.timestamp to jdk.packager;
 exports sun.security.x509 to jdk.packager;
--- a/modules/javafx.base/src/main/java/com/sun/javafx/binding/Logging.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/main/java/com/sun/javafx/binding/Logging.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 package com.sun.javafx.binding;
 
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 public class Logging {
 
--- a/modules/javafx.base/src/main/java/com/sun/javafx/binding/SelectBinding.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/main/java/com/sun/javafx/binding/SelectBinding.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,8 +43,8 @@
 import javafx.collections.ObservableList;
 
 import com.sun.javafx.property.JavaBeanAccessHelper;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 import com.sun.javafx.property.PropertyReference;
 import java.util.Arrays;
 
--- a/modules/javafx.base/src/main/java/com/sun/javafx/collections/ArrayListenerHelper.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/main/java/com/sun/javafx/collections/ArrayListenerHelper.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
 import javafx.beans.InvalidationListener;
 import javafx.collections.ArrayChangeListener;
 import javafx.collections.ObservableArray;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  */
--- a/modules/javafx.base/src/main/java/com/sun/javafx/collections/ListListenerHelper.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/main/java/com/sun/javafx/collections/ListListenerHelper.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,7 @@
 import com.sun.javafx.binding.ExpressionHelperBase;
 import javafx.beans.InvalidationListener;
 import javafx.collections.ListChangeListener;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 import java.util.Arrays;
 
--- a/modules/javafx.base/src/main/java/com/sun/javafx/collections/MapListenerHelper.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/main/java/com/sun/javafx/collections/MapListenerHelper.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,7 @@
 import com.sun.javafx.binding.ExpressionHelperBase;
 import javafx.beans.InvalidationListener;
 import javafx.collections.MapChangeListener;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 import java.util.Arrays;
 
--- a/modules/javafx.base/src/main/java/com/sun/javafx/collections/SetListenerHelper.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/main/java/com/sun/javafx/collections/SetListenerHelper.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,7 @@
 import com.sun.javafx.binding.ExpressionHelperBase;
 import javafx.beans.InvalidationListener;
 import javafx.collections.SetChangeListener;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 import java.util.Arrays;
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/javafx.base/src/main/java/com/sun/javafx/logging/PlatformLogger.java	Tue Mar 27 15:09:54 2018 +0530
@@ -0,0 +1,281 @@
+/*
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.javafx.logging;
+
+import java.lang.ref.WeakReference;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+/**
+ * Platform logger provides an API for the JavaFX components to log
+ * messages. It is an internal logger intended to be used by JavaFX modules.
+ *
+ * The PlatformLogger uses an underlying System.Logger
+ * obtained by calling {@link java.lang.System.Logger#getLogger(String)}
+ *
+ * PlatformLogger implements System.Logger as to facilitiate logging of
+ * calling class and method.
+ * Note : JDK internal loggers know to skip any calls from System.Logger
+ * classes when looking for the calling class / method.
+ */
+public class PlatformLogger implements System.Logger {
+
+    /**
+     * PlatformLogger logging levels.
+     */
+    public static enum Level {
+        // The name and value must match that of {@code java.lang.System.Level}s.
+        // Declare in ascending order of the given value
+        ALL(System.Logger.Level.ALL),
+        FINEST(System.Logger.Level.TRACE),
+        FINER(System.Logger.Level.TRACE),
+        FINE(System.Logger.Level.DEBUG),
+        INFO(System.Logger.Level.INFO),
+        WARNING(System.Logger.Level.WARNING),
+        SEVERE(System.Logger.Level.ERROR),
+        OFF(System.Logger.Level.OFF);
+
+        final System.Logger.Level systemLevel;
+        Level(System.Logger.Level systemLevel) {
+            this.systemLevel = systemLevel;
+        }
+    }
+
+    private System.Logger.Level getSystemLoggerLevel(Level l) {
+        switch (l) {
+            case ALL :    return System.Logger.Level.ALL;
+            case FINEST:  return System.Logger.Level.TRACE;
+            case FINER:   return System.Logger.Level.TRACE;
+            case FINE:    return System.Logger.Level.DEBUG;
+            case INFO:    return System.Logger.Level.INFO;
+            case WARNING: return System.Logger.Level.WARNING;
+            case SEVERE:  return System.Logger.Level.ERROR;
+            case OFF:     return System.Logger.Level.OFF;
+            default :     return System.Logger.Level.ALL;
+        }
+    }
+
+
+    // Table of known loggers.  Maps names to PlatformLoggers.
+    private static final Map<String,WeakReference<PlatformLogger>> loggers =
+        new HashMap<>();
+
+    /**
+     * Returns a PlatformLogger of a given name.
+     * @param name the name of the logger
+     * @return a PlatformLogger
+     */
+    public static synchronized PlatformLogger getLogger(String name) {
+        PlatformLogger log = null;
+        WeakReference<PlatformLogger> ref = loggers.get(name);
+        if (ref != null) {
+            log = ref.get();
+        }
+        if (log == null) {
+            log = new PlatformLogger(System.getLogger(name));
+            loggers.put(name, new WeakReference<>(log));
+        }
+        return log;
+    }
+
+
+    private final System.Logger loggerProxy;
+    private PlatformLogger(System.Logger loggerProxy) {
+        this.loggerProxy = loggerProxy;
+    }
+
+    // ------------------------------------------------------------------------
+    //          From System.Logger interface
+    // ------------------------------------------------------------------------
+
+    /**
+     * Gets the name for this platform logger.
+     * @return the name of the platform logger.
+     */
+    @Override
+    public String getName() {
+       throw new UnsupportedOperationException("not implemented");
+    }
+
+    @Override
+    public boolean isLoggable(System.Logger.Level level) {
+        throw new UnsupportedOperationException("not implemented");
+    }
+
+    @Override
+    public void log(System.Logger.Level level, ResourceBundle bundle, String format, Object... params) {
+        throw new UnsupportedOperationException("not implemented");
+    }
+
+    @Override
+    public void log(System.Logger.Level level, ResourceBundle bundle, String msg, Throwable thrown) {
+        throw new UnsupportedOperationException("not implemented");
+    }
+
+    // ------------------------------------------------------------------------
+
+
+    /**
+     * Returns true if a message of the given level would actually
+     * be logged by this logger.
+     * @param level the level
+     * @return whether a message of that level would be logged
+     */
+    public boolean isLoggable(Level level) {
+        if (level == null) {
+            throw new NullPointerException();
+        }
+
+        return loggerProxy.isLoggable(getSystemLoggerLevel(level));
+    }
+
+    /**
+     * Logs a SEVERE message.
+     * @param msg the message
+     */
+    public void severe(String msg) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.ERROR, msg, (Object[])null);
+    }
+
+    public void severe(String msg, Throwable t) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.ERROR, msg, t);
+    }
+
+    public void severe(String msg, Object... params) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.ERROR, msg, params);
+    }
+
+    /**
+     * Logs a WARNING message.
+     * @param msg the message
+     */
+    public void warning(String msg) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.WARNING, msg, (Object[])null);
+    }
+
+    public void warning(String msg, Throwable t) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.WARNING, msg, t);
+    }
+
+    public void warning(String msg, Object... params) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.WARNING, msg, params);
+    }
+
+    /**
+     * Logs an INFO message.
+     * @param msg the message
+     */
+    public void info(String msg) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.INFO, msg, (Object[])null);
+    }
+
+    public void info(String msg, Throwable t) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.INFO, msg, t);
+    }
+
+    public void info(String msg, Object... params) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.INFO, msg, params);
+    }
+
+    /**
+     * Logs a FINE message.
+     * @param msg the message
+     */
+    public void fine(String msg) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.DEBUG, msg, (Object[])null);
+    }
+
+    public void fine(String msg, Throwable t) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.DEBUG, msg, t);
+    }
+
+    public void fine(String msg, Object... params) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.DEBUG, msg, params);
+    }
+
+    /**
+     * Logs a FINER message.
+     * @param msg the message
+     */
+    public void finer(String msg) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.TRACE, msg, (Object[])null);
+    }
+
+    public void finer(String msg, Throwable t) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.TRACE, msg, t);
+    }
+
+    public void finer(String msg, Object... params) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.TRACE, msg, params);
+    }
+
+    /**
+     * Logs a FINEST message.
+     * @param msg the message
+     */
+    public void finest(String msg) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.TRACE, msg, (Object[])null);
+    }
+
+    public void finest(String msg, Throwable t) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.TRACE, msg, t);
+    }
+
+    public void finest(String msg, Object... params) {
+        if (!loggingEnabled) return;
+        loggerProxy.log(System.Logger.Level.TRACE, msg, params);
+    }
+
+    // Methods for unit tests
+    private boolean loggingEnabled = true;
+    public void enableLogging() {
+        loggingEnabled = true;
+    };
+
+    public void disableLogging() {
+        loggingEnabled = false;
+    }
+}
+
--- a/modules/javafx.base/src/main/java/module-info.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/main/java/module-info.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,7 +65,10 @@
         javafx.controls,
         javafx.graphics;
     exports com.sun.javafx.logging to
-        javafx.graphics;
+        javafx.controls,
+        javafx.graphics,
+        javafx.fxml,
+        javafx.swing;
     exports com.sun.javafx.property to
         javafx.controls;
     exports com.sun.javafx.reflect to
--- a/modules/javafx.base/src/test/addExports	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/test/addExports	Tue Mar 27 15:09:54 2018 +0530
@@ -5,8 +5,8 @@
 --add-exports javafx.base/com.sun.javafx.property.adapter=ALL-UNNAMED
 --add-exports javafx.base/com.sun.javafx.property=ALL-UNNAMED
 --add-exports javafx.base/com.sun.javafx.runtime=ALL-UNNAMED
+--add-exports javafx.base/com.sun.javafx.logging=ALL-UNNAMED
 --add-opens javafx.base/javafx.beans.property=ALL-UNNAMED
 --add-opens javafx.base/com.sun.javafx.binding=ALL-UNNAMED
 --add-opens javafx.base/javafx.beans.value=ALL-UNNAMED
 #
---add-exports java.base/sun.util.logging=ALL-UNNAMED
--- a/modules/javafx.base/src/test/java/test/com/sun/javafx/binding/SelectBindingTest.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.base/src/test/java/test/com/sun/javafx/binding/SelectBindingTest.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@
 import javafx.beans.binding.StringBinding;
 import test.javafx.binding.Variable;
 import javafx.collections.ObservableList;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger.Level;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -108,6 +108,7 @@
 
     @BeforeClass
     public static void setUpClass() {
+        System.err.println("SelectBindingTest : log messages are expected from these tests.");
         log.start();
     }
 
@@ -557,8 +558,6 @@
     @Test
     public void stressTestRandomOperationsResultInCorrectListenersInstalled() {
 
-        final Level logLevel = Logging.getLogger().level();
-        Logging.getLogger().setLevel(Level.SEVERE);
         List<String> steps = new ArrayList<String>();
 
         Random rand = new Random(System.currentTimeMillis());
@@ -644,7 +643,6 @@
                     fail("Should not reach here");
             }
         }
-        Logging.getLogger().setLevel(logLevel);
     }
 
     private void printSteps(int iteration, List<String> steps) {
--- a/modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/Logging.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/Logging.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 package com.sun.javafx.scene.control;
 
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * Holds PlatformLoggers to use for logging javafx-ui-controls related things.
--- a/modules/javafx.controls/src/main/java/javafx/scene/control/Control.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/main/java/javafx/scene/control/Control.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,8 +58,8 @@
 import com.sun.javafx.scene.control.Logging;
 import javafx.css.Styleable;
 import javafx.css.StyleableProperty;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 
 /**
--- a/modules/javafx.controls/src/main/java/javafx/scene/control/PopupControl.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/main/java/javafx/scene/control/PopupControl.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -59,8 +59,8 @@
 import com.sun.javafx.stage.PopupWindowHelper;
 import javafx.css.StyleableProperty;
 import javafx.stage.Window;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 /**
  * An extension of PopupWindow that allows for CSS styling.
--- a/modules/javafx.controls/src/main/java/javafx/scene/control/TableView.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/main/java/javafx/scene/control/TableView.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
 import java.util.Set;
 import java.util.WeakHashMap;
 
+import com.sun.javafx.logging.PlatformLogger.Level;
 import com.sun.javafx.scene.control.Logging;
 import com.sun.javafx.scene.control.Properties;
 import com.sun.javafx.scene.control.SelectedCellsMap;
@@ -456,7 +457,7 @@
                     if (! comparatorsBound) {
                         // this isn't a good situation to be in, so lets log it
                         // out in case the developer is unaware
-                        if (Logging.getControlsLogger().isEnabled()) {
+                        if (Logging.getControlsLogger().isLoggable(Level.INFO)) {
                             String s = "TableView items list is a SortedList, but the SortedList " +
                                     "comparator should be bound to the TableView comparator for " +
                                     "sorting to be enabled (e.g. " +
--- a/modules/javafx.controls/src/main/java/javafx/scene/control/cell/PropertyValueFactory.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/main/java/javafx/scene/control/cell/PropertyValueFactory.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,8 +35,8 @@
 import javafx.scene.control.TableView;
 import javafx.util.Callback;
 
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 import com.sun.javafx.property.PropertyReference;
 import com.sun.javafx.scene.control.Logging;
 
--- a/modules/javafx.controls/src/main/java/javafx/scene/control/cell/TreeItemPropertyValueFactory.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/main/java/javafx/scene/control/cell/TreeItemPropertyValueFactory.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,8 +37,8 @@
 import javafx.util.Callback;
 import com.sun.javafx.property.PropertyReference;
 import com.sun.javafx.scene.control.Logging;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 
 /**
--- a/modules/javafx.controls/src/main/java/javafx/scene/control/skin/VirtualFlow.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/main/java/javafx/scene/control/skin/VirtualFlow.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,7 @@
 import javafx.scene.shape.Rectangle;
 import javafx.util.Callback;
 import javafx.util.Duration;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 import java.util.AbstractList;
 import java.util.ArrayList;
--- a/modules/javafx.controls/src/test/addExports	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/test/addExports	Tue Mar 27 15:09:54 2018 +0530
@@ -1,4 +1,3 @@
---add-exports java.base/sun.util.logging=ALL-UNNAMED
 #
 --add-exports javafx.base/com.sun.javafx=ALL-UNNAMED
 --add-exports javafx.base/com.sun.javafx.binding=ALL-UNNAMED
@@ -7,6 +6,7 @@
 --add-exports javafx.base/com.sun.javafx.property=ALL-UNNAMED
 --add-opens javafx.base/javafx.beans.property=ALL-UNNAMED
 --add-opens javafx.base/com.sun.javafx.binding=ALL-UNNAMED
+--add-exports javafx.base/com.sun.javafx.logging=ALL-UNNAMED
 #
 --add-exports javafx.graphics/com.sun.javafx.application=ALL-UNNAMED
 --add-exports javafx.graphics/com.sun.javafx.font=ALL-UNNAMED
--- a/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.controls/src/test/java/test/javafx/scene/control/ControlTest.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,8 +54,8 @@
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 import static org.junit.Assert.*;
 
@@ -106,14 +106,12 @@
 
     private void disableLogging() {
         final PlatformLogger logger = Logging.getControlsLogger();
-        originalLogLevel = logger.level();
-        logger.setLevel(Level.OFF);
+        logger.disableLogging();
     }
 
     private void enableLogging() {
         final PlatformLogger logger = Logging.getControlsLogger();
-//        logger.setLevel(originalLogLevel);
-        logger.setLevel(Level.FINE);
+        logger.enableLogging();
     }
 
     @Test public void focusTraversableIsTrueByDefault() {
--- a/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java	Tue Mar 27 15:09:54 2018 +0530
@@ -39,7 +39,7 @@
 import com.sun.javafx.util.Logging;
 import com.sun.glass.utils.NativeLibLoader;
 import com.sun.prism.impl.PrismSettings;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 import java.io.File;
 import java.lang.reflect.Method;
--- a/modules/javafx.graphics/src/main/java/com/sun/javafx/css/StyleManager.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/javafx/css/StyleManager.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,8 +48,8 @@
 import javafx.scene.layout.Region;
 import javafx.scene.text.Font;
 import javafx.stage.Window;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 import java.io.FileNotFoundException;
 import java.io.FilePermission;
--- a/modules/javafx.graphics/src/main/java/com/sun/javafx/scene/layout/region/Margins.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/javafx/scene/layout/region/Margins.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,8 +31,8 @@
 import javafx.css.SizeUnits;
 import javafx.css.ParsedValue;
 import javafx.css.StyleConverter;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 /**
  * Similar to Insets but with flag denoting values are proportional.
--- a/modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/PrismImageLoader2.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/PrismImageLoader2.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 class PrismImageLoader2 implements com.sun.javafx.tk.ImageLoader {
 
--- a/modules/javafx.graphics/src/main/java/com/sun/javafx/util/Logging.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/javafx/util/Logging.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 package com.sun.javafx.util;
 
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * Holds PlatformLoggers to use for logging javafx-ui-common related things.
--- a/modules/javafx.graphics/src/main/java/com/sun/marlin/MarlinUtils.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/marlin/MarlinUtils.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,11 @@
 
 public final class MarlinUtils {
     // Marlin logger
-    private static final sun.util.logging.PlatformLogger LOG;
+    private static final com.sun.javafx.logging.PlatformLogger LOG;
 
     static {
         if (MarlinConst.USE_LOGGER) {
-            LOG = sun.util.logging.PlatformLogger.getLogger("prism.marlin");
+            LOG = com.sun.javafx.logging.PlatformLogger.getLogger("prism.marlin");
         } else {
             LOG = null;
         }
--- a/modules/javafx.graphics/src/main/java/com/sun/prism/d3d/D3DPhongMaterial.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/prism/d3d/D3DPhongMaterial.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
 import com.sun.prism.TextureMap;
 import com.sun.prism.impl.BaseGraphicsResource;
 import com.sun.prism.impl.Disposer;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * TODO: 3D - Need documentation
--- a/modules/javafx.graphics/src/main/java/com/sun/prism/es2/ES2PhongMaterial.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/prism/es2/ES2PhongMaterial.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,7 @@
 import com.sun.prism.impl.BaseGraphicsResource;
 import com.sun.prism.impl.Disposer;
 import com.sun.prism.paint.Color;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * TODO: 3D - Need documentation
--- a/modules/javafx.graphics/src/main/java/com/sun/prism/impl/BaseMesh.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/com/sun/prism/impl/BaseMesh.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,7 @@
 import java.util.Arrays;
 import java.util.HashMap;
 import javafx.scene.shape.VertexFormat;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * TODO: 3D - Need documentation
--- a/modules/javafx.graphics/src/main/java/javafx/concurrent/Service.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/concurrent/Service.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,7 +54,7 @@
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 import static javafx.concurrent.WorkerStateEvent.WORKER_STATE_CANCELLED;
 import static javafx.concurrent.WorkerStateEvent.WORKER_STATE_FAILED;
 import static javafx.concurrent.WorkerStateEvent.WORKER_STATE_READY;
--- a/modules/javafx.graphics/src/main/java/javafx/css/CssParser.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/css/CssParser.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -84,8 +84,9 @@
 import javafx.scene.text.FontPosture;
 import javafx.scene.text.FontWeight;
 import javafx.util.Duration;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
+
 
 import java.io.BufferedReader;
 import java.io.CharArrayReader;
--- a/modules/javafx.graphics/src/main/java/javafx/css/StyleConverter.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/css/StyleConverter.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,8 +49,8 @@
 
 import com.sun.javafx.scene.layout.region.CornerRadiiConverter;
 import com.sun.javafx.util.Logging;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
--- a/modules/javafx.graphics/src/main/java/javafx/css/converter/EnumConverter.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/css/converter/EnumConverter.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,8 +29,8 @@
 import javafx.css.ParsedValue;
 import javafx.css.StyleConverter;
 import javafx.scene.text.Font;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
--- a/modules/javafx.graphics/src/main/java/javafx/css/converter/URLConverter.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/css/converter/URLConverter.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
 import javafx.css.ParsedValue;
 import javafx.css.StyleConverter;
 import javafx.scene.text.Font;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 import java.net.MalformedURLException;
 import java.net.URI;
--- a/modules/javafx.graphics/src/main/java/javafx/scene/Camera.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/Camera.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,7 @@
 import com.sun.javafx.scene.NodeHelper;
 import com.sun.javafx.scene.transform.TransformHelper;
 import com.sun.javafx.sg.prism.NGCamera;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 
 /**
--- a/modules/javafx.graphics/src/main/java/javafx/scene/CssStyleHelper.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/CssStyleHelper.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,8 +66,8 @@
 import com.sun.javafx.util.Logging;
 import com.sun.javafx.util.Utils;
 
-import sun.util.logging.PlatformLogger.Level;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 import static com.sun.javafx.css.CalculatedValue.*;
 
--- a/modules/javafx.graphics/src/main/java/javafx/scene/LightBase.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/LightBase.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,7 +48,7 @@
 import javafx.collections.ObservableList;
 import javafx.scene.paint.Color;
 import javafx.scene.shape.Shape3D;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * The {@code LightBase} class provides definitions of common properties for
--- a/modules/javafx.graphics/src/main/java/javafx/scene/Node.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/Node.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -159,8 +159,8 @@
 import com.sun.scenario.effect.EffectHelper;
 
 import javafx.scene.shape.Shape3D;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 /**
  * Base class for scene graph nodes. A scene graph is a set of tree data structures
--- a/modules/javafx.graphics/src/main/java/javafx/scene/PerspectiveCamera.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/PerspectiveCamera.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,7 @@
 import javafx.beans.property.DoubleProperty;
 import javafx.beans.property.SimpleBooleanProperty;
 import javafx.beans.property.SimpleDoubleProperty;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 
 
--- a/modules/javafx.graphics/src/main/java/javafx/scene/Scene.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/Scene.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -80,8 +80,8 @@
 import javafx.stage.Window;
 import javafx.util.Callback;
 import javafx.util.Duration;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 import java.security.AccessControlContext;
 import java.security.AccessController;
--- a/modules/javafx.graphics/src/main/java/javafx/scene/SnapshotParameters.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/SnapshotParameters.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,7 @@
 import javafx.geometry.Rectangle2D;
 import javafx.scene.paint.Paint;
 import javafx.scene.transform.Transform;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * Parameters used to specify the rendering attributes for Node snapshot.
--- a/modules/javafx.graphics/src/main/java/javafx/scene/SubScene.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/SubScene.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,7 +55,7 @@
 import com.sun.javafx.sg.prism.NGSubScene;
 import com.sun.javafx.tk.Toolkit;
 
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * The {@code SubScene} class is the container for content in a scene graph.
--- a/modules/javafx.graphics/src/main/java/javafx/scene/layout/Region.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/layout/Region.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -83,8 +83,8 @@
 import com.sun.javafx.tk.Toolkit;
 import javafx.scene.Scene;
 import javafx.stage.Window;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 /**
  * Region is the base class for all JavaFX Node-based UI Controls, and all layout containers.
--- a/modules/javafx.graphics/src/main/java/javafx/scene/paint/Material.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/paint/Material.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
 import javafx.application.Platform;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.SimpleBooleanProperty;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * Base class for representing the material of a 3D surface.
--- a/modules/javafx.graphics/src/main/java/javafx/scene/shape/Mesh.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/shape/Mesh.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,7 @@
 import javafx.application.Platform;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.SimpleBooleanProperty;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * Base class for representing a 3D geometric surface.
--- a/modules/javafx.graphics/src/main/java/javafx/scene/shape/Shape3D.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/shape/Shape3D.java	Tue Mar 27 15:09:54 2018 +0530
@@ -42,7 +42,7 @@
 import javafx.scene.Node;
 import javafx.scene.paint.Material;
 import javafx.scene.paint.PhongMaterial;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 
 /**
--- a/modules/javafx.graphics/src/main/java/javafx/scene/shape/TriangleMesh.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/main/java/javafx/scene/shape/TriangleMesh.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,7 +49,7 @@
 import javafx.scene.transform.Affine;
 import javafx.scene.transform.NonInvertibleTransformException;
 import javafx.scene.transform.Rotate;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * Defines a 3D triangle mesh that consists of its associated {@code VertexFormat}
--- a/modules/javafx.graphics/src/test/addExports	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/test/addExports	Tue Mar 27 15:09:54 2018 +0530
@@ -2,6 +2,7 @@
 --add-exports javafx.base/com.sun.javafx.property=ALL-UNNAMED
 --add-exports javafx.base/com.sun.javafx=ALL-UNNAMED
 --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED
+--add-exports javafx.base/com.sun.javafx.logging=ALL-UNNAMED
 #
 --add-exports javafx.graphics/com.sun.glass.ui=ALL-UNNAMED
 --add-exports javafx.graphics/com.sun.javafx.animation=ALL-UNNAMED
@@ -47,7 +48,6 @@
 --add-opens javafx.graphics/javafx.scene=ALL-UNNAMED
 --add-opens javafx.graphics/javafx.scene.layout=ALL-UNNAMED
 #
---add-exports java.base/sun.util.logging=ALL-UNNAMED
 # compile time additions
 --add-exports=javafx.base/com.sun.javafx.runtime=ALL-UNNAMED
 --add-exports=javafx.graphics/com.sun.javafx.cursor=ALL-UNNAMED
--- a/modules/javafx.graphics/src/test/java/test/javafx/css/HonorDeveloperSettingsTest.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.graphics/src/test/java/test/javafx/css/HonorDeveloperSettingsTest.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@
 import com.sun.javafx.util.Logging;
 import org.junit.Before;
 import org.junit.Test;
-import sun.util.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger;
 
 /**
  * AKA: RT-7401. Tests that the pattern used works by testing opacity
--- a/modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java	Fri Mar 23 16:46:29 2018 -0700
+++ b/modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java	Tue Mar 27 15:09:54 2018 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,8 +81,8 @@
 import sun.awt.SunToolkit;
 import sun.java2d.SunGraphics2D;
 import sun.java2d.SurfaceData;
-import sun.util.logging.PlatformLogger;
-import sun.util.logging.PlatformLogger.Level;
+import com.sun.javafx.logging.PlatformLogger;
+import com.sun.javafx.logging.PlatformLogger.Level;
 
 /**
 * {@code JFXPanel} is a component to embed JavaFX content into
--- a/tests/system/src/test/addExports	Fri Mar 23 16:46:29 2018 -0700
+++ b/tests/system/src/test/addExports	Tue Mar 27 15:09:54 2018 +0530
@@ -1,4 +1,3 @@
---add-exports java.base/sun.util.logging=ALL-UNNAMED
 #
 --add-exports javafx.base/com.sun.javafx=ALL-UNNAMED
 #