You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2015/01/28 23:30:15 UTC

wicket git commit: WICKET-5808 Add support for extracting the generic element for List/Set/Map subtypes

Repository: wicket
Updated Branches:
  refs/heads/WICKET-5808-ArrayList [created] cc075e9c2


WICKET-5808 Add support for extracting the generic element for List/Set/Map subtypes


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/cc075e9c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/cc075e9c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/cc075e9c

Branch: refs/heads/WICKET-5808-ArrayList
Commit: cc075e9c25050ff8b9153d2b759f9c6d783c22f1
Parents: 6d0eae5
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Jan 29 00:28:46 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Jan 29 00:28:46 2015 +0200

----------------------------------------------------------------------
 .../apache/wicket/spring/SpringBeanLocator.java |  8 ++---
 .../wicket/spring/FieldBeansCollectorTest.java  | 18 +++++-----
 .../annot/SpringBeanWithGenericsTest.java       | 35 ++++++++++++++++++--
 3 files changed, 45 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/cc075e9c/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
----------------------------------------------------------------------
diff --git a/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java b/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
index 1f51ef9..60ccbfa 100644
--- a/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
+++ b/wicket-spring/src/main/java/org/apache/wicket/spring/SpringBeanLocator.java
@@ -137,7 +137,7 @@ public class SpringBeanLocator implements IProxyTargetLocator
 	
 	/**
 	 * If the field type is a collection (Map, Set or List) extracts type 
-	 * informations about its elements.
+	 * information about its elements.
 	 * 
 	 * @param fieldResolvableType
 	 * 				the resolvable type of the field
@@ -147,13 +147,13 @@ public class SpringBeanLocator implements IProxyTargetLocator
 	{
 		Class<?> clazz = fieldResolvableType.resolve();
 		
-		if (clazz == Set.class || clazz == List.class)
+		if (Set.class.isAssignableFrom(clazz) || List.class.isAssignableFrom(clazz))
 		{
 			return fieldResolvableType.getGeneric();
 		} 
-		else if (clazz == Map.class) 
+		else if (Map.class.isAssignableFrom(clazz))
 		{
-			return fieldResolvableType.getGeneric(1);			
+			return fieldResolvableType.getGeneric(1);
 		}
 		
 		return null;

http://git-wip-us.apache.org/repos/asf/wicket/blob/cc075e9c/wicket-spring/src/test/java/org/apache/wicket/spring/FieldBeansCollectorTest.java
----------------------------------------------------------------------
diff --git a/wicket-spring/src/test/java/org/apache/wicket/spring/FieldBeansCollectorTest.java b/wicket-spring/src/test/java/org/apache/wicket/spring/FieldBeansCollectorTest.java
index 4a20d44..62597f4 100644
--- a/wicket-spring/src/test/java/org/apache/wicket/spring/FieldBeansCollectorTest.java
+++ b/wicket-spring/src/test/java/org/apache/wicket/spring/FieldBeansCollectorTest.java
@@ -29,28 +29,28 @@ import org.springframework.core.ResolvableType;
 public class FieldBeansCollectorTest
 {
 	public List<List<String>> listOfStringList;
-	
+
 	public List genericList;
-	
+
 	@Test
 	public void resolveGenericList() throws Exception
 	{
 		Field field = getClass().getField("listOfStringList");
 		ResolvableType resolvableType = ResolvableType.forField(field);
-		
+
 		FieldBeansCollector fieldBeansCollector = new FieldBeansCollector(resolvableType);
-		
-		assertTrue(fieldBeansCollector.getFieldType() == FieldType.LIST);		
+
+		assertTrue(fieldBeansCollector.getFieldType() == FieldType.LIST);
 	}
-	
+
 	@Test
 	public void resolveRowList() throws Exception
 	{
 		Field field = getClass().getField("genericList");
-		
+
 		ResolvableType resolvableType = ResolvableType.forField(field);
 		FieldBeansCollector fieldBeansCollector = new FieldBeansCollector(resolvableType);
-		
+
 		assertTrue(fieldBeansCollector.getFieldType() == FieldType.LIST);
 	}
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/cc075e9c/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 782dc00..245cf90 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
@@ -16,6 +16,11 @@
  */
 package org.apache.wicket.spring.injection.annot;
 
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -89,13 +94,12 @@ public class SpringBeanWithGenericsTest extends Assert
 			tester.startPage(new AnnotatedMapOfBeanGenericQualifier());
 
 		Map<String, BeanWithGeneric<?>> beans = page.getBeans();
-		
+
 		assertNotNull(beans);
 		assertEquals(2, beans.size());
-		
+
 		assertTrue(beans.containsKey("stringBean"));
 		assertTrue(beans.containsKey("integerBean"));
-		
 	}
 	
 	@Test
@@ -121,6 +125,13 @@ public class SpringBeanWithGenericsTest extends Assert
 
 		assertNotNull(page.getStringsList());
 		assertEquals(3, page.getStringsList().size());
+
+		ArrayList<String> arrayListStrings = page.getArrayListStrings();
+		assertThat(arrayListStrings, is(notNullValue()));
+		assertThat(arrayListStrings.size(), is(3));
+		assertThat(arrayListStrings.get(0), is(equalTo("one")));
+		assertThat(arrayListStrings.get(1), is(equalTo("two")));
+		assertThat(arrayListStrings.get(2), is(equalTo("three")));
 	}
 	
 	@Test
@@ -197,6 +208,14 @@ public class SpringBeanWithGenericsTest extends Assert
 		{
 			return stringsList;
 		}
+
+		@SpringBean
+		private ArrayList<String> arrayListStrings;
+
+		public ArrayList<String> getArrayListStrings()
+		{
+			return arrayListStrings;
+		}
 	}
 
 	@Configuration
@@ -219,5 +238,15 @@ public class SpringBeanWithGenericsTest extends Assert
 		{
 			return Arrays.asList("foo", "bar", "baz");
 		}
+
+		@Bean
+		public ArrayList<String> arrayListStrings()
+		{
+			ArrayList<String> arrayList = new ArrayList();
+			arrayList.add("one");
+			arrayList.add("two");
+			arrayList.add("three");
+			return arrayList;
+		}
 	}
 }