Author: sergeyb
Date: Thu Nov 1 14:38:09 2012
New Revision: 1404613
URL: http://svn.apache.org/viewvc?rev=1404613&view=rev
Log:
Merged revisions 1404611 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1404611 | sergeyb | 2012-11-01 14:34:45 +0000 (Thu, 01 Nov 2012) | 1 line
[CXF-4607] Adding RequestDispatcherProvider enumResources property
........
Modified:
cxf/branches/2.6.x-fixes/ (props changed)
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProviderTest.java
Propchange: cxf/branches/2.6.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/trunk:r1404611
Propchange: cxf/branches/2.6.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java?rev=1404613&r1=1404612&r2=1404613&view=diff
==============================================================================
---
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
(original)
+++
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
Thu Nov 1 14:38:09 2012
@@ -75,6 +75,7 @@ public class RequestDispatcherProvider e
private String resourcePath;
private Map<String, String> resourcePaths = Collections.emptyMap();
private Map<String, String> classResources = Collections.emptyMap();
+ private Map<? extends Enum<?>, String> enumResources =
Collections.emptyMap();
private boolean useClassNames;
private String scope = REQUEST_SCOPE;
@@ -141,6 +142,11 @@ public class RequestDispatcherProvider e
private boolean classResourceSupported(Class<?> type) {
String typeName = type.getName();
if (type.isEnum()) {
+ for (Object o : enumResources.keySet()) {
+ if (o.getClass().getName().equals(typeName)) {
+ return true;
+ }
+ }
for (String name : classResources.keySet()) {
if (name.startsWith(typeName)) {
return true;
@@ -200,6 +206,10 @@ public class RequestDispatcherProvider e
String name = cls.getName();
if (cls.isEnum()) {
+ String enumResource = enumResources.get(o);
+ if (enumResource != null) {
+ return enumResource;
+ }
name += "." + o.toString();
}
@@ -338,6 +348,10 @@ public class RequestDispatcherProvider e
this.saveParametersAsAttributes = saveParametersAsAttributes;
}
+ public void setEnumResources(Map<? extends Enum<?>, String> enumResources)
{
+ this.enumResources = enumResources;
+ }
+
protected static class HttpServletRequestFilter extends
HttpServletRequestWrapper {
private Map<String, String[]> params;
Modified:
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProviderTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProviderTest.java?rev=1404613&r1=1404612&r2=1404613&view=diff
==============================================================================
---
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProviderTest.java
(original)
+++
cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProviderTest.java
Thu Nov 1 14:38:09 2012
@@ -36,6 +36,16 @@ public class RequestDispatcherProviderTe
assertEquals("/test.jsp", p.getResourcePath(TestEnum.ONE.getClass(),
TestEnum.ONE));
}
+ @Test
+ public void testIsWriteableEnum2() {
+
+ RequestDispatcherProvider p = new RequestDispatcherProvider();
+ p.setEnumResources(
+ Collections.singletonMap(TestEnum.ONE, "/test.jsp"));
+ assertTrue(p.isWriteable(TestEnum.ONE.getClass(), null, null, null));
+ assertEquals("/test.jsp", p.getResourcePath(TestEnum.ONE.getClass(),
TestEnum.ONE));
+ }
+
private static enum TestEnum {
ONE,
TWO