Hello Martin,
I have added a JavaBean-compliant setPageFactory() to my settings
subclass (because of the return type of setDefaultPageFactory()) so my
Spring configuration is correct.
Thanks for the tipp with MethodInvokingFactoryBean, but IMHO this is way
too much wordy.
So quoting Eelco:
I think we can get rid of the chaining setters in classes like
ApplicationSettings.
+1
I don't think Sun will 'enhance' the bean spec, so I'd really like Wicket to
adhere to (some) common standards.
Thanks
Sven
Martin Fey wrote:
Hi Sven,
the property name of the ApplicationSettings-object is misnamed, it should be:
<bean id="settings" class="test.MySettings">
<constructor-arg ref="application"/>
<property name="defaultPageFactory" ref="pageFactory"/>
</bean>
In general, Spring beans have to be bean-conform. So there is a workaround for
using such setters that doesn't return the trivial void (have a look at
TheServerSide.com:
http://www.theserverside.com/articles/article.tss?l=SpringLoadedObserverPattern).
Try something like this (keep in mind that Spring beans are singletons by
default):
<beans>
<bean id="application" class="test.MyApplication">
<property name="settings" ref="settings"/>
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="settings" class="test.MySettings">
<constructor-arg ref="application"/>
<property name="pageFactory" ref="pageFactory"/>
</bean>
<bean id="pageFactory" class="test.MyPageFactory"/>
<bean id="registerPageFactory"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject"><ref local="settings"/></property>
<property name="targetMethod"><value>setDefaultPageFactory</value></property>
<property name="arguments"><ref bean="pageFactory"/></property>
</bean>
<bean id="sessionFactory" class="test.MySessionFactory">
<constructor-arg ref="application"/>
</bean>
</beans>
Regards
Martin
[EMAIL PROTECTED] 04.10.05 10:57 >>>
Hello,
I'm using a custom IWebApplicationFactory to create a wicket application inside
its own Spring application context:
<beans>
<bean id="application" class="test.MyApplication">
<property name="settings" ref="settings"/>
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="settings" class="test.MySettings">
<constructor-arg ref="application"/>
<property name="pageFactory" ref="pageFactory"/>
</bean>
<bean id="pageFactory" class="test.MyPageFactory"/>
<bean id="sessionFactory" class="test.MySessionFactory">
<constructor-arg ref="application"/>
</bean>
</beans>
I've added setSettings() to my application, so that MySettings could be
injected into the application.
Now to my problem:
It seems that Spring does not like Wicket's 'chainable' setters because of
their return type, e.g.
public ApplicationSettings setDefaultPageFactory(IPageFactory
defaultPageFactory)
A NotWritablePropertyException will be thrown because of the non-void return
type.
After adding setPageFactory() I realized that I have to add a Java-Beans
compliant setter for each property of ApplicationSettings, e.g.
<property name="stripWicketTags" value="true"/>
I'm not sure who is to blame for this, Spring because it's so picky or Wicket
with its baroque setter idiom (or perhaps me ;).
Does anybody have a nice solution to this?
Sven
-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user