You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2010/06/19 23:01:44 UTC
svn commit: r956296 - in
/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src:
main/java/org/apache/clerezza/triaxrs/util/
test/java/org/apache/clerezza/triaxrs/blackbox/
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);