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 2015/04/27 18:39:34 UTC
karaf-cellar git commit: [KARAF-3628] Improved Hazelcast Discovery
Service when starting a new Hazelcast instance
Repository: karaf-cellar
Updated Branches:
refs/heads/cellar-3.0.x 93011d7b1 -> 7f92015c5
[KARAF-3628] Improved Hazelcast Discovery Service when starting a new Hazelcast instance
Project: http://git-wip-us.apache.org/repos/asf/karaf-cellar/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-cellar/commit/7f92015c
Tree: http://git-wip-us.apache.org/repos/asf/karaf-cellar/tree/7f92015c
Diff: http://git-wip-us.apache.org/repos/asf/karaf-cellar/diff/7f92015c
Branch: refs/heads/cellar-3.0.x
Commit: 7f92015c51006c56197a4fde6a5c0721f0320c8f
Parents: 93011d7
Author: Flávio Ferreira <ff...@bikeemotion.com>
Authored: Fri Mar 20 17:13:02 2015 +0000
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Mon Apr 27 18:22:08 2015 +0200
----------------------------------------------------------------------
assembly/src/main/resources/features.xml | 6 +++---
.../factory/HazelcastConfigurationManager.java | 18 +++++++++++++++++-
.../factory/HazelcastServiceFactory.java | 6 +++++-
.../resources/OSGI-INF/blueprint/blueprint.xml | 5 +++++
.../factory/HazelcastServiceFactoryTest.java | 1 +
5 files changed, 31 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/7f92015c/assembly/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/assembly/src/main/resources/features.xml b/assembly/src/main/resources/features.xml
index 0a81fe4..1907156 100644
--- a/assembly/src/main/resources/features.xml
+++ b/assembly/src/main/resources/features.xml
@@ -35,13 +35,13 @@
</configfile>
<bundle start-level="30" dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
<bundle start-level="30" dependency="true">mvn:com.eclipsesource.minimal-json/minimal-json/0.9.2</bundle>
- <bundle start-level="32">mvn:com.hazelcast/hazelcast/${hazelcast.version}</bundle>
+ <bundle start-level="70">mvn:com.hazelcast/hazelcast/${hazelcast.version}</bundle>
</feature>
<feature name="cellar-hazelcast" description="Cellar implementation based on Hazelcast" version="${project.version}" resolver="(obr)">
<feature version="${hazelcast.version}">hazelcast</feature>
<feature version="${project.version}">cellar-core</feature>
- <bundle start-level="33">mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.hazelcast/${project.version}</bundle>
+ <bundle start-level="70">mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.hazelcast/${project.version}</bundle>
</feature>
<feature name="cellar-config" description="ConfigAdmin cluster support" version="${project.version}" resolver="(obr)">
@@ -101,7 +101,7 @@
<feature name="cellar-kubernetes" description="Cellar kubernetes support in clusters" version="${project.version}" resolver="(obr)">
<feature version="${project.version}">cellar-core</feature>
<feature>fabric8-kubernetes-api</feature>
- <bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.kubernetes/${project.version}</bundle>
+ <bundle start-level="40">mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.kubernetes/${project.version}</bundle>
</feature>
<feature name="cellar-webconsole" description="Cellar plugin for Karaf WebConsole" version="${project.version}" resolver="(obr)">
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/7f92015c/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
----------------------------------------------------------------------
diff --git a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
index a724962..14b92b3 100644
--- a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
+++ b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManager.java
@@ -22,8 +22,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.karaf.cellar.core.discovery.DiscoveryService;
/**
* Hazelcast configuration manager.
@@ -36,6 +38,7 @@ public class HazelcastConfigurationManager {
private String xmlConfigLocation = System.getProperty("karaf.home") + "/etc/hazelcast.xml";
private Set<String> discoveredMemberSet = new LinkedHashSet<String>();
+ private List<DiscoveryService> discoveryServices;
/**
* Build a Hazelcast {@link com.hazelcast.config.Config}.
@@ -45,7 +48,16 @@ public class HazelcastConfigurationManager {
public Config getHazelcastConfig() {
System.setProperty("hazelcast.config", xmlConfigLocation);
Config config = new XmlConfigBuilder().build();
- if (discoveredMemberSet != null) {
+
+ if (config.getNetworkConfig().getJoin().getTcpIpConfig().isEnabled() && discoveredMemberSet != null) {
+ if (discoveryServices != null && !discoveryServices.isEmpty()) {
+ for (DiscoveryService service : discoveryServices) {
+ service.refresh();
+ Set<String> discovered = service.discoverMembers();
+ discoveredMemberSet.addAll(discovered);
+ LOGGER.trace("HAZELCAST STARTUP DISCOVERY: service {} found members {}", service, discovered);
+ }
+ }
TcpIpConfig tcpIpConfig = config.getNetworkConfig().getJoin().getTcpIpConfig();
tcpIpConfig.getMembers().addAll(discoveredMemberSet);
}
@@ -71,5 +83,9 @@ public class HazelcastConfigurationManager {
}
return updated;
}
+
+ public void setDiscoveryServices(List<DiscoveryService> discoveryServices) {
+ this.discoveryServices = discoveryServices;
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/7f92015c/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
----------------------------------------------------------------------
diff --git a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
index 49c98ad..d5c634c 100644
--- a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
+++ b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactory.java
@@ -28,7 +28,7 @@ public class HazelcastServiceFactory {
private BundleContext bundleContext;
private CombinedClassLoader combinedClassLoader;
- private HazelcastConfigurationManager configurationManager = new HazelcastConfigurationManager();
+ private HazelcastConfigurationManager configurationManager;
private CountDownLatch initializationLatch = new CountDownLatch(1);
private CountDownLatch instanceLatch = new CountDownLatch(1);
@@ -92,5 +92,9 @@ public class HazelcastServiceFactory {
public void setCombinedClassLoader(CombinedClassLoader combinedClassLoader) {
this.combinedClassLoader = combinedClassLoader;
}
+
+ public void setConfigurationManager(HazelcastConfigurationManager configurationManager) {
+ this.configurationManager = configurationManager;
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/7f92015c/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 74e571a..2cae5fe 100644
--- a/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/hazelcast/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -22,10 +22,15 @@
<bean id="instanceFactory" class="org.apache.karaf.cellar.hazelcast.factory.HazelcastServiceFactory"
init-method="init" destroy-method="destroy">
<property name="combinedClassLoader" ref="combinedClassLoader"/>
+ <property name="configurationManager" ref="hazelcastConfigurationManager"/>
<property name="bundleContext" ref="blueprintBundleContext"/>
<cm:managed-properties persistent-id="org.apache.karaf.cellar.discovery" update-strategy="component-managed"
update-method="update"/>
</bean>
+
+ <bean id="hazelcastConfigurationManager" class="org.apache.karaf.cellar.hazelcast.factory.HazelcastConfigurationManager" >
+ <property name="discoveryServices" ref="discoveryServices"/>
+ </bean>
<!-- Discovery Task -->
<bean id="discoveryTask" class="org.apache.karaf.cellar.core.discovery.DiscoveryTask" init-method="init" destroy-method="destroy">
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/7f92015c/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java
----------------------------------------------------------------------
diff --git a/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java b/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java
index 502e3ae..120f65e 100644
--- a/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java
+++ b/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastServiceFactoryTest.java
@@ -33,6 +33,7 @@ public class HazelcastServiceFactoryTest {
// configuration that disables multicast and enables tcp on 127.0.0.1
System.setProperty("karaf.home", "src/test/resources");
HazelcastServiceFactory factory = new HazelcastServiceFactory();
+ factory.setConfigurationManager(new HazelcastConfigurationManager());
factory.init();
factory.getInstance();
HazelcastInstance defaultInstance = Hazelcast.newHazelcastInstance(null);