You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2017/01/16 09:34:06 UTC

camel git commit: CAMEL-10709: camel-etcd: etcd stats endpoint fails because of a class cast exception

Repository: camel
Updated Branches:
  refs/heads/master 5dc888d8f -> e5c45cc20


CAMEL-10709: camel-etcd: etcd stats endpoint fails because of a class cast exception


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e5c45cc2
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e5c45cc2
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e5c45cc2

Branch: refs/heads/master
Commit: e5c45cc209d6103c92a241185bf389f4886d2c2a
Parents: 5dc888d
Author: lburgazzoli <lb...@gmail.com>
Authored: Mon Jan 16 09:59:16 2017 +0100
Committer: lburgazzoli <lb...@gmail.com>
Committed: Mon Jan 16 10:33:38 2017 +0100

----------------------------------------------------------------------
 .../component/etcd/AbstractEtcdConsumer.java    |  2 +-
 .../component/etcd/AbstractEtcdEndpoint.java    |  6 +++-
 .../etcd/AbstractEtcdPollingConsumer.java       | 24 ++--------------
 .../etcd/AbstractEtcdPollingEndpoint.java       |  6 +++-
 .../component/etcd/AbstractEtcdProducer.java    |  2 +-
 .../camel/component/etcd/EtcdEndpoint.java      | 29 ++++++++++++++++++++
 .../camel/component/etcd/EtcdStatsConsumer.java |  9 +++---
 .../camel/component/etcd/EtcdStatsEndpoint.java |  2 +-
 8 files changed, 48 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdConsumer.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdConsumer.java
