jdk/src/java.base/share/classes/java/lang/System.java
changeset 45652 33342314ce89
parent 45124 144479e89cdb
child 45705 a4239e9b21a3
equal deleted inserted replaced
45562:853b91521c30 45652:33342314ce89
    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();