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 2015/12/01 17:30:53 UTC

cxf git commit: Reordering the way request dispatcher provider checks resources to ensure the more dynamic settings are prefferred

Repository: cxf
Updated Branches:
  refs/heads/master a77774de4 -> 813321ea2


Reordering the way request dispatcher provider checks resources to ensure the more dynamic settings are prefferred


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/813321ea
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/813321ea
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/813321ea

Branch: refs/heads/master
Commit: 813321ea28d184188f1591e26629632a34ee4c22
Parents: a77774d
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Tue Dec 1 16:30:33 2015 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Tue Dec 1 16:30:33 2015 +0000

----------------------------------------------------------------------
 .../provider/RequestDispatcherProvider.java     | 70 +++++++++++---------
 1 file changed, 39 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/813321ea/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
index 4422d81..a2d239f 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
@@ -238,49 +238,57 @@ public class RequestDispatcherProvider extends AbstractConfigurableProvider
     }
     
     String getResourcePath(Class<?> cls, Object o) {
-        if (useClassNames) {
-            return getClassResourceName(cls);     
+        String currentResourcePath = getPathFromMessageContext();
+        if (currentResourcePath != null) {
+            return currentResourcePath;
         }
         
-        String name = cls.getName();
-        if (cls.isEnum()) {
-            String enumResource = enumResources.get(o);
-            if (enumResource != null) {
-                return enumResource;
+        if (!resourcePaths.isEmpty()) {
+            
+            String path = getRequestPath();
+            for (Map.Entry<String, String> entry : resourcePaths.entrySet()) {
+                if (path.endsWith(entry.getKey())) {
+                    return entry.getValue();
+                }
             }
-            name += "." + o.toString();     
-        }
-        
-        String clsResourcePath = classResources.get(name);
-        if (clsResourcePath != null) {
-            return clsResourcePath;
         }
-        if (resourcePath != null) {
-            return resourcePath;
-        }
-        String path = getRequestPath();
-        for (Map.Entry<String, String> entry : resourcePaths.entrySet()) {
-            if (path.endsWith(entry.getKey())) {
-                return entry.getValue();
+        if (!enumResources.isEmpty() || !classResources.isEmpty()) {
+            String name = cls.getName();
+            if (cls.isEnum()) {
+                String enumResource = enumResources.get(o);
+                if (enumResource != null) {
+                    return enumResource;
+                }
+                name += "." + o.toString();     
+            }
+            
+            String clsResourcePath = classResources.get(name);
+            if (clsResourcePath != null) {
+                return clsResourcePath;
             }
         }
         
-        return getPathFromMessageContext();
+        if (useClassNames) {
+            return getClassResourceName(cls);     
+        }
         
+        return resourcePath;
     }
     
     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);
+        if (mc != null) {
+            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 sb.toString();
         }
         return null;
     }