You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/12/09 11:24:17 UTC

[1/2] stratos git commit: Send instance cleanup though InstanceNotificationPublisher

Repository: stratos
Updated Branches:
  refs/heads/4.1.0-test 0a07475d5 -> 05e1a8301


Send instance cleanup though InstanceNotificationPublisher


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

Branch: refs/heads/4.1.0-test
Commit: 05e1a8301592ffa38703e3f64285b26a2c09b206
Parents: 5ee1736
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Dec 9 15:55:29 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Dec 9 15:55:47 2014 +0530

----------------------------------------------------------------------
 .../receiver/topology/AutoscalerTopologyEventReceiver.java     | 2 +-
 .../org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/05e1a830/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index fff3b73..4d5389c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -260,7 +260,7 @@ public class AutoscalerTopologyEventReceiver {
                 if (clusterInstance.getCurrentState() == ClusterStatus.Active) {
                     // terminated gracefully
                     monitor.notifyParentMonitor(ClusterStatus.Terminating, instanceId);
-                    InstanceNotificationPublisher.sendInstanceCleanupEventForCluster(clusterId, instanceId);
+                    InstanceNotificationPublisher.getInstance().sendInstanceCleanupEventForCluster(clusterId, instanceId);
                 } else {
                     monitor.notifyParentMonitor(ClusterStatus.Terminating, instanceId);
                     monitor.terminateAllMembers(instanceId, clusterInstance.getNetworkPartitionId());

http://git-wip-us.apache.org/repos/asf/stratos/blob/05e1a830/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
index 5c7ba30..b1260bc 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
@@ -34,6 +34,7 @@ import org.apache.stratos.autoscaler.context.cluster.VMClusterContext;
 import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
 import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
 import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
+import org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher;
 import org.apache.stratos.autoscaler.exception.cartridge.TerminationException;
 import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
 import org.apache.stratos.autoscaler.monitor.cluster.VMClusterMonitor;
@@ -170,9 +171,10 @@ public class RuleTasksDelegator {
 
         try {
 
-            //calling SM to send the instance notification event.
-            InstanceNotificationClient.getInstance().sendMemberCleanupEvent(memberId);
+            // send the instance notification event.
+            InstanceNotificationPublisher.getInstance().sendInstanceCleanupEventForMember(memberId);
             log.info("Instance clean up event sent for [member] " + memberId);
+
         } catch (Throwable e) {
             log.error("Cannot terminate instance", e);
         }


[2/2] stratos git commit: Make InstanceNotificationPublisher singleton

Posted by la...@apache.org.
Make InstanceNotificationPublisher singleton


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

Branch: refs/heads/4.1.0-test
Commit: 5ee17362a3d63fc30cdc98acdac4035c62640497
Parents: 0a07475
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Dec 9 15:54:35 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Dec 9 15:55:47 2014 +0530

----------------------------------------------------------------------
 .../publisher/InstanceNotificationPublisher.java    | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5ee17362/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
index ea68f32..34a9efa 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
@@ -31,6 +31,18 @@ import org.apache.stratos.messaging.util.Util;
 public class InstanceNotificationPublisher {
     private static final Log log = LogFactory.getLog(InstanceNotificationPublisher.class);
 
+    /* An instance of InstanceNotificationPublisher is created when the class is loaded.
+     * Since the class is loaded only once, it is guaranteed that an object of
+     * InstanceNotificationPublisher is created only once. Hence it is singleton.
+     */
+    private static class InstanceHolder {
+        private static final InstanceNotificationPublisher INSTANCE = new InstanceNotificationPublisher();
+    }
+
+    public static InstanceNotificationPublisher getInstance() {
+        return InstanceHolder.INSTANCE;
+    }
+
     private static void publish(Event event) {
         String topic = Util.getMessageTopicName(event);
 
@@ -39,7 +51,7 @@ public class InstanceNotificationPublisher {
         instanceNotifyingEvent.publish(event);
     }
 
-    public static void sendInstanceCleanupEventForCluster(String clusterId, String instanceId) {
+    public synchronized void sendInstanceCleanupEventForCluster(String clusterId, String instanceId) {
         log.info(String.format("Publishing Instance Cleanup Event: [cluster] %s", clusterId));
         publish(new InstanceCleanupClusterEvent(clusterId, instanceId));
     }
@@ -49,7 +61,7 @@ public class InstanceNotificationPublisher {
      *
      * @param memberId
      */
-    public void sendInstanceCleanupEventForMember(String memberId) {
+    public synchronized void sendInstanceCleanupEventForMember(String memberId) {
         log.info(String.format("Publishing Instance Cleanup Event: [member] %s", memberId));
         publish(new InstanceCleanupMemberEvent(memberId));
     }