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 2015/09/23 11:35:46 UTC
[10/16] camel git commit: CAMEL-8545: Use provided rest configuration
and only fallback to default if none provided.
CAMEL-8545: Use provided rest configuration and only fallback to default if none provided.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bdbeb4a3
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bdbeb4a3
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bdbeb4a3
Branch: refs/heads/master
Commit: bdbeb4a39a39984ca867bf8f7f78ec1fd49d4f6b
Parents: 8252a16
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 22 20:44:26 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Sep 23 07:51:05 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/camel/CamelContext.java | 4 +--
.../camel/component/rest/RestApiEndpoint.java | 8 ++---
.../camel/component/rest/RestEndpoint.java | 7 ++--
.../apache/camel/impl/DefaultCamelContext.java | 2 +-
.../model/rest/RestConfigurationDefinition.java | 35 ++++++++++++++++++++
.../camel/spi/RestApiConsumerFactory.java | 4 +--
.../camel/spi/RestApiProcessorFactory.java | 3 +-
.../org/apache/camel/spi/RestConfiguration.java | 14 ++++++++
.../apache/camel/spi/RestConsumerFactory.java | 2 +-
.../rest/DummyRestConsumerFactory.java | 8 +++--
.../rest/DummyRestProcessorFactory.java | 6 ++--
.../org/apache/camel/coap/CoAPComponent.java | 14 +++++---
.../component/jetty/JettyHttpComponent.java | 11 +++---
.../netty/http/NettyHttpComponent.java | 12 ++++---
.../netty4/http/NettyHttpComponent.java | 20 ++++++-----
.../netty4/http/rest/RestApiNettyTest.java | 5 ++-
.../component/restlet/RestletComponent.java | 11 +++---
.../component/servlet/ServletComponent.java | 9 +++--
.../component/sparkrest/SparkComponent.java | 10 +++---
.../swagger/SwaggerRestApiProcessorFactory.java | 6 ++--
.../camel/swagger/DummyRestConsumerFactory.java | 3 +-
.../swagger/DummyRestConsumerFactory.java | 3 +-
.../rest/DummyRestConsumerFactory.java | 10 +++---
.../component/undertow/UndertowComponent.java | 10 ++++--
24 files changed, 152 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/CamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java b/camel-core/src/main/java/org/apache/camel/CamelContext.java
index c820dff..9a1509a 100644
--- a/camel-core/src/main/java/org/apache/camel/CamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java
@@ -500,6 +500,7 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
/**
* Gets the REST configuration for the given component
+ *
* @param component the component name to get the configuration
* @param defaultIfNotFound determine if the default configuration is returned if there isn't a
* specific configuration for the given component
@@ -508,8 +509,7 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration {
RestConfiguration getRestConfiguration(String component, boolean defaultIfNotFound);
/**
- * Gets all the RestConfigurations
- * @return
+ * Gets all the RestConfiguration's
*/
Collection<RestConfiguration> getRestConfigurations();
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
index a4ff9f5..56fe965 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
@@ -100,14 +100,15 @@ public class RestApiEndpoint extends DefaultEndpoint {
if (factory != null) {
+ RestConfiguration config = getCamelContext().getRestConfiguration(componentName, true);
+
// calculate the url to the rest API service
String path = getPath();
if (path != null && !path.startsWith("/")) {
path = "/" + path;
}
-
- Processor processor = factory.createApiProcessor(getCamelContext(), path, getParameters());
+ Processor processor = factory.createApiProcessor(getCamelContext(), path, config, getParameters());
return new RestApiProducer(this, processor);
} else {
throw new IllegalStateException("Cannot find RestApiProcessorFactory in Registry");
@@ -182,8 +183,7 @@ public class RestApiEndpoint extends DefaultEndpoint {
}
}
*/
-
- Consumer consumer = factory.createApiConsumer(getCamelContext(), processor, path, getParameters());
+ Consumer consumer = factory.createApiConsumer(getCamelContext(), processor, path, config, getParameters());
configureConsumer(consumer);
return consumer;
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index adb5f49..cf22ef0 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -245,9 +245,6 @@ public class RestEndpoint extends DefaultEndpoint {
}
if (factory != null) {
- Consumer consumer = factory.createConsumer(getCamelContext(), processor, getMethod(), getPath(), getUriTemplate(), getConsumes(), getProduces(), getParameters());
- configureConsumer(consumer);
-
// if no explicit port/host configured, then use port from rest configuration
String scheme = "http";
String host = "";
@@ -305,6 +302,10 @@ public class RestEndpoint extends DefaultEndpoint {
}
}
+ Consumer consumer = factory.createConsumer(getCamelContext(), processor, getMethod(), getPath(),
+ getUriTemplate(), getConsumes(), getProduces(), config, getParameters());
+ configureConsumer(consumer);
+
// add to rest registry so we can keep track of them, we will remove from the registry when the consumer is removed
// the rest registry will automatic keep track when the consumer is removed,
// and un-register the REST service from the registry
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index 3cfa60e..1c5227f 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -2308,11 +2308,11 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
public void setRestConfiguration(RestConfiguration restConfiguration) {
restConfigurations.put("", restConfiguration);
}
+
public Collection<RestConfiguration> getRestConfigurations() {
return restConfigurations.values();
}
-
public void addRestConfiguration(RestConfiguration restConfiguration) {
restConfigurations.put(restConfiguration.getComponent(), restConfiguration);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
index 1ed3239..2c5906d 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
@@ -87,6 +87,9 @@ public class RestConfigurationDefinition {
@XmlElement(name = "dataFormatProperty")
private List<RestPropertyDefinition> dataFormatProperties = new ArrayList<RestPropertyDefinition>();
+ @XmlElement(name = "apiProperty")
+ private List<RestPropertyDefinition> apiProperties = new ArrayList<RestPropertyDefinition>();
+
@XmlElement(name = "corsHeaders")
private List<RestPropertyDefinition> corsHeaders = new ArrayList<RestPropertyDefinition>();
@@ -303,6 +306,18 @@ public class RestConfigurationDefinition {
this.dataFormatProperties = dataFormatProperties;
}
+ public List<RestPropertyDefinition> getApiProperties() {
+ return apiProperties;
+ }
+
+ /**
+ * Allows to configure as many additional properties for the api documentation (swagger).
+ * For example set property api.title to my cool stuff
+ */
+ public void setApiProperties(List<RestPropertyDefinition> apiProperties) {
+ this.apiProperties = apiProperties;
+ }
+
public List<RestPropertyDefinition> getCorsHeaders() {
return corsHeaders;
}
@@ -480,6 +495,17 @@ public class RestConfigurationDefinition {
}
/**
+ * For additional configuration options on data format level
+ */
+ public RestConfigurationDefinition apiProperty(String key, String value) {
+ RestPropertyDefinition prop = new RestPropertyDefinition();
+ prop.setKey(key);
+ prop.setValue(value);
+ getApiProperties().add(prop);
+ return this;
+ }
+
+ /**
* For configuring CORS headers
*/
public RestConfigurationDefinition corsHeaderProperty(String key, String value) {
@@ -574,6 +600,15 @@ public class RestConfigurationDefinition {
}
answer.setDataFormatProperties(props);
}
+ if (!apiProperties.isEmpty()) {
+ Map<String, Object> props = new HashMap<String, Object>();
+ for (RestPropertyDefinition prop : apiProperties) {
+ String key = prop.getKey();
+ String value = CamelContextHelper.parseText(context, prop.getValue());
+ props.put(key, value);
+ }
+ answer.setApiProperties(props);
+ }
if (!corsHeaders.isEmpty()) {
Map<String, String> props = new HashMap<String, String>();
for (RestPropertyDefinition prop : corsHeaders) {
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java b/camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
index acad9a8..c000d93 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RestApiConsumerFactory.java
@@ -37,7 +37,7 @@ public interface RestApiConsumerFactory {
* @return a newly created REST API consumer
* @throws Exception can be thrown
*/
- Consumer createApiConsumer(CamelContext camelContext, Processor processor, String contextPath, Map<String, Object> parameters) throws Exception;
-
+ Consumer createApiConsumer(CamelContext camelContext, Processor processor, String contextPath,
+ RestConfiguration configuration, Map<String, Object> parameters) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java b/camel-core/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
index 6650213..a721ec5 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RestApiProcessorFactory.java
@@ -35,6 +35,7 @@ public interface RestApiProcessorFactory {
* @return a newly created REST API provider
* @throws Exception can be thrown
*/
- Processor createApiProcessor(CamelContext camelContext, String contextPath, Map<String, Object> parameters) throws Exception;
+ Processor createApiProcessor(CamelContext camelContext, String contextPath,
+ RestConfiguration configuration, Map<String, Object> parameters) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java b/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
index 7e5e3fe..768ad42 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
@@ -53,6 +53,7 @@ public class RestConfiguration {
private Map<String, Object> endpointProperties;
private Map<String, Object> consumerProperties;
private Map<String, Object> dataFormatProperties;
+ private Map<String, Object> apiProperties;
private Map<String, String> corsHeaders;
/**
@@ -378,6 +379,19 @@ public class RestConfiguration {
this.dataFormatProperties = dataFormatProperties;
}
+ public Map<String, Object> getApiProperties() {
+ return apiProperties;
+ }
+
+ /**
+ * Sets additional options on api level
+ *
+ * @param apiProperties the options
+ */
+ public void setApiProperties(Map<String, Object> apiProperties) {
+ this.apiProperties = apiProperties;
+ }
+
/**
* Gets the CORS headers to use if CORS has been enabled.
*
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RestConsumerFactory.java b/camel-core/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
index ac07fb7..26f51a3 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RestConsumerFactory.java
@@ -41,5 +41,5 @@ public interface RestConsumerFactory {
* @throws Exception can be thrown
*/
Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception;
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java b/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java
index d51d3d3..46572c8 100644
--- a/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java
+++ b/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java
@@ -24,13 +24,14 @@ import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
import org.apache.camel.impl.ActiveMQUuidGenerator;
import org.apache.camel.spi.RestApiConsumerFactory;
+import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiConsumerFactory {
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
@@ -47,7 +48,8 @@ public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiCon
}
@Override
- public Consumer createApiConsumer(CamelContext camelContext, Processor processor, String contextPath, Map<String, Object> parameters) throws Exception {
+ public Consumer createApiConsumer(CamelContext camelContext, Processor processor, String contextPath,
+ RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
// just use a seda endpoint for testing purpose
String id = ActiveMQUuidGenerator.generateSanitizedId(contextPath);
// remove leading dash as we add that ourselves
@@ -57,4 +59,6 @@ public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiCon
SedaEndpoint seda = camelContext.getEndpoint("seda:api:" + "-" + id, SedaEndpoint.class);
return seda.createConsumer(processor);
}
+
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestProcessorFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestProcessorFactory.java b/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestProcessorFactory.java
index ecb8c6c..1fbe87f 100644
--- a/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestProcessorFactory.java
+++ b/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestProcessorFactory.java
@@ -22,17 +22,17 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.spi.RestApiProcessorFactory;
+import org.apache.camel.spi.RestConfiguration;
public class DummyRestProcessorFactory implements RestApiProcessorFactory {
@Override
- public Processor createApiProcessor(CamelContext camelContext, String contextPath, Map<String, Object> parameters) throws Exception {
+ public Processor createApiProcessor(CamelContext camelContext, String contextPath, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
return new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
- // noop;
+ // noop
}
};
}
-
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java
index 9ad4d42..32397f8 100644
--- a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java
+++ b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java
@@ -81,8 +81,14 @@ public class CoAPComponent extends UriEndpointComponent implements RestConsumerF
String uriTemplate,
String consumes,
String produces,
+ RestConfiguration configuration,
Map<String, Object> parameters) throws Exception {
- RestConfiguration config = getCamelContext().getRestConfiguration("coap", true);
+
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("coap", true);
+ }
+
Map<String, Object> map = new HashMap<String, Object>();
// setup endpoint options
if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
@@ -90,8 +96,7 @@ public class CoAPComponent extends UriEndpointComponent implements RestConsumerF
}
String query = URISupport.createQueryString(map);
-
-
+
String url = (config.getScheme() == null ? "coap" : config.getScheme())
+ "://" + config.getHost();
if (config.getPort() != -1) {
@@ -110,8 +115,7 @@ public class CoAPComponent extends UriEndpointComponent implements RestConsumerF
setProperties(endpoint, parameters);
return endpoint.createConsumer(processor);
}
-
-
+
@Override
protected void doStart() throws Exception {
super.doStart();
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/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 0a6c454..03b5d17 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
@@ -1003,7 +1003,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
String path = basePath;
if (uriTemplate != null) {
@@ -1021,7 +1021,10 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
int port = 0;
// if no explicit port/host configured, then use port from rest configuration
- RestConfiguration config = getCamelContext().getRestConfiguration("jetty", true);
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("jetty", true);
+ }
if (config.getScheme() != null) {
scheme = config.getScheme();
}
@@ -1044,7 +1047,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
Map<String, Object> map = new HashMap<String, Object>();
// build query string, and append any endpoint configuration properties
- if (config != null && (config.getComponent() == null || config.getComponent().equals("jetty"))) {
+ if (config.getComponent() == null || config.getComponent().equals("jetty")) {
// setup endpoint options
if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
map.putAll(config.getEndpointProperties());
@@ -1073,7 +1076,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
// configure consumer properties
Consumer consumer = endpoint.createConsumer(processor);
- if (config != null && config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
+ if (config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
setProperties(consumer, config.getConsumerProperties());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
index 23b1460..0e831f5 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
@@ -225,7 +225,7 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
String path = basePath;
if (uriTemplate != null) {
@@ -243,7 +243,10 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
int port = 0;
// if no explicit port/host configured, then use port from rest configuration
- RestConfiguration config = getCamelContext().getRestConfiguration("netty-http", true);
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("netty-http", true);
+ }
if (config.getScheme() != null) {
scheme = config.getScheme();
}
@@ -266,7 +269,7 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
Map<String, Object> map = new HashMap<String, Object>();
// build query string, and append any endpoint configuration properties
- if (config != null && (config.getComponent() == null || config.getComponent().equals("netty-http"))) {
+ if (config.getComponent() == null || config.getComponent().equals("netty-http")) {
// setup endpoint options
if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
map.putAll(config.getEndpointProperties());
@@ -286,13 +289,12 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
url = url + "&" + query;
}
-
NettyHttpEndpoint endpoint = camelContext.getEndpoint(url, NettyHttpEndpoint.class);
setProperties(endpoint, parameters);
// configure consumer properties
Consumer consumer = endpoint.createConsumer(processor);
- if (config != null && config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
+ if (config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
setProperties(consumer, config.getConsumerProperties());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
index 71fe02e..ae8e78c 100644
--- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpComponent.java
@@ -225,18 +225,19 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
- return doCreateConsumer(camelContext, processor, verb, basePath, uriTemplate, consumes, produces, parameters, false);
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
+ return doCreateConsumer(camelContext, processor, verb, basePath, uriTemplate, consumes, produces, configuration, parameters, false);
}
@Override
- public Consumer createApiConsumer(CamelContext camelContext, Processor processor, String contextPath, Map<String, Object> parameters) throws Exception {
+ public Consumer createApiConsumer(CamelContext camelContext, Processor processor, String contextPath,
+ RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
// reuse the createConsumer method we already have. The api need to use GET and match on uri prefix
- return doCreateConsumer(camelContext, processor, "GET", contextPath, null, null, null, parameters, true);
+ return doCreateConsumer(camelContext, processor, "GET", contextPath, null, null, null, configuration, parameters, true);
}
Consumer doCreateConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters, boolean api) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters, boolean api) throws Exception {
String path = basePath;
if (uriTemplate != null) {
@@ -254,7 +255,10 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
int port = 0;
// if no explicit port/host configured, then use port from rest configuration
- RestConfiguration config = getCamelContext().getRestConfiguration("netty4-http", true);
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("netty4-http", true);
+ }
if (config.getScheme() != null) {
scheme = config.getScheme();
}
@@ -277,7 +281,7 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
Map<String, Object> map = new HashMap<String, Object>();
// build query string, and append any endpoint configuration properties
- if (config != null && (config.getComponent() == null || config.getComponent().equals("netty4-http"))) {
+ if (config.getComponent() == null || config.getComponent().equals("netty4-http")) {
// setup endpoint options
if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
map.putAll(config.getEndpointProperties());
@@ -306,7 +310,7 @@ public class NettyHttpComponent extends NettyComponent implements HeaderFilterSt
// configure consumer properties
Consumer consumer = endpoint.createConsumer(processor);
- if (config != null && config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
+ if (config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
setProperties(consumer, config.getConsumerProperties());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestApiNettyTest.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestApiNettyTest.java b/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestApiNettyTest.java
index 2abf8f1..99d1665 100644
--- a/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestApiNettyTest.java
+++ b/components/camel-netty4-http/src/test/java/org/apache/camel/component/netty4/http/rest/RestApiNettyTest.java
@@ -50,6 +50,8 @@ public class RestApiNettyTest extends BaseNettyTest {
assertNotNull(out);
log.info(out);
+ assertTrue(out.contains("\"version\" : \"1.2.3\""));
+ assertTrue(out.contains("\"title\" : \"The hello rest thing\""));
assertTrue(out.contains("\"/hello/bye/{name}\""));
assertTrue(out.contains("\"/hello/hi/{name}\""));
assertTrue(out.contains("\"summary\" : \"To update the greeting message\""));
@@ -60,7 +62,8 @@ public class RestApiNettyTest extends BaseNettyTest {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- restConfiguration().component("netty4-http").host("localhost").port(getPort()).apiContextPath("/api-doc");
+ restConfiguration().component("netty4-http").host("localhost").port(getPort()).apiContextPath("/api-doc")
+ .apiProperty("cors", "true").apiProperty("api.title", "The hello rest thing").apiProperty("api.version", "1.2.3");
rest("/hello").consumes("application/json").produces("application/json")
.get("/hi/{name}").description("Saying hi")
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
index 345d89d..9b91d90 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletComponent.java
@@ -664,7 +664,7 @@ public class RestletComponent extends HeaderFilterStrategyComponent implements R
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
String path = basePath;
if (uriTemplate != null) {
@@ -683,7 +683,10 @@ public class RestletComponent extends HeaderFilterStrategyComponent implements R
int port = this.getPort();
// if no explicit port/host configured, then use port from rest configuration
- RestConfiguration config = getCamelContext().getRestConfiguration("restlet", true);
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("restlet", true);
+ }
if (config.getScheme() != null) {
scheme = config.getScheme();
}
@@ -706,7 +709,7 @@ public class RestletComponent extends HeaderFilterStrategyComponent implements R
Map<String, Object> map = new HashMap<String, Object>();
// build query string, and append any endpoint configuration properties
- if (config != null && (config.getComponent() == null || config.getComponent().equals("restlet"))) {
+ if (config.getComponent() == null || config.getComponent().equals("restlet")) {
// setup endpoint options
if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
map.putAll(config.getEndpointProperties());
@@ -736,7 +739,7 @@ public class RestletComponent extends HeaderFilterStrategyComponent implements R
// configure consumer properties
Consumer consumer = endpoint.createConsumer(processor);
- if (config != null && config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
+ if (config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
setProperties(consumer, config.getConsumerProperties());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
index 1d573a8..c70f81d 100644
--- a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
+++ b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java
@@ -159,7 +159,7 @@ public class ServletComponent extends HttpCommonComponent implements RestConsume
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
String path = basePath;
if (uriTemplate != null) {
// make sure to avoid double slashes
@@ -172,7 +172,10 @@ public class ServletComponent extends HttpCommonComponent implements RestConsume
path = FileUtil.stripLeadingSeparator(path);
// if no explicit port/host configured, then use port from rest configuration
- RestConfiguration config = getCamelContext().getRestConfiguration("servlet", true);
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("servlet", true);
+ }
Map<String, Object> map = new HashMap<String, Object>();
// setup endpoint options
@@ -204,7 +207,7 @@ public class ServletComponent extends HttpCommonComponent implements RestConsume
// configure consumer properties
Consumer consumer = endpoint.createConsumer(processor);
- if (config != null && config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
+ if (config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
setProperties(consumer, config.getConsumerProperties());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkComponent.java b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkComponent.java
index eb5cba8..826db58 100644
--- a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkComponent.java
+++ b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkComponent.java
@@ -31,7 +31,6 @@ import org.apache.camel.spi.RestConsumerFactory;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.URISupport;
-import spark.Spark;
import spark.SparkBase;
public class SparkComponent extends UriEndpointComponent implements RestConsumerFactory {
@@ -147,7 +146,7 @@ public class SparkComponent extends UriEndpointComponent implements RestConsumer
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
String path = basePath;
if (uriTemplate != null) {
@@ -174,7 +173,10 @@ public class SparkComponent extends UriEndpointComponent implements RestConsumer
}
// build query string, and append any endpoint configuration properties
- RestConfiguration config = getCamelContext().getRestConfiguration("spark-rest", true);
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("spark-rest", true);
+ }
// setup endpoint options
if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
map.putAll(config.getEndpointProperties());
@@ -193,7 +195,7 @@ public class SparkComponent extends UriEndpointComponent implements RestConsumer
// configure consumer properties
Consumer consumer = endpoint.createConsumer(processor);
- if (config != null && config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
+ if (config.getConsumerProperties() != null && !config.getConsumerProperties().isEmpty()) {
setProperties(consumer, config.getConsumerProperties());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestApiProcessorFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestApiProcessorFactory.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestApiProcessorFactory.java
index 19cd1a7..faba694 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestApiProcessorFactory.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestApiProcessorFactory.java
@@ -21,11 +21,13 @@ import java.util.Map;
import org.apache.camel.CamelContext;
import org.apache.camel.Processor;
import org.apache.camel.spi.RestApiProcessorFactory;
+import org.apache.camel.spi.RestConfiguration;
public class SwaggerRestApiProcessorFactory implements RestApiProcessorFactory {
@Override
- public Processor createApiProcessor(CamelContext camelContext, String contextPath, Map<String, Object> parameters) throws Exception {
- return new RestSwaggerProcessor(parameters);
+ public Processor createApiProcessor(CamelContext camelContext, String contextPath,
+ RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
+ return new RestSwaggerProcessor(configuration.getApiProperties());
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java
index d0d6efe..9946c4d 100644
--- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java
+++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java
@@ -23,13 +23,14 @@ import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
import org.apache.camel.impl.ActiveMQUuidGenerator;
+import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
public class DummyRestConsumerFactory implements RestConsumerFactory {
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-swagger/src/test/java/org/apache/camel/component/swagger/DummyRestConsumerFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger/src/test/java/org/apache/camel/component/swagger/DummyRestConsumerFactory.java b/components/camel-swagger/src/test/java/org/apache/camel/component/swagger/DummyRestConsumerFactory.java
index eed969e..3392332 100644
--- a/components/camel-swagger/src/test/java/org/apache/camel/component/swagger/DummyRestConsumerFactory.java
+++ b/components/camel-swagger/src/test/java/org/apache/camel/component/swagger/DummyRestConsumerFactory.java
@@ -23,13 +23,14 @@ import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
import org.apache.camel.impl.ActiveMQUuidGenerator;
+import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
public class DummyRestConsumerFactory implements RestConsumerFactory {
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/DummyRestConsumerFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/DummyRestConsumerFactory.java b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/DummyRestConsumerFactory.java
index c87fae5..2236b10 100644
--- a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/DummyRestConsumerFactory.java
+++ b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/DummyRestConsumerFactory.java
@@ -23,19 +23,20 @@ import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
import org.apache.camel.impl.ActiveMQUuidGenerator;
+import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
public class DummyRestConsumerFactory implements RestConsumerFactory {
@Override
- public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String path, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
- id = ActiveMQUuidGenerator.generateSanitizedId(path + uriTemplate);
+ id = ActiveMQUuidGenerator.generateSanitizedId(basePath + uriTemplate);
} else {
- id = ActiveMQUuidGenerator.generateSanitizedId(path);
+ id = ActiveMQUuidGenerator.generateSanitizedId(basePath);
}
// remove leading dash as we add that ourselves
if (id.startsWith("-")) {
@@ -44,5 +45,4 @@ public class DummyRestConsumerFactory implements RestConsumerFactory {
SedaEndpoint seda = camelContext.getEndpoint("seda:" + verb + "-" + id, SedaEndpoint.class);
return seda.createConsumer(processor);
}
-
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bdbeb4a3/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
index 01b9684..8274b07 100644
--- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
@@ -84,7 +84,7 @@ public class UndertowComponent extends UriEndpointComponent implements RestConsu
@Override
public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate,
- String consumes, String produces, Map<String, Object> parameters) throws Exception {
+ String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception {
String path = basePath;
if (uriTemplate != null) {
// make sure to avoid double slashes
@@ -98,7 +98,11 @@ public class UndertowComponent extends UriEndpointComponent implements RestConsu
String scheme = "http";
String host = "";
int port = 0;
- RestConfiguration config = getCamelContext().getRestConfiguration("undertow", true);
+
+ RestConfiguration config = configuration;
+ if (config == null) {
+ config = getCamelContext().getRestConfiguration("undertow", true);
+ }
if (config.getScheme() != null) {
scheme = config.getScheme();
}
@@ -112,7 +116,7 @@ public class UndertowComponent extends UriEndpointComponent implements RestConsu
Map<String, Object> map = new HashMap<String, Object>();
// build query string, and append any endpoint configuration properties
- if (config != null && (config.getComponent() == null || config.getComponent().equals("undertow"))) {
+ if (config.getComponent() == null || config.getComponent().equals("undertow")) {
// setup endpoint options
if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) {
map.putAll(config.getEndpointProperties());