8222563: Remove terminally deprecated method netscape.javascript.JSObject::getWindow
authorkcr
Tue, 25 Jun 2019 14:27:31 -0700
changeset 57521 d0c2e34bae88
parent 57520 cd7c66f9dd38
child 57522 af678f2593e2
8222563: Remove terminally deprecated method netscape.javascript.JSObject::getWindow Reviewed-by: prr, herrick
src/jdk.jsobject/share/classes/jdk/internal/netscape/javascript/spi/JSObjectProvider.java
src/jdk.jsobject/share/classes/module-info.java
src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java
test/jdk/jdk/modules/etc/JdkQualifiedExportTest.java
--- a/src/jdk.jsobject/share/classes/jdk/internal/netscape/javascript/spi/JSObjectProvider.java	Tue Jun 25 14:13:33 2019 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2016, 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 jdk.internal.netscape.javascript.spi;
-
-import java.applet.Applet;
-import netscape.javascript.JSException;
-import netscape.javascript.JSObject;
-
-@SuppressWarnings("deprecation")
-public interface JSObjectProvider {
-    /**
-     * Return a JSObject for the window containing the given applet.
-     * Implementations of this class should return null if not connected to a
-     * browser, for example, when running in AppletViewer.
-     *
-     * @param applet The applet.
-     * @return JSObject for the window containing the given applet or null if we
-     * are not connected to a browser.
-     * @throws JSException when an error is encountered.
-     */
-    public JSObject getWindow(Applet applet) throws JSException;
-}
--- a/src/jdk.jsobject/share/classes/module-info.java	Tue Jun 25 14:13:33 2019 +0530
+++ b/src/jdk.jsobject/share/classes/module-info.java	Tue Jun 25 14:27:31 2019 -0700
@@ -30,9 +30,5 @@
  * @since 9
  */
 module jdk.jsobject {
-    requires java.desktop;
-
     exports netscape.javascript;
-
-    uses jdk.internal.netscape.javascript.spi.JSObjectProvider;
 }
--- a/src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java	Tue Jun 25 14:13:33 2019 +0530
+++ b/src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java	Tue Jun 25 14:27:31 2019 -0700
@@ -25,8 +25,6 @@
 
 package netscape.javascript;
 
-import jdk.internal.netscape.javascript.spi.JSObjectProvider;
-import java.applet.Applet;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.Iterator;
@@ -139,52 +137,4 @@
      */
     public abstract void setSlot(int index, Object value) throws JSException;
 
-    /**
-     * Returns a JSObject for the window containing the given applet. This
-     * method only works when the Java code is running in a browser as an
-     * applet. The object returned may be used to access the HTML DOM directly.
-     *
-     * @param applet The applet.
-     * @return JSObject representing the window containing the given applet or
-     * {@code null} if we are not connected to a browser.
-     * @throws JSException when an error is reported from the browser or
-     * JavaScript engine or if applet is {@code null}
-     *
-     * @deprecated The Applet API is deprecated, no replacement. See the
-     * <a href="{@docRoot}/java.desktop/java/applet/package-summary.html">
-     * java.applet package documentation</a> for further information.
-     */
-
-    @Deprecated(since="9", forRemoval=true)
-    @SuppressWarnings("exports")
-    public static JSObject getWindow(Applet applet) throws JSException {
-        return ProviderLoader.callGetWindow(applet);
-    }
-
-    private static class ProviderLoader {
-        private static final JSObjectProvider provider;
-
-        static {
-            provider = AccessController.doPrivileged(
-                new PrivilegedAction<>() {
-                    @Override
-                    public JSObjectProvider run() {
-                        Iterator<JSObjectProvider> providers =
-                            ServiceLoader.loadInstalled(JSObjectProvider.class).iterator();
-                        if (providers.hasNext()) {
-                            return providers.next();
-                        }
-                        return null;
-                    }
-                }
-            );
-        }
-
-        private static JSObject callGetWindow(Applet applet) {
-            if (provider != null) {
-                return provider.getWindow(applet);
-            }
-            return null;
-        }
-    }
 }
--- a/test/jdk/jdk/modules/etc/JdkQualifiedExportTest.java	Tue Jun 25 14:13:33 2019 +0530
+++ b/test/jdk/jdk/modules/etc/JdkQualifiedExportTest.java	Tue Jun 25 14:27:31 2019 -0700
@@ -73,8 +73,7 @@
                "jdk.internal.vm.ci/jdk.vm.ci.runtime",
                "jdk.internal.vm.ci/jdk.vm.ci.hotspot",
                "jdk.internal.vm.ci/jdk.vm.ci.meta",
-               "jdk.internal.vm.ci/jdk.vm.ci.code",
-               "jdk.jsobject/jdk.internal.netscape.javascript.spi");
+               "jdk.internal.vm.ci/jdk.vm.ci.code");
 
     static void checkExports(ModuleDescriptor md) {
         // build a map of upgradeable module to Exports that are qualified to it