You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by jr...@apache.org on 2010/10/27 19:13:27 UTC
svn commit: r1028041 - in /incubator/wink/trunk/wink-server/src:
main/java/org/apache/wink/server/internal/registry/
test/java/org/apache/wink/server/internal/registry/
Author: jramos
Date: Wed Oct 27 17:13:27 2010
New Revision: 1028041
URL: http://svn.apache.org/viewvc?rev=1028041&view=rev
Log:
Fix a CTS failure when using a List parameter annotated with PathParam
Modified:
incubator/wink/trunk/wink-server/src/main/java/org/apache/wink/server/internal/registry/ServerInjectableFactory.java
incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/InjectableDataTest.java
incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/ValueConvertorTest.java
Modified: incubator/wink/trunk/wink-server/src/main/java/org/apache/wink/server/internal/registry/ServerInjectableFactory.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-server/src/main/java/org/apache/wink/server/internal/registry/ServerInjectableFactory.java?rev=1028041&r1=1028040&r2=1028041&view=diff
==============================================================================
--- incubator/wink/trunk/wink-server/src/main/java/org/apache/wink/server/internal/registry/ServerInjectableFactory.java (original)
+++ incubator/wink/trunk/wink-server/src/main/java/org/apache/wink/server/internal/registry/ServerInjectableFactory.java Wed Oct 27 17:13:27 2010
@@ -26,6 +26,7 @@ import java.lang.reflect.Member;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;
@@ -501,13 +502,8 @@ public class ServerInjectableFactory ext
decodeValues(values);
try {
- // does not make sense to support List as a PathParam method
- // parameter, so, we get the last value:
- if (values.size() > 0) {
- return getConvertor().convert(values.get(values.size() - 1));
- } else {
- return getConvertor().convert(values);
- }
+ Collections.reverse(values);
+ return getConvertor().convert(values);
} catch (ConversionException e) {
throw new WebApplicationException(e.getCause(), Response.Status.NOT_FOUND);
}
Modified: incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/InjectableDataTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/InjectableDataTest.java?rev=1028041&r1=1028040&r2=1028041&view=diff
==============================================================================
--- incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/InjectableDataTest.java (original)
+++ incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/InjectableDataTest.java Wed Oct 27 17:13:27 2010
@@ -95,12 +95,25 @@ public class InjectableDataTest extends
assertEquals(1, p.size());
assertEquals("a b+c", p.get(0));
}
+
+ @GET
+ @Path("multiValueList/{m}/{m}/{m}/{m}/{m}")
+ @Produces
+ public void getMultiValueList(@PathParam("m") List<String> m) {
+ assertEquals(5, m.size());
+ assertEquals("a", m.get(4));
+ assertEquals("b", m.get(3));
+ assertEquals("c", m.get(2));
+ assertEquals("d", m.get(1));
+ assertEquals("e", m.get(0));
+ }
@GET
@Path("simpleListMulti/{p:.*/.*}")
@Produces
public void getSimpleListMulti(@PathParam("p") List<String> p) {
- assertEquals(1, p.size());
+ assertEquals(2, p.size());
+ assertEquals("a b+c", p.get(1));
assertEquals("a/b", p.get(0));
}
@@ -965,7 +978,7 @@ public class InjectableDataTest extends
MockHttpServletResponse mockResponse = invoke(mockRequest);
assertEquals(204, mockResponse.getStatus());
} catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace(System.out);
fail("method invocation failed");
}
}
@@ -977,6 +990,7 @@ public class InjectableDataTest extends
assertInvocation("pathParam/a%20b+c/encoded");
assertInvocation("pathParam/a%20b+c/default");
assertInvocation("pathParam/a%20b+c/simpleList");
+ assertInvocation("pathParam/a%20b+c/multiValueList/a/b/c/d/e");
assertInvocation("pathParam/a%20b+c/simpleListMulti/a;m=1/b");
assertInvocation("pathParam/a%20b+c/encodedList");
assertInvocation("pathParam/a%20b+c/defaultList");
Modified: incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/ValueConvertorTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/ValueConvertorTest.java?rev=1028041&r1=1028040&r2=1028041&view=diff
==============================================================================
--- incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/ValueConvertorTest.java (original)
+++ incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/registry/ValueConvertorTest.java Wed Oct 27 17:13:27 2010
@@ -414,6 +414,7 @@ public class ValueConvertorTest extends
public void getListInteger(@PathParam("p") List<Integer> p) {
List<Integer> list = new ArrayList<Integer>();
list.add(2);
+ list.add(1);
assertEquals(list, p);
}
@@ -430,6 +431,7 @@ public class ValueConvertorTest extends
public void getListString(@PathParam("p") List<String> p) {
List<String> list = new ArrayList<String>();
list.add("2");
+ list.add("1");
assertEquals(list, p);
}
@@ -446,6 +448,7 @@ public class ValueConvertorTest extends
public void getListStringConstructor(@PathParam("p") List<StringConstructorClass> p) {
List<StringConstructorClass> list = new ArrayList<StringConstructorClass>();
list.add(new StringConstructorClass("2"));
+ list.add(new StringConstructorClass("1"));
assertEquals(list, p);
}
@@ -462,6 +465,7 @@ public class ValueConvertorTest extends
public void getListValueOf(@PathParam("p") List<ValueOfClass> p) {
List<ValueOfClass> list = new ArrayList<ValueOfClass>();
list.add(ValueOfClass.valueOf("2"));
+ list.add(ValueOfClass.valueOf("1"));
assertEquals(list, p);
}
@@ -480,6 +484,7 @@ public class ValueConvertorTest extends
public void getSetInteger(@PathParam("p") Set<Integer> p) {
Set<Integer> list = new HashSet<Integer>();
list.add(2);
+ list.add(1);
assertEquals(list, p);
}
@@ -496,6 +501,7 @@ public class ValueConvertorTest extends
public void getSetString(@PathParam("p") Set<String> p) {
Set<String> list = new HashSet<String>();
list.add("2");
+ list.add("1");
assertEquals(list, p);
}
@@ -512,6 +518,7 @@ public class ValueConvertorTest extends
public void getSetStringConstructor(@PathParam("p") Set<StringConstructorClass> p) {
Set<StringConstructorClass> list = new HashSet<StringConstructorClass>();
list.add(new StringConstructorClass("2"));
+ list.add(new StringConstructorClass("1"));
assertEquals(list, p);
}
@@ -528,6 +535,7 @@ public class ValueConvertorTest extends
public void getSetValueOf(@PathParam("p") Set<ValueOfClass> p) {
Set<ValueOfClass> list = new HashSet<ValueOfClass>();
list.add(ValueOfClass.valueOf("2"));
+ list.add(ValueOfClass.valueOf("1"));
assertEquals(list, p);
}
@@ -546,6 +554,7 @@ public class ValueConvertorTest extends
public void getSortedSetInteger(@PathParam("p") SortedSet<Integer> p) {
SortedSet<Integer> list = new TreeSet<Integer>();
list.add(2);
+ list.add(1);
assertEquals(list, p);
}
@@ -562,6 +571,7 @@ public class ValueConvertorTest extends
public void getSortedSetString(@PathParam("p") SortedSet<String> p) {
SortedSet<String> list = new TreeSet<String>();
list.add("2");
+ list.add("1");
assertEquals(list, p);
}
@@ -578,6 +588,7 @@ public class ValueConvertorTest extends
public void getSortedSetStringConstructor(@PathParam("p") SortedSet<StringConstructorClass> p) {
SortedSet<StringConstructorClass> list = new TreeSet<StringConstructorClass>();
list.add(new StringConstructorClass("2"));
+ list.add(new StringConstructorClass("1"));
assertEquals(list, p);
}
@@ -594,6 +605,7 @@ public class ValueConvertorTest extends
public void getSortedSetValueOf(@PathParam("p") SortedSet<ValueOfClass> p) {
SortedSet<ValueOfClass> list = new TreeSet<ValueOfClass>();
list.add(ValueOfClass.valueOf("2"));
+ list.add(ValueOfClass.valueOf("1"));
assertEquals(list, p);
}
@@ -619,7 +631,7 @@ public class ValueConvertorTest extends
MockHttpServletResponse mockResponse = invoke(mockRequest);
assertEquals(204, mockResponse.getStatus());
} catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace(System.out);
fail("method invocation failed");
}
}
@@ -631,7 +643,7 @@ public class ValueConvertorTest extends
MockHttpServletResponse mockResponse = invoke(mockRequest);
assertEquals(status, mockResponse.getStatus());
} catch (IOException e) {
- e.printStackTrace();
+ e.printStackTrace(System.out);
fail("method invocation failed");
}
}