You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/04/02 09:05:02 UTC

[2/3] camel git commit: CAMEL-9793: Fixed Swagger Java when using property placeholders in Rest DSL could cause invalid parameters to be included that was from the placeholder.

CAMEL-9793: Fixed Swagger Java when using property placeholders in Rest DSL could cause invalid parameters to be included that was from the placeholder.


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

Branch: refs/heads/camel-2.17.x
Commit: aba716ce377ed598b340317153fade6ad48bbe2f
Parents: 8720947
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Apr 2 09:04:09 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Apr 2 09:04:34 2016 +0200

----------------------------------------------------------------------
 .../apache/camel/model/rest/RestDefinition.java  | 19 ++++++++++++++++---
 .../apache/camel/swagger/RestSwaggerSupport.java |  1 +
 ...RestSwaggerReaderPropertyPlaceholderTest.java |  2 ++
 3 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/aba716ce/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index 2af693b..85ddc08 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -780,17 +780,30 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
                 allPath = verb.getUri();
             }
 
-            // each {} is a parameter
+            // each {} is a parameter (url templating)
             String[] arr = allPath.split("\\/");
             for (String a : arr) {
+                // need to resolve property placeholders first
+                try {
+                    a = camelContext.resolvePropertyPlaceholders(a);
+                } catch (Exception e) {
+                    throw ObjectHelper.wrapRuntimeCamelException(e);
+                }
                 if (a.startsWith("{") && a.endsWith("}")) {
                     String key = a.substring(1, a.length() - 1);
                     //  merge if exists
                     boolean found = false;
                     for (RestOperationParamDefinition param : verb.getParams()) {
                         // name is mandatory
-                        ObjectHelper.notEmpty(param.getName(), "parameter name");
-                        if (param.getName().equalsIgnoreCase(key)) {
+                        String name = param.getName();
+                        ObjectHelper.notEmpty(name, "parameter name");
+                        // need to resolve property placeholders first
+                        try {
+                            name = camelContext.resolvePropertyPlaceholders(name);
+                        } catch (Exception e) {
+                            throw ObjectHelper.wrapRuntimeCamelException(e);
+                        }
+                        if (name.equalsIgnoreCase(key)) {
                             param.type(RestParamType.path);
                             found = true;
                             break;

http://git-wip-us.apache.org/repos/asf/camel/blob/aba716ce/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
index 982d8f3..abef77d 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
@@ -155,6 +155,7 @@ public class RestSwaggerSupport {
                 xml = (String) server.invoke(found, "dumpRestsAsXml", null, null);
             }
             if (xml != null) {
+                LOG.debug("DumpRestAsXml:\n{}", xml);
                 RestsDefinition rests = ModelHelper.createModelFromXml(null, xml, RestsDefinition.class);
                 if (rests != null) {
                     return rests.getRests();

http://git-wip-us.apache.org/repos/asf/camel/blob/aba716ce/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java
index a4ec368..d2b3417 100644
--- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java
+++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java
@@ -101,6 +101,8 @@ public class RestSwaggerReaderPropertyPlaceholderTest extends CamelTestSupport {
         assertTrue(json.contains("\"summary\" : \"To update the greeting message\""));
         assertTrue(json.contains("\"/hello/bye/{name}\""));
         assertTrue(json.contains("\"/hello/hi/{name}\""));
+        assertFalse(json.contains("{foo}"));
+        assertFalse(json.contains("{bar}"));
 
         context.stop();
     }