You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2016/04/12 11:34:47 UTC
wicket git commit: WICKET-6133 Failing test
SpringBeanWithGenericsTest in 7.3.0.0 SNAPSHOT
Repository: wicket
Updated Branches:
refs/heads/wicket-7.x e70c170ce -> a520f443a
WICKET-6133 Failing test SpringBeanWithGenericsTest in 7.3.0.0 SNAPSHOT
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a520f443
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a520f443
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a520f443
Branch: refs/heads/wicket-7.x
Commit: a520f443ada300c0f99e5ad8bf3fb19dc60eb71f
Parents: e70c170
Author: Andrea Del Bene <ad...@apache.org>
Authored: Tue Apr 12 11:32:08 2016 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Tue Apr 12 11:32:08 2016 +0200
----------------------------------------------------------------------
.../annot/AnnotProxyFieldValueFactory.java | 23 ++++++++++++++++----
.../annot/SpringBeanWithGenericsTest.java | 14 +++++++-----
2 files changed, 28 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/a520f443/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
----------------------------------------------------------------------
diff --git a/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java b/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
index efa333d..2054121 100644
--- a/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
+++ b/wicket-spring/src/main/java/org/apache/wicket/spring/injection/annot/AnnotProxyFieldValueFactory.java
@@ -17,6 +17,7 @@
package org.apache.wicket.spring.injection.annot;
import java.lang.reflect.Field;
+import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
@@ -81,7 +82,8 @@ public class AnnotProxyFieldValueFactory implements IFieldValueFactory
private final ConcurrentMap<SpringBeanLocator, Object> cache = Generics.newConcurrentHashMap();
- private final ConcurrentMap<Class<?>, String> beanNameCache = Generics.newConcurrentHashMap();
+ private final ConcurrentMap<SimpleEntry<Class<?>, Class<?>>,
+ String> beanNameCache = Generics.newConcurrentHashMap();
private final boolean wrapInProxies;
@@ -188,15 +190,19 @@ public class AnnotProxyFieldValueFactory implements IFieldValueFactory
if (Strings.isEmpty(name))
{
Class<?> fieldType = field.getType();
+ SimpleEntry<Class<?>, Class<?>> keyPair =
+ new SimpleEntry<Class<?>, Class<?>>(fieldType, generic);
name = beanNameCache.get(fieldType);
if (name == null)
{
- name = getBeanNameOfClass(contextLocator.getSpringContext(), fieldType, generic);
+ name = getBeanNameOfClass(contextLocator.getSpringContext(), fieldType,
+ generic, field.getName());
if (name != null)
{
- String tmpName = beanNameCache.putIfAbsent(fieldType, name);
+
+ String tmpName = beanNameCache.putIfAbsent(keyPair, name);
if (tmpName != null)
{
name = tmpName;
@@ -216,11 +222,12 @@ public class AnnotProxyFieldValueFactory implements IFieldValueFactory
* spring application context
* @param clazz
* bean class
+ * @param fieldName
* @throws IllegalStateException
* @return spring name of the bean
*/
private String getBeanNameOfClass(final ApplicationContext ctx, final Class<?> clazz,
- final Class<?> generic)
+ final Class<?> generic, String fieldName)
{
// get the list of all possible matching beans
List<String> names = new ArrayList<>(
@@ -267,6 +274,14 @@ public class AnnotProxyFieldValueFactory implements IFieldValueFactory
}
}
+ //use field name to find a match
+ int nameIndex = names.indexOf(fieldName);
+
+ if (nameIndex > -1)
+ {
+ return names.get(nameIndex);
+ }
+
if (generic != null)
{
return null;
http://git-wip-us.apache.org/repos/asf/wicket/blob/a520f443/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
----------------------------------------------------------------------
diff --git a/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java b/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
index f5e57e1..74dca27 100644
--- a/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
+++ b/wicket-spring/src/test/java/org/apache/wicket/spring/injection/annot/SpringBeanWithGenericsTest.java
@@ -136,12 +136,16 @@ public class SpringBeanWithGenericsTest extends Assert
@Test
public void listField() throws Exception
{
- AnnotatedListField page =
+ AnnotatedListField page =
tester.startPage(new AnnotatedListField());
- assertNotNull(page.getStringsList());
- assertEquals(3, page.getStringsList().size());
-
+ List<String> stringsList = page.getStringsList();
+ assertNotNull(stringsList);
+ assertEquals(3, stringsList.size());
+ assertThat(stringsList.get(0), is(equalTo("foo")));
+ assertThat(stringsList.get(1), is(equalTo("bar")));
+ assertThat(stringsList.get(2), is(equalTo("baz")));
+
ArrayList<String> arrayListStrings = page.getArrayListStrings();
assertThat(arrayListStrings, is(notNullValue()));
assertThat(arrayListStrings.size(), is(3));
@@ -289,7 +293,7 @@ public class SpringBeanWithGenericsTest extends Assert
}
@Bean
- public List<String> strings()
+ public List<String> stringsList()
{
return Arrays.asList("foo", "bar", "baz");
}