You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2009/11/12 07:10:09 UTC
svn commit: r835250 - in
/wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot:
AnnotProxyFieldValueFactory.java SpringComponentInjector.java
Author: ivaynberg
Date: Thu Nov 12 06:10:09 2009
New Revision: 835250
URL: http://svn.apache.org/viewvc?rev=835250&view=rev
Log:
WICKET-2573
Modified:
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java
Modified: wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java?rev=835250&r1=835249&r2=835250&view=diff
==============================================================================
--- wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java (original)
+++ wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java Thu Nov 12 06:10:09 2009
@@ -62,17 +62,32 @@
private final ConcurrentHashMap<SpringBeanLocator, Object> cache = new ConcurrentHashMap<SpringBeanLocator, Object>();
+ private final boolean wrapInProxies;
+
/**
* @param contextLocator
* spring context locator
*/
public AnnotProxyFieldValueFactory(ISpringContextLocator contextLocator)
{
+ this(contextLocator, true);
+ }
+
+ /**
+ * @param contextLocator
+ * spring context locator
+ * @param wrapInProxies
+ * whether or not wicket should wrap dependencies with specialized proxies that can
+ * be safely serialized. in most cases this should be set to true.
+ */
+ public AnnotProxyFieldValueFactory(ISpringContextLocator contextLocator, boolean wrapInProxies)
+ {
if (contextLocator == null)
{
throw new IllegalArgumentException("[contextLocator] argument cannot be null");
}
this.contextLocator = contextLocator;
+ this.wrapInProxies = wrapInProxies;
}
/**
@@ -94,13 +109,22 @@
return cachedValue;
}
- Object proxy = LazyInitProxyFactory.createProxy(field.getType(), locator);
+ final Object target;
+ if (wrapInProxies)
+ {
+ target = LazyInitProxyFactory.createProxy(field.getType(), locator);
+ }
+ else
+ {
+ target = locator.locateProxyTarget();
+ }
+
// only put the proxy into the cache if the bean is a singleton
if (locator.isSingletonBean())
{
- cache.put(locator, proxy);
+ cache.put(locator, target);
}
- return proxy;
+ return target;
}
return null;
}
Modified: wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java?rev=835250&r1=835249&r2=835250&view=diff
==============================================================================
--- wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java (original)
+++ wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/SpringComponentInjector.java Thu Nov 12 06:10:09 2009
@@ -85,6 +85,24 @@
*/
public SpringComponentInjector(WebApplication webapp, ApplicationContext ctx)
{
+ this(webapp, ctx, true);
+ }
+
+ /**
+ * Constructor
+ *
+ * @param webapp
+ * wicket web application
+ * @param ctx
+ * spring's application context
+ *
+ * @param wrapInProxies
+ * whether or not wicket should wrap dependencies with specialized proxies that can
+ * be safely serialized. in most cases this should be set to true.
+ */
+ public SpringComponentInjector(WebApplication webapp, ApplicationContext ctx,
+ boolean wrapInProxies)
+ {
if (webapp == null)
{
throw new IllegalArgumentException("Argument [[webapp]] cannot be null");
@@ -97,7 +115,7 @@
// store context in application's metadata ...
webapp.setMetaData(CONTEXT_KEY, new ApplicationContextHolder(ctx));
- fieldValueFactory = new AnnotProxyFieldValueFactory(new ContextLocator());
+ fieldValueFactory = new AnnotProxyFieldValueFactory(new ContextLocator(), wrapInProxies);
bind(webapp);
}