From 491e07dbb941818b00fec9cfa256931e78dd480a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20Schro=CC=88der?= Date: Thu, 19 Dec 2013 14:13:16 +0100 Subject: [PATCH 1/3] ZooKeeperProducer does not stop ZooKeeper threads if Camel context ist stopped. Added overloaded doStop() method to shutdown ZooKeeperConnectionManager --- .../camel/component/zookeeper/ZookeeperProducer.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZookeeperProducer.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZookeeperProducer.java index 4edc98e6e2bb5..f3e77d9f7fe9b 100644 --- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZookeeperProducer.java +++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZookeeperProducer.java @@ -101,6 +101,15 @@ public void process(Exchange exchange) throws Exception { } } + @Override + protected void doStop() throws Exception { + super.doStop(); + if (log.isTraceEnabled()) { + log.trace(String.format("Shutting down zookeeper producer of '%s'", configuration.getPath())); + } + zkm.shutdown(); + } + private void asynchronouslyDeleteNode(ZooKeeper connection, ProductionContext context) { if (log.isDebugEnabled()) { log.debug(format("Deleting node '%s', not waiting for confirmation", context.node)); From 65fde427ce531f239d24dc367cb460a0cb36d319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20Schro=CC=88der?= Date: Thu, 19 Dec 2013 16:39:49 +0100 Subject: [PATCH 2/3] Avoid NPE --- .../apache/camel/component/zookeeper/ConnectionHolder.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java index 68acadcadc0fc..2e69e3191d0a3 100644 --- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java +++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java @@ -85,7 +85,9 @@ public void process(WatchedEvent event) { public void closeConnection() { try { - zookeeper.close(); + if (zookeeper != null) { + zookeeper.close(); + } if (LOG.isDebugEnabled()) { LOG.debug("Shutting down connection to Zookeeper cluster {}", configuration.getConnectString()); } From 7f22df2cdf8da4ada20017e57259ee2967b95908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20Schro=CC=88der?= Date: Thu, 19 Dec 2013 17:37:52 +0100 Subject: [PATCH 3/3] Allow comma-separated list of Zookeeper hosts in endpoint URI --- .../camel/component/zookeeper/ZooKeeperComponent.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java index a35020e14d40e..c1f014e4718a0 100644 --- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java +++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java @@ -56,9 +56,12 @@ protected Endpoint createEndpoint(String uri, String remaining, Map