< prev index next >

src/share/vm/classfile/modules.hpp

Print this page
rev 12479 : 8171855: Move package name transformations during module bootstrap into native code
Reviewed-by: alanb, acorn, lfoltan, mchung

*** 48,58 **** // * Packages contains a duplicate package name // * A package already exists in another module for this class loader // * Module is an unnamed module // NullPointerExceptions are thrown if module is null. static void define_module(jobject module, jstring version, ! jstring location, jobjectArray packages, TRAPS); // Provides the java.lang.reflect.Module for the unnamed module defined // to the boot loader. // // IllegalArgumentExceptions are thrown for the following : --- 48,59 ---- // * Packages contains a duplicate package name // * A package already exists in another module for this class loader // * Module is an unnamed module // NullPointerExceptions are thrown if module is null. static void define_module(jobject module, jstring version, ! jstring location, const char* const* packages, ! jsize num_packages, TRAPS); // Provides the java.lang.reflect.Module for the unnamed module defined // to the boot loader. // // IllegalArgumentExceptions are thrown for the following :
*** 70,91 **** // * Module from_module does not exist // * Module to_module is not null and does not exist // * Package is not syntactically correct // * Package is not defined for from_module's class loader // * Package is not in module from_module. ! static void add_module_exports(jobject from_module, jstring package, jobject to_module, TRAPS); // This does a qualified export of package in module from_module to module // to_module. The format for the package name must use "/' not ".". // // Error conditions causing IlegalArgumentException to be throw : // * Module from_module does not exist // * Module to_module does not exist // * Package is not syntactically correct // * Package is not defined for from_module's class loader // * Package is not in module from_module. ! static void add_module_exports_qualified(jobject from_module, jstring package, jobject to_module, TRAPS); // add_reads_module adds module to_module to the list of modules that from_module // can read. If from_module is the same as to_module then this is a no-op. // If to_module is null then from_module is marked as a loose module (meaning that // from_module can read all current and future unnamed modules). --- 71,92 ---- // * Module from_module does not exist // * Module to_module is not null and does not exist // * Package is not syntactically correct // * Package is not defined for from_module's class loader // * Package is not in module from_module. ! static void add_module_exports(jobject from_module, const char* package, jobject to_module, TRAPS); // This does a qualified export of package in module from_module to module // to_module. The format for the package name must use "/' not ".". // // Error conditions causing IlegalArgumentException to be throw : // * Module from_module does not exist // * Module to_module does not exist // * Package is not syntactically correct // * Package is not defined for from_module's class loader // * Package is not in module from_module. ! static void add_module_exports_qualified(jobject from_module, const char* package, jobject to_module, TRAPS); // add_reads_module adds module to_module to the list of modules that from_module // can read. If from_module is the same as to_module then this is a no-op. // If to_module is null then from_module is marked as a loose module (meaning that // from_module can read all current and future unnamed modules).
*** 100,110 **** // Returns NULL if the class loader has not loaded any classes in the package. // The package should contain /'s, not .'s, as in java/lang, not java.lang. // 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, jstring package, TRAPS); static jobject get_named_module(Handle h_loader, const char* package, TRAPS); // If package is defined by loader, return the // java.lang.reflect.Module object for the module in which the package is defined. // Returns NULL if package is invalid or not defined by loader. --- 101,111 ---- // Returns NULL if the class loader has not loaded any classes in the package. // The package should contain /'s, not .'s, as in java/lang, not java.lang. // 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 // java.lang.reflect.Module object for the module in which the package is defined. // Returns NULL if package is invalid or not defined by loader.
*** 114,133 **** // It throws IllegalArgumentException if: // * Module is bad // * Module is unnamed // * Package is not syntactically correct // * Package is already defined for module's class loader. ! static void add_module_package(jobject module, jstring package, TRAPS); // Marks the specified package as exported to all unnamed modules. // If either module or package is null then NullPointerException is thrown. // If module or package is bad, or module is unnamed, or package is not in // module then IllegalArgumentException is thrown. ! static void add_module_exports_to_all_unnamed(jobject module, jstring package, TRAPS); // Return TRUE if package_name is syntactically valid, false otherwise. ! static bool verify_package_name(char *package_name); // Return TRUE iff package is defined by loader static bool is_package_defined(Symbol* package_name, Handle h_loader, TRAPS); }; --- 115,134 ---- // It throws IllegalArgumentException if: // * Module is bad // * Module is unnamed // * Package is not syntactically correct // * Package is already defined for module's class loader. ! static void add_module_package(jobject module, const char* package, TRAPS); // Marks the specified package as exported to all unnamed modules. // If either module or package is null then NullPointerException is thrown. // If module or package is bad, or module is unnamed, or package is not in // module then IllegalArgumentException is thrown. ! static void add_module_exports_to_all_unnamed(jobject module, const char* package, TRAPS); // Return TRUE if package_name is syntactically valid, false otherwise. ! static bool verify_package_name(const char *package_name); // Return TRUE iff package is defined by loader static bool is_package_defined(Symbol* package_name, Handle h_loader, TRAPS); };
< prev index next >