You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by gn...@apache.org on 2016/03/09 16:22:23 UTC
svn commit: r1734265 - in /aries/trunk/blueprint/blueprint-core/src:
main/java/org/apache/aries/blueprint/container/GenericType.java
test/java/org/apache/aries/blueprint/container/GenericTypeTest.java
Author: gnodet
Date: Wed Mar 9 15:22:22 2016
New Revision: 1734265
URL: http://svn.apache.org/viewvc?rev=1734265&view=rev
Log:
[ARIES-1500] Fix parsing of wildcard types
Modified:
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java
aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java
Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java?rev=1734265&r1=1734264&r2=1734265&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java Wed Mar 9 15:22:22 2016
@@ -104,6 +104,16 @@ public class GenericType extends Reified
if (primitiveClasses.containsKey(type)) {
return new GenericType(primitiveClasses.get(type));
}
+ // Extends
+ if (type.startsWith("? extends ")) {
+ String raw = type.substring("? extends ".length());
+ return new GenericType(((ClassLoader) loader).loadClass(raw), BoundType.Extends);
+ }
+ // Super
+ if (type.startsWith("? super ")) {
+ String raw = type.substring("? extends ".length());
+ return new GenericType(((ClassLoader) loader).loadClass(raw), BoundType.Super);
+ }
// Class
if (loader instanceof ClassLoader) {
return new GenericType(((ClassLoader) loader).loadClass(type));
Modified: aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java?rev=1734265&r1=1734264&r2=1734265&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java Wed Mar 9 15:22:22 2016
@@ -62,6 +62,11 @@ public class GenericTypeTest extends Tes
assertEquals(List[].class, type.getRawClass());
assertEquals(1, type.size());
assertEquals(Integer.class, type.getActualTypeArgument(0).getActualTypeArgument(0).getRawClass());
+
+ type = parse("java.util.List<? extends java.lang.Number>");
+ assertEquals(List.class, type.getRawClass());
+ assertEquals(1, type.size());
+ assertEquals(Number.class, type.getActualTypeArgument(0).getRawClass());
}
public void testBasic() throws Exception {