adding more logs and improving singleton constructor
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/29732ccb Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/29732ccb Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/29732ccb Branch: refs/heads/master Commit: 29732ccb5c8e619cccbbdb8dcc2c71ca4285edaf Parents: e980b79 Author: Nirmal Fernando <[email protected]> Authored: Sat Feb 8 20:48:33 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Sat Feb 8 20:48:33 2014 +0530 ---------------------------------------------------------------------- .../stratos/autoscaler/AutoscalerContext.java | 29 ++++++---- .../topology/AutoscalerTopologyReceiver.java | 60 ++++++++++---------- 2 files changed, 48 insertions(+), 41 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/29732ccb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java index 7b4b8da..d04bdcc 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java @@ -30,16 +30,13 @@ public class AutoscalerContext { // Map<LBClusterId, LBClusterMonitor> private Map<String, LbClusterMonitor> lbMonitors; - public static AutoscalerContext getInstance() { - if (instance == null) { - synchronized (AutoscalerContext.class){ - if (instance == null) { - instance = new AutoscalerContext(); - } - } - } - return instance; - } + private static class Holder { + private static final AutoscalerContext INSTANCE = new AutoscalerContext(); + } + + public static AutoscalerContext getInstance() { + return Holder.INSTANCE; + } public void addMonitor(ClusterMonitor monitor) { monitors.put(monitor.getClusterId(), monitor); @@ -62,11 +59,19 @@ public class AutoscalerContext { } public ClusterMonitor removeMonitor(String clusterId) { - log.info("Remove moniter clusterid" + clusterId); + if(!moniterExist(clusterId)) { + log.fatal("Cluster monitor not found for cluster id: "+clusterId); + return null; + } + log.info("Removed monitor [cluster id]: " + clusterId); return monitors.remove(clusterId); } public LbClusterMonitor removeLbMonitor(String clusterId) { - log.info("Remove moniter clusterid" + clusterId); + if(!lbMoniterExist(clusterId)) { + log.fatal("LB monitor not found for cluster id: "+clusterId); + return null; + } + log.info("Removed LB monitor [cluster id]: " + clusterId); return lbMonitors.remove(clusterId); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/29732ccb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java index 59ccfb1..43d1b2e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java @@ -141,35 +141,37 @@ public class AutoscalerTopologyReceiver implements Runnable { }); - processorChain.addEventListener(new ClusterRemovedEventListener() { - @Override - protected void onEvent(Event event) { - try { - ClusterRemovedEvent e = (ClusterRemovedEvent) event; - TopologyManager.acquireReadLock(); - String serviceName = e.getServiceName(); - String clusterId = e.getClusterId(); - AbstractMonitor monitor; - - if(e.isLbCluster()){ - monitor = AutoscalerContext.getInstance().removeLbMonitor(clusterId); - - } else { - monitor = AutoscalerContext.getInstance().removeMonitor(clusterId); - } - -// runTerminateAllRule(monitor); - monitor.destroy(); - if(log.isDebugEnabled()) { - log.debug(String.format("Cluster monitor has been removed successfully: [cluster] %s ", clusterId)); - } - } - finally { - TopologyManager.releaseReadLock(); - } - } - - }); + processorChain.addEventListener(new ClusterRemovedEventListener() { + @Override + protected void onEvent(Event event) { + try { + ClusterRemovedEvent e = (ClusterRemovedEvent) event; + TopologyManager.acquireReadLock(); + String serviceName = e.getServiceName(); + String clusterId = e.getClusterId(); + AbstractMonitor monitor; + + if (e.isLbCluster()) { + monitor = AutoscalerContext.getInstance() + .removeLbMonitor(clusterId); + + } else { + monitor = AutoscalerContext.getInstance() + .removeMonitor(clusterId); + } + + // runTerminateAllRule(monitor); + if (monitor != null) { + monitor.destroy(); + log.info(String.format("Cluster monitor has been removed successfully: [cluster] %s ", + clusterId)); + } + } finally { + TopologyManager.releaseReadLock(); + } + } + + }); processorChain.addEventListener(new MemberStartedEventListener() { @Override
