Author: mir
Date: Mon Nov 1 16:22:24 2010
New Revision: 1029731
URL: http://svn.apache.org/viewvc?rev=1029731&view=rev
Log:
CLEREZZA-346: @DefaultValue value is now also used when no other query params
are specified
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/DefaultValueAnnotationTest.java
- copied, changed from r1028364,
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/TestAnnotationDefaultValue.java
Removed:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/TestAnnotationDefaultValue.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/RootResourceExecutorImpl.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/CookieParameterInjector.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/MatrixParameterInjector.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/QueryParameterInjector.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/RootResourceExecutorImpl.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/RootResourceExecutorImpl.java?rev=1029731&r1=1029730&r2=1029731&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/RootResourceExecutorImpl.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/RootResourceExecutorImpl.java
Mon Nov 1 16:22:24 2010
@@ -28,11 +28,9 @@ import java.lang.reflect.InvocationTarge
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.security.AccessControlException;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/CookieParameterInjector.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/CookieParameterInjector.java?rev=1029731&r1=1029730&r2=1029731&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/CookieParameterInjector.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/CookieParameterInjector.java
Mon Nov 1 16:22:24 2010
@@ -48,20 +48,17 @@ public class CookieParameterInjector imp
List<String> cookieValues = request.getHeaders().get(
HeaderName.COOKIE.toString());
List<String> cookieValue = null;
- for (String cookie : cookieValues){
- if (cookie.substring(0,
cookie.indexOf("=")).trim().equals(annotation.value())){
- cookieValue = Collections.singletonList(cookie);
- break;
+ if (cookieValues != null) {
+ for (String cookie : cookieValues){
+ if (cookie.substring(0,
cookie.indexOf("=")).trim().equals(annotation.value())){
+ cookieValue =
Collections.singletonList(cookie);
+ break;
+ }
}
}
-
- if (cookieValue == null && defaultValue == null){
- return null;
- }
- if (cookieValue == null && defaultValue != null) {
+ if (cookieValue == null && defaultValue != null){
cookieValue = Collections.singletonList(defaultValue);
}
-
return (T) ConversionUtil.convert(cookieValue, parameterType,
new ConversionUtil.Convertor<Cookie>() {
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/MatrixParameterInjector.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/MatrixParameterInjector.java?rev=1029731&r1=1029730&r2=1029731&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/MatrixParameterInjector.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/MatrixParameterInjector.java
Mon Nov 1 16:22:24 2010
@@ -44,16 +44,18 @@ public class MatrixParameterInjector imp
throws UnsupportedFieldType {
MultivaluedMap<String, String> matrix;
try {
- matrix
=QueryStringParser.getMatrix(request.getWrhapiRequest().
+ matrix =
QueryStringParser.getMatrix(request.getWrhapiRequest().
getRequestURI().getQuery(),
encodingDisabled);
} catch (HandlerException ex) {
throw new RuntimeException(ex);
}
- if (matrix == null) return null;
- List<String> values = matrix.get(annotation.value());
+ List<String> values = null;
+ if (matrix != null) {
+ values = matrix.get(annotation.value());
+ }
if (values == null && defaultValue != null) {
values = Collections.singletonList(defaultValue);
- }
+ }
return (T) ConversionUtil.convert(values, parameterType);
}
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/QueryParameterInjector.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/QueryParameterInjector.java?rev=1029731&r1=1029730&r2=1029731&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/QueryParameterInjector.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/parameterinjectors/QueryParameterInjector.java
Mon Nov 1 16:22:24 2010
@@ -48,11 +48,11 @@ public class QueryParameterInjector impl
try {
final String query =
request.getWrhapiRequest().getRequestURI()
.getQuery();
- if (query == null) {
- return null;
+ List<String> values = null;
+ if (query != null) {
+ values =
QueryStringParser.getParameterValues(query,
+ !encodingDisabled,
annotation.value());
}
- List<String> values =
QueryStringParser.getParameterValues(query,
- !encodingDisabled, annotation.value());
if (values == null && defaultValue != null) {
values =
Collections.singletonList(defaultValue);
}
Copied:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/DefaultValueAnnotationTest.java
(from r1028364,
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/TestAnnotationDefaultValue.java)
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/DefaultValueAnnotationTest.java?p2=incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/DefaultValueAnnotationTest.java&p1=incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/TestAnnotationDefaultValue.java&r1=1028364&r2=1029731&rev=1029731&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/TestAnnotationDefaultValue.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/DefaultValueAnnotationTest.java
Mon Nov 1 16:22:24 2010
@@ -57,7 +57,7 @@ import org.wymiwyg.wrhapi.util.MessageBo
*
* @author mir
*/
-public class TestAnnotationDefaultValue {
+public class DefaultValueAnnotationTest {
@Before
public void setUp() {
@@ -75,6 +75,7 @@ public class TestAnnotationDefaultValue
static Cookie cookie;
static String date;
static String pathParam;
+ static String id;
@POST
@@ -93,6 +94,7 @@ public class TestAnnotationDefaultValue
r.setContent(id);
return r;
}
+
@Path("addheader")
@GET
public void setHeader(@DefaultValue(value="1.1.1970")
@HeaderParam("expires") String date) {
@@ -121,6 +123,12 @@ public class TestAnnotationDefaultValue
matrix = matrixParam;
queryParam = testValue;
}
+
+ @GET
+ @Path("getId")
+ public void setMatrix(@DefaultValue(value = "123")
@QueryParam(value = "id") String idParam) {
+ id = idParam;
+ }
}// $Log: $
@@ -177,7 +185,7 @@ public class TestAnnotationDefaultValue
RequestImpl request = new RequestImpl();
RequestURIImpl uri = new RequestURIImpl();
uri.setPath("/test-resource/add");
- uri.setQuery(";lat=50;long=20");
+ //uri.setQuery(";lat=50;long=20");
request.setRequestURI(uri);
request.setMethod(Method.POST);
@@ -190,7 +198,7 @@ public class TestAnnotationDefaultValue
@Test
- public void testQueryParamInjectionIntoMethod() throws Exception {
+ public void testQueryParamInjectionIntoMethodPost() throws Exception {
JaxRsHandler handler =
HandlerCreator.getHandler(TestResourceForDefaultValue.class);
RequestImpl request = new RequestImpl();
@@ -209,6 +217,23 @@ public class TestAnnotationDefaultValue
}
@Test
+ public void testQueryParamInjectionIntoMethodGet() throws Exception {
+ JaxRsHandler handler =
HandlerCreator.getHandler(TestResourceForDefaultValue.class);
+
+ RequestImpl request = new RequestImpl();
+ RequestURIImpl uri = new RequestURIImpl();
+ uri.setPath("/test-resource/getId");
+ request.setRequestURI(uri);
+ request.setMethod(Method.GET);
+
+ Response response = new ResponseImpl();
+ handler.handle(request, response);
+
+ assertNotNull(TestResourceForDefaultValue.id);
+ assertEquals("123", TestResourceForDefaultValue.id);
+ }
+
+ @Test
public void testFormParamInjectionIntoMethod() throws Exception {
JaxRsHandler handler =
HandlerCreator.getHandler(TestResourceForDefaultValue.class);