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 2019/08/09 08:13:05 UTC
[camel] 01/02: CAMEL-13792: Fixed issue with camel-rest-swagger and
renaming http components and some flaws with settign up rest configuration
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit b83833c2344fd8219eac0b4a055d55434b53521c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Aug 9 10:12:08 2019 +0200
CAMEL-13792: Fixed issue with camel-rest-swagger and renaming http components and some flaws with settign up rest configuration
---
.../org/apache/camel/component/http4/HttpComponent.java | 4 ++--
.../camel/component/rest/swagger/RestSwaggerEndpoint.java | 9 +++++++--
.../component/rest/swagger/RestSwaggerEndpointTest.java | 14 +++++++-------
.../java/org/apache/camel/component/rest/RestEndpoint.java | 10 +++-------
4 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http4/HttpComponent.java b/components/camel-http/src/main/java/org/apache/camel/component/http4/HttpComponent.java
index f0260f4..ab4ec4d 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http4/HttpComponent.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http4/HttpComponent.java
@@ -429,10 +429,10 @@ public class HttpComponent extends HttpCommonComponent implements RestProducerFa
if (!ObjectHelper.isEmpty(uriTemplate)) {
url += "/" + uriTemplate;
}
-
+
RestConfiguration config = configuration;
if (config == null) {
- config = camelContext.getRestConfiguration("http", false);
+ config = camelContext.getRestConfiguration("http", true);
}
Map<String, Object> map = new HashMap<>();
diff --git a/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java b/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java
index d28a42d..6bcae93 100644
--- a/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java
+++ b/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java
@@ -61,7 +61,6 @@ import org.apache.camel.spi.UriEndpoint;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriPath;
import org.apache.camel.support.DefaultEndpoint;
-import org.apache.camel.support.LazyStartProducer;
import org.apache.camel.support.ResourceHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.StringHelper;
@@ -284,6 +283,12 @@ public final class RestSwaggerEndpoint extends DefaultEndpoint {
boolean hasHost = params.containsKey("host");
setProperties(endpoint, params);
+ // ensure rest configuration is available
+// final String componentName = determineComponentName();
+// if (componentName != null) {
+// RestConfiguration config = camelContext.getRestConfiguration(componentName, true);
+// }
+
// if there is a host then we should use this hardcoded host instead of any Header that may have an existing
// Host header from some other HTTP input, and if so then lets remove it
return new RestSwaggerProducer(endpoint.createAsyncProducer(), hasHost);
@@ -328,7 +333,7 @@ public final class RestSwaggerEndpoint extends DefaultEndpoint {
final String componentName = determineComponentName();
if (componentName != null) {
- parameters.put("componentName", componentName);
+ parameters.put("producerComponentName", componentName);
}
final String host = determineHost(swagger);
diff --git a/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java b/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java
index 33911f9..8b4b432 100644
--- a/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java
+++ b/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java
@@ -137,39 +137,39 @@ public class RestSwaggerEndpointTest {
component.setComponentName("xyz");
assertThat(endpoint.determineEndpointParameters(swagger, operation))
- .containsOnly(entry("host", "http://petstore.swagger.io"), entry("componentName", "xyz"));
+ .containsOnly(entry("host", "http://petstore.swagger.io"), entry("producerComponentName", "xyz"));
swagger.consumes("application/json").produces("application/xml");
assertThat(endpoint.determineEndpointParameters(swagger, operation)).containsOnly(
- entry("host", "http://petstore.swagger.io"), entry("componentName", "xyz"),
+ entry("host", "http://petstore.swagger.io"), entry("producerComponentName", "xyz"),
entry("consumes", "application/xml"), entry("produces", "application/json"));
component.setProduces("application/json");
component.setConsumes("application/atom+xml");
assertThat(endpoint.determineEndpointParameters(swagger, operation)).containsOnly(
- entry("host", "http://petstore.swagger.io"), entry("componentName", "xyz"),
+ entry("host", "http://petstore.swagger.io"), entry("producerComponentName", "xyz"),
entry("consumes", "application/atom+xml"), entry("produces", "application/json"));
endpoint.setProduces("application/atom+xml");
endpoint.setConsumes("application/json");
assertThat(endpoint.determineEndpointParameters(swagger, operation)).containsOnly(
- entry("host", "http://petstore.swagger.io"), entry("componentName", "xyz"),
+ entry("host", "http://petstore.swagger.io"), entry("producerComponentName", "xyz"),
entry("consumes", "application/json"), entry("produces", "application/atom+xml"));
endpoint.setComponentName("zyx");
assertThat(endpoint.determineEndpointParameters(swagger, operation)).containsOnly(
- entry("host", "http://petstore.swagger.io"), entry("componentName", "zyx"),
+ entry("host", "http://petstore.swagger.io"), entry("producerComponentName", "zyx"),
entry("consumes", "application/json"), entry("produces", "application/atom+xml"));
operation.addParameter(new QueryParameter().name("q").required(true));
assertThat(endpoint.determineEndpointParameters(swagger, operation)).containsOnly(
- entry("host", "http://petstore.swagger.io"), entry("componentName", "zyx"),
+ entry("host", "http://petstore.swagger.io"), entry("producerComponentName", "zyx"),
entry("consumes", "application/json"), entry("produces", "application/atom+xml"),
entry("queryParameters", "q={q}"));
operation.addParameter(new QueryParameter().name("o"));
assertThat(endpoint.determineEndpointParameters(swagger, operation)).containsOnly(
- entry("host", "http://petstore.swagger.io"), entry("componentName", "zyx"),
+ entry("host", "http://petstore.swagger.io"), entry("producerComponentName", "zyx"),
entry("consumes", "application/json"), entry("produces", "application/atom+xml"),
entry("queryParameters", "q={q}&o={o?}"));
}
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index d6ab43c..f2aab6f 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -377,12 +377,8 @@ public class RestEndpoint extends DefaultEndpoint {
if (factory != null) {
log.debug("Using RestProducerFactory: {}", factory);
-
- RestConfiguration config = getCamelContext().getRestConfiguration(pname, false);
- if (config == null) {
- // fallback to default
- config = getCamelContext().getRestConfiguration();
- }
+
+ RestConfiguration config = getCamelContext().getRestConfiguration(pname, true);
Producer producer;
if (apiDocFactory != null) {
@@ -392,7 +388,7 @@ public class RestEndpoint extends DefaultEndpoint {
} else {
producer = factory.createProducer(getCamelContext(), host, method, path, uriTemplate, queryParameters, consumes, produces, config, parameters);
}
-
+
RestProducer answer = new RestProducer(this, producer, config);
answer.setOutType(outType);
answer.setType(inType);