[ 
https://issues.apache.org/jira/browse/WICKET-2573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Vaynberg resolved WICKET-2573.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5-M1
                   1.4.4
         Assignee: Igor Vaynberg

> Allow applications to chose not to use CGLIB proxies for @SpringBean 
> injections
> -------------------------------------------------------------------------------
>
>                 Key: WICKET-2573
>                 URL: https://issues.apache.org/jira/browse/WICKET-2573
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket-spring
>    Affects Versions: 1.4.3, 1.5-M1
>            Reporter: Kenny MacLeod
>            Assignee: Igor Vaynberg
>            Priority: Minor
>             Fix For: 1.4.4, 1.5-M1
>
>         Attachments: AnnotProxyFieldValueFactory.java, patch.txt, 
> SpringComponentInjector.java
>
>
> Spring beans fetched from the spring context and injected into wicket 
> components are currently proxied using CGLIB before being injected. These 
> proxies are serializable, as required by the Servlet specification.
> However, this proxying puts restrictions on the beans being injected. If 
> CGLIB cannot create the proxy (e.g. if the class to proxy has no default 
> constructor, although there are other scenarios), then this technique does 
> not work. Given that Spring beans can take on many obscure forms (Spring is 
> less restrictive than CGLIB), this means that not all Spring beans can be 
> injected.
> The simplest solution to this problem is to allow applications to specify 
> that the injected Spring beans should not be proxied. Clearly, this should 
> not be the default behaviour, since there's no guarantee that Spring beans 
> are properly serializable. However, in many cases the developer knows this 
> not to be an issue, either because they know the Spring beans are 
> serializable (and will not drag half the appcontext along with them in the 
> process), or because they know their container does not serialize sessions. 
> In these situations, non-serializable objects are acceptable.
> It is trivial to modify SpringComponentInjector to support this behaviour. 
> See attached patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to