You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/04/16 08:56:21 UTC

svn commit: r1326510 - in /karaf/cellar/trunk: core/src/main/java/org/apache/karaf/cellar/core/discovery/ hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/ hazelcast/src/main/resources/OSGI-INF/blueprint/ hazelcast/src/test/java/org/ap...

Author: jbonofre
Date: Mon Apr 16 06:56:21 2012
New Revision: 1326510

URL: http://svn.apache.org/viewvc?rev=1326510&view=rev
Log:
[KARAF-1248] Remove the instance config file to use only hazelcast.xml file

Modified:
    karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/Discovery.java
    karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java
    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
    karaf/cellar/trunk/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
    karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java
    karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java

Modified: karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/Discovery.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/Discovery.java?rev=1326510&r1=1326509&r2=1326510&view=diff
==============================================================================
--- karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/Discovery.java (original)
+++ karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/Discovery.java Mon Apr 16 06:56:21 2012
@@ -16,7 +16,7 @@ package org.apache.karaf.cellar.core.dis
 
 public class Discovery {
 
-    public static final String PID = "org.apache.karaf.cellar.instance";
+    public static final String PID = "org.apache.karaf.cellar.discovery";
     public static final String MEMBERS_PROPERTY_NAME = "tcpIpMembers";
     public static final String DISCOVERED_MEMBERS_PROPERTY_NAME = "discoveredMembers";
 

Modified: karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java?rev=1326510&r1=1326509&r2=1326510&view=diff
==============================================================================
--- karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java (original)
+++ karaf/cellar/trunk/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java Mon Apr 16 06:56:21 2012
@@ -48,6 +48,7 @@ public class DiscoveryTask implements Ru
     @Override
     public void run() {
         LOGGER.trace("CELLAR DISCOVERY: Starting the discovery task.");
+
         if (configurationAdmin != null) {
             Set<String> members = new LinkedHashSet<String>();
             if (discoveryServices != null && !discoveryServices.isEmpty()) {
@@ -56,18 +57,18 @@ public class DiscoveryTask implements Ru
                     Set<String> discovered = service.discoverMembers();
                     members.addAll(discovered);
                 }
-            try {
-                Configuration configuration = configurationAdmin.getConfiguration(Discovery.PID);
-                Dictionary properties = configuration.getProperties();
-                String newMemberText = CellarUtils.createStringFromSet(members,true);
-                String memberText = (String) properties.get(Discovery.MEMBERS_PROPERTY_NAME);
-                if (newMemberText != null && !newMemberText.isEmpty() && !newMemberText.equals(memberText)) {
-                    properties.put(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME, newMemberText);
-                    configuration.update(properties);
+                try {
+                    Configuration configuration = configurationAdmin.getConfiguration(Discovery.PID);
+                    Dictionary properties = configuration.getProperties();
+                    String newMemberText = CellarUtils.createStringFromSet(members, true);
+                    String memberText = (String) properties.get(Discovery.MEMBERS_PROPERTY_NAME);
+                    if (newMemberText != null && newMemberText.length() > 0 && !newMemberText.equals(memberText)) {
+                        properties.put(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME, newMemberText);
+                        configuration.update(properties);
+                    }
+                } catch (IOException e) {
+                    LOGGER.error("Failed to update member list", e);
                 }
-            } catch (IOException e) {
-                LOGGER.error("Failed to update member list", e);
-            }
             }
         }
     }

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=1326510&r1=1326509&r2=1326510&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 Mon Apr 16 06:56:21 2012
@@ -13,156 +13,27 @@
  */
 package org.apache.karaf.cellar.hazelcast.factory;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
 import com.hazelcast.config.Config;
-import com.hazelcast.config.GroupConfig;
-import com.hazelcast.config.MulticastConfig;
 import com.hazelcast.config.TcpIpConfig;
 import com.hazelcast.config.XmlConfigBuilder;
-import com.hazelcast.core.HazelcastInstance;
 import org.apache.karaf.cellar.core.discovery.Discovery;
 import org.apache.karaf.cellar.core.utils.CellarUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
 public class HazelcastConfigurationManager {
 
     private static final transient Logger LOGGER = LoggerFactory.getLogger(HazelcastServiceFactory.class);
 
-    public static final String USERNAME="username";
-    public static final String PASSWORD="password";
+    private String xmlConfigLocation = System.getProperty("karaf.home") + "/etc/hazelcast.xml";
 
-    public static final String MULTICAST_ENABLED="multicastEnabled";
-    public static final String MULTICAST_GROUP="multicastGroup";
-    public static final String MULTICAST_PORT="multicastPort";
-    public static final String MULTICAST_TIMEOUT_IN_SECONDS="multicastTimeoutSeconds";
-
-    public static final String TCPIP_ENABLED="tcpIpEnabled";
-    public static final String TCPIP_MEMBERS="tcpIpMembers";
-
-    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 = false;
-    private String tcpIpMembers = "";
-    private Set<String> tcpIpMemberSet = new LinkedHashSet<String>();
     private Set<String> discoveredMemberSet = new LinkedHashSet<String>();
 
-    private String xmlConfigLocation = System.getProperty("karaf.home") + "/etc/hazelcast.xml";
-
     /**
-     * Creates or Updates Hazelcast Instance.
-     *
-     * @param properties
-     */
-    public boolean isUpdated(Map properties) {
-            Boolean updated = Boolean.FALSE;
-            //We need it to properly instantiate Hazelcast.
-            if (properties != null) {
-                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;
-                    }
-                }
-
-                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;
-                    }
-                }
-
-                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;
-                    }
-
-                }
-
-                if (properties.containsKey(MULTICAST_PORT)) {
-                    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;
-                        }
-                    } catch (NumberFormatException ex) {
-                        LOGGER.warn("Could not parse port number", ex);
-                    }
-                }
-
-                if (properties.containsKey(MULTICAST_TIMEOUT_IN_SECONDS)) {
-                    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;
-                        }
-                    } catch (NumberFormatException ex) {
-                        LOGGER.warn("Could not parse multicast timeout in seconds", ex);
-                    }
-                }
-
-                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;
-                    }
-                }
-
-                if (properties.containsKey(TCPIP_MEMBERS)) {
-                    Set<String> newTcpIpMemberSet = CellarUtils.createSetFromString((String) properties.get(TCPIP_MEMBERS));
-                    if (!CellarUtils.collectionEquals(tcpIpMemberSet, newTcpIpMemberSet)) {
-                        LOGGER.info("Hazelcast tcpIpMemberSet has been changed from {} to {}", tcpIpMemberSet, newTcpIpMemberSet);
-                        tcpIpMemberSet = newTcpIpMemberSet;
-                        updated = Boolean.TRUE;
-                    }
-                }
-
-
-                if (properties.containsKey(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME)) {
-                    Set<String> newDiscoveredMemberSet = CellarUtils.createSetFromString((String) properties.get(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME));
-                    if (!CellarUtils.collectionEquals(discoveredMemberSet, newDiscoveredMemberSet)) {
-                        LOGGER.info("Hazelcast discoveredMemberSet has been changed from {} to {}", discoveredMemberSet, newDiscoveredMemberSet);
-                        discoveredMemberSet = newDiscoveredMemberSet;
-                        updated = Boolean.TRUE;
-                    }
-                }
-            }
-
-            return updated;
-    }
-     /**
      * Builds a Hazelcast {@link com.hazelcast.config.Config}
      *
      * @return
@@ -170,51 +41,31 @@ public class HazelcastConfigurationManag
     public Config getHazelcastConfig() {
         System.setProperty("hazelcast.config", xmlConfigLocation);
         Config config = new XmlConfigBuilder().build();
-        config.setGroupConfig(buildGroupConfig());
-        config.getNetworkConfig().getJoin().setMulticastConfig(buildMulticastConfig());
-        config.getNetworkConfig().getJoin().setTcpIpConfig(buildTcpIpConfig());
+        if (discoveredMemberSet != null) {
+            TcpIpConfig tcpIpConfig = config.getNetworkConfig().getJoin().getTcpIpConfig();
+            tcpIpConfig.getMembers().addAll(discoveredMemberSet);
+        }
         return config;
     }
 
     /**
-     * Builds a {@link com.hazelcast.config.GroupConfig}
+     * Updates Hazelcast Instance.
      *
-     * @return
-     */
-    public GroupConfig buildGroupConfig() {
-        GroupConfig groupConfig = new GroupConfig();
-        groupConfig.setName(username);
-        groupConfig.setPassword(password);
-        return groupConfig;
-    }
-
-    /**
-     * Builds a {@link com.hazelcast.config.MulticastConfig}
-     *
-     * @return
-     */
-    public MulticastConfig buildMulticastConfig() {
-        MulticastConfig multicastConfig = new MulticastConfig();
-        multicastConfig.setEnabled(multicastEnabled);
-        multicastConfig.setMulticastPort(multicastPort);
-        multicastConfig.setMulticastGroup(multicastGroup);
-        multicastConfig.setMulticastTimeoutSeconds(multicastTimeoutSeconds);
-        return multicastConfig;
-    }
-
-    /**
-     * Builds a {@link com.hazelcast.config.TcpIpConfig}.
-     *
-     * @return
+     * @param properties
      */
