Author: reto
Date: Sat Jun 19 21:01:44 2010
New Revision: 956296

URL: http://svn.apache.org/viewvc?rev=956296&view=rev
Log:
Added test and fix handling of uri-templates with non-trailing variable sections

Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/util/URITemplate.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/TestPlainPathParam.java

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/util/URITemplate.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/util/URITemplate.java?rev=956296&r1=956295&r2=956296&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/util/URITemplate.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/util/URITemplate.java
 Sat Jun 19 21:01:44 2010
@@ -69,19 +69,16 @@ public class URITemplate implements Comp
 
        public URITemplate(String rawTemplateString) {
                try {
-                       rawTemplateString = 
TemplateEncoder.encode(rawTemplateString, "UTF-8");
+                       this.templateString = 
TemplateEncoder.encode(rawTemplateString, "UTF-8");
                } catch (UriException ex) {
                        throw new RuntimeException(ex);
                }
-               if ((rawTemplateString.length() > 0) && 
(rawTemplateString.charAt(0) == '/')) {
-                       this.templateString = rawTemplateString.substring(1);
-               } else {
-                       this.templateString = rawTemplateString;
-               }
                StringReader stringReader = new StringReader(templateString);
                boolean readingVariableName = false;
                StringWriter sectionWriter = new StringWriter();
+               
                try {
+                       boolean ommitNextCharIfSlash = true;
                        for (int ch = stringReader.read(); ch != -1; ch = 
stringReader
                                        .read()) {
 
@@ -109,7 +106,12 @@ public class URITemplate implements Comp
                                                capturingGroups++;
                                                sectionWriter = new 
StringWriter();
                                                readingVariableName = false;
+                                               ommitNextCharIfSlash = true;
                                        } else {
+                                               if (ommitNextCharIfSlash) {
+                                                       ommitNextCharIfSlash = 
false;
+                                                       if (ch == '/') continue;
+                                               }
                                                sectionWriter.write(ch);
                                        }
 

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/test/java/org/apache/clerezza/triaxrs/blackbox/TestPlainPathParam.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/TestPlainPathParam.java?rev=956296&r1=956295&r2=956296&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/TestPlainPathParam.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/TestPlainPathParam.java
 Sat Jun 19 21:01:44 2010
@@ -42,7 +42,7 @@ public class TestPlainPathParam {
        private static String handlePathParamValue1;
        private static String handlePathParamValue2;
 
-       @Path("/prefix/{value1}")
+       @Path("/prefix/{value1}/fix")
        public static class MyResource {
 
                @GET
@@ -63,7 +63,7 @@ public class TestPlainPathParam {
                RequestURI requestURI = 
EasyMock.createNiceMock(RequestURI.class);
                String value1 = "foo";
                String value2 = "bar";
-               
expect(requestURI.getPath()).andReturn("/prefix/"+value1+"/"+value2).anyTimes();
+               
expect(requestURI.getPath()).andReturn("/prefix/"+value1+"/fix/"+value2).anyTimes();
                
expect(requestMock.getRequestURI()).andReturn(requestURI).anyTimes();
                replay(requestMock);
                replay(requestURI);
@@ -83,7 +83,7 @@ public class TestPlainPathParam {
                RequestURI requestURI = 
EasyMock.createNiceMock(RequestURI.class);
                String value1 = "f#o";
                String value2 = "b/a/r";
-               
expect(requestURI.getPath()).andReturn("/prefix/"+URLEncoder.encode(value1,"utf-8")+"/"+URLEncoder.encode(value2,
 "utf-8")).anyTimes();
+               
expect(requestURI.getPath()).andReturn("/prefix/"+URLEncoder.encode(value1,"utf-8")+"/fix/"+URLEncoder.encode(value2,
 "utf-8")).anyTimes();
                
expect(requestMock.getRequestURI()).andReturn(requestURI).anyTimes();
                replay(requestMock);
                replay(requestURI);


Reply via email to