index 84533d8..1a7fdde 100644
--- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdConsumer.java
+++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdConsumer.java
@@ -50,7 +50,7 @@ public abstract class AbstractEtcdConsumer extends DefaultConsumer {
 
     protected EtcdClient getClient() throws Exception {
         if (client == null) {
-            client = ((AbstractEtcdEndpoint)getEndpoint()).createClient();
+            client = ((EtcdEndpoint)getEndpoint()).createClient();
         }
 
         return client;

http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/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 5eb095e..beb72ca 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
@@ -27,7 +27,7 @@ import org.apache.camel.spi.UriPath;
  * The camel etcd component allows you to work with <a href="https://coreos.com/etcd">Etcd</a>, a distributed, A distributed, reliable key-value store.
  */
 @UriEndpoint(scheme = "etcd", title = "etcd", syntax = "etcd:namespace/path", consumerClass = AbstractEtcdConsumer.class, label = "etcd")
-public abstract class AbstractEtcdEndpoint extends DefaultEndpoint {
+public abstract class AbstractEtcdEndpoint extends DefaultEndpoint implements EtcdEndpoint {
 
     @UriPath(description = "The API namespace to use", enums = "keys,stats,watch")
     @Metadata(required = "true")
@@ -51,18 +51,22 @@ public abstract class AbstractEtcdEndpoint extends DefaultEndpoint {
         return true;
     }
 
+    @Override
     public EtcdConfiguration getConfiguration() {
         return this.configuration;
     }
 
+    @Override
     public EtcdNamespace getNamespace() {
         return this.namespace;
     }
 
+    @Override
     public String getPath() {
         return this.path;
     }
 
+    @Override
     public EtcdClient createClient() throws Exception {
         return configuration.createClient();
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/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 b069c63..bce2354 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
@@ -24,18 +24,10 @@ import org.apache.camel.impl.ScheduledPollConsumer;
  * The etcd consumer.
  */
 public abstract class AbstractEtcdPollingConsumer extends ScheduledPollConsumer {
-    private final EtcdConfiguration configuration;
-    private final EtcdNamespace namespace;
-    private final String path;
-
     private EtcdClient client;
 
-    protected AbstractEtcdPollingConsumer(AbstractEtcdPollingEndpoint endpoint, Processor processor, EtcdConfiguration configuration, EtcdNamespace namespace, String path) {
+    protected AbstractEtcdPollingConsumer(AbstractEtcdPollingEndpoint endpoint, Processor processor) {
         super(endpoint, processor);
-
-        this.configuration = configuration;
-        this.namespace = namespace;
-        this.path = path;
         this.client = null;
     }
 
@@ -50,21 +42,9 @@ public abstract class AbstractEtcdPollingConsumer extends ScheduledPollConsumer
 
     protected EtcdClient getClient() throws Exception {
         if (client == null) {
-            client = ((AbstractEtcdEndpoint)getEndpoint()).createClient();
+            client = ((EtcdEndpoint)getEndpoint()).createClient();
         }
 
         return client;
     }
-
-    protected EtcdConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    protected EtcdNamespace getNamespace() {
-        return namespace;
-    }
-
-    protected String getPath() {
-        return this.path;
-    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingEndpoint.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingEndpoint.java
index f00996e..af2572e 100644
--- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingEndpoint.java
+++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdPollingEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.UriPath;
  * The camel etcd component allows you to work with <a href="https://coreos.com/etcd">Etcd</a>, a distributed, A distributed, reliable key-value store.
  */
 @UriEndpoint(scheme = "etcd", title = "etcd", syntax = "etcd:namespace/path", consumerClass = AbstractEtcdConsumer.class, label = "etcd")
-public abstract class AbstractEtcdPollingEndpoint extends DefaultPollingEndpoint {
+public abstract class AbstractEtcdPollingEndpoint extends DefaultPollingEndpoint implements EtcdEndpoint {
 
     @UriPath(description = "The API namespace to use", enums = "keys,stats,watch")
     @Metadata(required = "true")
@@ -51,18 +51,22 @@ public abstract class AbstractEtcdPollingEndpoint extends DefaultPollingEndpoint
         return true;
     }
 
+    @Override
     public EtcdConfiguration getConfiguration() {
         return this.configuration;
     }
 
+    @Override
     public EtcdNamespace getNamespace() {
         return this.namespace;
     }
 
+    @Override
     public String getPath() {
         return this.path;
     }
 
+    @Override
     public EtcdClient createClient() throws Exception {
         return configuration.createClient();
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/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 56d80e6..e93a67e 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
@@ -50,7 +50,7 @@ public abstract class AbstractEtcdProducer extends DefaultProducer {
 
     protected EtcdClient getClient() throws Exception {
         if (client == null) {
-            client = ((AbstractEtcdEndpoint)getEndpoint()).createClient();
+            client = ((EtcdEndpoint)getEndpoint()).createClient();
         }
 
         return client;

http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdEndpoint.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdEndpoint.java
new file mode 100644
index 0000000..b489e07
--- /dev/null
+++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdEndpoint.java
@@ -0,0 +1,29 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.etcd;
+
+import mousio.etcd4j.EtcdClient;
+
+interface EtcdEndpoint {
+    EtcdConfiguration getConfiguration();
+
+    EtcdNamespace getNamespace();
+
+    String getPath();
+
+    EtcdClient createClient() throws Exception;
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/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 2959ebf..daf2952 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
@@ -20,9 +20,8 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 
 public class EtcdStatsConsumer extends AbstractEtcdPollingConsumer {
-
-    public EtcdStatsConsumer(EtcdStatsEndpoint endpoint, Processor processor, EtcdConfiguration configuration, EtcdNamespace namespace, String path) {
-        super(endpoint, processor, configuration, namespace, path);
+    public EtcdStatsConsumer(EtcdStatsEndpoint endpoint, Processor processor) {
+        super(endpoint, processor);
     }
 
     @Override
@@ -37,8 +36,8 @@ 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().setHeader(EtcdConstants.ETCD_NAMESPACE, endpoint.getNamespace());
+            exchange.getIn().setHeader(EtcdConstants.ETCD_PATH, endpoint.getPath());
             exchange.getIn().setBody(answer);
 
             getProcessor().process(exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/e5c45cc2/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsEndpoint.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsEndpoint.java
index 7bb41c2..7e6a9ce 100644
--- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsEndpoint.java
+++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdStatsEndpoint.java
@@ -35,7 +35,7 @@ public class EtcdStatsEndpoint extends AbstractEtcdPollingEndpoint {
 
     @Override
     public Consumer createConsumer(Processor processor) throws Exception {
-        EtcdStatsConsumer consumer = new EtcdStatsConsumer(this, processor, getConfiguration(), getNamespace(), getPath());
+        EtcdStatsConsumer consumer = new EtcdStatsConsumer(this, processor);
         configureConsumer(consumer);
         return consumer;
     }