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 2012/09/10 23:06:49 UTC
svn commit: r1383110 - in /cxf/trunk:
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/
systests/jaxrs/src/test/java/org...
Author: sergeyb
Date: Mon Sep 10 21:06:48 2012
New Revision: 1383110
URL: http://svn.apache.org/viewvc?rev=1383110&view=rev
Log:
[CXF-4455] Minor updates to the filter tests
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java?rev=1383110&r1=1383109&r2=1383110&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java Mon Sep 10 21:06:48 2012
@@ -39,6 +39,7 @@ import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;
import org.apache.cxf.helpers.CastUtils;
+import org.apache.cxf.jaxrs.utils.HttpUtils;
import org.apache.cxf.message.Message;
public class ContainerRequestContextImpl implements ContainerRequestContext {
@@ -201,7 +202,7 @@ public class ContainerRequestContextImpl
if (!preMatch) {
throw new IllegalStateException();
}
- m.put(Message.REQUEST_URI, requestUri.toString());
+ HttpUtils.resetRequestURI(m, requestUri.toString());
}
@Override
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java?rev=1383110&r1=1383109&r2=1383110&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java Mon Sep 10 21:06:48 2012
@@ -987,13 +987,12 @@ public final class ProviderFactory {
public void setSchemaLocations(List<String> schemas) {
boolean schemasMethodAvailable = false;
for (ProviderInfo<MessageBodyReader<?>> r : messageReaders) {
- schemasMethodAvailable = injectProviderProperty(r.getProvider(), "setSchemas",
- List.class, schemas);
+ schemasMethodAvailable =
+ injectProviderProperty(r.getProvider(), "setSchemas", List.class, schemas);
}
if (!schemasMethodAvailable) {
for (ProviderInfo<MessageBodyReader<?>> r : jaxbReaders) {
- schemasMethodAvailable = injectProviderProperty(r.getProvider(), "setSchemas",
- List.class, schemas);
+ injectProviderProperty(r.getProvider(), "setSchemas", List.class, schemas);
}
}
}
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java?rev=1383110&r1=1383109&r2=1383110&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java Mon Sep 10 21:06:48 2012
@@ -288,6 +288,13 @@ public final class HttpUtils {
return u;
}
+ public static void resetRequestURI(Message m, String requestURI) {
+ m.remove(REQUEST_PATH_TO_MATCH_SLASH);
+ m.remove(REQUEST_PATH_TO_MATCH);
+ m.put(Message.REQUEST_URI, requestURI);
+ }
+
+
public static String getPathToMatch(Message m, boolean addSlash) {
String var = addSlash ? REQUEST_PATH_TO_MATCH_SLASH : REQUEST_PATH_TO_MATCH;
String pathToMatch = (String)m.get(var);
Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java?rev=1383110&r1=1383109&r2=1383110&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java Mon Sep 10 21:06:48 2012
@@ -24,6 +24,7 @@ import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import java.net.URI;
import java.util.ArrayList;
import java.util.List;
@@ -32,6 +33,8 @@ import javax.ws.rs.container.ContainerRe
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.UriInfo;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
@@ -83,11 +86,18 @@ public class BookServer20 extends Abstra
}
}
+ @PreMatching
private static class PreMatchContainerRequestFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext context) throws IOException {
context.getHeaders().add("BOOK", "123");
+
+ UriInfo ui = context.getUriInfo();
+ String path = ui.getPath(false);
+ if ("wrongpath".equals(path)) {
+ context.setRequestUri(URI.create("/bookstore/bookheaders/simple"));
+ }
}
}
@@ -109,6 +119,8 @@ public class BookServer20 extends Abstra
public void filter(ContainerRequestContext requestContext,
ContainerResponseContext responseContext) throws IOException {
responseContext.getHeaders().add("Custom", "custom");
+ Book book = (Book)responseContext.getEntity();
+ responseContext.setEntity(new Book(book.getName(), 1 + book.getId()), null, null);
}
}
Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java?rev=1383110&r1=1383109&r2=1383110&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java Mon Sep 10 21:06:48 2012
@@ -39,9 +39,19 @@ public class JAXRS20ClientServerBookTest
@Test
public void testGetBook() {
String address = "http://localhost:" + PORT + "/bookstore/bookheaders/simple";
+ doTestBook(address);
+ }
+
+ @Test
+ public void testGetBookWrongPath() {
+ String address = "http://localhost:" + PORT + "/wrongpath";
+ doTestBook(address);
+ }
+
+ private void doTestBook(String address) {
WebClient wc = WebClient.create(address);
Book book = wc.get(Book.class);
- assertEquals(123L, book.getId());
+ assertEquals(124L, book.getId());
Response response = wc.getResponse();
assertEquals("OK", response.getHeaderString("Response"));
assertEquals("custom", response.getHeaderString("Custom"));