You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by am...@apache.org on 2013/06/13 20:11:51 UTC
svn commit: r1492793 - in
/cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper:
Activator.java ZooKeeperDiscovery.java
Author: amichai
Date: Thu Jun 13 18:11:51 2013
New Revision: 1492793
URL: http://svn.apache.org/r1492793
Log:
DOSGI-191 Fix ZooKeeperDiscovery instance reconnects to ZooKeeper after bundle is stopped
Modified:
cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/Activator.java
cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/ZooKeeperDiscovery.java
Modified: cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/Activator.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/Activator.java?rev=1492793&r1=1492792&r2=1492793&view=diff
==============================================================================
--- cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/Activator.java (original)
+++ cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/Activator.java Thu Jun 13 18:11:51 2013
@@ -38,6 +38,6 @@ public class Activator implements Bundle
}
public synchronized void stop(BundleContext bc) throws Exception {
- zkd.stop();
+ zkd.stop(true);
}
}
Modified: cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/ZooKeeperDiscovery.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/ZooKeeperDiscovery.java?rev=1492793&r1=1492792&r2=1492793&view=diff
==============================================================================
--- cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/ZooKeeperDiscovery.java (original)
+++ cxf/dosgi/trunk/discovery/distributed/cxf-discovery/src/main/java/org/apache/cxf/dosgi/discovery/zookeeper/ZooKeeperDiscovery.java Thu Jun 13 18:11:51 2013
@@ -41,10 +41,9 @@ public class ZooKeeperDiscovery implemen
private PublishingEndpointListenerFactory endpointListenerFactory;
private ServiceTracker endpointListenerTracker;
-
private InterfaceMonitorManager imManager;
-
private ZooKeeper zooKeeper;
+ private boolean closed;
@SuppressWarnings("rawtypes")
private Dictionary curConfiguration;
@@ -58,7 +57,7 @@ public class ZooKeeperDiscovery implemen
public synchronized void updated(Dictionary configuration) throws ConfigurationException {
LOG.debug("Received configuration update for Zookeeper Discovery: {}", configuration);
- stop();
+ stop(false);
if (configuration == null) {
return;
@@ -68,6 +67,9 @@ public class ZooKeeperDiscovery implemen
}
private synchronized void start() {
+ if (closed) {
+ return;
+ }
LOG.debug("starting ZookeeperDiscovery");
endpointListenerFactory = new PublishingEndpointListenerFactory(zooKeeper, bctx);
endpointListenerFactory.start();
@@ -77,7 +79,8 @@ public class ZooKeeperDiscovery implemen
endpointListenerTracker.open();
}
- public synchronized void stop() {
+ public synchronized void stop(boolean close) {
+ closed |= close;
if (endpointListenerFactory != null) {
LOG.debug("stopping ZookeeperDiscovery");
endpointListenerFactory.stop();
@@ -99,6 +102,9 @@ public class ZooKeeperDiscovery implemen
@SuppressWarnings("rawtypes")
private synchronized void createZooKeeper(Dictionary props) {
+ if (closed) {
+ return;
+ }
String host = Utils.getProp(props, "zookeeper.host", "localhost");
String port = Utils.getProp(props, "zookeeper.port", "2181");
int timeout = Utils.getProp(props, "zookeeper.timeout", 3000);
@@ -121,7 +127,7 @@ public class ZooKeeperDiscovery implemen
case Expired:
LOG.info("Connection to zookeeper expired. Trying to create a new connection");
- stop();
+ stop(false);
createZooKeeper(curConfiguration);
break;