25 #ifndef SHARE_CDS_CDSPROTECTIONDOMAIN_HPP
26 #define SHARE_CDS_CDSPROTECTIONDOMAIN_HPP
27
28 #include "classfile/moduleEntry.hpp"
29 #include "oops/oopHandle.inline.hpp"
30 #include "runtime/handles.inline.hpp"
31 #include "runtime/javaThread.hpp"
32
33 class InstanceKlass;
34 class Symbol;
35 class PackageEntry;
36 class ModuleEntry;
37
38 // CDS security
39 class CDSProtectionDomain : AllStatic {
40 // See init_security_info for more info.
41 static OopHandle _shared_protection_domains;
42 static OopHandle _shared_jar_urls;
43 static OopHandle _shared_jar_manifests;
44
45 public:
46 // Package handling:
47 //
48 // 1. For named modules in the runtime image
49 // BOOT classes: Reuses the existing JVM_GetSystemPackage(s) interfaces
50 // to get packages in named modules for shared classes.
51 // Package for non-shared classes in named module is also
52 // handled using JVM_GetSystemPackage(s).
53 //
54 // APP classes: VM calls ClassLoaders.AppClassLoader::definePackage(String, Module)
55 // to define package for shared app classes from named
56 // modules.
57 //
58 // PLATFORM classes: VM calls ClassLoaders.PlatformClassLoader::definePackage(String, Module)
59 // to define package for shared platform classes from named
60 // modules.
61 //
62 // 2. For unnamed modules
63 // BOOT classes: Reuses the existing JVM_GetSystemPackage(s) interfaces to
64 // get packages for shared boot classes in unnamed modules.
|
25 #ifndef SHARE_CDS_CDSPROTECTIONDOMAIN_HPP
26 #define SHARE_CDS_CDSPROTECTIONDOMAIN_HPP
27
28 #include "classfile/moduleEntry.hpp"
29 #include "oops/oopHandle.inline.hpp"
30 #include "runtime/handles.inline.hpp"
31 #include "runtime/javaThread.hpp"
32
33 class InstanceKlass;
34 class Symbol;
35 class PackageEntry;
36 class ModuleEntry;
37
38 // CDS security
39 class CDSProtectionDomain : AllStatic {
40 // See init_security_info for more info.
41 static OopHandle _shared_protection_domains;
42 static OopHandle _shared_jar_urls;
43 static OopHandle _shared_jar_manifests;
44
45 static Handle get_archived_protection_domain(JavaThread* current, InstanceKlass* klass);
46 public:
47 // Package handling:
48 //
49 // 1. For named modules in the runtime image
50 // BOOT classes: Reuses the existing JVM_GetSystemPackage(s) interfaces
51 // to get packages in named modules for shared classes.
52 // Package for non-shared classes in named module is also
53 // handled using JVM_GetSystemPackage(s).
54 //
55 // APP classes: VM calls ClassLoaders.AppClassLoader::definePackage(String, Module)
56 // to define package for shared app classes from named
57 // modules.
58 //
59 // PLATFORM classes: VM calls ClassLoaders.PlatformClassLoader::definePackage(String, Module)
60 // to define package for shared platform classes from named
61 // modules.
62 //
63 // 2. For unnamed modules
64 // BOOT classes: Reuses the existing JVM_GetSystemPackage(s) interfaces to
65 // get packages for shared boot classes in unnamed modules.
|