You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/11/01 17:22:25 UTC

svn commit: r1029731 - in /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src: main/java/org/apache/clerezza/triaxrs/ main/java/org/apache/clerezza/triaxrs/parameterinjectors/ test/java/org/a...

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);