mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
8142968: Module System implementation
Initial integration of JEP 200, JEP 260, JEP 261, and JEP 282 Co-authored-by: Alex Buckley <alex.buckley@oracle.com> Co-authored-by: Jonathan Gibbons <jonathan.gibbons@oracle.com> Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com> Co-authored-by: Mandy Chung <mandy.chung@oracle.com> Co-authored-by: Mark Reinhold <mark.reinhold@oracle.com> Co-authored-by: Harold Seigel <harold.seigel@oracle.com> Co-authored-by: Lois Foltan <lois.foltan@oracle.com> Co-authored-by: Calvin Cheung <calvin.cheung@oracle.com> Co-authored-by: Christian Tornqvist <christian.tornqvist@oracle.com> Co-authored-by: Erik Joelsson <erik.joelsson@oracle.com> Co-authored-by: George Triantafillou <george.triantafillou@oracle.com> Co-authored-by: Igor Ignatyev <igor.ignatyev@oracle.com> Co-authored-by: Ioi Lam <ioi.lam@oracle.com> Co-authored-by: James Laskey <james.laskey@oracle.com> Co-authored-by: Jean-Francois Denise <jean-francois.denise@oracle.com> Co-authored-by: Jiangli Zhou <jiangli.zhou@oracle.com> Co-authored-by: Markus Gronlund <markus.gronlund@oracle.com> Co-authored-by: Serguei Spitsyn <serguei.spitsyn@oracle.com> Co-authored-by: Staffan Larsen <staffan.larsen@oracle.com> Co-authored-by: Sundararajan Athijegannathan <sundararajan.athijegannathan@oracle.com> Reviewed-by: acorn, ccheung, coleenp, ctornqvi, dholmes, dsimms, gtriantafill, iklam, jiangli, mgronlun, mseledtsov, cjplummer, sspitsyn, stefank, twisti, hseigel, lfoltan, alanb, mchung, dfazunen
This commit is contained in:
parent
007b0fa3db
commit
f30fc1c88b
297 changed files with 15848 additions and 2302 deletions
|
@ -28,7 +28,9 @@
|
|||
#include "classfile/altHashing.hpp"
|
||||
#include "classfile/classFileStream.hpp"
|
||||
#include "classfile/classLoader.hpp"
|
||||
#include "classfile/javaClasses.hpp"
|
||||
#include "classfile/javaClasses.inline.hpp"
|
||||
#include "classfile/modules.hpp"
|
||||
#include "classfile/symbolTable.hpp"
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#include "classfile/vmSymbols.hpp"
|
||||
|
@ -3443,6 +3445,47 @@ JNI_LEAF(jint, jni_GetJavaVM(JNIEnv *env, JavaVM **vm))
|
|||
return JNI_OK;
|
||||
JNI_END
|
||||
|
||||
|
||||
JNI_ENTRY(jobject, jni_GetModule(JNIEnv* env, jclass clazz))
|
||||
JNIWrapper("GetModule");
|
||||
return Modules::get_module(clazz, THREAD);
|
||||
JNI_END
|
||||
|
||||
|
||||
JNI_ENTRY(void, jni_AddModuleReads(JNIEnv* env, jobject m1, jobject m2))
|
||||
JNIWrapper("AddModuleReads");
|
||||
if (m1 == NULL || m2 == NULL) {
|
||||
THROW(vmSymbols::java_lang_NullPointerException());
|
||||
}
|
||||
JavaValue result(T_VOID);
|
||||
Handle m1_h(THREAD, JNIHandles::resolve(m1));
|
||||
if (!java_lang_reflect_Module::is_instance(m1_h())) {
|
||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Bad m1 object");
|
||||
}
|
||||
Handle m2_h(THREAD, JNIHandles::resolve(m2));
|
||||
if (!java_lang_reflect_Module::is_instance(m2_h())) {
|
||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Bad m2 object");
|
||||
}
|
||||
JavaCalls::call_static(&result,
|
||||
KlassHandle(THREAD, SystemDictionary::module_Modules_klass()),
|
||||
vmSymbols::addReads_name(),
|
||||
vmSymbols::addReads_signature(),
|
||||
m1_h,
|
||||
m2_h,
|
||||
THREAD);
|
||||
JNI_END
|
||||
|
||||
|
||||
JNI_ENTRY(jboolean, jni_CanReadModule(JNIEnv* env, jobject m1, jobject m2))
|
||||
JNIWrapper("CanReadModule");
|
||||
if (m1 == NULL || m2 == NULL) {
|
||||
THROW_(vmSymbols::java_lang_NullPointerException(), JNI_FALSE);
|
||||
}
|
||||
jboolean res = Modules::can_read_module(m1, m2, CHECK_false);
|
||||
return res;
|
||||
JNI_END
|
||||
|
||||
|
||||
// Structure containing all jni functions
|
||||
struct JNINativeInterface_ jni_NativeInterface = {
|
||||
NULL,
|
||||
|
@ -3722,7 +3765,13 @@ struct JNINativeInterface_ jni_NativeInterface = {
|
|||
|
||||
// New 1_6 features
|
||||
|
||||
jni_GetObjectRefType
|
||||
jni_GetObjectRefType,
|
||||
|
||||
// Module features
|
||||
|
||||
jni_GetModule,
|
||||
jni_AddModuleReads,
|
||||
jni_CanReadModule
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue