package subpkg; import superpkg.MyMethodInterceptor; import superpkg.Simple; public class ProxyTestcase { static Simple proxy = ProxyBuilder.createProxyFor(Simple.class, new MyMethodInterceptor()); public static void main(String[] args) { run(); } public static void run() { MyMethodInterceptor.clearLog(); proxy.moo(); System.out.println(MyMethodInterceptor.interceptionLog()); } public static void runMoo() { MyMethodInterceptor.clearLog(); proxy.moo(); System.out.println(MyMethodInterceptor.interceptionLog()); } public static void runBar() { MyMethodInterceptor.clearLog(); // proxy.bar(1, "abc", 3L); active in ProxyTestcase2 System.out.println(MyMethodInterceptor.interceptionLog()); } public String getProxyLoader() { return proxy.getClass().getClassLoader().toString(); } public String getSimpleLoader() { return Simple.class.getClassLoader().toString(); } public static void configureTest1() { MyMethodInterceptor.setCallSupers(false); } public static void configureTest2() { MyMethodInterceptor.setCallSupers(true); } }