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 2020/06/29 13:57:22 UTC
[karaf-cellar] branch master updated: Hazelcast loop (#71)
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf-cellar.git
The following commit(s) were added to refs/heads/master by this push:
new 26fdbb9 Hazelcast loop (#71)
26fdbb9 is described below
commit 26fdbb9c6bfe62c0e7f5379b1c8cbab5540d567d
Author: Thomas Draier <td...@jahia.com>
AuthorDate: Mon Jun 29 15:57:15 2020 +0200
Hazelcast loop (#71)
Avoid loop in hazelcast configuration update
---
.../org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java | 8 ++++----
.../apache/karaf/cellar/hazelcast/internal/osgi/Activator.java | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java
index 835b547..d401e94 100644
--- a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java
+++ b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java
@@ -26,7 +26,7 @@ import org.osgi.framework.ServiceRegistration;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ConfigurationEvent;
-import org.osgi.service.cm.ConfigurationListener;
+import org.osgi.service.cm.SynchronousConfigurationListener;
import org.slf4j.Logger;
import java.io.IOException;
@@ -37,7 +37,7 @@ import java.util.*;
* The role of this class is to provide means of creating groups, setting nodes to groups etc.
* Keep in sync the distributed group configuration with the locally persisted.
*/
-public class HazelcastGroupManager implements GroupManager, EntryListener<String,Object>, ConfigurationListener {
+public class HazelcastGroupManager implements GroupManager, EntryListener<String,Object>, SynchronousConfigurationListener {
private static final transient Logger LOGGER = org.slf4j.LoggerFactory.getLogger(HazelcastGroupManager.class);
@@ -108,7 +108,7 @@ public class HazelcastGroupManager implements GroupManager, EntryListener<String
}
}
- private boolean updatePropertiesFromHazelcastMap(Dictionary<String, Object> properties, String key, Object value) {
+ private synchronized boolean updatePropertiesFromHazelcastMap(Dictionary<String, Object> properties, String key, Object value) {
if (!(value instanceof Map)) {
return false;
}
@@ -145,7 +145,7 @@ public class HazelcastGroupManager implements GroupManager, EntryListener<String
return changed;
}
- private Map<String, Object> getUpdatesForHazelcastMap(Dictionary<String, Object> properties) {
+ private synchronized Map<String, Object> getUpdatesForHazelcastMap(Dictionary<String, Object> properties) {
Map<String,Object> updates = new HashMap<String,Object>();
if (properties == null) {
return updates;
diff --git a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/internal/osgi/Activator.java b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/internal/osgi/Activator.java
index 87593c1..96aad6d 100644
--- a/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/internal/osgi/Activator.java
+++ b/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/internal/osgi/Activator.java
@@ -45,8 +45,8 @@ import org.apache.karaf.util.tracker.annotation.Services;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.cm.ConfigurationListener;
import org.osgi.service.cm.ManagedService;
+import org.osgi.service.cm.SynchronousConfigurationListener;
import org.osgi.util.tracker.ServiceTracker;
import org.osgi.util.tracker.ServiceTrackerCustomizer;
import org.slf4j.Logger;
@@ -199,7 +199,7 @@ public class Activator extends BaseActivator implements ManagedService {
groupManager.setConfigurationAdmin(configurationAdmin);
groupManager.setEventTransportFactory(eventTransportFactory);
groupManager.init();
- register(new Class[]{GroupManager.class, ConfigurationListener.class}, groupManager);
+ register(new Class[]{GroupManager.class, SynchronousConfigurationListener.class}, groupManager);
LOGGER.debug("CELLAR HAZELCAST: create Cellar membership listener");
CellarMembershipListener membershipListener = new CellarMembershipListener(hazelcastInstance);