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 <claus.ib...@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);