Make the Group monitor as a schedular executor service
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f994da13 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f994da13 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f994da13 Branch: refs/heads/master Commit: f994da132cc71a23ff9e285fc32d96c4ee6386ca Parents: eaa92e9 Author: gayan <[email protected]> Authored: Tue Dec 16 13:24:36 2014 +0530 Committer: Udara Liyanage <[email protected]> Committed: Thu Dec 18 12:06:57 2014 +0530 ---------------------------------------------------------------------- .../monitor/component/GroupMonitor.java | 93 ++++++++++---------- 1 file changed, 47 insertions(+), 46 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/f994da13/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java index 43a385b..0052f647 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java @@ -90,6 +90,7 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable { this.appId = appId; networkPartitionCtxts = new HashMap<String, GroupLevelNetworkPartitionContext>(); this.hasScalingDependents = hasScalingDependents; + mapScalingEvent=new HashMap<String, ScalingEvent>(); } @Override @@ -284,52 +285,52 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable { } } - @Override - public void onChildScalingEvent(ScalingEvent scalingEvent) { - if (hasScalingDependents) { - //notify parent - parent.onChildScalingEvent(scalingEvent); - } - - if (log.isDebugEnabled()) { - log.debug("Child scaling event received to [group]: " + this.getId() - + ", [network partition]: " + scalingEvent.getNetworkPartitionId() - + ", [event] " + scalingEvent.getId() + ", [group instance] " + scalingEvent.getInstanceId()); - } - - //find the child context of this group, - //Notifying children, if this group has scaling dependencies - if (scalingDependencies != null && !scalingDependencies.isEmpty()) { - // has dependencies. Notify children - if (aliasToActiveMonitorsMap != null && !aliasToActiveMonitorsMap.values().isEmpty()) { - - for (ScalingDependentList scalingDependentList : scalingDependencies) { - - for (String scalingDependentListComponent : scalingDependentList. - getScalingDependentListComponents()) { - - if (scalingDependentListComponent.equals(scalingEvent.getId())) { - - for (String scalingDependentListComponentInSelectedList : - scalingDependentList.getScalingDependentListComponents()) { - - Monitor monitor = aliasToActiveMonitorsMap. - get(scalingDependentListComponentInSelectedList); - if (monitor instanceof GroupMonitor || - monitor instanceof VMClusterMonitor) { - monitor.onParentScalingEvent(scalingEvent); - } - } - break; - } - } - } - } - } - if (scalingEvent.getId().equals(appId)) { - mapScalingEvent.put(scalingEvent.getInstanceId(), scalingEvent); - } - } + @Override + public void onChildScalingEvent(ScalingEvent scalingEvent) { + if (hasScalingDependents) { + //notify parent + parent.onChildScalingEvent(scalingEvent); + } + + if (log.isDebugEnabled()) { + log.debug("Child scaling event received to [group]: " + this.getId() + + ", [network partition]: " + scalingEvent.getNetworkPartitionId() + + ", [event] " + scalingEvent.getId() + ", [group instance] " + scalingEvent.getInstanceId()); + } + + //find the child context of this group, + //Notifying children, if this group has scaling dependencies + if (scalingDependencies != null && !scalingDependencies.isEmpty()) { + // has dependencies. Notify children + if (aliasToActiveMonitorsMap != null && !aliasToActiveMonitorsMap.values().isEmpty()) { + + for (ScalingDependentList scalingDependentList : scalingDependencies) { + + for (String scalingDependentListComponent : scalingDependentList + .getScalingDependentListComponents()) { + + if (scalingDependentListComponent.equals(scalingEvent.getId())) { + + for (String scalingDependentListComponentInSelectedList : + scalingDependentList.getScalingDependentListComponents()) { + + Monitor monitor = aliasToActiveMonitorsMap.get( + scalingDependentListComponentInSelectedList); + if (monitor instanceof GroupMonitor || + monitor instanceof VMClusterMonitor) { + monitor.onParentScalingEvent(scalingEvent); + } + } + break; + } + } + } + } + } + if (scalingEvent.getId().equals(appId)) { + mapScalingEvent.put(scalingEvent.getInstanceId(), scalingEvent); + } + } @Override public void onChildScalingOverMaxEvent(ScalingOverMaxEvent scalingOverMaxEvent) {
