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


Reply via email to