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/08/26 16:02:31 UTC
[03/23] camel git commit: CAMEL-10164: swagger component for making
rest calls with swagger schema validation and facade to actual HTTP client in
use
CAMEL-10164: swagger component for making rest calls with swagger schema validation and facade to actual HTTP client in use
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6012ddc4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6012ddc4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6012ddc4
Branch: refs/heads/master
Commit: 6012ddc44aae2c8db4de331da2835d6c1fadd6bf
Parents: 6b3f6f61
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Aug 26 13:29:57 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Aug 26 16:53:31 2016 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/camel/Exchange.java | 2 ++
.../org/apache/camel/component/rest/RestProducer.java | 6 ++++--
.../java/org/apache/camel/http/common/HttpHelper.java | 12 +++++++++---
.../camel/component/jetty/JettyHttpComponent.java | 4 ++++
.../camel/component/netty4/http/NettyHttpHelper.java | 13 +++++++++++--
.../netty4/http/rest/RestNettyProducerGetTest.java | 2 +-
.../camel/component/restlet/RestletProducer.java | 13 +++++++++++--
.../camel/component/undertow/UndertowHelper.java | 13 +++++++------
8 files changed, 49 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/camel-core/src/main/java/org/apache/camel/Exchange.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java b/camel-core/src/main/java/org/apache/camel/Exchange.java
index 80b3b92..0a00d18 100644
--- a/camel-core/src/main/java/org/apache/camel/Exchange.java
+++ b/camel-core/src/main/java/org/apache/camel/Exchange.java
@@ -184,6 +184,8 @@ public interface Exchange {
String REDELIVERY_MAX_COUNTER = "CamelRedeliveryMaxCounter";
String REDELIVERY_EXHAUSTED = "CamelRedeliveryExhausted";
String REDELIVERY_DELAY = "CamelRedeliveryDelay";
+ String REST_HTTP_URI = "CamelRestHttpUri";
+ String REST_HTTP_QUERY = "CamelRestHttpQuery";
String ROLLBACK_ONLY = "CamelRollbackOnly";
String ROLLBACK_ONLY_LAST = "CamelRollbackOnlyLast";
String ROUTE_STOP = "CamelRouteStop";
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/camel-core/src/main/java/org/apache/camel/component/rest/RestProducer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestProducer.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestProducer.java
index 13fed37..87475d6 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestProducer.java
@@ -136,7 +136,8 @@ public class RestProducer extends DefaultAsyncProducer {
}
if (query != null) {
- exchange.getIn().setHeader(Exchange.HTTP_QUERY, query);
+ // the query parameters for the rest call to be used
+ exchange.getIn().setHeader(Exchange.REST_HTTP_QUERY, query);
}
if (hasPath) {
@@ -151,7 +152,8 @@ public class RestProducer extends DefaultAsyncProducer {
} else {
overrideUri = String.format("%s/%s", host, resolvedUriTemplate);
}
- exchange.getIn().setHeader(Exchange.HTTP_URI, overrideUri);
+ // the http uri for the rest call to be used
+ exchange.getIn().setHeader(Exchange.REST_HTTP_URI, overrideUri);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpHelper.java b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpHelper.java
index 9749b97..8d64351 100644
--- a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpHelper.java
+++ b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpHelper.java
@@ -254,8 +254,10 @@ public final class HttpHelper {
* @return the URL to invoke
*/
public static String createURL(Exchange exchange, HttpCommonEndpoint endpoint) {
- String uri = null;
- if (!(endpoint.isBridgeEndpoint())) {
+ // rest producer may provide an override url to be used which we should discard if using (hence the remove)
+ String uri = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_URI);
+
+ if (uri == null && !(endpoint.isBridgeEndpoint())) {
uri = exchange.getIn().getHeader(Exchange.HTTP_URI, String.class);
}
if (uri == null) {
@@ -311,9 +313,13 @@ public final class HttpHelper {
*/
public static URI createURI(Exchange exchange, String url, HttpCommonEndpoint endpoint) throws URISyntaxException {
URI uri = new URI(url);
+ // rest producer may provide an override query string to be used which we should discard if using (hence the remove)
+ String queryString = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_QUERY);
// is a query string provided in the endpoint URI or in a header
// (header overrules endpoint, raw query header overrules query header)
- String queryString = exchange.getIn().getHeader(Exchange.HTTP_RAW_QUERY, String.class);
+ if (queryString == null) {
+ queryString = exchange.getIn().getHeader(Exchange.HTTP_RAW_QUERY, String.class);
+ }
if (queryString == null) {
queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
index adc28f1..3f1ea94 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
@@ -62,6 +62,7 @@ import org.apache.camel.util.FileUtil;
import org.apache.camel.util.HostUtils;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.ServiceHelper;
import org.apache.camel.util.StringHelper;
import org.apache.camel.util.URISupport;
import org.apache.camel.util.UnsafeUriCharactersEncoder;
@@ -1147,6 +1148,9 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
setProperties(camelContext, consumer, config.getConsumerProperties());
}
+ // the endpoint must be started before creating the producer
+ ServiceHelper.startService(endpoint);
+
return consumer;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpHelper.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpHelper.java
index cfdc4b4..3dc8d7e 100644
--- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpHelper.java
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpHelper.java
@@ -184,7 +184,11 @@ public final class NettyHttpHelper {
* @return the URL to invoke
*/
public static String createURL(Exchange exchange, NettyHttpEndpoint endpoint) throws URISyntaxException {
- String uri = endpoint.getEndpointUri();
+ // rest producer may provide an override url to be used which we should discard if using (hence the remove)
+ String uri = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_URI);
+ if (uri == null) {
+ uri = endpoint.getEndpointUri();
+ }
// resolve placeholders in uri
try {
@@ -236,9 +240,14 @@ public final class NettyHttpHelper {
*/
public static URI createURI(Exchange exchange, String url, NettyHttpEndpoint endpoint) throws URISyntaxException {
URI uri = new URI(url);
+
+ // rest producer may provide an override query string to be used which we should discard if using (hence the remove)
+ String queryString = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_QUERY);
// is a query string provided in the endpoint URI or in a header
// (header overrules endpoint, raw query header overrules query header)
- String queryString = exchange.getIn().getHeader(Exchange.HTTP_RAW_QUERY, String.class);
+ if (queryString == null) {
+ queryString = exchange.getIn().getHeader(Exchange.HTTP_RAW_QUERY, String.class);
+ }
if (queryString == null) {
queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestNettyProducerGetTest.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestNettyProducerGetTest.java b/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestNettyProducerGetTest.java
index afbc912..bcef723 100644
--- a/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestNettyProducerGetTest.java
+++ b/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestNettyProducerGetTest.java
@@ -28,7 +28,7 @@ public class RestNettyProducerGetTest extends BaseNettyTest {
public void testNettyProducerGet() throws Exception {
String out = fluentTemplate.withHeader("id", "123").to("direct:start").request(String.class);
assertNotNull(out);
- // TODO: [123, {id}];Donald Duck
+ // TODO: [123, 123];Donald Duck
// assertEquals("123;Donald Duck", out);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletProducer.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletProducer.java
index a33b9e6..97116fb 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletProducer.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletProducer.java
@@ -154,7 +154,12 @@ public class RestletProducer extends DefaultAsyncProducer {
}
private static String buildUri(RestletEndpoint endpoint, Exchange exchange) throws CamelExchangeException {
- String uri = endpoint.getProtocol() + "://" + endpoint.getHost() + ":" + endpoint.getPort() + endpoint.getUriPattern();
+ // rest producer may provide an override url to be used which we should discard if using (hence the remove)
+ String uri = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_URI);
+
+ if (uri == null) {
+ uri = endpoint.getProtocol() + "://" + endpoint.getHost() + ":" + endpoint.getPort() + endpoint.getUriPattern();
+ }
// substitute { } placeholders in uri and use mandatory headers
LOG.trace("Substituting '(value)' placeholders in uri: {}", uri);
@@ -176,7 +181,11 @@ public class RestletProducer extends DefaultAsyncProducer {
matcher.reset(uri);
}
- String query = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+ // rest producer may provide an override query string to be used which we should discard if using (hence the remove)
+ String query = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_QUERY);
+ if (query == null) {
+ query = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+ }
if (query != null) {
LOG.trace("Adding query: {} to uri: {}", query, uri);
uri = addQueryToUri(uri, query);
http://git-wip-us.apache.org/repos/asf/camel/blob/6012ddc4/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowHelper.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowHelper.java
index f9eda6f..3500cae 100644
--- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowHelper.java
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowHelper.java
@@ -45,7 +45,8 @@ public final class UndertowHelper {
* @return the URL to invoke
*/
public static String createURL(Exchange exchange, UndertowEndpoint endpoint) {
- String uri = exchange.getIn().getHeader(Exchange.HTTP_URI, String.class);
+ // rest producer may provide an override url to be used which we should discard if using (hence the remove)
+ String uri = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_URI);
if (uri == null) {
uri = endpoint.getHttpURI().toASCIIString();
}
@@ -90,8 +91,12 @@ public final class UndertowHelper {
*/
public static URI createURI(Exchange exchange, String url, UndertowEndpoint endpoint) throws URISyntaxException {
URI uri = new URI(url);
+ // rest producer may provide an override query string to be used which we should discard if using (hence the remove)
+ String queryString = (String) exchange.getIn().removeHeader(Exchange.REST_HTTP_QUERY);
// is a query string provided in the endpoint URI or in a header (header overrules endpoint)
- String queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+ if (queryString == null) {
+ queryString = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+ }
if (queryString == null) {
queryString = endpoint.getHttpURI().getRawQuery();
}
@@ -126,10 +131,6 @@ public final class UndertowHelper {
/**
* Creates the HttpMethod to use to call the remote server, often either its GET or POST.
- *
- * @param exchange the exchange
- * @return the created method
- * @throws URISyntaxException
*/
public static HttpString createMethod(Exchange exchange, UndertowEndpoint endpoint, boolean hasPayload) throws URISyntaxException {
// is a query string provided in the endpoint URI or in a header (header