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/31 17:52:45 UTC

svn commit: r1537551 - /cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java

Author: sergeyb
Date: Thu Oct 31 16:52:45 2013
New Revision: 1537551

URL: http://svn.apache.org/r1537551
Log:
RequestDispatcherProvider should add prefix and extensions to the context paths when possible

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java?rev=1537551&r1=1537550&r2=1537551&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java Thu Oct 31 16:52:45 2013
@@ -88,6 +88,8 @@ public class RequestDispatcherProvider e
     private boolean saveParametersAsAttributes;
     private boolean logRedirects;
     private boolean strictPathCheck;
+    private String locationPrefix;
+    private String resourceExtension;
     
     private MessageContext mc; 
 
@@ -115,7 +117,9 @@ public class RequestDispatcherProvider e
         if (simpleName.length() > 1) {
             sb.append(simpleName.substring(1));
         }
-        return DEFAULT_LOCATION_PREFIX + sb.toString() + DEFAULT_RESOURCE_EXTENSION;  
+        String thePrefix = locationPrefix == null ? DEFAULT_LOCATION_PREFIX : locationPrefix;
+        String theExtension = resourceExtension == null ? DEFAULT_RESOURCE_EXTENSION : resourceExtension;
+        return thePrefix + sb.toString() + theExtension;  
     }
     
     public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mt) {
@@ -232,11 +236,26 @@ public class RequestDispatcherProvider e
             }
         }
         
-        Object resourcePathProp = (String)mc.get(MESSAGE_RESOURCE_PATH_PROPERTY);
-        return resourcePathProp != null ? resourcePathProp.toString() : null;
+        return getPathFromMessageContext();
         
     }
     
+    private String getPathFromMessageContext() {
+        Object resourcePathProp = (String)mc.get(MESSAGE_RESOURCE_PATH_PROPERTY);
+        if (resourcePathProp != null) {
+            StringBuilder sb = new StringBuilder();
+            if (locationPrefix != null) {
+                sb.append(locationPrefix);
+            }
+            sb.append(resourcePathProp.toString());
+            if (resourceExtension != null) {
+                sb.append(resourceExtension);
+            }
+            return sb.toString();
+        }
+        return null;
+    }
+    
     private String getRequestPath() {
         Message inMessage = PhaseInterceptorChain.getCurrentMessage().getExchange().getInMessage();
         return (String)inMessage.get(Message.REQUEST_URI);