You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by an...@apache.org on 2013/04/11 17:54:54 UTC

svn commit: r1466931 - in /karaf/cellar/branches/cellar-2.2.x: cloud/src/main/java/org/apache/karaf/cellar/cloud/ hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/

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();
+    		}
+    	}
     }
 
     /**