Author: jdonnerstag
Date: Sat Oct 3 14:52:58 2009
New Revision: 821332
URL: http://svn.apache.org/viewvc?rev=821332&view=rev
Log:
WICKET-2344 fixed: Performance improvement: more efficient
AnnotProxyFieldValueFactory cache
Modified:
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
wicket/trunk/wicket-spring/src/test/java/org/apache/wicket/spring/SpringBeanLocatorTest.java
Modified:
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java?rev=821332&r1=821331&r2=821332&view=diff
==============================================================================
---
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
(original)
+++
wicket/trunk/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
Sat Oct 3 14:52:58 2009
@@ -61,7 +61,7 @@
* @param locator
* spring context locator
*/
- public SpringBeanLocator(Class< ? > beanType, ISpringContextLocator
locator)
+ public SpringBeanLocator(final Class< ? > beanType, final
ISpringContextLocator locator)
{
this(null, beanType, locator);
}
@@ -76,7 +76,8 @@
* @param locator
* spring context locator
*/
- public SpringBeanLocator(String beanName, Class< ? > beanType,
ISpringContextLocator locator)
+ public SpringBeanLocator(final String beanName, final Class< ? >
beanType,
+ final ISpringContextLocator locator)
{
if (locator == null)
{
@@ -213,7 +214,6 @@
if (beanName == null || "".equals(beanName))
{
beanName = getBeanNameOfClass(getSpringContext(),
getBeanType());
-
}
return beanName;
}
@@ -273,7 +273,7 @@
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
- public boolean equals(Object obj)
+ public boolean equals(final Object obj)
{
if (obj instanceof SpringBeanLocator)
{
@@ -291,7 +291,7 @@
public int hashCode()
{
int hashcode = beanTypeName.hashCode();
- if (beanName != null)
+ if (getBeanName() != null)
{
hashcode = hashcode + (127 * beanName.hashCode());
}
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=821332&r1=821331&r2=821332&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
Sat Oct 3 14:52:58 2009
@@ -81,7 +81,6 @@
*/
public Object getFieldValue(Field field, Object fieldOwner)
{
-
if (field.isAnnotationPresent(SpringBean.class))
{
SpringBean annot =
field.getAnnotation(SpringBean.class);
@@ -89,9 +88,10 @@
contextLocator);
// only check the cache if the bean is a singleton
- if (locator.isSingletonBean() &&
cache.containsKey(locator))
+ Object cachedValue = cache.get(locator);
+ if (cachedValue != null)
{
- return cache.get(locator);
+ return cachedValue;
}
Object proxy =
LazyInitProxyFactory.createProxy(field.getType(), locator);
@@ -102,10 +102,7 @@
}
return proxy;
}
- else
- {
- return null;
- }
+ return null;
}
/**
Modified:
wicket/trunk/wicket-spring/src/test/java/org/apache/wicket/spring/SpringBeanLocatorTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-spring/src/test/java/org/apache/wicket/spring/SpringBeanLocatorTest.java?rev=821332&r1=821331&r2=821332&view=diff
==============================================================================
---
wicket/trunk/wicket-spring/src/test/java/org/apache/wicket/spring/SpringBeanLocatorTest.java
(original)
+++
wicket/trunk/wicket-spring/src/test/java/org/apache/wicket/spring/SpringBeanLocatorTest.java
Sat Oct 3 14:52:58 2009
@@ -16,14 +16,12 @@
*/
package org.apache.wicket.spring;
-import org.apache.wicket.spring.ISpringContextLocator;
-import org.apache.wicket.spring.SpringBeanLocator;
+import junit.framework.TestCase;
+
import org.apache.wicket.spring.test.ApplicationContextMock;
import org.apache.wicket.spring.test.SpringContextLocatorMock;
import org.apache.wicket.util.lang.Objects;
-import junit.framework.TestCase;
-
/**
* Tests {...@link SpringBeanLocator}
*
@@ -44,6 +42,7 @@
private ISpringContextLocator ctxLocator;
+ @Override
protected void setUp() throws Exception
{
ctx = new ApplicationContextMock();
@@ -231,6 +230,7 @@
assertEquals(d, dprime);
assertEquals(dprime, d);
+ ctx.putBean("locator", a); // we need to register a Bean of
type d.getClass()
assertEquals(d.hashCode(), dprime.hashCode());
assertFalse(a.equals(d));