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 2016/12/19 12:47:45 UTC

cxf git commit: Updating Request preprocessor to ignore the swagger2 queries

Repository: cxf
Updated Branches:
  refs/heads/master 5a6a30faa -> 0e391a6a0


Updating Request preprocessor to ignore the swagger2 queries


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

Branch: refs/heads/master
Commit: 0e391a6a020d6825001adb231a9a431779b2d6f9
Parents: 5a6a30f
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Mon Dec 19 12:47:29 2016 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Mon Dec 19 12:47:29 2016 +0000

----------------------------------------------------------------------
 .../cxf/jaxrs/impl/RequestPreprocessor.java     | 35 ++++++++++++--------
 .../AbstractSwagger2ServiceDescriptionTest.java |  3 ++
 2 files changed, 25 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/0e391a6a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
index ada66e3..d01f956 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
@@ -21,8 +21,10 @@ package org.apache.cxf.jaxrs.impl;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MultivaluedMap;
@@ -39,17 +41,21 @@ public class RequestPreprocessor {
     private static final String METHOD_QUERY = "_method";
     private static final String METHOD_HEADER = "X-HTTP-Method-Override";
     
+    private static final Set<String> PATHS_TO_SKIP;
+    private static final Map<String, String> MEDIA_TYPE_SHORTCUTS;
     
-    private static final Map<String, String> SHORTCUTS;
     static {
-        SHORTCUTS = new HashMap<String, String>();
-        SHORTCUTS.put("json", "application/json");
-        SHORTCUTS.put("text", "text/*");
-        SHORTCUTS.put("xml", "application/xml");
-        SHORTCUTS.put("atom", "application/atom+xml");
-        SHORTCUTS.put("html", "text/html");
-        SHORTCUTS.put("wadl", "application/vnd.sun.wadl+xml");
-        // more to come
+        MEDIA_TYPE_SHORTCUTS = new HashMap<String, String>();
+        MEDIA_TYPE_SHORTCUTS.put("json", "application/json");
+        MEDIA_TYPE_SHORTCUTS.put("text", "text/*");
+        MEDIA_TYPE_SHORTCUTS.put("xml", "application/xml");
+        MEDIA_TYPE_SHORTCUTS.put("atom", "application/atom+xml");
+        MEDIA_TYPE_SHORTCUTS.put("html", "text/html");
+        MEDIA_TYPE_SHORTCUTS.put("wadl", "application/vnd.sun.wadl+xml");
+        
+        PATHS_TO_SKIP = new HashSet<String>();
+        PATHS_TO_SKIP.add("swagger.json");
+        PATHS_TO_SKIP.add("swagger.yaml");
     }
     
     private Map<Object, Object> languageMappings;
@@ -99,6 +105,9 @@ public class RequestPreprocessor {
         }
         PathSegmentImpl ps = new PathSegmentImpl(uriInfo.getPath(false), false);
         String path = ps.getPath();
+        if (PATHS_TO_SKIP.contains(path)) {
+            return;
+        }
         for (Map.Entry<?, ?> entry : extensionMappings.entrySet()) {
             String key = entry.getKey().toString();
             if (path.endsWith("." + key)) {
@@ -160,8 +169,8 @@ public class RequestPreprocessor {
     private void handleTypeQuery(Message m, MultivaluedMap<String, String> queries) {
         String type = queries.getFirst(ACCEPT_QUERY);
         if (type != null) {
-            if (SHORTCUTS.containsKey(type)) {
-                type = SHORTCUTS.get(type);
+            if (MEDIA_TYPE_SHORTCUTS.containsKey(type)) {
+                type = MEDIA_TYPE_SHORTCUTS.get(type);
             }
             updateAcceptTypeHeader(m, type);
         }
@@ -170,8 +179,8 @@ public class RequestPreprocessor {
     private void handleCType(Message m, MultivaluedMap<String, String> queries) {
         String type = queries.getFirst(CTYPE_QUERY);
         if (type != null) {
-            if (SHORTCUTS.containsKey(type)) {
-                type = SHORTCUTS.get(type);
+            if (MEDIA_TYPE_SHORTCUTS.containsKey(type)) {
+                type = MEDIA_TYPE_SHORTCUTS.get(type);
             }
             m.put(Message.CONTENT_TYPE, type);
         }

http://git-wip-us.apache.org/repos/asf/cxf/blob/0e391a6a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java
index 3dfdb99..6ea3a0b 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java
@@ -21,6 +21,7 @@ package org.apache.cxf.systest.jaxrs.description;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -76,6 +77,8 @@ public abstract class AbstractSwagger2ServiceDescriptionTest extends AbstractBus
             feature.setRunAsFilter(runAsFilter);
             sf.setFeatures(Arrays.asList(feature));
             sf.setAddress("http://localhost:" + port + "/");
+            sf.setExtensionMappings(
+                 Collections.singletonMap("json", "application/json;charset=UTF-8"));
             sf.create();
         }