Author: anierbeck
Date: Thu Apr 11 15:54:54 2013
New Revision: 1466931
URL: http://svn.apache.org/r1466931
Log:
[KARAF-2263] - Cellar-Cloud: discover member removes member information which
isn't re-generated
Modified:
karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/ServiceContainer.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
Modified:
karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/ServiceContainer.java
URL:
http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/ServiceContainer.java?rev=1466931&r1=1466930&r2=1466931&view=diff
==============================================================================
---
karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/ServiceContainer.java
(original)
+++
karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/ServiceContainer.java
Thu Apr 11 15:54:54 2013
@@ -26,9 +26,9 @@ public class ServiceContainer implements
private DateTime registeredTime;
private String hostName;
-
private String hostIp;
-
+ private String hostPort;
+
public DateTime getRegisteredTime() {
return registeredTime;
}
@@ -40,10 +40,20 @@ public class ServiceContainer implements
public String getHostIp() {
return hostIp;
}
+
+ public String getHostPort() {
+ return hostPort;
+ }
public ServiceContainer(String hostName, String hostIp, DateTime
registeredTime) {
+ this(hostName, hostIp, null, registeredTime);
+ }
+
+
+ public ServiceContainer(String hostName, String hostIp, String
hostPort, DateTime registeredTime) {
this.registeredTime = registeredTime;
this.hostName = hostName;
this.hostIp = hostIp;
+ this.hostPort = hostPort;
}
}
Modified:
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
URL:
http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java?rev=1466931&r1=1466930&r2=1466931&view=diff
==============================================================================
---
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
(original)
+++
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
Thu Apr 11 15:54:54 2013
@@ -73,6 +73,11 @@ public class HazelcastConfigurationManag
return updated;
}
-
+ /**
+ * @return the discoveredMemberSet
+ */
+ public Set<String> getDiscoveredMemberSet() {
+ return discoveredMemberSet;
+ }
}
Modified:
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
URL:
http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java?rev=1466931&r1=1466930&r2=1466931&view=diff
==============================================================================
---
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
(original)
+++
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
Thu Apr 11 15:54:54 2013
@@ -13,15 +13,20 @@
*/
package org.apache.karaf.cellar.hazelcast.factory;
-import com.hazelcast.core.Hazelcast;
-import com.hazelcast.core.HazelcastInstance;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+
import org.apache.karaf.cellar.core.utils.CombinedClassLoader;
import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Map;
-import java.util.concurrent.CountDownLatch;
+import com.hazelcast.config.Config;
+import com.hazelcast.config.TcpIpConfig;
+import com.hazelcast.core.Hazelcast;
+import com.hazelcast.core.HazelcastInstance;
/**
* A factory for a Hazelcast Instance, which integration with OSGi Service
Registry and Config Admin.
@@ -53,7 +58,28 @@ public class HazelcastServiceFactory {
}
public void update(Map properties) {
- configurationManager.isUpdated(properties);
+ if (configurationManager.isUpdated(properties)) {
+ LOGGER.debug("CELLAR HAZELCAST: configuration update is true");
+ Config config = instance.getConfig();
+ TcpIpConfig tcpIpConfig =
config.getNetworkConfig().getJoin().getTcpIpConfig();
+ List<String> members = tcpIpConfig.getMembers();
+
+ Set<String> discoveredMemberSet =
configurationManager.getDiscoveredMemberSet();
+ discoveredMemberSet.removeAll(members);
+
+ if (!discoveredMemberSet.isEmpty()) {
+ LOGGER.debug("CELLAR HAZELCAST: will add following
members {}", discoveredMemberSet);
+ instance.getLifecycleService().pause();
+ for (String discoveredMember : discoveredMemberSet) {
+ tcpIpConfig.addMember(discoveredMember);
+ }
+ if (!tcpIpConfig.isEnabled()) {
+ LOGGER.debug("CELLAR HAZELCAST: tcpip mode
needs to be enabled, will do now!");
+ tcpIpConfig.setEnabled(true);
+ }
+ instance.getLifecycleService().restart();
+ }
+ }
}
/**