You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2011/01/08 20:51:32 UTC
svn commit: r1056780 - in /cxf/branches/2.3.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/
rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/
systests/jaxrs/s...
Author: sergeyb
Date: Sat Jan 8 19:51:31 2011
New Revision: 1056780
URL: http://svn.apache.org/viewvc?rev=1056780&view=rev
Log:
Merged revisions 1056778 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1056778 | sergeyb | 2011-01-08 19:47:33 +0000 (Sat, 08 Jan 2011) | 1 line
[CXF-3226] Support for explicit spaces in Path expressions
........
Modified:
cxf/branches/2.3.x-fixes/ (props changed)
cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java
cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/URITemplateTest.java
cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jan 8 19:51:31 2011
@@ -1 +1 @@
-/cxf/trunk:1056615
+/cxf/trunk:1056615,1056778
Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java?rev=1056780&r1=1056779&r2=1056780&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java Sat Jan 8 19:51:31 2011
@@ -61,7 +61,8 @@ public final class URITemplate {
UriChunk chunk = UriChunk.createUriChunk(templatePart);
uriChunks.add(chunk);
if (chunk instanceof Literal) {
- String substr = escapeCharacters(chunk.getValue());
+ String encodedValue = HttpUtils.encodePartiallyEncoded(chunk.getValue(), false);
+ String substr = escapeCharacters(encodedValue);
literalChars.append(substr);
patternBuilder.append(substr);
} else if (chunk instanceof Variable) {
Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java?rev=1056780&r1=1056779&r2=1056780&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java Sat Jan 8 19:51:31 2011
@@ -63,7 +63,7 @@ public final class HttpUtils {
private static final String CHARSET_PARAMETER = "charset";
// there are more of such characters, ex, '*' but '*' is not affected by UrlEncode
- private static final String PATH_RESERVED_CHARACTERS = "=@";
+ private static final String PATH_RESERVED_CHARACTERS = "=@/";
private static final String QUERY_RESERVED_CHARACTERS = "?/";
private HttpUtils() {
Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java?rev=1056780&r1=1056779&r2=1056780&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java Sat Jan 8 19:51:31 2011
@@ -212,7 +212,7 @@ public final class ResourceUtils {
Method annotatedMethod = AnnotationUtils.getAnnotatedMethod(m);
String httpMethod = AnnotationUtils.getHttpMethodValue(annotatedMethod);
- Path path = (Path)AnnotationUtils.getMethodAnnotation(annotatedMethod, Path.class);
+ Path path = AnnotationUtils.getMethodAnnotation(annotatedMethod, Path.class);
if (httpMethod != null || path != null) {
md.bind(createOperationInfo(m, annotatedMethod, cri, path, httpMethod), m);
Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/URITemplateTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/URITemplateTest.java?rev=1056780&r1=1056779&r2=1056780&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/URITemplateTest.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/URITemplateTest.java Sat Jan 8 19:51:31 2011
@@ -250,7 +250,26 @@ public class URITemplateTest extends Ass
assertFalse(uriTemplate.match("/books/acdb", values));
}
+
+ @Test
+ public void testEscapingWildCard() throws Exception {
+ URITemplate uriTemplate = new URITemplate("/books/a*");
+ MultivaluedMap<String, String> values = new MetadataMap<String, String>();
+
+ assertTrue(uriTemplate.match("/books/a*", values));
+ assertFalse(uriTemplate.match("/books/a", values));
+ assertFalse(uriTemplate.match("/books/ac", values));
+ }
+
+ @Test
+ public void testEncodedSpace() throws Exception {
+ URITemplate uriTemplate = new URITemplate("/1 2/%203");
+ MultivaluedMap<String, String> values = new MetadataMap<String, String>();
+ assertTrue(uriTemplate.match("/1%202/%203", values));
+ assertFalse(uriTemplate.match("/1 2/%203", values));
+ }
+
@Test
public void testBasicCustomExpression4() throws Exception {
URITemplate uriTemplate = new URITemplate("/books/{bookId:...\\.}");
@@ -559,9 +578,10 @@ public class URITemplateTest extends Ass
assertFalse(tok.hasNext());
}
- @Test(expected = IllegalArgumentException.class)
+ @Test
public void testUnclosedVariable() {
- new URITemplate("/foo/{var/bar");
+ URITemplate ut = new URITemplate("/foo/{var/bar");
+ assertEquals("/foo/{var/bar", ut.getValue());
}
@Test
Modified: cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java?rev=1056780&r1=1056779&r2=1056780&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java (original)
+++ cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java Sat Jan 8 19:51:31 2011
@@ -389,6 +389,13 @@ public class BookStore {
}
@GET
+ @Path("/the books/{bookId}/")
+ @Produces("application/xml")
+ public Book getBookWithSpace(@PathParam("bookId") String id) throws BookNotFoundFault {
+ return doGetBook(id);
+ }
+
+ @GET
@Path("/books/search")
@Produces("application/xml")
public Book getBook(@Context SearchContext searchContext)
Modified: cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=1056780&r1=1056779&r2=1056780&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original)
+++ cxf/branches/2.3.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Sat Jan 8 19:51:31 2011
@@ -89,6 +89,20 @@ public class JAXRSClientServerBookTest e
}
@Test
+ public void testBookWithSpace() throws Exception {
+ WebClient client = WebClient.create("http://localhost:" + PORT + "/bookstore/").path("the books/123");
+ Book book = client.get(Book.class);
+ assertEquals(123L, book.getId());
+ }
+
+ @Test
+ public void testBookWithSpaceProxy() throws Exception {
+ BookStore store = JAXRSClientFactory.create("http://localhost:" + PORT, BookStore.class);
+ Book book = store.getBookWithSpace("123");
+ assertEquals(123L, book.getId());
+ }
+
+ @Test
public void testTempRedirectWebClient() throws Exception {
WebClient client = WebClient.create("http://localhost:" + PORT + "/bookstore/tempredirect");
Response r = client.type("*/*").get();