-    public TcpIpConfig buildTcpIpConfig() {
-        TcpIpConfig tcpIpConfig = new TcpIpConfig();
-        tcpIpConfig.setEnabled(tcpIpEnabled);
-        tcpIpConfig.setMembers(new ArrayList(tcpIpMemberSet));
-        if(discoveredMemberSet != null && !discoveredMemberSet.isEmpty() && tcpIpConfig.getMembers() != null) {
-            tcpIpConfig.getMembers().addAll(new ArrayList(discoveredMemberSet));
+    public boolean isUpdated(Map properties) {
+        Boolean updated = Boolean.FALSE;
+        if (properties != null) {
+            if (properties.containsKey(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME)) {
+                Set<String> newDiscoveredMemberSet = CellarUtils.createSetFromString((String) properties.get(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME));
+                if (!CellarUtils.collectionEquals(discoveredMemberSet, newDiscoveredMemberSet)) {
+                    LOGGER.info("Hazelcast discoveredMemberSet has been changed from {} to {}", discoveredMemberSet, newDiscoveredMemberSet);
+                    discoveredMemberSet = newDiscoveredMemberSet;
+                    updated = Boolean.TRUE;
+                }
+            }
         }
-        return tcpIpConfig;
+        return updated;
     }
 
 }

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=1326510&r1=1326509&r2=1326510&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 Mon Apr 16 06:56:21 2012
@@ -53,15 +53,7 @@ public class HazelcastServiceFactory  {
     }
 
     public void update(Map properties) throws InterruptedException {
-        LOGGER.info("Instance configuration updated. Checking if instance requires restarting.");
-        if(configurationManager.isUpdated(properties)) {
-            instanceLatch.await();
-            Config updatedConfig = configurationManager.getHazelcastConfig();
-            instance.getConfig().setNetworkConfig(updatedConfig.getNetworkConfig());
-            instance.getConfig().setGroupConfig(updatedConfig.getGroupConfig());
-            LOGGER.info("Restaring Hazelcast instance.");
-            instance.getLifecycleService().restart();
-        }
+        configurationManager.isUpdated(properties);
     }
 
     /**

Modified: karaf/cellar/trunk/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1326510&r1=1326509&r2=1326510&view=diff
==============================================================================
--- karaf/cellar/trunk/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml (original)
+++ karaf/cellar/trunk/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml Mon Apr 16 06:56:21 2012
@@ -26,7 +26,7 @@
           init-method="init" destroy-method="destroy">
         <property name="combinedClassLoader" ref="combinedClassLoader"/>
         <property name="bundleContext" ref="blueprintBundleContext"/>
-        <cm:managed-properties persistent-id="org.apache.karaf.cellar.instance" update-strategy="component-managed"
+        <cm:managed-properties persistent-id="org.apache.karaf.cellar.discovery" update-strategy="component-managed"
                                   update-method="update"/>
     </bean>
 

Modified: 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=1326510&r1=1326509&r2=1326510&view=diff
==============================================================================
--- karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java (original)
+++ karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java Mon Apr 16 06:56:21 2012
@@ -13,6 +13,7 @@
  */
 package org.apache.karaf.cellar.hazelcast.factory;
 
+import org.apache.karaf.cellar.core.discovery.Discovery;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -33,7 +34,7 @@ public class HazelcastConfigurationManag
     public void testIsUpdatedWithEmptyTcpMembers()  {
         HazelcastConfigurationManager cm = new HazelcastConfigurationManager();
         Properties p = new Properties();
-        p.put(HazelcastConfigurationManager.TCPIP_MEMBERS,"");
+        p.put(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME ,"");
         Assert.assertFalse(cm.isUpdated(p));
     }
 

Modified: karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java?rev=1326510&r1=1326509&r2=1326510&view=diff
==============================================================================
--- karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java (original)
+++ karaf/cellar/trunk/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java Mon Apr 16 06:56:21 2012
@@ -44,16 +44,8 @@ public class HazelcastServiceFactoryTest
         HazelcastServiceFactory factory = new HazelcastServiceFactory();
         factory.init();
         factory.getInstance();
-        factory.update(null);
         HazelcastInstance defaultInstance = Hazelcast.newHazelcastInstance(null);
 
-        // define the username and password as in the hazelcast-default.xml provided by Hazelcast
-        // without this, "cellar" instance is not in the same cluster as the Hazelcast default one
-        Properties properties = new Properties();
-        properties.put(HazelcastConfigurationManager.USERNAME, "dev");
-        properties.put(HazelcastConfigurationManager.PASSWORD, "dev-pass");
-        factory.update(properties);
-
         HazelcastInstance factoryInstance = factory.getInstance();
         Assert.assertEquals(true, factoryInstance.getCluster().getMembers().size() >= 2);
     }