CAMEL-11331: Adding clarifications to the leader interface and fix impl

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/debfeed6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/debfeed6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/debfeed6

Branch: refs/heads/master
Commit: debfeed6ef0b45f725d4a20ea5d48a2f41fabec2
Parents: e4cab32
Author: Nicola Ferraro <ni.ferr...@gmail.com>
Authored: Fri Jul 7 17:18:05 2017 +0200
Committer: Nicola Ferraro <ni.ferr...@gmail.com>
Committed: Tue Aug 8 16:39:43 2017 +0200

----------------------------------------------------------------------
 .../camel/ha/CamelClusterEventListener.java     | 29 ++++++++++++++++++--
 .../kubernetes/ha/KubernetesClusterView.java    |  4 +--
 ...ubernetesLeaseBasedLeadershipController.java |  2 +-
 3 files changed, 28 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/debfeed6/camel-core/src/main/java/org/apache/camel/ha/CamelClusterEventListener.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/ha/CamelClusterEventListener.java 
b/camel-core/src/main/java/org/apache/camel/ha/CamelClusterEventListener.java
index 5c19970..1a972ca 100644
--- 
a/camel-core/src/main/java/org/apache/camel/ha/CamelClusterEventListener.java
+++ 
b/camel-core/src/main/java/org/apache/camel/ha/CamelClusterEventListener.java
@@ -17,16 +17,39 @@
 package org.apache.camel.ha;
 
 /**
- * Marker interface
+ * Marker interface for cluster events
  */
 public interface CamelClusterEventListener {
 
     interface Leadership extends CamelClusterEventListener {
+
+        /**
+         * Notify a change in the leadership for a particular cluster.
+         *
+         * @param view the cluster view
+         * @param leader the new leader or null (when there are no active 
leaders)
+         */
         void leadershipChanged(CamelClusterView view, CamelClusterMember 
leader);
+
     }
 
     interface Membership extends CamelClusterEventListener {
-        void memberAdded(CamelClusterView view, CamelClusterMember leader);
-        void memberRemoved(CamelClusterView view, CamelClusterMember leader);
+
+        /**
+         * Notify a change (addition) in the cluster composition.
+         *
+         * @param view the cluster view
+         * @param member the member that has been added
+         */
+        void memberAdded(CamelClusterView view, CamelClusterMember member);
+
+        /**
+         * Notify a change (removal) in the cluster composition.
+         *
+         * @param view the cluster view
+         * @param member the member that has been removed
+         */
+        void memberRemoved(CamelClusterView view, CamelClusterMember member);
+
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/debfeed6/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/KubernetesClusterView.java
----------------------------------------------------------------------
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/KubernetesClusterView.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/KubernetesClusterView.java
index e324b3f..28f38a5 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/KubernetesClusterView.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/KubernetesClusterView.java
@@ -91,9 +91,7 @@ public class KubernetesClusterView extends 
AbstractCamelClusterView {
                     // New leader
                     Optional<String> leader = 
KubernetesClusterEvent.KubernetesClusterLeaderChangedEvent.class.cast(event).getData();
                     currentLeader = leader.map(this::toMember);
-                    if (currentLeader.isPresent()) {
-                        fireLeadershipChangedEvent(currentLeader.get());
-                    }
+                    fireLeadershipChangedEvent(currentLeader.orElse(null));
                 } else if (event instanceof 
KubernetesClusterEvent.KubernetesClusterMemberListChangedEvent) {
                     Set<String> members = 
KubernetesClusterEvent.KubernetesClusterMemberListChangedEvent.class.cast(event).getData();
                     Set<String> oldMembers = 
currentMembers.stream().map(CamelClusterMember::getId).collect(Collectors.toSet());

http://git-wip-us.apache.org/repos/asf/camel/blob/debfeed6/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/lock/KubernetesLeaseBasedLeadershipController.java
----------------------------------------------------------------------
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/lock/KubernetesLeaseBasedLeadershipController.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/lock/KubernetesLeaseBasedLeadershipController.java
index b385925..8e96a72 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/lock/KubernetesLeaseBasedLeadershipController.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/ha/lock/KubernetesLeaseBasedLeadershipController.java
@@ -362,7 +362,7 @@ public class KubernetesLeaseBasedLeadershipController 
implements Service {
 
         // Sending notifications in case of leader change
         if (!newLeader.equals(this.currentLeader)) {
-            LOG.debug("Current leader has changed from {} to {}. Sending 
notifications...", this.currentLeader, newLeader);
+            LOG.info("Current leader has changed from {} to {}. Sending 
notifications...", this.currentLeader, newLeader);
             this.currentLeader = newLeader;
             
eventHandler.onKubernetesClusterEvent((KubernetesClusterEvent.KubernetesClusterLeaderChangedEvent)
 () -> newLeader);
         } else {

Reply via email to