It is quite easy to extend SpringComponentInjector so that it will look for another annotation, e.g. @SpringBean2 which wont be proxy-ed. Yet another one is to create a ticket to add an additional attribute to original @SpringBean (proxy = false).
On Thu, Jul 28, 2011 at 10:18 AM, Mike Mander <wicket-m...@gmx.de> wrote: > Found a solution, but would be great if i could get some tips about the > consequences. > I was wrapping the beans in proxies by setting the flag in > SpringComponentInjector to true. > Now it's set to false and it's working. But i'm a bit in doubt that i opened > pandoras box > with this. > > It was > addComponentInstantiationListener(new SpringComponentInjector(this, > context(), true)); > and is now > addComponentInstantiationListener(new SpringComponentInjector(this, > context(), false)); > > Thanks > Mike > > Hi, >> >> i would like to decouple the page dependencies. My page flow is >> implemented by using bookmarkable page links. >> As we all know they take a page class as parameter. This couples both >> pages. >> >> So i thought it's a good idea to give the page class a name in my Spring >> application context and reference it in >> the caller page. >> >> public StartPage extends WebPage { >> >> @SpringBean(name="nextPageClass") >> private Class<? extends Page> _nextPageClass; >> >> public StartPage() { >> add(new BookmarkablePageLink("toNextPage", _nextPageClass); >> } >> } >> >> My application context defines: >> >> <bean id="nextPageClass" class="java.lang.Class" factory-method="forName"> >> <constructor-arg value="my.NextPage"/> >> </bean> >> >> But it's not working while java.lang.Class is final. I get >> >> Caused by: java.lang.IllegalArgumentException: Cannot subclass final class >> class java.lang.Class >> at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:446) >> at >> net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) >> at >> net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) >> at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377) >> at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285) >> at >> org.apache.wicket.proxy.LazyInitProxyFactory.createProxy(LazyInitProxyFactory.java:174) >> at >> org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory.getFieldValue(AnnotProxyFieldValueFactory.java:130) >> at org.apache.wicket.injection.Injector.inject(Injector.java:103) >> ... 47 more >> >> Can i do this in another way? >> >> Thanks >> Mike >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org