You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by io...@apache.org on 2011/12/02 23:42:11 UTC
svn commit: r1209753 - in /karaf/cellar/trunk: assembly/src/main/resources/
hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/
hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/
Author: iocanel
Date: Fri Dec 2 22:42:10 2011
New Revision: 1209753
URL: http://svn.apache.org/viewvc?rev=1209753&view=rev
Log:
[KARAF-1079] Fixed Hazlecast configuration manager to properly create sets from configuration properties. Added a unit tests that checks the isUpdated method of the configuratio manager. Added missing license headers.
Added:
karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java
Modified:
karaf/cellar/trunk/assembly/src/main/resources/hazelcast.xml
karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
Modified: karaf/cellar/trunk/assembly/src/main/resources/hazelcast.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/assembly/src/main/resources/hazelcast.xml?rev=1209753&r1=1209752&r2=1209753&view=diff
==============================================================================
--- karaf/cellar/trunk/assembly/src/main/resources/hazelcast.xml (original)
+++ karaf/cellar/trunk/assembly/src/main/resources/hazelcast.xml Fri Dec 2 22:42:10 2011
@@ -3,8 +3,8 @@
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<group>
- <name>dev</name>
- <password>dev-pass</password>
+ <name>cellar</name>
+ <password>pass</password>
</group>
<network>
<port auto-increment="true">5701</port>
Modified: karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java?rev=1209753&r1=1209752&r2=1209753&view=diff
==============================================================================
--- karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java (original)
+++ karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java Fri Dec 2 22:42:10 2011
@@ -1,3 +1,16 @@
+/*
+ * Licensed 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.karaf.cellar.hazelcast.factory;
import java.util.ArrayList;
@@ -30,15 +43,15 @@ public class HazelcastConfigurationManag
public static final String TCPIP_ENABLED="tcpIpEnabled";
public static final String TCPIP_MEMBERS="tcpIpMembers";
- private String username = GroupConfig.DEFAULT_GROUP_NAME;
- private String password = GroupConfig.DEFAULT_GROUP_PASSWORD;
+ private String username = "cellar";
+ private String password = "pass";
private boolean multicastEnabled = MulticastConfig.DEFAULT_ENABLED;
private String multicastGroup = MulticastConfig.DEFAULT_MULTICAST_GROUP;
private int multicastPort = MulticastConfig.DEFAULT_MULTICAST_PORT;
private int multicastTimeoutSeconds = MulticastConfig.DEFAULT_MULTICAST_TIMEOUT_SECONDS;
- private boolean tcpIpEnabled = true;
+ private boolean tcpIpEnabled = false;
private String tcpIpMembers = "";
private Set<String> tcpIpMemberSet = new LinkedHashSet<String>();
private Set<String> discoveredMemberSet = new LinkedHashSet<String>();
@@ -57,6 +70,7 @@ public class HazelcastConfigurationManag
if (properties.containsKey(USERNAME)) {
String newUsername = (String) properties.get(USERNAME);
if (username != null && newUsername != null && !username.endsWith(newUsername)) {
+ LOGGER.info("Hazelcast username has been changed from {} to {}", username, newUsername);
this.username = newUsername;
updated = Boolean.TRUE;
}
@@ -65,20 +79,25 @@ public class HazelcastConfigurationManag
if (properties.containsKey(PASSWORD)) {
String newPassword = (String) properties.get(PASSWORD);
if (password != null && !password.equals(newPassword)) {
+ LOGGER.info("Hazelcast password has been changed from {} to {}", password, newPassword);
this.password = newPassword;
updated = Boolean.TRUE;
}
}
- Boolean newMulticastEnabled = Boolean.parseBoolean((String) properties.get(MULTICAST_ENABLED));
- if (multicastEnabled != newMulticastEnabled) {
- this.multicastEnabled = newMulticastEnabled;
- updated = Boolean.TRUE;
+ if (properties.containsKey(MULTICAST_ENABLED)) {
+ Boolean newMulticastEnabled = Boolean.parseBoolean((String) properties.get(MULTICAST_ENABLED));
+ if (multicastEnabled != newMulticastEnabled) {
+ LOGGER.info("Hazelcast multicastEnabled has been changed from {} to {}", multicastEnabled, newMulticastEnabled);
+ this.multicastEnabled = newMulticastEnabled;
+ updated = Boolean.TRUE;
+ }
}
if (properties.containsKey(MULTICAST_GROUP)) {
String newMulticastGroup = (String) properties.get(MULTICAST_GROUP);
if (multicastGroup != null && newMulticastGroup != null && !multicastGroup.endsWith(newMulticastGroup)) {
+ LOGGER.info("Hazelcast multicastGroup has been changed from {} to {}", multicastGroup, newMulticastGroup);
this.multicastGroup = newMulticastGroup;
updated = Boolean.TRUE;
}
@@ -89,6 +108,7 @@ public class HazelcastConfigurationManag
try {
int newMulticastPort = Integer.parseInt((String) properties.get(MULTICAST_PORT));
if (multicastPort != 0 && multicastPort != newMulticastPort) {
+ LOGGER.info("Hazelcast multicastPort has been changed from {} to {}", multicastPort, newMulticastPort);
this.multicastPort = newMulticastPort;
updated = Boolean.TRUE;
}
@@ -101,6 +121,7 @@ public class HazelcastConfigurationManag
try {
int newMulticastTimeoutSeconds = Integer.parseInt((String) properties.get(MULTICAST_TIMEOUT_IN_SECONDS));
if (multicastTimeoutSeconds != 0 && multicastTimeoutSeconds != newMulticastTimeoutSeconds) {
+ LOGGER.info("Hazelcast multicastTimeoutSeconds has been changed from {} to {}", multicastTimeoutSeconds, newMulticastTimeoutSeconds);
this.multicastTimeoutSeconds = newMulticastTimeoutSeconds;
updated = Boolean.TRUE;
}
@@ -112,21 +133,29 @@ public class HazelcastConfigurationManag
if (properties.containsKey(TCPIP_ENABLED)) {
Boolean newTcpIpEnabled = Boolean.parseBoolean((String) properties.get(TCPIP_ENABLED));
if (tcpIpEnabled != newTcpIpEnabled) {
+ LOGGER.info("Hazelcast tcpIpEnabled has been changed from {} to {}", tcpIpEnabled, newTcpIpEnabled);
this.tcpIpEnabled = newTcpIpEnabled;
updated = Boolean.TRUE;
}
}
- Set<String> newTcpIpMemberSet = createSetFromString((String) properties.get(TCPIP_MEMBERS));
- if (tcpIpMemberSet != null && newTcpIpMemberSet != null && !collectionEquals(tcpIpMemberSet, newTcpIpMemberSet)) {
- tcpIpMemberSet = newTcpIpMemberSet;
- updated = Boolean.TRUE;
+ if (properties.containsKey(TCPIP_MEMBERS)) {
+ Set<String> newTcpIpMemberSet = createSetFromString((String) properties.get(TCPIP_MEMBERS));
+ if (!collectionEquals(tcpIpMemberSet, newTcpIpMemberSet)) {
+ LOGGER.info("Hazelcast tcpIpMemberSet has been changed from {} to {}", tcpIpMemberSet, newTcpIpMemberSet);
+ tcpIpMemberSet = newTcpIpMemberSet;
+ updated = Boolean.TRUE;
+ }
}
- Set<String> newDiscoveredMemberSet = createSetFromString((String) properties.get(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME));
- if (discoveredMemberSet != null && newDiscoveredMemberSet != null && !collectionEquals(discoveredMemberSet, newDiscoveredMemberSet)) {
- discoveredMemberSet = newDiscoveredMemberSet;
- updated = Boolean.TRUE;
+
+ if (properties.containsKey(TCPIP_MEMBERS)) {
+ Set<String> newDiscoveredMemberSet = createSetFromString((String) properties.get(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME));
+ if (!collectionEquals(discoveredMemberSet, newDiscoveredMemberSet)) {
+ LOGGER.info("Hazelcast discoveredMemberSet has been changed from {} to {}", discoveredMemberSet, newDiscoveredMemberSet);
+ discoveredMemberSet = newDiscoveredMemberSet;
+ updated = Boolean.TRUE;
+ }
}
}
@@ -200,7 +229,9 @@ public class HazelcastConfigurationManag
if (items != null && items.length > 0) {
for (String item : items) {
- result.add(item);
+ if(item != null && item.length() > 0) {
+ result.add(item.trim());
+ }
}
}
}
@@ -214,7 +245,7 @@ public class HazelcastConfigurationManag
* @param col2
* @return
*/
- private boolean collectionEquals(Collection col1, Collection col2) {
+ public boolean collectionEquals(Collection col1, Collection col2) {
return collectionSubset(col1, col2) && collectionSubset(col2, col1);
}
Modified: karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java?rev=1209753&r1=1209752&r2=1209753&view=diff
==============================================================================
--- karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java (original)
+++ karaf/cellar/trunk/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java Fri Dec 2 22:42:10 2011
@@ -53,11 +53,13 @@ public class HazelcastServiceFactory {
}
public void update(Map properties) throws InterruptedException {
+ LOGGER.info("Instance configuration updated. Checking if instance requires restarting.");
if(configurationManager.isUpdated(properties)) {
instnaceLatch.await();
Config updatedConfig = configurationManager.getHazelcastConfig();
instance.getConfig().setNetworkConfig(updatedConfig.getNetworkConfig());
instance.getConfig().setGroupConfig(updatedConfig.getGroupConfig());
+ LOGGER.info("Restaring Hazelcast instance.");
instance.getLifecycleService().restart();
}
}
Added: karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java?rev=1209753&view=auto
==============================================================================
--- karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java (added)
+++ karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java Fri Dec 2 22:42:10 2011
@@ -0,0 +1,56 @@
+package org.apache.karaf.cellar.hazelcast.factory;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.Properties;
+import java.util.Set;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public class HazelcastConfigurationManagerTest {
+
+ @Test
+ public void testCollectionEquals() {
+ HazelcastConfigurationManager cm = new HazelcastConfigurationManager();
+ //Lists
+ Assert.assertTrue(cm.collectionEquals(null,null));
+ Assert.assertTrue(cm.collectionEquals(new LinkedList(),new LinkedList()));
+ Assert.assertTrue(cm.collectionEquals(new LinkedList(),new ArrayList()));
+
+ Assert.assertTrue(cm.collectionEquals(Arrays.asList(""),Arrays.asList("")));
+ Assert.assertTrue(cm.collectionEquals(Arrays.asList("1"),Arrays.asList("1")));
+ Assert.assertFalse(cm.collectionEquals(Arrays.asList("1"), Arrays.asList("2")));
+ Assert.assertTrue(cm.collectionEquals(Arrays.asList("1","2"),Arrays.asList("2","1")));
+ Assert.assertFalse(cm.collectionEquals(Arrays.asList("1", "2"), Arrays.asList("2", "1", "3")));
+
+ //Sets
+ Assert.assertTrue(cm.collectionEquals(new LinkedHashSet(),new LinkedHashSet()));
+ Set<String> s1 = new LinkedHashSet<String>();
+ Set<String> s2 = new LinkedHashSet<String>();
+
+ s1.add("");
+ s2.add("");
+ Assert.assertTrue(cm.collectionEquals(s1,s2));
+ System.out.println(String.format("%s %s",s1,s2));
+ }
+
+ @Test
+ public void testIsUpdatedWithNoProperties() {
+ HazelcastConfigurationManager cm = new HazelcastConfigurationManager();
+ Assert.assertFalse(cm.isUpdated(new Properties()));
+ }
+
+ @Test
+ public void testIsUpdatedWithEmptyTcpMembers() {
+ HazelcastConfigurationManager cm = new HazelcastConfigurationManager();
+ Properties p = new Properties();
+ p.put(HazelcastConfigurationManager.TCPIP_MEMBERS,"");
+ Assert.assertFalse(cm.isUpdated(p));
+ }
+}