You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/12/02 18:59:01 UTC
[2/3] stratos git commit: fixing processor issue while calulating
status of group
fixing processor issue while calulating status of group
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/0c5d4caa
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/0c5d4caa
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/0c5d4caa
Branch: refs/heads/master
Commit: 0c5d4caa11d7ca9c9a498a32d369b563a395fa41
Parents: a8ed191
Author: reka <rt...@gmail.com>
Authored: Tue Dec 2 22:38:54 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Tue Dec 2 23:28:17 2014 +0530
----------------------------------------------------------------------
.../application/MonitorNotFoundException.java | 56 ++++++++++++++++++++
.../ParentMonitorNotFoundException.java | 56 --------------------
.../autoscaler/monitor/EventHandler.java | 5 +-
.../monitor/component/ApplicationMonitor.java | 6 +--
.../monitor/component/GroupMonitor.java | 21 ++++----
.../component/ParentComponentMonitor.java | 25 ++++-----
.../builder/MonitorStatusEventBuilder.java | 11 ++--
.../group/GroupStatusActiveProcessor.java | 12 ++---
.../group/GroupStatusInActiveProcessor.java | 4 +-
.../group/GroupStatusProcessorChain.java | 9 ++++
.../group/GroupStatusTerminatedProcessor.java | 7 ++-
.../group/GroupStatusTerminatingProcessor.java | 11 ++--
12 files changed, 113 insertions(+), 110 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/MonitorNotFoundException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/MonitorNotFoundException.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/MonitorNotFoundException.java
new file mode 100644
index 0000000..325b825
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/MonitorNotFoundException.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.autoscaler.exception.application;
+
+/**
+ * This will throw when required monitor not found
+ */
+public class MonitorNotFoundException extends Exception{
+ private static final long serialVersionUID = -9163807860189126883L;
+ private String message;
+
+ public MonitorNotFoundException(final String message, final Exception exception) {
+
+ super(message, exception);
+ this.setMessage(message);
+
+ }
+
+ public MonitorNotFoundException(final Exception exception) {
+
+ super(exception);
+
+ }
+
+ public MonitorNotFoundException(final String msg) {
+
+ super(msg);
+ this.setMessage(msg);
+
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/ParentMonitorNotFoundException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/ParentMonitorNotFoundException.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/ParentMonitorNotFoundException.java
deleted file mode 100644
index e5e00cd..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/application/ParentMonitorNotFoundException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.stratos.autoscaler.exception.application;
-
-/**
- * This will throw when required monitor not found
- */
-public class ParentMonitorNotFoundException extends Exception{
- private static final long serialVersionUID = -9163807860189126883L;
- private String message;
-
- public ParentMonitorNotFoundException(final String message, final Exception exception) {
-
- super(message, exception);
- this.setMessage(message);
-
- }
-
- public ParentMonitorNotFoundException(final Exception exception) {
-
- super(exception);
-
- }
-
- public ParentMonitorNotFoundException(final String msg) {
-
- super(msg);
- this.setMessage(msg);
-
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/EventHandler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/EventHandler.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/EventHandler.java
index bf65eb4..ca105de 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/EventHandler.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/EventHandler.java
@@ -18,8 +18,7 @@
*/
package org.apache.stratos.autoscaler.monitor;
-import org.apache.stratos.autoscaler.exception.application.ParentMonitorNotFoundException;
-import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
+import org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException;
import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent;
import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
@@ -40,7 +39,7 @@ public interface EventHandler {
* @param statusEvent
*/
public abstract void onParentStatusEvent(MonitorStatusEvent statusEvent) throws
- ParentMonitorNotFoundException;
+ MonitorNotFoundException;
/**
* Triggered when a scaling event is received from a child.
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
index 990d482..c4d73e8 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
@@ -25,7 +25,7 @@ import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
import org.apache.stratos.autoscaler.context.application.ApplicationInstanceContext;
import org.apache.stratos.autoscaler.context.partition.network.ApplicationLevelNetworkPartitionContext;
import org.apache.stratos.autoscaler.exception.application.DependencyBuilderException;
-import org.apache.stratos.autoscaler.exception.application.ParentMonitorNotFoundException;
+import org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException;
import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
import org.apache.stratos.autoscaler.exception.policy.PolicyValidationException;
import org.apache.stratos.autoscaler.monitor.Monitor;
@@ -112,7 +112,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
//notify the children about the state change
try {
MonitorStatusEventBuilder.notifyChildren(this, new ApplicationStatusEvent(status, appId, instanceId));
- } catch (ParentMonitorNotFoundException e) {
+ } catch (MonitorNotFoundException e) {
log.error("Error while notifying the children from [application] " + appId, e);
//TODO revert siblings
}
@@ -236,7 +236,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
public void createInstanceOnBurstingForApplication() throws TopologyInConsistentException,
PolicyValidationException,
- ParentMonitorNotFoundException {
+ MonitorNotFoundException {
Application application = ApplicationHolder.getApplications().getApplication(appId);
if (application == null) {
String msg = "Application cannot be found in the Topology.";
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/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 b2b6697..96a1112 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
@@ -29,7 +29,7 @@ import org.apache.stratos.autoscaler.context.AutoscalerContext;
import org.apache.stratos.autoscaler.context.group.GroupInstanceContext;
import org.apache.stratos.autoscaler.context.partition.network.GroupLevelNetworkPartitionContext;
import org.apache.stratos.autoscaler.exception.application.DependencyBuilderException;
-import org.apache.stratos.autoscaler.exception.application.ParentMonitorNotFoundException;
+import org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException;
import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
import org.apache.stratos.autoscaler.monitor.Monitor;
import org.apache.stratos.autoscaler.monitor.events.GroupStatusEvent;
@@ -45,7 +45,6 @@ import org.apache.stratos.messaging.domain.applications.Application;
import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
import org.apache.stratos.messaging.domain.applications.Group;
import org.apache.stratos.messaging.domain.applications.GroupStatus;
-import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
import org.apache.stratos.messaging.domain.instance.GroupInstance;
import org.apache.stratos.messaging.domain.instance.Instance;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
@@ -168,7 +167,7 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
//notify the children about the state change
try {
MonitorStatusEventBuilder.notifyChildren(this, new GroupStatusEvent(status, this.id, instanceId));
- } catch (ParentMonitorNotFoundException e) {
+ } catch (MonitorNotFoundException e) {
log.error("Error while notifying the children from the [group] " + this.id, e);
//TODO revert siblings
}
@@ -184,20 +183,20 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
onChildActivatedEvent(id, instanceId);
} else if (status1 == ClusterStatus.Inactive || status1 == GroupStatus.Inactive) {
- this.markMonitorAsInactive(id);
+ this.markMonitorAsInactive(instanceId);
onChildInactiveEvent(id, instanceId);
} else if (status1 == ClusterStatus.Created || status1 == GroupStatus.Created) {
- if (this.terminatingMonitorsList.contains(id)) {
- this.terminatingMonitorsList.remove(id);
- this.aliasToActiveMonitorsMap.remove(id);
+ if (this.terminatingMonitorsList.contains(instanceId)) {
+ this.terminatingMonitorsList.remove(instanceId);
+ this.aliasToActiveMonitorsMap.remove(instanceId);
if (AutoscalerContext.getInstance().getClusterMonitors().containsKey(id)) {
AutoscalerContext.getInstance().removeClusterMonitor(id);
}
}
} else if (status1 == ClusterStatus.Terminating || status1 == GroupStatus.Terminating) {
//mark the child monitor as inActive in the map
- this.markMonitorAsTerminating(id);
+ this.markMonitorAsTerminating(instanceId);
} else if (status1 == ClusterStatus.Terminated || status1 == GroupStatus.Terminated) {
//Check whether all dependent goes Terminated and then start them in parallel.
@@ -230,7 +229,7 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
@Override
public void onParentStatusEvent(MonitorStatusEvent statusEvent)
- throws ParentMonitorNotFoundException {
+ throws MonitorNotFoundException {
String instanceId = statusEvent.getInstanceId();
// send the ClusterTerminating event
if (statusEvent.getStatus() == GroupStatus.Terminating ||
@@ -400,10 +399,10 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
*
* @param group
* @param parentInstanceId
- * @throws ParentMonitorNotFoundException
+ * @throws org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException
*/
public void createInstanceAndStartDependency(Group group, String parentInstanceId)
- throws ParentMonitorNotFoundException {
+ throws MonitorNotFoundException {
String deploymentPolicyName = group.getDeploymentPolicy();
String instanceId;
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
index f48461f..01c1787 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
@@ -33,7 +33,7 @@ import org.apache.stratos.autoscaler.applications.dependency.context.GroupChildC
import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
import org.apache.stratos.autoscaler.exception.application.DependencyBuilderException;
-import org.apache.stratos.autoscaler.exception.application.ParentMonitorNotFoundException;
+import org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException;
import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
import org.apache.stratos.autoscaler.exception.partition.PartitionValidationException;
import org.apache.stratos.autoscaler.exception.policy.PolicyValidationException;
@@ -42,6 +42,7 @@ import org.apache.stratos.autoscaler.monitor.MonitorFactory;
import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
import org.apache.stratos.autoscaler.monitor.events.builder.MonitorStatusEventBuilder;
import org.apache.stratos.autoscaler.status.processor.StatusChecker;
+import org.apache.stratos.autoscaler.util.ServiceReferenceHolder;
import org.apache.stratos.messaging.domain.applications.GroupStatus;
import org.apache.stratos.messaging.domain.applications.ParentComponent;
import org.apache.stratos.messaging.domain.instance.Instance;
@@ -97,7 +98,7 @@ public abstract class ParentComponentMonitor extends Monitor {
* it will get invoked when the monitor starts up only.
*/
public void startDependency(ParentComponent component, String instanceId) throws
- ParentMonitorNotFoundException {
+ MonitorNotFoundException {
//start the first dependency
List<ApplicationChildContext> applicationContexts = this.startupDependencyTree.
getStarAbleDependencies();
@@ -110,7 +111,7 @@ public abstract class ParentComponentMonitor extends Monitor {
* it will get invoked when the monitor starts up only.
*/
public boolean startDependencyByInstanceCreation(String childId, String instanceId) throws
- ParentMonitorNotFoundException {
+ MonitorNotFoundException {
//start the first dependency
List<ApplicationChildContext> applicationContexts =
this.startupDependencyTree.getStarAbleDependencies(childId);
@@ -139,7 +140,7 @@ public abstract class ParentComponentMonitor extends Monitor {
*
* @param id alias/clusterId of which receive the activated event
*/
- public boolean startDependency(String id, String instanceId) throws ParentMonitorNotFoundException {
+ public boolean startDependency(String id, String instanceId) throws MonitorNotFoundException {
List<ApplicationChildContext> applicationContexts = this.startupDependencyTree
.getStarAbleDependencies(id);
List<String> instanceIds = new ArrayList<String>();
@@ -203,7 +204,7 @@ public abstract class ParentComponentMonitor extends Monitor {
* @param applicationContexts the found applicationContexts to be started
*/
private boolean startDependency(List<ApplicationChildContext> applicationContexts, String instanceId)
- throws ParentMonitorNotFoundException {
+ throws MonitorNotFoundException {
if (applicationContexts != null && applicationContexts.isEmpty()) {
//all the groups/clusters have been started and waiting for activation
log.info("There is no child found for the [group]: " + this.id);
@@ -217,7 +218,7 @@ public abstract class ParentComponentMonitor extends Monitor {
//FIXME whether to start new monitor or throw exception
if (!this.aliasToActiveMonitorsMap.containsKey(context.getId())) {
String msg = "Required Monitor cannot be fount in the hierarchy";
- throw new ParentMonitorNotFoundException(msg);
+ throw new MonitorNotFoundException(msg);
} else {
//starting a new instance of the child
Monitor monitor = aliasToActiveMonitorsMap.get(context.getId());
@@ -255,6 +256,7 @@ public abstract class ParentComponentMonitor extends Monitor {
if (this.terminatingMonitorsList.contains(eventId)) {
this.terminatingMonitorsList.remove(eventId);
}
+
boolean startDep;
if(!aliasToActiveMonitorsMap.containsKey(eventId)) {
startDep = startDependency(eventId, instanceId);
@@ -262,14 +264,13 @@ public abstract class ParentComponentMonitor extends Monitor {
startDep = startDependencyByInstanceCreation(eventId, instanceId);
}
- if (log.isDebugEnabled()) {
- log.debug("started a child: " + startDep + " by the group/cluster: " + eventId);
-
- }
if (!startDep) {
- StatusChecker.getInstance().onChildStatusChange(eventId, this.id, this.appId, instanceId);
+ ServiceReferenceHolder.getInstance().getGroupStatusProcessorChain().
+ process(this.id, this.appId, instanceId);
+ } else {
+ log.info("started a child: " + startDep + " by the group/cluster: " + eventId);
}
- } catch (ParentMonitorNotFoundException e) {
+ } catch (MonitorNotFoundException e) {
//TODO revert the siblings and notify parent, change a flag for reverting/un-subscription
log.error(e);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
index 78fd308..c2491a0 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
@@ -20,8 +20,7 @@ package org.apache.stratos.autoscaler.monitor.events.builder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.exception.application.ParentMonitorNotFoundException;
-import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
+import org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException;
import org.apache.stratos.autoscaler.monitor.Monitor;
import org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor;
import org.apache.stratos.autoscaler.monitor.events.*;
@@ -29,8 +28,6 @@ import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
import org.apache.stratos.messaging.domain.applications.GroupStatus;
-import java.util.List;
-
/**
* This will build the necessary monitor status events to be sent to the parent/child monitor
*/
@@ -67,14 +64,14 @@ public class MonitorStatusEventBuilder {
}
public static void notifyChildren (ParentComponentMonitor componentMonitor, MonitorStatusEvent statusEvent)
- throws ParentMonitorNotFoundException {
+ throws MonitorNotFoundException {
for (Monitor activeChildMonitor : componentMonitor.getAliasToActiveMonitorsMap().values()) {
activeChildMonitor.onParentStatusEvent(statusEvent);
}
}
public static void notifyChildGroup(Monitor child, GroupStatus state, String instanceId)
- throws ParentMonitorNotFoundException {
+ throws MonitorNotFoundException {
MonitorStatusEvent statusEvent = new GroupStatusEvent(state, child.getId(), instanceId);
child.onParentStatusEvent(statusEvent);
}
@@ -91,7 +88,7 @@ public class MonitorStatusEventBuilder {
}*/
public static void notifyChildCluster(Monitor child, ClusterStatus state, String instanceId)
- throws ParentMonitorNotFoundException {
+ throws MonitorNotFoundException {
MonitorStatusEvent statusEvent = new ClusterStatusEvent(state, child.getId(), instanceId);
child.onParentStatusEvent(statusEvent);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
index fa2ffa8..9e60357 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
@@ -65,10 +65,6 @@ public class GroupStatusActiveProcessor extends GroupStatusProcessor {
Map<String, Group> groups;
Map<String, ClusterDataHolder> clusterData;
- if (log.isInfoEnabled()) {
- log.info("StatusChecker calculating the status for the group [ " + idOfComponent + " ]");
- }
-
try {
ApplicationHolder.acquireWriteLock();
if (idOfComponent.equals(appId)) {
@@ -96,23 +92,21 @@ public class GroupStatusActiveProcessor extends GroupStatusProcessor {
//send application activated event
log.info("sending app activate: " + appId);
ApplicationBuilder.handleApplicationActivatedEvent(appId, instanceId);
+ return true;
} else if (component instanceof Group) {
//send activation to the parent
log.info("sending group activate: " + component.getUniqueIdentifier());
ApplicationBuilder.handleGroupActivatedEvent(appId, component.getUniqueIdentifier(), instanceId);
+ return true;
}
}
}
-
-
} finally {
ApplicationHolder.releaseWriteLock();
}
-
-
- return true;
+ return false;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
index 84fcf8f..90b608c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
@@ -96,12 +96,14 @@ public class GroupStatusInActiveProcessor extends GroupStatusProcessor {
if (component instanceof Application) {
//send application activated event
log.warn("Application can't be in in-active : " + appId);
+ return true;
//ApplicationBuilder.handleApp(appId);
} else if (component instanceof Group) {
//send activation to the parent
if (((Group) component).getStatus(null) != GroupStatus.Inactive) {
log.info("sending group in-active: " + component.getUniqueIdentifier());
ApplicationBuilder.handleGroupInActivateEvent(appId, component.getUniqueIdentifier(), instanceId);
+ return true;
}
}
}
@@ -113,7 +115,7 @@ public class GroupStatusInActiveProcessor extends GroupStatusProcessor {
}
- return true;
+ return false;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
index 0e8c7cc..5724669 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
@@ -18,12 +18,16 @@
*/
package org.apache.stratos.autoscaler.status.processor.group;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.status.processor.StatusProcessorChain;
/**
* Cluster status tracking processor chain
*/
public class GroupStatusProcessorChain extends StatusProcessorChain {
+ private static final Log log = LogFactory.getLog(GroupStatusActiveProcessor.class);
+
private GroupStatusActiveProcessor groupStatusActiveProcessor;
private GroupStatusTerminatedProcessor groupStatusTerminatedProcessor;
private GroupStatusTerminatingProcessor groupStatusTerminatingProcessor;
@@ -51,6 +55,11 @@ public class GroupStatusProcessorChain extends StatusProcessorChain {
if (root == null) {
throw new RuntimeException("Message processor chain is not initialized");
}
+ if (log.isInfoEnabled()) {
+ log.info("GroupProcessor chain calculating the status for the group " +
+ "[ " + idOfComponent + " ]");
+ }
+
return root.process(idOfComponent, appId, instanceId);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
index 329a901..3ea460d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
@@ -94,11 +94,14 @@ public class GroupStatusTerminatedProcessor extends GroupStatusProcessor {
if (component instanceof Application) {
log.info("sending app terminated: " + appId);
ApplicationBuilder.handleApplicationTerminatedEvent(appId);
+ return true;
} else if (component instanceof Group) {
//send activation to the parent
if (((Group) component).getStatus(null) != GroupStatus.Terminated) {
log.info("sending group terminated : " + component.getUniqueIdentifier());
- ApplicationBuilder.handleGroupTerminatedEvent(appId, component.getUniqueIdentifier(), instanceId);
+ ApplicationBuilder.handleGroupTerminatedEvent(appId,
+ component.getUniqueIdentifier(), instanceId);
+ return true;
}
}
}
@@ -111,7 +114,7 @@ public class GroupStatusTerminatedProcessor extends GroupStatusProcessor {
}
- return true;
+ return false;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/0c5d4caa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
index 97bedb3..5d51f23 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
@@ -95,24 +95,23 @@ public class GroupStatusTerminatingProcessor extends GroupStatusProcessor {
if (component instanceof Application) {
log.info("sending app terminated: " + appId);
ApplicationBuilder.handleApplicationTerminatedEvent(appId);
+ return true;
} else if (component instanceof Group) {
//send activation to the parent
if (((Group) component).getStatus(null) != GroupStatus.Terminated) {
log.info("sending group terminated : " + component.getUniqueIdentifier());
- ApplicationBuilder.handleGroupTerminatedEvent(appId, component.getUniqueIdentifier(), instanceId);
+ ApplicationBuilder.handleGroupTerminatedEvent(appId,
+ component.getUniqueIdentifier(), instanceId);
+ return true;
}
}
}
}
-
-
} finally {
ApplicationHolder.releaseWriteLock();
}
-
-
- return true;
+ return false;
}