/** * Creates a new instance of {@link WrapperProxetta}. */ public static WrapperProxetta wrapperProxetta() { return new WrapperProxetta(); }
/** * Creates a new instance of {@link InvokeProxetta}. */ public static InvokeProxetta invokeProxetta() { return new InvokeProxetta(); }
@Test void testAbstract2() { ProxyAspect proxyAspect = new ProxyAspect(FooProxyAdvice.class, methodInfo -> true); try { Proxetta.proxyProxetta().withAspect(proxyAspect).proxy().setTarget(Abstra2.class).newInstance(); fail("error"); } catch (ProxettaException ignore) { } }
@Test void testInterface() { ProxyAspect proxyAspect = new ProxyAspect(FooProxyAdvice.class, methodInfo -> true); try { Proxetta.proxyProxetta().withAspects(proxyAspect).proxy().setTarget(Inter.class).newInstance(); fail("error"); } catch (ProxettaException ignore) { } }
/** * {@inheritDoc} */ @Override protected WorkData process(final ClassReader cr, final TargetClassInfoReader targetClassInfoReader) { ProxettaClassBuilder pcb = new ProxettaClassBuilder( destClassWriter, proxetta.getAspects(new ProxyAspect[0]), resolveClassNameSuffix(), requestedProxyClassName, targetClassInfoReader); cr.accept(pcb, 0); return pcb.getWorkData(); }
/** * {@inheritDoc} */ @Override protected WorkData process(final ClassReader cr, final TargetClassInfoReader targetClassInfoReader) { InvokeClassBuilder icb = new InvokeClassBuilder( destClassWriter, proxetta.getAspects(new InvokeAspect[0]), resolveClassNameSuffix(), requestedProxyClassName, targetClassInfoReader); cr.accept(icb, 0); return icb.getWorkData(); }
/** * {@inheritDoc} */ @Override protected WorkData process(final ClassReader cr, final TargetClassInfoReader targetClassInfoReader) { final ProxettaWrapperClassBuilder pcb = new ProxettaWrapperClassBuilder( targetClassOrInterface, targetInterface, targetFieldName, destClassWriter, proxetta.getAspects(new ProxyAspect[0]), resolveClassNameSuffix(), requestedProxyClassName, targetClassInfoReader, createTargetInDefaultCtor ); cr.accept(pcb, 0); return pcb.getWorkData(); }
/** * Creates a new instance of {@link ProxyProxetta}. */ public static ProxyProxetta proxyProxetta() { return new ProxyProxetta(); }
@Test void testInterface() { InvokeProxetta proxetta = initProxetta(); try { proxetta.proxy().setTarget(Inter.class).newInstance(); fail("error"); } catch (ProxettaException ignore) { } }
@Override public ProxyProxettaFactory proxy() { return new ProxyProxettaFactory(this); } }
/** * Defines if target should be created in ctor, so no additional injection is required. */ public WrapperProxetta setCreateTargetInDefaultCtor(final boolean createTargetInstanceInDefaultCtor) { this.createTargetInDefaultCtor = createTargetInstanceInDefaultCtor; return _this(); }
@Override public WrapperProxettaFactory proxy() { return new WrapperProxettaFactory(this); }
@Override public InvokeProxettaFactory proxy() { return new InvokeProxettaFactory(this); }
@Test void testAdviceWithInnerClass() { ProxyAspect proxyAspect = new ProxyAspect(InvalidAdvice.class, methodInfo -> true); try { Proxetta.proxyProxetta().withAspect(proxyAspect).proxy().setTarget(Foo.class).newInstance(); fail("error"); } catch (ProxettaException ignore) { System.out.println(ignore); } } }
@Test void testProxyInfo_createNotRightAfterTheMethod() { ProxyProxetta proxetta = Proxetta.proxyProxetta().withAspects(aspects()); //proxetta.setDebugFolder(SystemUtil.userHome()); DateDao dateDateProxy = (DateDao) proxetta.proxy().setTarget(DateDao.class).newInstance(); LocalDateTime jDateTime = dateDateProxy.currentTime(); assertNotNull(jDateTime); }
@Test void testAbstract1() { ProxyAspect proxyAspect = new ProxyAspect(FooProxyAdvice.class, methodInfo -> true); Abstra aaa = (Abstra) Proxetta.proxyProxetta().withAspect(proxyAspect).proxy().setTarget(Abstra.class).newInstance(); assertNotNull(aaa); aaa.foo(); }
/** * Applies proxetta on bean class before bean registration. */ @Override protected <T> BeanDefinition<T> createBeanDefinitionForRegistration(String name, Class<T> type, Scope scope, WiringMode wiringMode, Consumer<T> consumer) { if (proxetta != null) { ProxyProxettaFactory builder = proxetta.proxy(); builder.setTarget(type); type = builder.define(); } return super.createBeanDefinitionForRegistration(name, type, scope, wiringMode, consumer); }