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