@@ -0,0 +1,1495 @@
+// Copyright (c) 2003-2014, Jodd Team (jodd.org). All Rights Reserved.%0A%0Apackage jodd.proxetta;%0A%0Aimport jodd.proxetta.advice.DelegateAdvice;%0Aimport jodd.proxetta.impl.ProxyProxetta;%0Aimport jodd.proxetta.impl.ProxyProxettaBuilder;%0Aimport jodd.proxetta.impl.WrapperProxetta;%0Aimport jodd.proxetta.impl.WrapperProxettaBuilder;%0Aimport org.junit.Test;%0A%0Aimport static org.junit.Assert.fail;%0A%0Apublic class GenericsTest %7B%0A%0A%09public static class Bar%3CT%3E %7B%0A%09%7D%0A%0A%09public static interface IFoo %7B%0A%09%09String getId();%0A%09%09Bar%3CFoo%3E getFoo();%0A%09%7D%0A%0A%09public static class Foo implements IFoo %7B%0A%09%09private String id;%0A%09%09public String getId() %7B%0A%09%09%09return id;%0A%09%09%7D%0A%09%09// remove the generic and it works%0A%09%09public Bar%3CFoo%3E getFoo() %7B%0A%09%09%09return null;%0A%09%09%7D%0A%09%7D%0A%0A%09@Test%0A%09public void testClassesWithGenericsAsReturnValueWrapper() %7B%0A%09%09try %7B%0A%09%09%09ProxyAspect aspect = new ProxyAspect(DelegateAdvice.class);%0A%09%09%09WrapperProxetta proxetta = WrapperProxetta.withAspects(aspect);%0A%09%09%09WrapperProxettaBuilder builder = proxetta.builder(Foo.class, IFoo.class);%0A%09%09%09builder.newInstance();%0A%09%09%7D%0A%09%09catch (Exception ex) %7B%0A%09%09%09fail(ex.toString());%0A%09%09%7D%0A%09%7D%0A%0A%09@Test%0A%09public void testClassesWithGenericsAsReturnValueProxy() %7B%0A%09%09try %7B%0A%09%09%09ProxyAspect aspect = new ProxyAspect(DelegateAdvice.class);%0A%09%09%09ProxyProxetta proxetta = ProxyProxetta.withAspects(aspect).setDebugFolder(%22/Users/igor%22);%0A%09%09%09ProxyProxettaBuilder builder = proxetta.builder(Foo.class);%0A%09%09%09builder.newInstance();%0A%09%09%7D%0A%09%09catch (Exception ex) %7B%0A%09%09%09ex.printStackTrace();%0A%09%09%09fail(ex.toString());%0A%09%09%7D%0A%09%7D%0A%7D

test added