45 import java.security.ProtectionDomain; |
45 import java.security.ProtectionDomain; |
46 import java.security.AccessController; |
46 import java.security.AccessController; |
47 import java.security.PrivilegedAction; |
47 import java.security.PrivilegedAction; |
48 import java.nio.channels.Channel; |
48 import java.nio.channels.Channel; |
49 import java.nio.channels.spi.SelectorProvider; |
49 import java.nio.channels.spi.SelectorProvider; |
|
50 import java.util.Iterator; |
|
51 import java.util.List; |
50 import java.util.Map; |
52 import java.util.Map; |
51 import java.util.Objects; |
53 import java.util.Objects; |
52 import java.util.Properties; |
54 import java.util.Properties; |
53 import java.util.PropertyPermission; |
55 import java.util.PropertyPermission; |
54 import java.util.ResourceBundle; |
56 import java.util.ResourceBundle; |
2065 } |
2067 } |
2066 |
2068 |
2067 private static void setJavaLangAccess() { |
2069 private static void setJavaLangAccess() { |
2068 // Allow privileged classes outside of java.lang |
2070 // Allow privileged classes outside of java.lang |
2069 SharedSecrets.setJavaLangAccess(new JavaLangAccess() { |
2071 SharedSecrets.setJavaLangAccess(new JavaLangAccess() { |
2070 public Method getMethodOrNull(Class<?> klass, String name, Class<?>... parameterTypes) { |
2072 public List<Method> getDeclaredPublicMethods(Class<?> klass, String name, Class<?>... parameterTypes) { |
2071 return klass.getMethodOrNull(name, parameterTypes); |
2073 return klass.getDeclaredPublicMethods(name, parameterTypes); |
2072 } |
2074 } |
2073 public jdk.internal.reflect.ConstantPool getConstantPool(Class<?> klass) { |
2075 public jdk.internal.reflect.ConstantPool getConstantPool(Class<?> klass) { |
2074 return klass.getConstantPool(); |
2076 return klass.getConstantPool(); |
2075 } |
2077 } |
2076 public boolean casAnnotationType(Class<?> klass, AnnotationType oldType, AnnotationType newType) { |
2078 public boolean casAnnotationType(Class<?> klass, AnnotationType oldType, AnnotationType newType) { |
2090 } |
2092 } |
2091 public byte[] getRawExecutableTypeAnnotations(Executable executable) { |
2093 public byte[] getRawExecutableTypeAnnotations(Executable executable) { |
2092 return Class.getExecutableTypeAnnotationBytes(executable); |
2094 return Class.getExecutableTypeAnnotationBytes(executable); |
2093 } |
2095 } |
2094 public <E extends Enum<E>> |
2096 public <E extends Enum<E>> |
2095 E[] getEnumConstantsShared(Class<E> klass) { |
2097 E[] getEnumConstantsShared(Class<E> klass) { |
2096 return klass.getEnumConstantsShared(); |
2098 return klass.getEnumConstantsShared(); |
2097 } |
2099 } |
2098 public void blockedOn(Thread t, Interruptible b) { |
2100 public void blockedOn(Thread t, Interruptible b) { |
2099 t.blockedOn(b); |
2101 t.blockedOn(b); |
2100 } |
2102 } |
2117 public Class<?> defineClass(ClassLoader loader, String name, byte[] b, ProtectionDomain pd, String source) { |
2119 public Class<?> defineClass(ClassLoader loader, String name, byte[] b, ProtectionDomain pd, String source) { |
2118 return ClassLoader.defineClass1(loader, name, b, 0, b.length, pd, source); |
2120 return ClassLoader.defineClass1(loader, name, b, 0, b.length, pd, source); |
2119 } |
2121 } |
2120 public Class<?> findBootstrapClassOrNull(ClassLoader cl, String name) { |
2122 public Class<?> findBootstrapClassOrNull(ClassLoader cl, String name) { |
2121 return cl.findBootstrapClassOrNull(name); |
2123 return cl.findBootstrapClassOrNull(name); |
2122 } |
|
2123 public Stream<Package> packages(ClassLoader cl) { |
|
2124 return cl.packages(); |
|
2125 } |
2124 } |
2126 public Package definePackage(ClassLoader cl, String name, Module module) { |
2125 public Package definePackage(ClassLoader cl, String name, Module module) { |
2127 return cl.definePackage(name, module); |
2126 return cl.definePackage(name, module); |
2128 } |
2127 } |
2129 public String fastUUID(long lsb, long msb) { |
2128 public String fastUUID(long lsb, long msb) { |
2159 m.implAddOpens(pn, other); |
2158 m.implAddOpens(pn, other); |
2160 } |
2159 } |
2161 public void addOpensToAllUnnamed(Module m, String pn) { |
2160 public void addOpensToAllUnnamed(Module m, String pn) { |
2162 m.implAddOpensToAllUnnamed(pn); |
2161 m.implAddOpensToAllUnnamed(pn); |
2163 } |
2162 } |
|
2163 public void addOpensToAllUnnamed(Module m, Iterator<String> packages) { |
|
2164 m.implAddOpensToAllUnnamed(packages); |
|
2165 } |
2164 public void addUses(Module m, Class<?> service) { |
2166 public void addUses(Module m, Class<?> service) { |
2165 m.implAddUses(service); |
2167 m.implAddUses(service); |
2166 } |
2168 } |
|
2169 public boolean isReflectivelyExported(Module m, String pn, Module other) { |
|
2170 return m.isReflectivelyExported(pn, other); |
|
2171 } |
|
2172 public boolean isReflectivelyOpened(Module m, String pn, Module other) { |
|
2173 return m.isReflectivelyOpened(pn, other); |
|
2174 } |
2167 public ServicesCatalog getServicesCatalog(ModuleLayer layer) { |
2175 public ServicesCatalog getServicesCatalog(ModuleLayer layer) { |
2168 return layer.getServicesCatalog(); |
2176 return layer.getServicesCatalog(); |
2169 } |
2177 } |
2170 public Stream<ModuleLayer> layers(ModuleLayer layer) { |
2178 public Stream<ModuleLayer> layers(ModuleLayer layer) { |
2171 return layer.layers(); |
2179 return layer.layers(); |