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 2013/10/23 17:08:29 UTC
svn commit: r1535049 - in /cxf/branches/2.7.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/
systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/
Author: sergeyb
Date: Wed Oct 23 15:08:28 2013
New Revision: 1535049
URL: http://svn.apache.org/r1535049
Log:
Merged revisions 1535038 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1535038 | sergeyb | 2013-10-23 15:45:57 +0100 (Wed, 23 Oct 2013) | 1 line
[CXF-5346] Making sure shared dynamic filters do not interfere with non-target operation bindings
........
Modified:
cxf/branches/2.7.x-fixes/ (props changed)
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java
cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/trunk:r1535038
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java?rev=1535049&r1=1535048&r2=1535049&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java Wed Oct 23 15:08:28 2013
@@ -617,6 +617,9 @@ public final class ProviderFactory {
if (entryName.equals(DEFAULT_FILTER_NAME_BINDING)) {
map.put(entry.getValue(), Collections.<String>emptyList());
} else {
+ if (entryName.endsWith(":dynamic") && !names.contains(entryName)) {
+ continue;
+ }
map.add(entry.getValue(), entryName);
}
}
@@ -1230,7 +1233,6 @@ public final class ProviderFactory {
}
}
}
-
public void initProviders(List<ClassResourceInfo> cris) {
Set<Object> set = getReadersWriters();
for (Object o : set) {
@@ -1409,7 +1411,8 @@ public final class ProviderFactory {
nameBinding = DEFAULT_FILTER_NAME_BINDING
+ ori.getClassResourceInfo().getServiceClass().getName()
+ "."
- + ori.getMethodToInvoke().getName();
+ + ori.getMethodToInvoke().getName()
+ + ":dynamic";
}
@Override
Modified: cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java?rev=1535049&r1=1535048&r2=1535049&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java (original)
+++ cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServer20.java Wed Oct 23 15:08:28 2013
@@ -301,7 +301,9 @@ public class BookServer20 extends Abstra
if (!responseContext.getHeaders().containsKey("Response")) {
throw new RuntimeException();
}
- if (!responseContext.getHeaders().containsKey("DynamicResponse")
+
+ if ((!responseContext.getHeaders().containsKey("DynamicResponse")
+ || !responseContext.getHeaders().containsKey("DynamicResponse2"))
&& !"Prematch filter error".equals(responseContext.getEntity())) {
throw new RuntimeException();
}
@@ -328,7 +330,7 @@ public class BookServer20 extends Abstra
}
@BindingPriority(2)
- public static class PostMatchDynamicContainerResponseFilter implements ContainerResponseFilter {
+ public static class PostMatchDynamicContainerResponseFilter2 implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext,
@@ -336,6 +338,21 @@ public class BookServer20 extends Abstra
if (!responseContext.getHeaders().containsKey("Response")) {
throw new RuntimeException();
}
+ responseContext.getHeaders().add("DynamicResponse2", "Dynamic2");
+
+ }
+
+ }
+
+ @BindingPriority(2)
+ public static class PostMatchDynamicContainerResponseFilter implements ContainerResponseFilter {
+
+ @Override
+ public void filter(ContainerRequestContext requestContext,
+ ContainerResponseContext responseContext) throws IOException {
+ if (!responseContext.getHeaders().containsKey("Response")) {
+ throw new RuntimeException();
+ }
responseContext.getHeaders().add("DynamicResponse", "Dynamic");
}
@@ -399,11 +416,15 @@ public class BookServer20 extends Abstra
public static class CustomDynamicFeature implements DynamicFeature {
+ private static final ContainerResponseFilter RESPONSE_FILTER =
+ new PostMatchDynamicContainerResponseFilter2();
+
@Override
public void configure(ResourceInfo resourceInfo, Configurable configurable) {
configurable.register(new PreMatchDynamicContainerRequestFilter());
configurable.register(new PostMatchDynamicContainerResponseFilter());
+ configurable.register(RESPONSE_FILTER);
}
}
Modified: cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java?rev=1535049&r1=1535048&r2=1535049&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java (original)
+++ cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java Wed Oct 23 15:08:28 2013
@@ -454,6 +454,7 @@ public class JAXRS20ClientServerBookTest
assertEquals("OK", response.getHeaderString("Response"));
assertEquals("OK2", response.getHeaderString("Response2"));
assertEquals("Dynamic", response.getHeaderString("DynamicResponse"));
+ assertEquals("Dynamic2", response.getHeaderString("DynamicResponse2"));
assertEquals("custom", response.getHeaderString("Custom"));
assertEquals("simple", response.getHeaderString("Simple"));
assertEquals("serverWrite", response.getHeaderString("ServerWriterInterceptor"));