mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-14 15:39:45 +00:00
8172307: Remove ununsed JVM API JVM_GetModuleByPackageName()
Remove get_module_by_package_name() etc., and unneeded test. Reviewed-by: sspitsyn, gtriantafill
This commit is contained in:
parent
d93ba6ef1d
commit
5485a03844
@ -649,39 +649,6 @@ jobject Modules::get_module(jclass clazz, TRAPS) {
|
||||
return JNIHandles::make_local(THREAD, module);
|
||||
}
|
||||
|
||||
|
||||
jobject Modules::get_module_by_package_name(jobject loader, const char* package_name, TRAPS) {
|
||||
ResourceMark rm(THREAD);
|
||||
assert(ModuleEntryTable::javabase_defined(),
|
||||
"Attempt to call get_module_from_pkg before " JAVA_BASE_NAME " is defined");
|
||||
|
||||
if (package_name == NULL) {
|
||||
THROW_MSG_(vmSymbols::java_lang_NullPointerException(),
|
||||
"package is null", JNI_FALSE);
|
||||
}
|
||||
|
||||
Handle h_loader (THREAD, JNIHandles::resolve(loader));
|
||||
// Check that loader is a subclass of java.lang.ClassLoader.
|
||||
if (loader != NULL && !java_lang_ClassLoader::is_subclass(h_loader->klass())) {
|
||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
"Class loader is not a subclass of java.lang.ClassLoader", JNI_FALSE);
|
||||
}
|
||||
|
||||
if (strlen(package_name) == 0) {
|
||||
// Return the unnamed module
|
||||
ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK_NULL);
|
||||
if (NULL == module_table) return NULL;
|
||||
const ModuleEntry* const unnamed_module = module_table->unnamed_module();
|
||||
return JNIHandles::make_local(THREAD, JNIHandles::resolve(unnamed_module->module()));
|
||||
|
||||
} else {
|
||||
TempNewSymbol package_sym = SymbolTable::new_symbol(package_name, CHECK_NULL);
|
||||
return get_module(package_sym, h_loader, CHECK_NULL);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
jobject Modules::get_named_module(Handle h_loader, const char* package_name, TRAPS) {
|
||||
assert(ModuleEntryTable::javabase_defined(),
|
||||
"Attempt to call get_named_module before " JAVA_BASE_NAME " is defined");
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 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
|
||||
@ -105,7 +105,6 @@ public:
|
||||
// NullPointerException is thrown if package is null.
|
||||
// IllegalArgumentException is thrown if loader is neither null nor a subtype of
|
||||
// java/lang/ClassLoader.
|
||||
static jobject get_module_by_package_name(jobject loader, const char* package, TRAPS);
|
||||
static jobject get_named_module(Handle h_loader, const char* package, TRAPS);
|
||||
|
||||
// If package is defined by loader, return the
|
||||
|
||||
@ -1466,15 +1466,6 @@ WB_ENTRY(void, WB_AddModulePackage(JNIEnv* env, jobject o, jclass module, jstrin
|
||||
Modules::add_module_package(module, package_name, CHECK);
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(jobject, WB_GetModuleByPackageName(JNIEnv* env, jobject o, jobject loader, jstring package))
|
||||
ResourceMark rm(THREAD);
|
||||
char* package_name = NULL;
|
||||
if (package != NULL) {
|
||||
package_name = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(package));
|
||||
}
|
||||
return Modules::get_module_by_package_name(loader, package_name, THREAD);
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(jlong, WB_IncMetaspaceCapacityUntilGC(JNIEnv* env, jobject wb, jlong inc))
|
||||
if (inc < 0) {
|
||||
THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
@ -1912,8 +1903,6 @@ static JNINativeMethod methods[] = {
|
||||
(void*)&WB_AddReadsModule },
|
||||
{CC"AddModulePackage", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
|
||||
(void*)&WB_AddModulePackage },
|
||||
{CC"GetModuleByPackageName", CC"(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;",
|
||||
(void*)&WB_GetModuleByPackageName },
|
||||
{CC"AddModuleExportsToAllUnnamed", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
|
||||
(void*)&WB_AddModuleExportsToAllUnnamed },
|
||||
{CC"AddModuleExportsToAll", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
|
||||
|
||||
@ -1,91 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2017, 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.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @modules java.base/jdk.internal.misc
|
||||
* @library /test/lib ..
|
||||
* @compile p2/c2.java
|
||||
* @build sun.hotspot.WhiteBox
|
||||
* @compile/module=java.base java/lang/reflect/ModuleHelper.java
|
||||
* @run main ClassFileInstaller sun.hotspot.WhiteBox
|
||||
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
||||
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI JVMGetModuleByPkgName
|
||||
*/
|
||||
|
||||
import static jdk.test.lib.Asserts.*;
|
||||
import java.lang.ClassLoader;
|
||||
import java.lang.reflect.Module;
|
||||
|
||||
public class JVMGetModuleByPkgName {
|
||||
|
||||
public static void main(String args[]) throws Throwable {
|
||||
|
||||
Module javaBase = ModuleHelper.GetModuleByPackageName(null, "java/lang");
|
||||
if (!javaBase.getName().equals("java.base")) {
|
||||
throw new RuntimeException(
|
||||
"Failed to get module java.base for package java/lang");
|
||||
}
|
||||
|
||||
if (ModuleHelper.GetModuleByPackageName(null, "bad.package.name") != null) {
|
||||
throw new RuntimeException("Failed to get null for bad.package.name");
|
||||
}
|
||||
|
||||
ClassLoader systemLoader = ClassLoader.getSystemClassLoader();
|
||||
if (ModuleHelper.GetModuleByPackageName(systemLoader, "java/lang") != null) {
|
||||
throw new RuntimeException(
|
||||
"Failed to get null for systemClassLoader and java/lang");
|
||||
}
|
||||
|
||||
try {
|
||||
ModuleHelper.GetModuleByPackageName(systemLoader, null);
|
||||
throw new RuntimeException(
|
||||
"Failed to throw NullPointerException for null package name");
|
||||
} catch(NullPointerException e) {
|
||||
// Expected
|
||||
}
|
||||
|
||||
Module unnamedModule = ModuleHelper.GetModuleByPackageName(systemLoader, "");
|
||||
if (unnamedModule.isNamed()) {
|
||||
throw new RuntimeException(
|
||||
"Unexpected named module returned for unnamed package");
|
||||
}
|
||||
|
||||
p2.c2 obj = new p2.c2();
|
||||
unnamedModule = ModuleHelper.GetModuleByPackageName(systemLoader, "p2");
|
||||
if (unnamedModule.isNamed()) {
|
||||
throw new RuntimeException(
|
||||
"Unexpected named module returned for package p2 in unnamed module");
|
||||
}
|
||||
|
||||
MyClassLoader cl1 = new MyClassLoader();
|
||||
Module module_one = (Module)ModuleHelper.ModuleObject("module_one", cl1, new String[] { "mypackage" });
|
||||
assertNotNull(module_one, "Module should not be null");
|
||||
ModuleHelper.DefineModule(module_one, "9.0", "module_one/here", new String[] { "mypackage" });
|
||||
if (ModuleHelper.GetModuleByPackageName(cl1, "mypackage") != module_one) {
|
||||
throw new RuntimeException("Wrong module returned for cl1 mypackage");
|
||||
}
|
||||
}
|
||||
|
||||
static class MyClassLoader extends ClassLoader { }
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2017, 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
|
||||
@ -56,11 +56,6 @@ public class ModuleHelper {
|
||||
java.lang.reflect.ModuleHelper.addPackageNoSync((Module)m, pkg);
|
||||
}
|
||||
|
||||
public static Module GetModuleByPackageName(Object ldr, String pkg) throws Throwable {
|
||||
WhiteBox wb = WhiteBox.getWhiteBox();
|
||||
return (Module)wb.GetModuleByPackageName(ldr, pkg);
|
||||
}
|
||||
|
||||
public static void AddModuleExportsToAllUnnamed(Object m, String pkg) throws Throwable {
|
||||
WhiteBox wb = WhiteBox.getWhiteBox();
|
||||
wb.AddModuleExportsToAllUnnamed(m, pkg);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user