Repository: stratos Updated Branches: refs/heads/stratos-4.1.x 4e868f24f -> e9bef7da5
Formatting Application message processors and improving logs Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/6b4be642 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6b4be642 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6b4be642 Branch: refs/heads/stratos-4.1.x Commit: 6b4be642d76b815906663156e8717f2f13d995d2 Parents: 5344c39 Author: Akila Perera <[email protected]> Authored: Sun Nov 29 23:54:19 2015 +0530 Committer: Akila Perera <[email protected]> Committed: Mon Nov 30 00:33:45 2015 +0530 ---------------------------------------------------------------------- .../ApplicationCreatedMessageProcessor.java | 25 ++++++------ .../ApplicationDeletedMessageProcessor.java | 12 +++--- ...cationInstanceActivatedMessageProcessor.java | 42 ++++++++++---------- ...licationInstanceCreatedMessageProcessor.java | 25 ++++++------ ...tionInstanceInactivatedMessageProcessor.java | 40 ++++++++++--------- ...ationInstanceTerminatedMessageProcessor.java | 25 ++++++------ ...tionInstanceTerminatingMessageProcessor.java | 41 ++++++++++--------- 7 files changed, 109 insertions(+), 101 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/6b4be642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationCreatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationCreatedMessageProcessor.java index 83622ee..2bbd1f5 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationCreatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationCreatedMessageProcessor.java @@ -39,15 +39,13 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor { @Override public boolean process(String type, String message, Object object) { - Applications applications = (Applications) object; - if (ApplicationCreatedEvent.class.getName().equals(type)) { if (!applications.isInitialized()) { return false; } - - ApplicationCreatedEvent event = (ApplicationCreatedEvent) MessagingUtil.jsonToObject(message, ApplicationCreatedEvent.class); + ApplicationCreatedEvent event = (ApplicationCreatedEvent) MessagingUtil + .jsonToObject(message, ApplicationCreatedEvent.class); if (event == null) { log.error("Unable to convert the JSON message to ApplicationCreatedEvent"); return false; @@ -60,19 +58,19 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor { } finally { ApplicationsUpdater.releaseWriteLockForApplications(); } - } else { if (nextProcessor != null) { // ask the next processor to take care of the message. return nextProcessor.process(type, message, applications); } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); + throw new RuntimeException(String.format( + "Failed to process message using available message processors: [type] %s, [body] %s", type, + message)); } } } private boolean doProcess(ApplicationCreatedEvent event, Applications applications) { - // check if required properties are available if (event.getApplication() == null) { String errorMsg = "Application object of application created event is invalid"; @@ -80,8 +78,10 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor { throw new RuntimeException(errorMsg); } - if (event.getApplication().getUniqueIdentifier() == null || event.getApplication().getUniqueIdentifier().isEmpty()) { - String errorMsg = "App id of application created event is invalid: [ " + event.getApplication().getUniqueIdentifier() + " ]"; + if (event.getApplication().getUniqueIdentifier() == null || event.getApplication().getUniqueIdentifier() + .isEmpty()) { + String errorMsg = String.format("App id of application created event is invalid: [%s]", + event.getApplication().getUniqueIdentifier()); log.error(errorMsg); throw new RuntimeException(errorMsg); } @@ -89,16 +89,17 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor { // check if an Application with same name exists in applications if (applications.applicationExists(event.getApplication().getUniqueIdentifier())) { if (log.isDebugEnabled()) { - log.debug("Application with id [ " + event.getApplication().getUniqueIdentifier() + " ] already exists"); + log.debug(String.format("App id of application created event already exists: [%s]", + event.getApplication().getUniqueIdentifier())); } } else { // add application and the clusters to Topology applications.addApplication(event.getApplication()); if (log.isInfoEnabled()) { - log.info("Application with id [ " + event.getApplication().getUniqueIdentifier() + " ] created"); + log.info(String.format("Application created with id: [%s]", + event.getApplication().getUniqueIdentifier())); } } - notifyEventListeners(event); return true; } http://git-wip-us.apache.org/repos/asf/stratos/blob/6b4be642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationDeletedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationDeletedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationDeletedMessageProcessor.java index f1dc19c..61c4d39 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationDeletedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationDeletedMessageProcessor.java @@ -39,15 +39,14 @@ public class ApplicationDeletedMessageProcessor extends MessageProcessor { @Override public boolean process(String type, String message, Object object) { - Applications applications = (Applications) object; - if (ApplicationDeletedEvent.class.getName().equals(type)) { if (!applications.isInitialized()) { return false; } - ApplicationDeletedEvent event = (ApplicationDeletedEvent) MessagingUtil.jsonToObject(message, ApplicationDeletedEvent.class); + ApplicationDeletedEvent event = (ApplicationDeletedEvent) MessagingUtil + .jsonToObject(message, ApplicationDeletedEvent.class); if (event == null) { log.error("Unable to convert the JSON message to ApplicationDeletedEvent"); return false; @@ -66,13 +65,14 @@ public class ApplicationDeletedMessageProcessor extends MessageProcessor { // ask the next processor to take care of the message. return nextProcessor.process(type, message, applications); } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); + throw new RuntimeException(String.format( + "Failed to process message using available message processors: [type] %s [body] %s", type, + message)); } } } private boolean doProcess(ApplicationDeletedEvent event, Applications applications) { - // check if required properties are available if (event.getAppId() == null || event.getAppId().isEmpty()) { String errorMsg = "App id of application deleted event is invalid: [ " + event.getAppId() + " ]"; @@ -82,13 +82,11 @@ public class ApplicationDeletedMessageProcessor extends MessageProcessor { // Remove application and clusters from topology applications.removeApplication(event.getAppId()); - notifyEventListeners(event); if (log.isInfoEnabled()) { log.info("[Application] " + event.getAppId() + " has been successfully removed"); } - return true; } } http://git-wip-us.apache.org/repos/asf/stratos/blob/6b4be642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceActivatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceActivatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceActivatedMessageProcessor.java index 862ad8e..1acd9f6 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceActivatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceActivatedMessageProcessor.java @@ -33,10 +33,7 @@ import org.apache.stratos.messaging.util.MessagingUtil; * This processor responsible to process the application activation even and update the Topology. */ public class ApplicationInstanceActivatedMessageProcessor extends MessageProcessor { - private static final Log log = - LogFactory.getLog(ApplicationInstanceActivatedMessageProcessor.class); - - + private static final Log log = LogFactory.getLog(ApplicationInstanceActivatedMessageProcessor.class); private MessageProcessor nextProcessor; @Override @@ -44,15 +41,15 @@ public class ApplicationInstanceActivatedMessageProcessor extends MessageProcess this.nextProcessor = nextProcessor; } - @Override public boolean process(String type, String message, Object object) { Applications applications = (Applications) object; if (ApplicationInstanceActivatedEvent.class.getName().equals(type)) { // Return if applications has not been initialized - if (!applications.isInitialized()) + if (!applications.isInitialized()) { return false; + } // Parse complete message and build event ApplicationInstanceActivatedEvent event = (ApplicationInstanceActivatedEvent) MessagingUtil. @@ -61,7 +58,6 @@ public class ApplicationInstanceActivatedMessageProcessor extends MessageProcess try { ApplicationsUpdater.acquireWriteLockForApplication(event.getAppId()); return doProcess(event, applications); - } finally { ApplicationsUpdater.releaseWriteLockForApplication(event.getAppId()); } @@ -71,37 +67,43 @@ public class ApplicationInstanceActivatedMessageProcessor extends MessageProcess // ask the next processor to take care of the message. return nextProcessor.process(type, message, applications); } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); + throw new RuntimeException(String.format( + "Failed to process message using available message processors: [type] %s [body] %s", type, + message)); } } } private boolean doProcess(ApplicationInstanceActivatedEvent event, Applications applications) { - // Validate event against the existing applications Application application = applications.getApplication(event.getAppId()); if (application == null) { if (log.isWarnEnabled()) { - log.warn(String.format("Application does not exist: [service] %s", - event.getAppId())); + log.warn(String.format("Application does not exist: [application-id] %s", event.getAppId())); } return false; } else { // Apply changes to the applications - ApplicationInstance context = application.getInstanceContexts(event.getInstanceId()); - if (context == null) { + ApplicationInstance applicationInstance = application.getInstanceContexts(event.getInstanceId()); + if (applicationInstance == null) { if (log.isWarnEnabled()) { - log.warn(String.format("Application instance not exists in group: [AppId] %s" + - "[instanceId] %s", event.getAppId(), event.getInstanceId())); + log.warn(String.format( + "Application instance not exists in group: [application-id] %s [instance-id] %s", + event.getAppId(), event.getInstanceId())); } - return false; } - ApplicationStatus status = ApplicationStatus.Active; - if (!context.isStateTransitionValid(status)) { - log.error("Invalid application state transfer from [" + context.getStatus() + "] to [" + status + "]"); + ApplicationStatus currentStatus = applicationInstance.getStatus(); + if (!applicationInstance.isStateTransitionValid(ApplicationStatus.Active)) { + log.error(String.format("Invalid application state transfer [from] %s [to] %s", currentStatus, + ApplicationStatus.Active)); + return false; + } + applicationInstance.setStatus(ApplicationStatus.Active); + if (log.isDebugEnabled()) { + log.debug(String.format("Application instance status updated [from] %s [to] %s for [instance-id] %s", + currentStatus, ApplicationStatus.Active, applicationInstance.getInstanceId())); } - context.setStatus(status); } // Notify event listeners http://git-wip-us.apache.org/repos/asf/stratos/blob/6b4be642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java index e56d7bf..5e79f85 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceCreatedMessageProcessor.java @@ -45,9 +45,8 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor if (!applications.isInitialized()) { return false; } - ApplicationInstanceCreatedEvent event = - (ApplicationInstanceCreatedEvent) MessagingUtil.jsonToObject(message, - ApplicationInstanceCreatedEvent.class); + ApplicationInstanceCreatedEvent event = (ApplicationInstanceCreatedEvent) MessagingUtil + .jsonToObject(message, ApplicationInstanceCreatedEvent.class); if (event == null) { log.error("Unable to convert the JSON message to ApplicationInstanceCreatedEvent"); return false; @@ -56,8 +55,7 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor ApplicationsUpdater.acquireWriteLockForApplications(); try { return doProcess(event, applications); - } - finally { + } finally { ApplicationsUpdater.releaseWriteLockForApplications(); } } else { @@ -73,12 +71,12 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor } private boolean doProcess(ApplicationInstanceCreatedEvent event, Applications applications) { - // check if required properties are available if (event.getApplicationInstance() == null || event.getApplicationId() == null) { - String errorMsg = "Application instance object of ApplicationInstanceCreatedEvent is invalid. " + - "[ApplicationId] " + event.getApplicationId() + ", [ApplicationInstance] " + - event.getApplicationInstance(); + String errorMsg = String + .format("Application instance object of ApplicationInstanceCreatedEvent is invalid: " + + "[application-id] %s, [app-instance-id] %s", event.getApplicationId(), + event.getApplicationInstance().getInstanceId()); log.error(errorMsg); throw new RuntimeException(errorMsg); } @@ -90,8 +88,8 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor ApplicationInstance applicationInstance = event.getApplicationInstance(); if (applicationInstance.getInstanceId() == null || applicationInstance.getInstanceId().isEmpty()) { - String errorMsg = "App instance id of application instance created event is invalid: [ " - + applicationInstance.getInstanceId() + " ]"; + String errorMsg = String.format("Application instance created event is invalid: [app-instance-id] %s", + applicationInstance.getInstanceId()); log.error(errorMsg); throw new RuntimeException(errorMsg); } @@ -99,7 +97,8 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor // check if an Application instance with same name exists in applications instance if (null != applications.getApplication(event.getApplicationId()). getInstanceByNetworkPartitionId(applicationInstance.getNetworkPartitionId())) { - log.warn("Application instance [AppInstanceId] " + applicationInstance.getInstanceId() + " already exists"); + log.warn(String.format("Application instance [app-instance-id] %s already exists", + applicationInstance.getInstanceId())); } else { // add application instance to Application Topology applications.getApplication(event.getApplicationId()) @@ -108,4 +107,4 @@ public class ApplicationInstanceCreatedMessageProcessor extends MessageProcessor notifyEventListeners(event); return true; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/stratos/blob/6b4be642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceInactivatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceInactivatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceInactivatedMessageProcessor.java index 3f1b56c..daa2290 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceInactivatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceInactivatedMessageProcessor.java @@ -33,9 +33,7 @@ import org.apache.stratos.messaging.util.MessagingUtil; * This processor responsible to process the application Inactivation even and update the Topology. */ public class ApplicationInstanceInactivatedMessageProcessor extends MessageProcessor { - private static final Log log = - LogFactory.getLog(ApplicationInstanceInactivatedMessageProcessor.class); - + private static final Log log = LogFactory.getLog(ApplicationInstanceInactivatedMessageProcessor.class); private MessageProcessor nextProcessor; @@ -44,15 +42,15 @@ public class ApplicationInstanceInactivatedMessageProcessor extends MessageProce this.nextProcessor = nextProcessor; } - @Override public boolean process(String type, String message, Object object) { Applications applications = (Applications) object; if (ApplicationInstanceInactivatedEvent.class.getName().equals(type)) { // Return if applications has not been initialized - if (!applications.isInitialized()) + if (!applications.isInitialized()) { return false; + } // Parse complete message and build event ApplicationInstanceInactivatedEvent event = (ApplicationInstanceInactivatedEvent) MessagingUtil. @@ -72,38 +70,44 @@ public class ApplicationInstanceInactivatedMessageProcessor extends MessageProce // ask the next processor to take care of the message. return nextProcessor.process(type, message, applications); } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); + throw new RuntimeException(String.format( + "Failed to process message using available message processors: [type] %s [body] %s", type, + message)); } } } private boolean doProcess(ApplicationInstanceInactivatedEvent event, Applications applications) { - // Validate event against the existing applications Application application = applications.getApplication(event.getAppId()); if (application == null) { if (log.isWarnEnabled()) { - log.warn(String.format("Application does not exist: [service] %s", - event.getAppId())); + log.warn(String.format("Application does not exist: [service] %s", event.getAppId())); } return false; } else { // Apply changes to the applications - ApplicationInstance context = application.getInstanceContexts(event.getInstanceId()); - if (context == null) { + ApplicationInstance applicationInstance = application.getInstanceContexts(event.getInstanceId()); + if (applicationInstance == null) { if (log.isWarnEnabled()) { - log.warn(String.format("Application instance not exists in group: [application-id] %s" + - "[instance-id] %s", event.getAppId(), event.getInstanceId())); + log.warn(String.format( + "Application instance not exists in group: [application-id] %s, [instance-id] %s", + event.getAppId(), event.getInstanceId())); } return false; } - ApplicationStatus status = ApplicationStatus.Inactive; - if (!context.isStateTransitionValid(status)) { - log.error("Invalid state transfer from [ " + context.getStatus() + - " ] to [ " + status + " ]"); + ApplicationStatus currentStatus = applicationInstance.getStatus(); + if (!applicationInstance.isStateTransitionValid(ApplicationStatus.Inactive)) { + log.error(String.format("Invalid application state transfer [from] %s [to] %s", currentStatus, + ApplicationStatus.Inactive)); + return false; + } + applicationInstance.setStatus(ApplicationStatus.Inactive); + if (log.isDebugEnabled()) { + log.debug(String.format("Application instance status updated [from] %s [to] %s for [instance-id] %s", + currentStatus, ApplicationStatus.Inactive, applicationInstance.getInstanceId())); } - context.setStatus(status); } // Notify event listeners http://git-wip-us.apache.org/repos/asf/stratos/blob/6b4be642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatedMessageProcessor.java index 0753969..68e4557 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatedMessageProcessor.java @@ -32,9 +32,7 @@ import org.apache.stratos.messaging.util.MessagingUtil; * This processor responsible to process the application Inactivation even and update the Topology. */ public class ApplicationInstanceTerminatedMessageProcessor extends MessageProcessor { - private static final Log log = - LogFactory.getLog(ApplicationInstanceTerminatedMessageProcessor.class); - + private static final Log log = LogFactory.getLog(ApplicationInstanceTerminatedMessageProcessor.class); private MessageProcessor nextProcessor; @@ -43,15 +41,15 @@ public class ApplicationInstanceTerminatedMessageProcessor extends MessageProces this.nextProcessor = nextProcessor; } - @Override public boolean process(String type, String message, Object object) { Applications applications = (Applications) object; if (ApplicationInstanceTerminatedEvent.class.getName().equals(type)) { // Return if applications has not been initialized - if (!applications.isInitialized()) + if (!applications.isInitialized()) { return false; + } // Parse complete message and build event ApplicationInstanceTerminatedEvent event = (ApplicationInstanceTerminatedEvent) MessagingUtil. @@ -71,16 +69,18 @@ public class ApplicationInstanceTerminatedMessageProcessor extends MessageProces // ask the next processor to take care of the message. return nextProcessor.process(type, message, applications); } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); + throw new RuntimeException(String.format( + "Failed to process message using available message processors: [type] %s [body] %s", type, + message)); } } } private boolean doProcess(ApplicationInstanceTerminatedEvent event, Applications applications) { - // check if required properties are available if (event.getAppId() == null) { - String errorMsg = "Application Id of application removed event is invalid"; + String errorMsg = "Application Id of application to be removed event is null. Failed to process " + + "ApplicationInstanceTerminatedEvent"; log.error(errorMsg); throw new RuntimeException(errorMsg); } @@ -89,12 +89,15 @@ public class ApplicationInstanceTerminatedMessageProcessor extends MessageProces String appId = event.getAppId(); String instanceId = event.getInstanceId(); if (applications.applicationExists(appId)) { - log.warn("Application with id [ " + appId + " ] still exists in Applications, removing it"); + log.warn(String.format( + "Application [application-id] %s still exists. Removing application instance [instance-id] %s", + appId, instanceId)); ApplicationInstance instance = applications.getApplication(appId). getInstanceContexts(instanceId); if (instance == null) { if (log.isDebugEnabled()) { - log.debug("Application [Instance] " + instanceId + " has already been removed"); + log.debug(String.format("Application instance [instance-id] %s has already been removed", + instanceId)); } } else { instance.setStatus(ApplicationStatus.Terminated); @@ -102,9 +105,7 @@ public class ApplicationInstanceTerminatedMessageProcessor extends MessageProces } } - notifyEventListeners(event); return true; - } } http://git-wip-us.apache.org/repos/asf/stratos/blob/6b4be642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatingMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatingMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatingMessageProcessor.java index bd184a1..a96b45c 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatingMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationInstanceTerminatingMessageProcessor.java @@ -33,9 +33,7 @@ import org.apache.stratos.messaging.util.MessagingUtil; * This processor responsible to process the application Inactivation even and update the Topology. */ public class ApplicationInstanceTerminatingMessageProcessor extends MessageProcessor { - private static final Log log = - LogFactory.getLog(ApplicationInstanceTerminatingMessageProcessor.class); - + private static final Log log = LogFactory.getLog(ApplicationInstanceTerminatingMessageProcessor.class); private MessageProcessor nextProcessor; @@ -44,15 +42,15 @@ public class ApplicationInstanceTerminatingMessageProcessor extends MessageProce this.nextProcessor = nextProcessor; } - @Override public boolean process(String type, String message, Object object) { Applications applications = (Applications) object; if (ApplicationInstanceTerminatingEvent.class.getName().equals(type)) { // Return if applications has not been initialized - if (!applications.isInitialized()) + if (!applications.isInitialized()) { return false; + } // Parse complete message and build event ApplicationInstanceTerminatingEvent event = (ApplicationInstanceTerminatingEvent) MessagingUtil. @@ -72,43 +70,48 @@ public class ApplicationInstanceTerminatingMessageProcessor extends MessageProce // ask the next processor to take care of the message. return nextProcessor.process(type, message, applications); } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); + throw new RuntimeException(String.format( + "Failed to process message using available message processors: [type] %s [body] %s", type, + message)); } } } private boolean doProcess(ApplicationInstanceTerminatingEvent event, Applications applications) { - // Validate event against the existing applications Application application = applications.getApplication(event.getAppId()); if (application == null) { if (log.isWarnEnabled()) { - log.warn(String.format("Application does not exist: [service] %s", - event.getAppId())); + log.warn(String.format("Application does not exist: [application-id] %s", event.getAppId())); } return false; } else { // Apply changes to the applications - ApplicationInstance context = application.getInstanceContexts(event.getInstanceId()); - if (context == null) { + ApplicationInstance applicationInstance = application.getInstanceContexts(event.getInstanceId()); + if (applicationInstance == null) { if (log.isWarnEnabled()) { - log.warn(String.format("Application Instance not exists in Group: [AppId] %s" + - "[instanceId] %s", event.getAppId(), event.getInstanceId())); + log.warn(String.format( + "Application instance does not exist in group: [application-id] %s, [instance-id] %s", + event.getAppId(), event.getInstanceId())); } return false; } - ApplicationStatus status = ApplicationStatus.Terminating; - if (!context.isStateTransitionValid(status)) { - log.error("Invalid State transfer from [ " + context.getStatus() + - " ] to [ " + status + " ]"); + ApplicationStatus currentStatus = applicationInstance.getStatus(); + if (!applicationInstance.isStateTransitionValid(ApplicationStatus.Terminating)) { + log.error(String.format("Invalid application state transfer [from] %s [to] %s", currentStatus, + ApplicationStatus.Terminating)); + return false; + } + applicationInstance.setStatus(ApplicationStatus.Terminating); + if (log.isDebugEnabled()) { + log.debug(String.format("Application instance status updated [from] %s [to] %s for [instance-id] %s", + currentStatus, ApplicationStatus.Terminating, applicationInstance.getInstanceId())); } - context.setStatus(status); } // Notify event listeners notifyEventListeners(event); return true; - } }
