/** * {@inheritDoc} */ @Override public <T extends IProxySubject> boolean isProxyInstance(Object inst, Class<T> proxySubjectType) { if (inst == null) { return false; } ClassLoader context = inst.getClass().getClassLoader(); IProxyClassInfo proxyClass = getProxyClass(proxySubjectType, context, false); if (proxyClass == null) { return false; } else { return proxyClass.getProxyClass().isInstance(inst); } }
try { Object proxy = proxyClassInfo.createProxy(proxySubject);
@BeforeMethod public void initProxy() throws InvalidProxyDescriptionException { subject = new CorrectProxySubject(); ClassLoader cl = new RenamingClassLoader(this.getClass().getClassLoader(), "moved.", ClassToProxy.class, InterfaceToProxy.class); IProxyBuildPlan plan = ProxyBuildPlanImpl.create(CorrectProxySubject.class, "proxy_" + counter.getAndIncrement(), cl); proxy = builder.createProxyClass(plan).createProxy(subject); }
classLoaderMap.put(proxyClassInfo.getProxyClass().getClassLoader(), proxyClassInfo); classLoaderMap.put(context, proxyClassInfo);