21 * questions.
22 */
23
24 import java.lang.reflect.Constructor;
25 import java.lang.reflect.InvocationHandler;
26 import java.lang.reflect.Module;
27 import java.lang.reflect.Proxy;
28
29 /*
30 * @test
31 * @summary Basic test of proxy module mapping and the access to Proxy class
32 * @modules java.base/sun.invoke
33 */
34
35 public class ProxyModuleMapping {
36 public static void main(String... args) throws Exception {
37 ClassLoader ld = ProxyModuleMapping.class.getClassLoader();
38 Module unnamed = ld.getUnnamedModule();
39 new ProxyModuleMapping(unnamed, Runnable.class).test();
40
41 // unnamed module gets access to sun.invoke package (e.g. via -XaddExports)
42 new ProxyModuleMapping(sun.invoke.WrapperInstance.class).test();
43
44 Class<?> modulePrivateIntf = Class.forName("sun.net.ProgressListener");
45 new ProxyModuleMapping(modulePrivateIntf).test();
46 }
47
48 final Module target;
49 final ClassLoader loader;
50 final Class<?>[] interfaces;
51 ProxyModuleMapping(Module m, Class<?>... interfaces) {
52 this.target = m;
53 this.loader = m.getClassLoader();
54 this.interfaces = interfaces;
55 }
56
57 ProxyModuleMapping(Class<?>... interfaces) {
58 this.target = null; // expected to be dynamic module
59 this.loader = interfaces[0].getClassLoader(); // same class loader
60 this.interfaces = interfaces;
61 }
|
21 * questions.
22 */
23
24 import java.lang.reflect.Constructor;
25 import java.lang.reflect.InvocationHandler;
26 import java.lang.reflect.Module;
27 import java.lang.reflect.Proxy;
28
29 /*
30 * @test
31 * @summary Basic test of proxy module mapping and the access to Proxy class
32 * @modules java.base/sun.invoke
33 */
34
35 public class ProxyModuleMapping {
36 public static void main(String... args) throws Exception {
37 ClassLoader ld = ProxyModuleMapping.class.getClassLoader();
38 Module unnamed = ld.getUnnamedModule();
39 new ProxyModuleMapping(unnamed, Runnable.class).test();
40
41 // unnamed module gets access to sun.invoke package (e.g. via --add-exports)
42 new ProxyModuleMapping(sun.invoke.WrapperInstance.class).test();
43
44 Class<?> modulePrivateIntf = Class.forName("sun.net.ProgressListener");
45 new ProxyModuleMapping(modulePrivateIntf).test();
46 }
47
48 final Module target;
49 final ClassLoader loader;
50 final Class<?>[] interfaces;
51 ProxyModuleMapping(Module m, Class<?>... interfaces) {
52 this.target = m;
53 this.loader = m.getClassLoader();
54 this.interfaces = interfaces;
55 }
56
57 ProxyModuleMapping(Class<?>... interfaces) {
58 this.target = null; // expected to be dynamic module
59 this.loader = interfaces[0].getClassLoader(); // same class loader
60 this.interfaces = interfaces;
61 }
|