Repository: camel Updated Branches: refs/heads/master 622e515d4 -> 5865d2e4a
CAMEL-9586 - add option documentation, include component in distribution, improve karaf features definition Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5865d2e4 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5865d2e4 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5865d2e4 Branch: refs/heads/master Commit: 5865d2e4aa3f2743640d7cbf199daa2d27dba18d Parents: 622e515 Author: lburgazzoli <lburgazz...@gmail.com> Authored: Tue Feb 23 10:35:55 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Feb 23 11:51:43 2016 +0100 ---------------------------------------------------------------------- apache-camel/pom.xml | 4 ++ .../src/main/descriptors/common-bin.xml | 1 + components/camel-etcd/src/main/docs/etcd.adoc | 26 +++++--- .../component/etcd/AbstractEtcdEndpoint.java | 20 +++--- .../etcd/AbstractEtcdPollingConsumer.java | 2 +- .../component/etcd/AbstractEtcdProducer.java | 2 +- .../camel/component/etcd/EtcdComponent.java | 9 ++- .../camel/component/etcd/EtcdConfiguration.java | 22 +++---- .../camel/component/etcd/EtcdConstants.java | 14 ++-- .../camel/component/etcd/EtcdKeysProducer.java | 68 ++++++++++++++------ .../camel/component/etcd/EtcdStatsConsumer.java | 1 + .../camel/component/etcd/EtcdStatsProducer.java | 1 + .../camel/component/etcd/EtcdWatchConsumer.java | 2 + .../camel/component/etcd/EtcdKeysTest.java | 3 + .../camel/component/etcd/EtcdStatsTest.java | 1 + .../camel/component/etcd/EtcdWatchTest.java | 2 + parent/pom.xml | 7 ++ .../src/main/resources/bundles.properties | 1 + .../features/src/main/resources/features.xml | 16 ++++- 19 files changed, 141 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/apache-camel/pom.xml ---------------------------------------------------------------------- diff --git a/apache-camel/pom.xml b/apache-camel/pom.xml index c404de6..d469490 100644 --- a/apache-camel/pom.xml +++ b/apache-camel/pom.xml @@ -221,6 +221,10 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-etcd</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-eventadmin</artifactId> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/apache-camel/src/main/descriptors/common-bin.xml ---------------------------------------------------------------------- diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml index 865300d..d5024cb 100644 --- a/apache-camel/src/main/descriptors/common-bin.xml +++ b/apache-camel/src/main/descriptors/common-bin.xml @@ -68,6 +68,7 @@ <include>org.apache.camel:camel-ejb</include> <include>org.apache.camel:camel-elasticsearch</include> <include>org.apache.camel:camel-elsql</include> + <include>org.apache.camel:camel-etcd</include> <include>org.apache.camel:camel-eventadmin</include> <include>org.apache.camel:camel-exec</include> <include>org.apache.camel:camel-facebook</include> http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/docs/etcd.adoc ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/docs/etcd.adoc b/components/camel-etcd/src/main/docs/etcd.adoc index 9ca7dcc..9ed8475 100644 --- a/components/camel-etcd/src/main/docs/etcd.adoc +++ b/components/camel-etcd/src/main/docs/etcd.adoc @@ -5,26 +5,29 @@ + + + // endpoint options: START The etcd component supports 14 endpoint options which are listed below: [width="100%",cols="2s,1,1m,1m,5",options="header"] |======================================================================= | Name | Group | Default | Java Type | Description -| namespace | common | | EtcdNamespace | *Required* The namespace -| path | common | | String | The path -| recursive | common | false | boolean | TODO: document me -| sendEmptyExchangeOnTimeout | common | false | boolean | TODO: document me -| timeout | common | | Long | TODO: document me -| uris | common | | String | TODO: document me +| namespace | common | | EtcdNamespace | *Required* The API namespace to use +| path | common | | String | The path the enpoint refers to +| recursive | common | false | boolean | To apply an action recursively. +| timeout | common | | Long | To set the maximum time an action could take to complete. +| uris | common | http://localhost:2379,http://localhost:4001 | String | To set the URIs the client connects. | bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored. +| sendEmptyExchangeOnTimeout | consumer | false | boolean | To send an empty message in case of timeout watching for a key. | exceptionHandler | consumer (advanced) | | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored. -| timeToLive | producer | | Integer | TODO: document me +| timeToLive | producer | | Integer | To set the lifespan of a key in milliseconds. | exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). -| password | security | | String | TODO: document me -| sslContextParameters | security | | SSLContextParameters | TODO: document me -| userName | security | | String | TODO: document me +| password | security | | String | The password to use for basic authentication. +| sslContextParameters | security | | SSLContextParameters | To configure security using SSLContextParameters. +| userName | security | | String | The user name to use for basic authentication. |======================================================================= // endpoint options: END @@ -33,6 +36,9 @@ The etcd component supports 14 endpoint options which are listed below: + + + // component options: START The etcd component has no options. http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdEndpoint.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdEndpoint.java index a761c98..62a93aa 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdEndpoint.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdEndpoint.java @@ -26,7 +26,6 @@ import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriPath; -import org.apache.camel.util.ObjectHelper; /** * Represents a etcd endpoint. @@ -34,10 +33,11 @@ import org.apache.camel.util.ObjectHelper; @UriEndpoint(scheme = "etcd", title = "etcd", syntax = "etcd:namespace/path", consumerClass = AbstractEtcdConsumer.class, label = "etcd") public abstract class AbstractEtcdEndpoint extends DefaultEndpoint { - @UriPath(description = "The namespace") // TODO: document me + @UriPath(description = "The API namespace to use", enums = "keys,stats,watch") @Metadata(required = "true") private final EtcdNamespace namespace; - @UriPath(description = "The path") // TODO: document me + @UriPath(description = "The path the enpoint refers to") + @Metadata(required = "false") private final String path; @UriParam private final EtcdConfiguration configuration; @@ -63,11 +63,16 @@ public abstract class AbstractEtcdEndpoint extends DefaultEndpoint { return this.namespace; } - public EtcdClient createClient() throws Exception { + public String getPath() { + return this.path; + } - String[] uris = EtcdConstants.ETCD_DEFAULT_URIS; + public EtcdClient createClient() throws Exception { + String[] uris; if (configuration.getUris() != null) { uris = configuration.getUris().split(","); + } else { + uris = EtcdConstants.ETCD_DEFAULT_URIS.split(","); } URI[] etcdUriList = new URI[uris.length]; @@ -86,15 +91,10 @@ public abstract class AbstractEtcdEndpoint extends DefaultEndpoint { ); } - public String getPath() { - return this.path; - } - private SSLContext createSslContext(EtcdConfiguration configuration) throws Exception { if (configuration.getSslContextParameters() != null) { return configuration.getSslContextParameters().createSSLContext(); } return null; } - } http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingConsumer.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingConsumer.java index 542250c..80ba445 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingConsumer.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingConsumer.java @@ -60,7 +60,7 @@ public abstract class AbstractEtcdPollingConsumer extends ScheduledPollConsumer return configuration; } - protected EtcdNamespace getActionNamespace() { + protected EtcdNamespace getNamespace() { return namespace; } http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdProducer.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdProducer.java index 3c56240..ab6a4ef 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdProducer.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdProducer.java @@ -59,7 +59,7 @@ public abstract class AbstractEtcdProducer extends DefaultProducer { return configuration; } - protected EtcdNamespace getActionNamespace() { + protected EtcdNamespace getNamespace() { return namespace; } http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java index 412a664..eab5d35 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java @@ -37,10 +37,17 @@ public class EtcdComponent extends UriEndpointComponent { @Override protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { - String ns = ObjectHelper.before(remaining, "/"); String path = ObjectHelper.after(remaining, "/"); + if (ns == null) { + ns = remaining; + } + + if (path == null) { + path = remaining; + } + EtcdNamespace namespace = getCamelContext().getTypeConverter().mandatoryConvertTo(EtcdNamespace.class, ns); if (namespace != null) { http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConfiguration.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConfiguration.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConfiguration.java index a68e25b..9fe36cd 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConfiguration.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConfiguration.java @@ -23,15 +23,15 @@ import org.apache.camel.util.jsse.SSLContextParameters; @UriParams public class EtcdConfiguration { - @UriParam - private String uris; + @UriParam(defaultValue = EtcdConstants.ETCD_DEFAULT_URIS) + private String uris = EtcdConstants.ETCD_DEFAULT_URIS; @UriParam(label = "security") private SSLContextParameters sslContextParameters; @UriParam(label = "security") private String userName; @UriParam(label = "security") private String password; - @UriParam + @UriParam(label = "consumer") private boolean sendEmptyExchangeOnTimeout; @UriParam private boolean recursive; @@ -45,7 +45,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * To set the URIs the client connects. */ public void setUris(String uris) { this.uris = uris; @@ -56,7 +56,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * To configure security using SSLContextParameters. */ public void setSslContextParameters(SSLContextParameters sslContextParameters) { this.sslContextParameters = sslContextParameters; @@ -67,7 +67,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * The user name to use for basic authentication. */ public void setUserName(String userName) { this.userName = userName; @@ -78,7 +78,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * The password to use for basic authentication. */ public void setPassword(String password) { this.password = password; @@ -89,7 +89,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * To send an empty message in case of timeout watching for a key. */ public void setSendEmptyExchangeOnTimeout(boolean sendEmptyExchangeOnTimeout) { this.sendEmptyExchangeOnTimeout = sendEmptyExchangeOnTimeout; @@ -100,7 +100,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * To apply an action recursively. */ public void setRecursive(boolean recursive) { this.recursive = recursive; @@ -111,7 +111,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * To set the lifespan of a key in milliseconds. */ public void setTimeToLive(Integer timeToLive) { this.timeToLive = timeToLive; @@ -122,7 +122,7 @@ public class EtcdConfiguration { } /** - * TODO: document me + * To set the maximum time an action could take to complete. */ public void setTimeout(Long timeout) { this.timeout = timeout; http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConstants.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConstants.java index e0a46b6..c3b02f8 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConstants.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdConstants.java @@ -18,14 +18,14 @@ package org.apache.camel.component.etcd; public interface EtcdConstants { - String[] ETCD_DEFAULT_URIS = new String [] { - "http://localhost:2379", - "http://localhost:4001" - }; + String ETCD_DEFAULT_URIS = "http://localhost:2379,http://localhost:4001"; String ETCD_ACTION = "CamelEtcdAction"; + String ETCD_NAMESPACE = "CamelEtcdNamespace"; String ETCD_PATH = "CamelEtcdPath"; String ETCD_TIMEOUT = "CamelEtcdTimeout"; + String ETCD_RECURSIVE = "CamelEtcdRecursive"; + String ETCD_TTL = "CamelEtcdTtl"; String ETCD_KEYS_ACTION_SET = "set"; String ETCD_KEYS_ACTION_DELETE = "delete"; @@ -33,7 +33,7 @@ public interface EtcdConstants { String ETCD_KEYS_ACTION_GET = "get"; - String ETCD_LEADER_STATS_PATH = "/stats/leader"; - String ETCD_SELF_STATS_PATH = "/stats/self"; - String ETCD_STORE_STATS_PATH = "/stats/store"; + String ETCD_LEADER_STATS_PATH = "/leader"; + String ETCD_SELF_STATS_PATH = "/self"; + String ETCD_STORE_STATS_PATH = "/store"; } http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdKeysProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdKeysProducer.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdKeysProducer.java index abd1c73..a1964d5 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdKeysProducer.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdKeysProducer.java @@ -23,6 +23,7 @@ import mousio.etcd4j.EtcdClient; import mousio.etcd4j.requests.EtcdKeyDeleteRequest; import mousio.etcd4j.requests.EtcdKeyGetRequest; import mousio.etcd4j.requests.EtcdKeyPutRequest; +import mousio.etcd4j.requests.EtcdRequest; import org.apache.camel.Exchange; import org.apache.camel.ExchangeTimedOutException; import org.apache.camel.util.ObjectHelper; @@ -71,14 +72,11 @@ public class EtcdKeysProducer extends AbstractEtcdProducer { private void processSet(EtcdClient client, String path, Exchange exchange) throws Exception { EtcdKeyPutRequest request = client.put(path, exchange.getIn().getBody(String.class)); - if (configuration.getTimeToLive() != null) { - request.ttl(configuration.getTimeToLive()); - } - if (configuration.getTimeout() != null) { - request.timeout(configuration.getTimeout(), TimeUnit.MILLISECONDS); - } + setRequestTimeToLive(request, exchange); + setRequestTimeout(request, exchange); try { + exchange.getIn().setHeader(EtcdConstants.ETCD_NAMESPACE, getNamespace()); exchange.getIn().setBody(request.send().get()); } catch (TimeoutException e) { throw new ExchangeTimedOutException(exchange, configuration.getTimeout()); @@ -87,14 +85,11 @@ public class EtcdKeysProducer extends AbstractEtcdProducer { private void processGet(EtcdClient client, String path, Exchange exchange) throws Exception { EtcdKeyGetRequest request = client.get(path); - if (configuration.getTimeout() != null) { - request.timeout(configuration.getTimeout(), TimeUnit.MILLISECONDS); - } - if (configuration.isRecursive()) { - request.recursive(); - } + setRequestTimeout(request, exchange); + setRequestRecursive(request, exchange); try { + exchange.getIn().setHeader(EtcdConstants.ETCD_NAMESPACE, getNamespace()); exchange.getIn().setBody(request.send().get()); } catch (TimeoutException e) { throw new ExchangeTimedOutException(exchange, configuration.getTimeout()); @@ -103,20 +98,57 @@ public class EtcdKeysProducer extends AbstractEtcdProducer { private void processDel(EtcdClient client, String path, boolean dir, Exchange exchange) throws Exception { EtcdKeyDeleteRequest request = client.delete(path); - if (configuration.getTimeout() != null) { - request.timeout(configuration.getTimeout(), TimeUnit.MILLISECONDS); - } - if (configuration.isRecursive()) { - request.recursive(); - } + setRequestTimeout(request, exchange); + setRequestRecursive(request, exchange); + if (dir) { request.dir(); } try { + exchange.getIn().setHeader(EtcdConstants.ETCD_NAMESPACE, getNamespace()); exchange.getIn().setBody(request.send().get()); } catch (TimeoutException e) { throw new ExchangeTimedOutException(exchange, configuration.getTimeout()); } } + + private void setRequestTimeout(EtcdRequest<?> request, Exchange exchange) { + Long timeout = exchange.getIn().getHeader(EtcdConstants.ETCD_TIMEOUT, Long.class); + if (timeout != null) { + request.timeout(timeout, TimeUnit.MILLISECONDS); + } else if (configuration.getTimeout() != null) { + request.timeout(configuration.getTimeout(), TimeUnit.MILLISECONDS); + } + } + + private void setRequestTimeToLive(EtcdKeyPutRequest request, Exchange exchange) { + Integer ttl = exchange.getIn().getHeader(EtcdConstants.ETCD_TTL, Integer.class); + if (ttl != null) { + request.ttl(ttl); + } else if (configuration.getTimeToLive() != null) { + request.ttl(configuration.getTimeToLive()); + } + } + + private void setRequestRecursive(EtcdKeyGetRequest request, Exchange exchange) { + if (isRecursive(exchange)) { + request.recursive(); + } + } + + private void setRequestRecursive(EtcdKeyDeleteRequest request, Exchange exchange) { + if (isRecursive(exchange)) { + request.recursive(); + } + } + + private boolean isRecursive(Exchange exchange) { + Boolean recursive = exchange.getIn().getHeader(EtcdConstants.ETCD_RECURSIVE, Boolean.class); + if (recursive != null) { + return recursive; + } + + return configuration.isRecursive(); + } } http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsConsumer.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsConsumer.java index adda1f3..2959ebf 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsConsumer.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsConsumer.java @@ -37,6 +37,7 @@ public class EtcdStatsConsumer extends AbstractEtcdPollingConsumer { if (answer != null) { Exchange exchange = endpoint.createExchange(); + exchange.getIn().setHeader(EtcdConstants.ETCD_NAMESPACE, getNamespace()); exchange.getIn().setHeader(EtcdConstants.ETCD_PATH, getPath()); exchange.getIn().setBody(answer); http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsProducer.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsProducer.java index a5bd069..4b6f9e7 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsProducer.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsProducer.java @@ -35,6 +35,7 @@ public class EtcdStatsProducer extends AbstractEtcdProducer { Object answer = endpoint.getStats(getClient()); if (answer != null) { + exchange.getIn().setHeader(EtcdConstants.ETCD_NAMESPACE, getNamespace()); exchange.getIn().setHeader(EtcdConstants.ETCD_PATH, getPath()); exchange.getIn().setBody(answer); } http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdWatchConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdWatchConsumer.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdWatchConsumer.java index 9b960aa..4c3e6fa 100644 --- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdWatchConsumer.java +++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdWatchConsumer.java @@ -63,6 +63,7 @@ public class EtcdWatchConsumer extends AbstractEtcdConsumer implements ResponseP EtcdKeysResponse response = promise.get(); Exchange exchange = endpoint.createExchange(); + exchange.getIn().setHeader(EtcdConstants.ETCD_NAMESPACE, getNamespace()); exchange.getIn().setHeader(EtcdConstants.ETCD_PATH, response.node.key); exchange.getIn().setBody(response); @@ -75,6 +76,7 @@ public class EtcdWatchConsumer extends AbstractEtcdConsumer implements ResponseP if (configuration.isSendEmptyExchangeOnTimeout()) { Exchange exchange = endpoint.createExchange(); try { + exchange.getIn().setHeader(EtcdConstants.ETCD_NAMESPACE, getNamespace()); exchange.getIn().setHeader(EtcdConstants.ETCD_TIMEOUT, true); exchange.getIn().setHeader(EtcdConstants.ETCD_PATH, getPath()); exchange.getIn().setBody(null); http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdKeysTest.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdKeysTest.java b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdKeysTest.java index 89d0ca5..eca2339 100644 --- a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdKeysTest.java +++ b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdKeysTest.java @@ -52,6 +52,7 @@ public class EtcdKeysTest extends EtcdTest { MockEndpoint mockSet = getMockEndpoint("mock:result-set"); mockSet.expectedMinimumMessageCount(1); + mockSet.expectedHeaderReceived(EtcdConstants.ETCD_NAMESPACE, EtcdNamespace.keys.name()); mockSet.expectedHeaderReceived(EtcdConstants.ETCD_PATH, path); mockSet.assertIsSatisfied(); @@ -67,6 +68,7 @@ public class EtcdKeysTest extends EtcdTest { MockEndpoint mockGet = getMockEndpoint("mock:result-get"); mockGet.expectedMinimumMessageCount(1); + mockSet.expectedHeaderReceived(EtcdConstants.ETCD_NAMESPACE, EtcdNamespace.keys.name()); mockGet.expectedHeaderReceived(EtcdConstants.ETCD_PATH, path); mockGet.expectedMessagesMatches(new Predicate() { @Override @@ -94,6 +96,7 @@ public class EtcdKeysTest extends EtcdTest { MockEndpoint mockDel = getMockEndpoint("mock:result-del"); mockDel.expectedMinimumMessageCount(1); + mockSet.expectedHeaderReceived(EtcdConstants.ETCD_NAMESPACE, EtcdNamespace.keys.name()); mockDel.expectedHeaderReceived(EtcdConstants.ETCD_PATH, path); mockDel.assertIsSatisfied(); http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdStatsTest.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdStatsTest.java b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdStatsTest.java index b1a578a..b142355 100644 --- a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdStatsTest.java +++ b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdStatsTest.java @@ -43,6 +43,7 @@ public class EtcdStatsTest extends EtcdTest { protected void testStatsConsumer(String mockEnpoint, String expectedPath, final Class<?> expectedType) throws Exception { MockEndpoint mock = getMockEndpoint(mockEnpoint); mock.expectedMinimumMessageCount(1); + mock.expectedHeaderReceived(EtcdConstants.ETCD_NAMESPACE, EtcdNamespace.stats.name()); mock.expectedHeaderReceived(EtcdConstants.ETCD_PATH, expectedPath); mock.expectedMessagesMatches(new Predicate() { @Override http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdWatchTest.java ---------------------------------------------------------------------- diff --git a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdWatchTest.java b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdWatchTest.java index d1700e6..0bc7ab9 100644 --- a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdWatchTest.java +++ b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/EtcdWatchTest.java @@ -46,6 +46,7 @@ public class EtcdWatchTest extends EtcdTest { public void testWatchWithTimeout() throws Exception { MockEndpoint mock = getMockEndpoint("mock:watch-with-timeout"); mock.expectedMessageCount(1); + mock.expectedHeaderReceived(EtcdConstants.ETCD_NAMESPACE, EtcdNamespace.watch.name()); mock.expectedHeaderReceived(EtcdConstants.ETCD_PATH, "/timeoutKey"); mock.expectedHeaderReceived(EtcdConstants.ETCD_TIMEOUT, true); mock.expectedMessagesMatches(new Predicate() { @@ -61,6 +62,7 @@ public class EtcdWatchTest extends EtcdTest { private void testWatch(String mockEndpoint, final String key, boolean updateKey) throws Exception { MockEndpoint mock = getMockEndpoint(mockEndpoint); mock.expectedMessageCount(2); + mock.expectedHeaderReceived(EtcdConstants.ETCD_NAMESPACE, EtcdNamespace.watch.name()); mock.expectedHeaderReceived(EtcdConstants.ETCD_PATH, key); mock.expectedMessagesMatches(new Predicate() { @Override http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/parent/pom.xml ---------------------------------------------------------------------- diff --git a/parent/pom.xml b/parent/pom.xml index 758d331..18184de 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -343,6 +343,7 @@ <junit-version>4.11</junit-version> <jython-version>2.5.3</jython-version> <jzlib-version>1.1.3</jzlib-version> + <jzlib-bundle-version>1.1.3_2</jzlib-bundle-version> <kafka-version>0.9.0.0</kafka-version> <kafka-bundle-version>0.9.0.0_1</kafka-bundle-version> <kafka-clients-bundle-version>0.9.0.0_1</kafka-clients-bundle-version> @@ -409,6 +410,7 @@ <neethi-bundle-version>3.0.1</neethi-bundle-version> <netty3-version>3.10.5.Final</netty3-version> <netty-version>4.0.34.Final</netty-version> + <netty41-version>4.1.0.CR2</netty41-version> <noggit-bundle-version>0.5_1</noggit-bundle-version> <!-- should be in-sync with deltaspike --> <openwebbeans1-version>1.2.7</openwebbeans1-version> @@ -881,6 +883,11 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-etcd</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-eventadmin</artifactId> <version>${project.version}</version> </dependency> http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/platforms/karaf/features/src/main/resources/bundles.properties ---------------------------------------------------------------------- diff --git a/platforms/karaf/features/src/main/resources/bundles.properties b/platforms/karaf/features/src/main/resources/bundles.properties index 28082d4..cf535c1 100644 --- a/platforms/karaf/features/src/main/resources/bundles.properties +++ b/platforms/karaf/features/src/main/resources/bundles.properties @@ -57,6 +57,7 @@ org.apache.servicemix.bundles/org.apache.servicemix.bundles.josql/${josql-bundle org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch-bundle-version}/jar org.apache.servicemix.bundles/org.apache.servicemix.bundles.juel/${juel-bundle-version}/jar org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/${junit-bundle-version}/jar +org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib-bundle-version}/jar org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene/${lucene-bundle-version}/jar org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-analyzers-common/${lucene-bundle-version}/jar org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-queryparser/${lucene-bundle-version}/jar http://git-wip-us.apache.org/repos/asf/camel/blob/5865d2e4/platforms/karaf/features/src/main/resources/features.xml ---------------------------------------------------------------------- diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml index 12c429f..873c188 100644 --- a/platforms/karaf/features/src/main/resources/features.xml +++ b/platforms/karaf/features/src/main/resources/features.xml @@ -417,8 +417,20 @@ </feature> <feature name='camel-etcd' version='${project.version}' resolver='(obr)' start-level='50'> <feature version='${project.version}'>camel-core</feature> - <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle> - <bundle dependency='true'>mvn:org.mousio/etcd4j/${etcd4j-version}</bundle> + <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle> + <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib-bundle-version}</bundle> + <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle> + <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle> + <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle> + <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-afterburner/${jackson2-version}</bundle> + <bundle dependency='true'>mvn:io.netty/netty-common/${netty41-version}</bundle> + <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty41-version}</bundle> + <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty41-version}</bundle> + <bundle dependency='true'>mvn:io.netty/netty-transport/${netty41-version}</bundle> + <bundle dependency='true'>mvn:io.netty/netty-handler/${netty41-version}</bundle> + <bundle dependency='true'>mvn:io.netty/netty-codec/${netty41-version}</bundle> + <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty41-version}</bundle> + <bundle dependency='true'>mvn:org.mousio/etcd4j/${etcd4j-version}</bundle> <bundle>mvn:org.apache.camel/camel-etcd/${project.version}</bundle> </feature> <feature name='camel-eventadmin' version='${project.version}' resolver='(obr)' start-level='50'>