Repository: camel Updated Branches: refs/heads/master 1a5df0b67 -> 87e3249f2
[CAMEL-9006] Prototype for review of being able to configure multiple restCOnfigurations for hte rest DSL Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/87e3249f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/87e3249f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/87e3249f Branch: refs/heads/master Commit: 87e3249f235c99bceacd76ab5aed16a6ad7d4ff1 Parents: 1a5df0b Author: Daniel Kulp <dk...@apache.org> Authored: Thu Jul 23 15:48:16 2015 -0400 Committer: Daniel Kulp <dk...@apache.org> Committed: Thu Jul 23 15:48:52 2015 -0400 ---------------------------------------------------------------------- .../java/org/apache/camel/CamelContext.java | 24 +++++++++- .../org/apache/camel/builder/RouteBuilder.java | 34 ++++++++++--- .../apache/camel/impl/DefaultCamelContext.java | 35 ++++++++++++-- .../camel/model/rest/RestBindingDefinition.java | 50 ++++++++++++++------ .../apache/camel/model/rest/RestDefinition.java | 16 +++++-- components/camel-coap/pom.xml | 5 ++ .../org/apache/camel/coap/CoAPComponent.java | 23 ++++----- .../camel/coap/CoAPRestComponentTest.java | 20 ++++++-- .../component/jetty/JettyHttpComponent.java | 22 ++++----- .../netty4/http/NettyHttpComponent.java | 22 ++++----- .../component/restlet/RestletComponent.java | 32 ++++++------- 11 files changed, 195 insertions(+), 88 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/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 4b2b246..c820dff 100644 --- a/camel-core/src/main/java/org/apache/camel/CamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java @@ -485,11 +485,33 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration { void setRestConfiguration(RestConfiguration restConfiguration); /** - * Gets the current REST configuration + * Gets the default REST configuration * * @return the configuration, or <tt>null</tt> if none has been configured. */ RestConfiguration getRestConfiguration(); + + /** + * Sets a custom {@link org.apache.camel.spi.RestConfiguration} + * + * @param restConfiguration the REST configuration + */ + void addRestConfiguration(RestConfiguration restConfiguration); + + /** + * 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 + * @return the configuration, or <tt>null</tt> if none has been configured. + */ + RestConfiguration getRestConfiguration(String component, boolean defaultIfNotFound); + + /** + * Gets all the RestConfigurations + * @return + */ + Collection<RestConfiguration> getRestConfigurations(); /** * Returns the order in which the route inputs was started. http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java index 32f382f..d12298a 100644 --- a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java +++ b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java @@ -16,7 +16,9 @@ */ package org.apache.camel.builder; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.camel.CamelContext; @@ -48,7 +50,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild protected Logger log = LoggerFactory.getLogger(getClass()); private AtomicBoolean initialized = new AtomicBoolean(false); private RestsDefinition restCollection = new RestsDefinition(); - private RestConfigurationDefinition restConfiguration; + private Map<String, RestConfigurationDefinition> restConfigurations; private RoutesDefinition routeCollection = new RoutesDefinition(); public RouteBuilder() { @@ -80,12 +82,26 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild * @return the builder */ public RestConfigurationDefinition restConfiguration() { + return restConfiguration("default"); + } + + /** + * Configures the REST service for the given component + * + * @return the builder + */ + public RestConfigurationDefinition restConfiguration(String component) { + if (restConfigurations == null) { + restConfigurations = new HashMap<String, RestConfigurationDefinition>(); + } + RestConfigurationDefinition restConfiguration = restConfigurations.get(component); if (restConfiguration == null) { restConfiguration = new RestConfigurationDefinition(); + restConfiguration.component(component); + restConfigurations.put(component, restConfiguration); } return restConfiguration; } - /** * Creates a new REST service * @@ -407,8 +423,14 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild // setup rest configuration before adding the rests if (getRestConfiguration() != null) { - RestConfiguration config = getRestConfiguration().asRestConfiguration(getContext()); - camelContext.setRestConfiguration(config); + for (Map.Entry<String, RestConfigurationDefinition> entry : getRestConfiguration().entrySet()) { + RestConfiguration config = entry.getValue().asRestConfiguration(getContext()); + if ("default".equals(entry.getKey())) { + camelContext.setRestConfiguration(config); + } else { + camelContext.addRestConfiguration(config); + } + } } camelContext.addRestDefinitions(getRestCollection().getRests()); @@ -425,8 +447,8 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild return restCollection; } - public RestConfigurationDefinition getRestConfiguration() { - return restConfiguration; + public Map<String, RestConfigurationDefinition> getRestConfiguration() { + return restConfigurations; } public void setRestCollection(RestsDefinition restCollection) { http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/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 0ed913a..5fefcfa 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 @@ -34,10 +34,12 @@ import java.util.Properties; import java.util.Set; import java.util.TreeMap; import java.util.concurrent.Callable; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; + import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.naming.Context; @@ -196,7 +198,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon private ManagementMBeanAssembler managementMBeanAssembler; private final List<RouteDefinition> routeDefinitions = new ArrayList<RouteDefinition>(); private final List<RestDefinition> restDefinitions = new ArrayList<RestDefinition>(); - private RestConfiguration restConfiguration = new RestConfiguration(); + private Map<String, RestConfiguration> restConfigurations = new ConcurrentHashMap<>(); private RestRegistry restRegistry = new DefaultRestRegistry(); private List<InterceptStrategy> interceptStrategies = new ArrayList<InterceptStrategy>(); private List<RoutePolicyFactory> routePolicyFactories = new ArrayList<RoutePolicyFactory>(); @@ -2296,13 +2298,40 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon } public RestConfiguration getRestConfiguration() { - return restConfiguration; + RestConfiguration config = restConfigurations.get("default"); + if (config == null) { + config = new RestConfiguration(); + setRestConfiguration(config); + } + return config; } public void setRestConfiguration(RestConfiguration restConfiguration) { - this.restConfiguration = restConfiguration; + restConfigurations.put("default", restConfiguration); + } + public Collection<RestConfiguration> getRestConfigurations() { + return restConfigurations.values(); } + + public void addRestConfiguration(RestConfiguration restConfiguration) { + restConfigurations.put(restConfiguration.getComponent(), restConfiguration); + } + public RestConfiguration getRestConfiguration(String component, boolean defaultIfNotExist) { + if (component == null) { + component = "default"; + } + RestConfiguration config = restConfigurations.get(component); + if (config == null && defaultIfNotExist) { + config = getRestConfiguration(); + if (config != null && config.getComponent() != null && !component.equals(component)) { + config = new RestConfiguration(); + restConfigurations.put(component, config); + } + } + return config; + } + public List<InterceptStrategy> getInterceptStrategies() { return interceptStrategies; } http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java index de75691..a7f01d9 100644 --- a/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java @@ -18,6 +18,7 @@ package org.apache.camel.model.rest; import java.util.HashMap; import java.util.Map; + import javax.xml.bind.JAXBContext; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -30,6 +31,7 @@ import org.apache.camel.model.NoOutputDefinition; import org.apache.camel.processor.binding.RestBindingProcessor; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.Metadata; +import org.apache.camel.spi.RestConfiguration; import org.apache.camel.spi.RouteContext; import org.apache.camel.util.IntrospectionSupport; @@ -61,33 +63,40 @@ public class RestBindingDefinition extends NoOutputDefinition<RestBindingDefinit @XmlAttribute private Boolean enableCORS; + + @XmlAttribute + private String component; + + public RestBindingDefinition() { + } @Override public String toString() { return "RestBinding"; } - + @Override public Processor createProcessor(RouteContext routeContext) throws Exception { CamelContext context = routeContext.getCamelContext(); - + RestConfiguration config = context.getRestConfiguration(component, true); + // these options can be overriden per rest verb - String mode = context.getRestConfiguration().getBindingMode().name(); + String mode = config.getBindingMode().name(); if (bindingMode != null) { mode = bindingMode.name(); } - boolean cors = context.getRestConfiguration().isEnableCORS(); + boolean cors = config.isEnableCORS(); if (enableCORS != null) { cors = enableCORS; } - boolean skip = context.getRestConfiguration().isSkipBindingOnErrorCode(); + boolean skip = config.isSkipBindingOnErrorCode(); if (skipBindingOnErrorCode != null) { skip = skipBindingOnErrorCode; } // cors headers - Map<String, String> corsHeaders = context.getRestConfiguration().getCorsHeaders(); + Map<String, String> corsHeaders = config.getCorsHeaders(); if (mode == null || "off".equals(mode)) { // binding mode is off, so create a off mode binding processor @@ -95,7 +104,7 @@ public class RestBindingDefinition extends NoOutputDefinition<RestBindingDefinit } // setup json data format - String name = context.getRestConfiguration().getJsonDataFormat(); + String name = config.getJsonDataFormat(); if (name != null) { // must only be a name, not refer to an existing instance Object instance = context.getRegistry().lookupByName(name); @@ -124,7 +133,7 @@ public class RestBindingDefinition extends NoOutputDefinition<RestBindingDefinit IntrospectionSupport.setProperty(context.getTypeConverter(), json, "unmarshalType", clazz); IntrospectionSupport.setProperty(context.getTypeConverter(), json, "useList", type.endsWith("[]")); } - setAdditionalConfiguration(context, json, "json.in."); + setAdditionalConfiguration(config, context, json, "json.in."); context.addService(json); Class<?> outClazz = null; @@ -136,12 +145,12 @@ public class RestBindingDefinition extends NoOutputDefinition<RestBindingDefinit IntrospectionSupport.setProperty(context.getTypeConverter(), outJson, "unmarshalType", outClazz); IntrospectionSupport.setProperty(context.getTypeConverter(), outJson, "useList", outType.endsWith("[]")); } - setAdditionalConfiguration(context, outJson, "json.out."); + setAdditionalConfiguration(config, context, outJson, "json.out."); context.addService(outJson); } // setup xml data format - name = context.getRestConfiguration().getXmlDataFormat(); + name = config.getXmlDataFormat(); if (name != null) { // must only be a name, not refer to an existing instance Object instance = context.getRegistry().lookupByName(name); @@ -170,7 +179,7 @@ public class RestBindingDefinition extends NoOutputDefinition<RestBindingDefinit JAXBContext jc = JAXBContext.newInstance(clazz); IntrospectionSupport.setProperty(context.getTypeConverter(), jaxb, "context", jc); } - setAdditionalConfiguration(context, jaxb, "xml.in."); + setAdditionalConfiguration(config, context, jaxb, "xml.in."); context.addService(jaxb); Class<?> outClazz = null; @@ -186,22 +195,23 @@ public class RestBindingDefinition extends NoOutputDefinition<RestBindingDefinit JAXBContext jc = JAXBContext.newInstance(clazz); IntrospectionSupport.setProperty(context.getTypeConverter(), outJaxb, "context", jc); } - setAdditionalConfiguration(context, outJaxb, "xml.out."); + setAdditionalConfiguration(config, context, outJaxb, "xml.out."); context.addService(outJaxb); } return new RestBindingProcessor(json, jaxb, outJson, outJaxb, consumes, produces, mode, skip, cors, corsHeaders); } - private void setAdditionalConfiguration(CamelContext context, DataFormat dataFormat, String prefix) throws Exception { - if (context.getRestConfiguration().getDataFormatProperties() != null && !context.getRestConfiguration().getDataFormatProperties().isEmpty()) { + private void setAdditionalConfiguration(RestConfiguration config, CamelContext context, + DataFormat dataFormat, String prefix) throws Exception { + if (config.getDataFormatProperties() != null && !config.getDataFormatProperties().isEmpty()) { // must use a copy as otherwise the options gets removed during introspection setProperties Map<String, Object> copy = new HashMap<String, Object>(); // filter keys on prefix // - either its a known prefix and must match the prefix parameter // - or its a common configuration that we should always use - for (Map.Entry<String, Object> entry : context.getRestConfiguration().getDataFormatProperties().entrySet()) { + for (Map.Entry<String, Object> entry : config.getDataFormatProperties().entrySet()) { String key = entry.getKey(); String copyKey; boolean known = isKeyKnownPrefix(key); @@ -228,6 +238,16 @@ public class RestBindingDefinition extends NoOutputDefinition<RestBindingDefinit public String getConsumes() { return consumes; } + + /** + * Sets the component name that this definition will apply to + */ + public void setComponent(String component) { + this.component = component; + } + public String getComponent() { + return component; + } /** * To define the content type what the REST service consumes (accept as input), such as application/xml or application/json http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java index b25c189..5f01e80 100644 --- a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; @@ -34,6 +35,7 @@ import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.ToDefinition; import org.apache.camel.model.ToDynamicDefinition; import org.apache.camel.spi.Metadata; +import org.apache.camel.spi.RestConfiguration; import org.apache.camel.util.FileUtil; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.URISupport; @@ -477,7 +479,13 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition> */ public List<RouteDefinition> asRouteDefinition(CamelContext camelContext) { List<RouteDefinition> answer = new ArrayList<RouteDefinition>(); - + for (RestConfiguration config : camelContext.getRestConfigurations()) { + addRouteDefinition(camelContext, answer, config.getComponent()); + } + return answer; + } + + private void addRouteDefinition(CamelContext camelContext, List<RouteDefinition> answer, String component) { for (VerbDefinition verb : getVerbs()) { // either the verb has a singular to or a embedded route RouteDefinition route = verb.getRoute(); @@ -491,6 +499,7 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition> // add the binding RestBindingDefinition binding = new RestBindingDefinition(); + binding.setComponent(component); binding.setType(verb.getType()); binding.setOutType(verb.getOutType()); // verb takes precedence over configuration on rest @@ -557,6 +566,9 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition> } String routeId = route.idOrCreate(camelContext.getNodeIdFactory()); options.put("routeId", routeId); + if (component != null) { + options.put("componentName", component); + } // include optional description, which we favor from 1) to/route description 2) verb description 3) rest description // this allows end users to define general descriptions and override then per to/route or verb @@ -635,8 +647,6 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition> route.setRestDefinition(this); answer.add(route); } - - return answer; } private String buildUri(VerbDefinition verb) { http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/components/camel-coap/pom.xml ---------------------------------------------------------------------- diff --git a/components/camel-coap/pom.xml b/components/camel-coap/pom.xml index f70ab85..596207a 100644 --- a/components/camel-coap/pom.xml +++ b/components/camel-coap/pom.xml @@ -68,6 +68,11 @@ <artifactId>camel-test</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-jetty9</artifactId> + <scope>test</scope> + </dependency> </dependencies> </project> http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/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 8c96224..a0f265b 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 @@ -82,14 +82,11 @@ public class CoAPComponent extends UriEndpointComponent implements RestConsumerF String consumes, String produces, Map<String, Object> parameters) throws Exception { - RestConfiguration config = getCamelContext().getRestConfiguration(); + RestConfiguration config = getCamelContext().getRestConfiguration("coap", true); 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"))) { - // setup endpoint options - if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) { - map.putAll(config.getEndpointProperties()); - } + // setup endpoint options + if (config.getEndpointProperties() != null && !config.getEndpointProperties().isEmpty()) { + map.putAll(config.getEndpointProperties()); } String query = URISupport.createQueryString(map); @@ -118,14 +115,12 @@ public class CoAPComponent extends UriEndpointComponent implements RestConsumerF protected void doStart() throws Exception { super.doStart(); - RestConfiguration config = getCamelContext().getRestConfiguration(); - if (config != null && (config.getComponent() == null || config.getComponent().equals("coap"))) { - // configure additional options on spark configuration - if (config.getComponentProperties() != null && !config.getComponentProperties().isEmpty()) { - setProperties(this, config.getComponentProperties()); - } - defaultServer = getServer(config.getPort()); + RestConfiguration config = getCamelContext().getRestConfiguration("coap", true); + // configure additional options on spark configuration + if (config.getComponentProperties() != null && !config.getComponentProperties().isEmpty()) { + setProperties(this, config.getComponentProperties()); } + defaultServer = getServer(config.getPort()); for (CoapServer s : servers.values()) { s.start(); http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTest.java ---------------------------------------------------------------------- diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTest.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTest.java index f2b56ec..2ac3137 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTest.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTest.java @@ -16,9 +16,14 @@ */ package org.apache.camel.coap; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; + import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.converter.IOConverter; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit4.CamelTestSupport; import org.eclipse.californium.core.CoapClient; @@ -28,7 +33,8 @@ import org.eclipse.californium.core.network.config.NetworkConfig; import org.junit.Test; public class CoAPRestComponentTest extends CamelTestSupport { - int port = AvailablePortFinder.getNextAvailable(); + int coapport = AvailablePortFinder.getNextAvailable(); + int jettyport = AvailablePortFinder.getNextAvailable(); @Test public void testCoAP() throws Exception { @@ -36,19 +42,24 @@ public class CoAPRestComponentTest extends CamelTestSupport { CoapClient client; CoapResponse rsp; - client = new CoapClient("coap://localhost:" + port + "/TestResource/Ducky"); + client = new CoapClient("coap://localhost:" + coapport + "/TestResource/Ducky"); client.setTimeout(1000000); rsp = client.get(); assertEquals("Hello Ducky", rsp.getResponseText()); rsp = client.post("data", MediaTypeRegistry.TEXT_PLAIN); assertEquals("Hello Ducky: data", rsp.getResponseText()); - client = new CoapClient("coap://localhost:" + port + "/TestParms?id=Ducky"); + client = new CoapClient("coap://localhost:" + coapport + "/TestParms?id=Ducky"); client.setTimeout(1000000); rsp = client.get(); assertEquals("Hello Ducky", rsp.getResponseText()); rsp = client.post("data", MediaTypeRegistry.TEXT_PLAIN); assertEquals("Hello Ducky: data", rsp.getResponseText()); + + + URL url = new URL("http://localhost:" + jettyport + "/TestResource/Ducky"); + InputStream ins = url.openConnection().getInputStream(); + assertEquals("Hello Ducky", IOConverter.toString(new InputStreamReader(ins))); } @Override @@ -56,7 +67,8 @@ public class CoAPRestComponentTest extends CamelTestSupport { return new RouteBuilder() { @Override public void configure() throws Exception { - restConfiguration().component("coap").host("localhost").scheme("coap").port(port); + restConfiguration("coap").host("localhost").port(coapport); + restConfiguration("jetty").host("localhost").port(jettyport); rest("/TestParms") .get().to("direct:get1") .post().to("direct:post1"); http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/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 fa03902..f5ec313 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 @@ -997,18 +997,16 @@ 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(); - if (config.getComponent() == null || config.getComponent().equals("jetty")) { - if (config.getScheme() != null) { - scheme = config.getScheme(); - } - if (config.getHost() != null) { - host = config.getHost(); - } - int num = config.getPort(); - if (num > 0) { - port = num; - } + RestConfiguration config = getCamelContext().getRestConfiguration("jetty", true); + if (config.getScheme() != null) { + scheme = config.getScheme(); + } + if (config.getHost() != null) { + host = config.getHost(); + } + int num = config.getPort(); + if (num > 0) { + port = num; } // if no explicit hostname set then resolve the hostname http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/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 bb77cbf..0a4502c 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 @@ -242,18 +242,16 @@ 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(); - if (config.getComponent() == null || config.getComponent().equals("netty4-http")) { - if (config.getScheme() != null) { - scheme = config.getScheme(); - } - if (config.getHost() != null) { - host = config.getHost(); - } - int num = config.getPort(); - if (num > 0) { - port = num; - } + RestConfiguration config = getCamelContext().getRestConfiguration("netty4-http", true); + if (config.getScheme() != null) { + scheme = config.getScheme(); + } + if (config.getHost() != null) { + host = config.getHost(); + } + int num = config.getPort(); + if (num > 0) { + port = num; } // if no explicit hostname set then resolve the hostname http://git-wip-us.apache.org/repos/asf/camel/blob/87e3249f/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 99b8118..345d89d 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 @@ -142,12 +142,10 @@ public class RestletComponent extends HeaderFilterStrategyComponent implements R super.doStart(); // configure component options - RestConfiguration config = getCamelContext().getRestConfiguration(); - if (config != null && (config.getComponent() == null || config.getComponent().equals("restlet"))) { - // configure additional options on spark configuration - if (config.getComponentProperties() != null && !config.getComponentProperties().isEmpty()) { - setProperties(this, config.getComponentProperties()); - } + RestConfiguration config = getCamelContext().getRestConfiguration("restlet", true); + // configure additional options on spark configuration + if (config.getComponentProperties() != null && !config.getComponentProperties().isEmpty()) { + setProperties(this, config.getComponentProperties()); } component.start(); @@ -685,18 +683,16 @@ 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(); - if (config.getComponent() == null || config.getComponent().equals("restlet")) { - if (config.getScheme() != null) { - scheme = config.getScheme(); - } - if (config.getHost() != null) { - host = config.getHost(); - } - int num = config.getPort(); - if (num > 0) { - port = num; - } + RestConfiguration config = getCamelContext().getRestConfiguration("restlet", true); + if (config.getScheme() != null) { + scheme = config.getScheme(); + } + if (config.getHost() != null) { + host = config.getHost(); + } + int num = config.getPort(); + if (num > 0) { + port = num; } // if no explicit hostname set then resolve the hostname