(ProxettaBeanDefinition) refBeanDefinition; ProxyProxetta proxetta = Proxetta.proxyProxetta().withAspects(ArraysUtil.insert(pbd.proxyAspects, aspect, 0)); proxetta.setClassNameSuffix("$ScopedProxy"); proxetta.setVariableClassName(true); ProxyProxettaFactory builder = proxetta.proxy().setTarget(pbd.originalTarget); ProxyProxetta proxetta = Proxetta.proxyProxetta().withAspect(aspect); proxetta.setClassNameSuffix("$ScopedProxy"); proxetta.setVariableClassName(true); ProxyProxettaFactory builder = proxetta.proxy().setTarget(beanType);
/** * Creates a new instance of {@link ProxyProxetta}. */ public static ProxyProxetta proxyProxetta() { return new ProxyProxetta(); }
/** * {@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(); }
public MethrefProxetta() { ProxyAspect aspects = new ProxyAspect(MethrefAdvice.class, new AllMethodsPointcut()); proxetta = Proxetta.proxyProxetta().withAspect(aspects); proxetta.setClassNameSuffix(METHREF_CLASSNAME_SUFFIX); }
@Test void testClassesWithGenericsAsReturnValueProxyDefault() { try { ProxyAspect aspect = ProxyAspect.of(DelegateAdvice.class, new AllMethodsPointcut()); ProxyProxetta proxetta = Proxetta.proxyProxetta().withAspects(aspect); ProxyProxettaFactory builder = proxetta.proxy().setTarget(Foo.class); builder.newInstance(); } catch (Exception ex) { ex.printStackTrace(); fail(ex.toString()); } } }
@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 testClassAnnotationsProxy() { ProxyProxetta proxetta = Proxetta .proxyProxetta() .withAspect( new ProxyAspect(HeroProxyAdvice2.class, ((ProxyPointcut) MethodInfo::isTopLevelMethod).and(AllRealMethodsPointcut.get()) )) //.setDebugFolder("/Users/igor/") ; ProxettaFactory proxettaFactory = proxetta.proxy(); proxettaFactory.setTarget(Hero.class); proxetta.setVariableClassName(true); Hero hero = (Hero) proxettaFactory.newInstance(); assertEquals("SilverHero89W99.222None1000speeeeedXRAYnull", hero.name()); }
ProxyProxetta proxyProxetta = Proxetta.proxyProxetta().withAspect(a1); proxyProxetta.setClassNameSuffix("$$$Proxetta"); ProxyProxettaFactory pb = proxyProxetta.proxy(); pb.setTarget(Foo.class); Foo foo = (Foo) pb.newInstance();
public MethrefProxetta() { ProxyAspect aspectAll = new ProxyAspect(MethrefAdvice.class, new AllMethodsPointcut() { @Override public boolean apply(MethodInfo methodInfo) { if (methodInfo.getReturnType().equals(String.class.getName())) { return false; } return super.apply(methodInfo); } }); ProxyAspect aspectStr = new ProxyAspect(MethrefStringAdvice.class, new AllMethodsPointcut() { @Override public boolean apply(MethodInfo methodInfo) { if (methodInfo.getReturnType().equals(String.class.getName()) == false) { return false; } return super.apply(methodInfo); } }); proxetta = ProxyProxetta.withAspects(aspectAll, aspectStr); proxetta.setClassNameSuffix(METHREF_CLASSNAME_SUFFIX); }
/** * Generates new class. */ public Class defineProxy(final Class target) { ProxyProxettaFactory builder = proxetta.proxy(); builder.setTarget(target); return builder.define(); }
/** * Creates Proxetta with all aspects. The following aspects are created: * <ul> * <li>Transaction proxy - applied on all classes that contains public top-level methods * annotated with <code>@Transaction</code> annotation. This is just one way how proxies * can be applied - since base configuration is in Java, everything is possible.</li> * </ul> */ @Override public void start() { initLogger(); log.info("PROXETTA start ----------"); final ProxyAspect[] proxyAspectsArray = this.proxyAspects.toArray(new ProxyAspect[0]); log.debug("Total proxy aspects: " + proxyAspectsArray.length); // proxetta = Proxetta.wrapperProxetta().setCreateTargetInDefaultCtor(true).withAspects(proxyAspectsArray); proxetta = Proxetta.proxyProxetta().withAspects(proxyAspectsArray); log.info("PROXETTA OK!"); }
public static ProxyProxetta createProxyProxetta() { ProxyPointcut pointcut_logged = new MethodWithAnnotationPointcut(Logged.class); ProxyAspect aspect_logged = new ProxyAspect(LogProxyAdvice.class, pointcut_logged); ProxyProxetta proxetta = Proxetta.proxyProxetta().withAspect(aspect_logged); //proxetta.setDebugFolder(SystemUtil.userHome() + "\\inka\\proxetta"); return proxetta; }
@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) { } }
@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 testMethodAnnotationsProxy() { ProxyProxetta proxetta = Proxetta .proxyProxetta() .withAspect( ProxyAspect.of(HeroProxyAdvice.class, ((ProxyPointcut) MethodInfo::isTopLevelMethod).and(AllRealMethodsPointcut.get()) )) //.setDebugFolder(FileUtil.file("~")) ; ProxettaFactory proxettaFactory = proxetta.proxy(); proxettaFactory.setTarget(Hero.class); proxetta.setVariableClassName(true); Hero hero = (Hero) proxettaFactory.newInstance(); assertEquals("BatmanHero37W88.3CatWoman99speeeeedXRAYnull", hero.name()); }
ProxyProxetta proxyProxetta = Proxetta.proxyProxetta().withAspect(proxyAspect); proxyProxetta.setClassNameSuffix("$$$Proxetta888"); ProxyProxettaFactory pb = proxyProxetta.proxy(); pb.setTarget(Foo.class); Foo foo = (Foo) pb.newInstance();
public PathrefProxetta() { ProxyAspect aspects = new ProxyAspect(PathrefAdvice.class, new AllMethodsPointcut()); proxetta = Proxetta.proxyProxetta().withAspect(aspects); proxetta.setClassNameSuffix(PATHREF_CLASSNAME_SUFFIX); }
/** * Generates new class. */ public Class defineProxy(final Class target) { ProxyProxettaFactory builder = proxetta.proxy(); builder.setTarget(target); return builder.define(); }
public static ProxyProxetta createProxyProxetta() { ProxyPointcut pointcut_logged = new MethodWithAnnotationPointcut(Logged.class); ProxyAspect aspect_logged = new ProxyAspect(LogProxyAdvice.class, pointcut_logged); //proxetta.setDebugFolder(SystemUtil.userHome() + "\\inka\\proxetta"); return Proxetta.proxyProxetta().withAspects(aspect_logged); }
@Test void testProxyProxetta() { ProxyProxetta proxetta = Proxetta.proxyProxetta().withAspect( new ProxyAspect(AddStringAdvice.class, new AllRealMethodsPointcut())); PetiteContainer papc = new ProxettaAwarePetiteContainer(proxetta); papc.registerPetiteBean(SecretService.class, null, null, null, false, null); BeanDefinition beanDefinition = papc.registerPetiteBean(PublicService.class, null, null, null, false, null); papc.registerPetiteBean(PublicService2.class, null, null, null, false, null); papc.registerPetiteBean(PublicService3.class, null, null, null, false, null); assertNotEquals(PublicService.class, beanDefinition.type()); PublicService publicService = papc.getBean(beanDefinition.name()); assertNotNull(publicService.secretService); assertEquals("Hello World! And Universe, too!", publicService.hello()); PublicService2 publicService2 = papc.getBean(PublicService2.class); assertNotNull(publicService2.secretService); assertEquals("Hello World! And Universe, too!", publicService2.hello()); PublicService3 publicService3 = papc.getBean(PublicService3.class); assertNotNull(publicService3.secretService); assertEquals("Hello World! And Universe, too!", publicService3.hello()); } }