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

camel git commit: CAMEL-11110 REST component host parameter handling

Repository: camel
Updated Branches:
  refs/heads/master f6a9bde97 -> 6396867d1


CAMEL-11110 REST component host parameter handling

Changes the method of accessing the `host` parameter from
`resolveAndRemoveReferenceParameter` to
`getAndRemoveOrResolveReferenceParameter` that looks if the parameter is
in the reference syntax (starts with `#`) and tries to resolve only
those.


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

Branch: refs/heads/master
Commit: 6396867d1598ca4bfa52d63140d369deccdd214b
Parents: f6a9bde
Author: Zoran Regvart <zr...@apache.org>
Authored: Wed Apr 5 11:37:16 2017 +0200
Committer: Zoran Regvart <zr...@apache.org>
Committed: Wed Apr 5 11:37:27 2017 +0200

----------------------------------------------------------------------
 .../camel/component/rest/RestComponent.java     |  2 +-
 .../camel/component/rest/RestComponentTest.java | 67 ++++++++++++++++++++
 2 files changed, 68 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6396867d/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
index 78518fc..deee394 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
@@ -58,7 +58,7 @@ public class RestComponent extends DefaultComponent {
         mergeConfigurations(config, getCamelContext().getRestConfiguration(restConfigurationName, true));
 
         // if no explicit host was given, then fallback and use default configured host
-        String h = resolveAndRemoveReferenceParameter(parameters, "host", String.class, host);
+        String h = getAndRemoveOrResolveReferenceParameter(parameters, "host", String.class, host);
         if (h == null && config != null) {
             h = config.getHost();
             int port = config.getPort();

http://git-wip-us.apache.org/repos/asf/camel/blob/6396867d/camel-core/src/test/java/org/apache/camel/component/rest/RestComponentTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/component/rest/RestComponentTest.java b/camel-core/src/test/java/org/apache/camel/component/rest/RestComponentTest.java
new file mode 100644
index 0000000..1261178
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/component/rest/RestComponentTest.java
@@ -0,0 +1,67 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.rest;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.impl.SimpleRegistry;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class RestComponentTest {
+
+    private CamelContext context;
+
+    private RestComponent rest;
+
+    @Before
+    public void createSubjects() {
+        SimpleRegistry registry = new SimpleRegistry();
+        registry.put("host-ref", "http://localhost:8080");
+        context = new DefaultCamelContext(registry);
+
+        rest = new RestComponent();
+        rest.setCamelContext(context);
+
+    }
+
+    @Test
+    public void shouldResolveHostParameterAsReference() throws Exception {
+        final Map<String, Object> parameters = new HashMap<>();
+        parameters.put("host", "#host-ref");
+
+        final RestEndpoint endpoint = (RestEndpoint) rest.createEndpoint("rest://GET:/path:?host=#host-ref",
+            "GET:/path", parameters);
+
+        Assert.assertEquals("http://localhost:8080", endpoint.getHost());
+    }
+
+    @Test
+    public void shouldResolveHostParameterAsGivenValue() throws Exception {
+        final Map<String, Object> parameters = new HashMap<>();
+        parameters.put("host", "http://localhost:8080");
+
+        final RestEndpoint endpoint = (RestEndpoint) rest
+            .createEndpoint("rest://GET:/path:?host=http%3A%2F%2Flocalhost%3A8080", "GET:/path", parameters);
+
+        Assert.assertEquals("http://localhost:8080", endpoint.getHost());
+    }
+}