renaming events with instance and adding apis for undeployment of policy
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/5f8b31ce Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/5f8b31ce Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/5f8b31ce Branch: refs/heads/master Commit: 5f8b31cedad8a24bc28a83e722d22fa018d88d30 Parents: eb38f73 Author: reka <[email protected]> Authored: Wed Dec 3 12:32:54 2014 +0530 Committer: reka <[email protected]> Committed: Wed Dec 3 13:36:56 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/api/AutoScalerServiceImpl.java | 6 +- .../applications/topic/ApplicationBuilder.java | 79 ++++++++++++++++++-- .../topic/ApplicationsEventPublisher.java | 12 +-- .../status/processor/StatusChecker.java | 2 +- .../group/GroupStatusTerminatedProcessor.java | 2 +- .../group/GroupStatusTerminatingProcessor.java | 4 +- .../application/ApplicationTopicReceiver.java | 28 +++---- .../messaging/topology/TopologyBuilder.java | 5 +- .../client/CloudControllerServiceClient.java | 4 +- .../ApplicationInactivatedEvent.java | 46 ------------ .../ApplicationInstanceInactivatedEvent.java | 46 ++++++++++++ .../ApplicationInstanceTerminatedEvent.java | 48 ++++++++++++ .../ApplicationInstanceTerminatingEvent.java | 48 ++++++++++++ .../ApplicationTerminatedEvent.java | 48 ------------ .../ApplicationTerminatingEvent.java | 48 ------------ .../ApplicationInactivatedMessageProcessor.java | 10 +-- .../ApplicationTerminatedMessageProcessor.java | 14 ++-- .../ApplicationTerminatingMessageProcessor.java | 10 +-- 18 files changed, 261 insertions(+), 199 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java index 977844d..5593e1f 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java @@ -143,10 +143,8 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface { } @Override - public boolean undeployDeploymentPolicy(String deploymentPolicyName) { - - //PolicyManager.getInstance().undeployDeploymentPolicy(deploymentPolicyName); - return false; + public boolean undeployDeploymentPolicy(String applicationId) { + return ApplicationBuilder.handleApplicationPolicyUndeployed(applicationId); } @Override http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java index 5c9c873..f2d62c6 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java @@ -24,10 +24,12 @@ import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext; import org.apache.stratos.autoscaler.client.CloudControllerClient; +import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; import org.apache.stratos.autoscaler.monitor.component.ApplicationMonitor; import org.apache.stratos.autoscaler.monitor.component.GroupMonitor; import org.apache.stratos.messaging.domain.applications.*; import org.apache.stratos.messaging.domain.instance.ApplicationInstance; +import org.apache.stratos.messaging.domain.instance.ClusterInstance; import org.apache.stratos.messaging.domain.instance.GroupInstance; import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.domain.topology.Service; @@ -204,7 +206,72 @@ public class ApplicationBuilder { } } - public static void handleApplicationTerminatedEvent(String appId) { + public static boolean handleApplicationPolicyUndeployed(String appId) { + if (log.isDebugEnabled()) { + log.debug("Handling application terminating event: [application-id] " + appId); + } + Set<ClusterDataHolder> clusterData; + ApplicationHolder.acquireWriteLock(); + try { + Applications applications = ApplicationHolder.getApplications(); + Application application = applications.getApplication(appId); + //update the status of the Group + if (application == null) { + log.warn(String.format("Application does not exist: [application-id] %s", + appId)); + return false; + } + clusterData = application.getClusterDataRecursively(); + Collection<ApplicationInstance> context = application. + getInstanceIdToInstanceContextMap().values(); + ApplicationStatus status = ApplicationStatus.Terminating; + for (ApplicationInstance context1 : context) { + if (context1.isStateTransitionValid(status)) { + //setting the status, persist and publish + application.setStatus(status, context1.getInstanceId()); + updateApplicationMonitor(appId, status, context1.getInstanceId()); + ApplicationHolder.persistApplication(application); + ApplicationsEventPublisher.sendApplicationTerminatingEvent(appId, context1.getInstanceId()); + } else { + log.warn(String.format("Application Instance state transition is not valid: [application-id] %s " + + " [instance-id] %s [current-status] %s [status-requested] %s", appId, + context1.getInstanceId() + context1.getStatus(), status)); + } + } + } finally { + ApplicationHolder.releaseWriteLock(); + } + + // if monitors is not found for any cluster, assume cluster is not there and send cluster terminating event. + // this assumes the cluster monitor will not fail after creating members, but will only fail before + for (ClusterDataHolder aClusterData : clusterData) { + if (AutoscalerContext.getInstance().getClusterMonitor(aClusterData.getClusterId()) == null) { + TopologyManager.acquireReadLockForCluster(aClusterData.getServiceType(), + aClusterData.getClusterId()); + try { + Service service = TopologyManager.getTopology().getService(aClusterData.getServiceType()); + if (service != null) { + Cluster cluster = service.getCluster(aClusterData.getClusterId()); + if (cluster != null) { + for(ClusterInstance instance : cluster.getInstanceIdToInstanceContextMap().values()) { + ClusterStatusEventPublisher.sendClusterTerminatingEvent(appId, + aClusterData.getServiceType(), + aClusterData.getClusterId(), + instance.getInstanceId()); + } + } + } + } finally { + TopologyManager.releaseReadLockForCluster(aClusterData.getServiceType(), + aClusterData.getClusterId()); + } + + } + } + return true; + } + + public static void handleApplicationTerminatedEvent(String appId, String instanceId) { if (log.isDebugEnabled()) { log.debug("Handling application terminated event: [application-id] " + appId); } @@ -218,10 +285,10 @@ public class ApplicationBuilder { Set<ClusterDataHolder> clusterData = application.getClusterDataRecursively(); ApplicationStatus status = ApplicationStatus.Terminated; - if (application.isStateTransitionValid(status, null)) { + if (application.isStateTransitionValid(status, instanceId)) { //setting the status, persist and publish - application.setStatus(status, null); - updateApplicationMonitor(appId, status, null); + application.setStatus(status, instanceId); + updateApplicationMonitor(appId, status, instanceId); //removing the monitor AutoscalerContext.getInstance().removeAppMonitor(appId); //Removing the application from memory and registry @@ -231,7 +298,9 @@ public class ApplicationBuilder { ApplicationsEventPublisher.sendApplicationTerminatedEvent(appId, clusterData); } else { log.warn(String.format("Application state transition is not valid: [application-id] %s " + - " [current-status] %s [status-requested] %s", appId, application.getStatus(null), status)); + " [current-status] %s [status-requested] %s", appId, + application.getInstanceContexts(instanceId).getStatus(), + status)); } } } http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java index 68aaa12..1f4f6ca 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java @@ -96,8 +96,8 @@ public class ApplicationsEventPublisher { if (log.isInfoEnabled()) { log.info("Publishing Application In-activated event for [application]: " + appId); } - ApplicationInactivatedEvent applicationInActivatedEvent = - new ApplicationInactivatedEvent(appId, instanceId); + ApplicationInstanceInactivatedEvent applicationInActivatedEvent = + new ApplicationInstanceInactivatedEvent(appId, instanceId); publishEvent(applicationInActivatedEvent); } @@ -106,8 +106,8 @@ public class ApplicationsEventPublisher { if (log.isInfoEnabled()) { log.info("Publishing Application terminating event for [application]: " + appId); } - ApplicationTerminatingEvent applicationTerminatingEvent = - new ApplicationTerminatingEvent(appId, instanceId); + ApplicationInstanceTerminatingEvent applicationTerminatingEvent = + new ApplicationInstanceTerminatingEvent(appId, instanceId); publishEvent(applicationTerminatingEvent); } @@ -115,8 +115,8 @@ public class ApplicationsEventPublisher { if (log.isInfoEnabled()) { log.info("Publishing Application terminated event for [application]: " + appId); } - ApplicationTerminatedEvent applicationTerminatedEvent = - new ApplicationTerminatedEvent(appId, clusterData); + ApplicationInstanceTerminatedEvent applicationTerminatedEvent = + new ApplicationInstanceTerminatedEvent(appId, clusterData); publishEvent(applicationTerminatedEvent); } http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java index daff8ba..7d7ed31 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java @@ -350,7 +350,7 @@ public class StatusChecker { //send the terminated event if (component instanceof Application) { log.info("sending app terminated: " + appId); - ApplicationBuilder.handleApplicationTerminatedEvent(appId); + ApplicationBuilder.handleApplicationTerminatedEvent(appId, null); } else if (component instanceof Group) { //send activation to the parent if (((Group) component).getStatus(null) != GroupStatus.Terminated) { http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/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 3ea460d..e2a6368 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 @@ -93,7 +93,7 @@ public class GroupStatusTerminatedProcessor extends GroupStatusProcessor { //send the terminated event if (component instanceof Application) { log.info("sending app terminated: " + appId); - ApplicationBuilder.handleApplicationTerminatedEvent(appId); + ApplicationBuilder.handleApplicationTerminatedEvent(appId, instanceId); return true; } else if (component instanceof Group) { //send activation to the parent http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/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 5d51f23..37b2a2d 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 @@ -94,13 +94,13 @@ public class GroupStatusTerminatingProcessor extends GroupStatusProcessor { //send the terminated event if (component instanceof Application) { log.info("sending app terminated: " + appId); - ApplicationBuilder.handleApplicationTerminatedEvent(appId); + ApplicationBuilder.handleApplicationTerminatedEvent(appId, instanceId); 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, + ApplicationBuilder.handleGroupTerminatingEvent(appId, component.getUniqueIdentifier(), instanceId); return true; } http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationTopicReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationTopicReceiver.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationTopicReceiver.java index 9df4f3a..22f1c5c 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationTopicReceiver.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationTopicReceiver.java @@ -22,7 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.cloud.controller.messaging.topology.TopologyBuilder; import org.apache.stratos.messaging.event.Event; -import org.apache.stratos.messaging.event.applications.ApplicationTerminatedEvent; +import org.apache.stratos.messaging.event.applications.ApplicationInstanceTerminatedEvent; import org.apache.stratos.messaging.listener.applications.ApplicationTerminatedEventListener; import org.apache.stratos.messaging.message.receiver.applications.ApplicationsEventReceiver; @@ -57,19 +57,6 @@ public class ApplicationTopicReceiver { } - private void addEventListeners() { - applicationsEventReceiver.addEventListener(new ApplicationTerminatedEventListener() { - @Override - protected void onEvent(Event event) { - //Remove the application related data - ApplicationTerminatedEvent terminatedEvent = (ApplicationTerminatedEvent) event; - log.info("ApplicationTerminatedEvent received for [application] " + terminatedEvent.getAppId()); - String appId = terminatedEvent.getAppId(); - TopologyBuilder.handleApplicationClustersRemoved(appId, terminatedEvent.getClusterData()); - } - }); - } - public void setTerminated(boolean terminated) { this.terminated = terminated; } @@ -78,6 +65,19 @@ public class ApplicationTopicReceiver { return executorService; } + private void addEventListeners() { + applicationsEventReceiver.addEventListener(new ApplicationTerminatedEventListener() { + @Override + protected void onEvent(Event event) { + //Remove the application related data + ApplicationInstanceTerminatedEvent terminatedEvent = (ApplicationInstanceTerminatedEvent)event; + log.info("ApplicationTerminatedEvent received for [application] " + terminatedEvent.getAppId()); + String appId = terminatedEvent.getAppId(); + TopologyBuilder.handleApplicationClustersRemoved(appId, terminatedEvent.getClusterData()); + } + }); + } + public void setExecutorService(ExecutorService executorService) { this.executorService = executorService; } http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java index a195708..991a355 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java @@ -28,13 +28,12 @@ import org.apache.stratos.cloud.controller.exception.CloudControllerException; import org.apache.stratos.cloud.controller.exception.InvalidCartridgeTypeException; import org.apache.stratos.cloud.controller.exception.InvalidMemberException; import org.apache.stratos.cloud.controller.messaging.publisher.CartridgeInstanceDataPublisher; -import org.apache.stratos.cloud.controller.registry.RegistryManager; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; import org.apache.stratos.common.constants.StratosConstants; import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; import org.apache.stratos.messaging.domain.instance.ClusterInstance; import org.apache.stratos.messaging.domain.topology.*; -import org.apache.stratos.messaging.event.applications.ApplicationTerminatedEvent; +import org.apache.stratos.messaging.event.applications.ApplicationInstanceTerminatedEvent; import org.apache.stratos.messaging.event.cluster.status.*; import org.apache.stratos.messaging.event.instance.status.InstanceActivatedEvent; import org.apache.stratos.messaging.event.instance.status.InstanceMaintenanceModeEvent; @@ -864,7 +863,7 @@ public class TopologyBuilder { } - private static void deleteAppResourcesFromMetadataService(ApplicationTerminatedEvent event) { + private static void deleteAppResourcesFromMetadataService(ApplicationInstanceTerminatedEvent event) { try { MetaDataServiceClient metadataClient = new DefaultMetaDataServiceClient(); metadataClient.deleteApplicationProperties(event.getAppId()); http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java index 1594dc4..5482e56 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java @@ -100,8 +100,8 @@ public class CloudControllerServiceClient { stub.deployServiceGroup(serviceGroup); } - public void undeployDeploymentPOlicy (ServiceGroup serviceGroup) throws RemoteException, CloudControllerServiceInvalidServiceGroupExceptionException { - stub.deployServiceGroup(serviceGroup); + public void undeployDeploymentPOlicy (String applicationId) throws RemoteException, CloudControllerServiceInvalidServiceGroupExceptionException { + //stub.deployServiceGroup(serviceGroup); } public void undeployServiceGroup (String name)throws RemoteException, CloudControllerServiceInvalidServiceGroupExceptionException { http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInactivatedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInactivatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInactivatedEvent.java deleted file mode 100644 index b2558dd..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInactivatedEvent.java +++ /dev/null @@ -1,46 +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.messaging.event.applications; - -import org.apache.stratos.messaging.event.Event; - -import java.io.Serializable; - -/** - * This event will be fired upon the application inactivated is detected. - */ -public class ApplicationInactivatedEvent extends Event implements Serializable { - private static final long serialVersionUID = 2625412714611885089L; - - private String appId; - private String instanceId; - - public ApplicationInactivatedEvent(String appId, String instanceId) { - this.appId = appId; - this.instanceId = instanceId; - } - - public String getAppId() { - return appId; - } - - public String getInstanceId() { - return instanceId; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceInactivatedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceInactivatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceInactivatedEvent.java new file mode 100644 index 0000000..c8254ed --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceInactivatedEvent.java @@ -0,0 +1,46 @@ +/* + * 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.messaging.event.applications; + +import org.apache.stratos.messaging.event.Event; + +import java.io.Serializable; + +/** + * This event will be fired upon the application inactivated is detected. + */ +public class ApplicationInstanceInactivatedEvent extends Event implements Serializable { + private static final long serialVersionUID = 2625412714611885089L; + + private String appId; + private String instanceId; + + public ApplicationInstanceInactivatedEvent(String appId, String instanceId) { + this.appId = appId; + this.instanceId = instanceId; + } + + public String getAppId() { + return appId; + } + + public String getInstanceId() { + return instanceId; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatedEvent.java new file mode 100644 index 0000000..1d05ba3 --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatedEvent.java @@ -0,0 +1,48 @@ +/* + * 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.messaging.event.applications; + +import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; +import org.apache.stratos.messaging.event.Event; + +import java.io.Serializable; +import java.util.Set; + +/** + * This event will be fired upon the application terminated is detected. + */ +public class ApplicationInstanceTerminatedEvent extends Event implements Serializable { + private static final long serialVersionUID = 2625412714611885089L; + + private String appId; + private Set<ClusterDataHolder> clusterData; + + public ApplicationInstanceTerminatedEvent(String appId, Set<ClusterDataHolder> clusterData) { + this.appId = appId; + this.clusterData = clusterData; + } + + public String getAppId() { + return appId; + } + + public Set<ClusterDataHolder> getClusterData() { + return clusterData; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatingEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatingEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatingEvent.java new file mode 100644 index 0000000..23510dd --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceTerminatingEvent.java @@ -0,0 +1,48 @@ +/* + * 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.messaging.event.applications; + +import org.apache.stratos.messaging.event.Event; + +import java.io.Serializable; + +/** + * This event will be fired upon the application terminating is detected. + */ +public class ApplicationInstanceTerminatingEvent extends Event implements Serializable { + private static final long serialVersionUID = 2625412714611885089L; + + private String appId; + private String instanceId; + + + public ApplicationInstanceTerminatingEvent(String appId, String instanceId) { + this.appId = appId; + this.instanceId = instanceId; + + } + + public String getAppId() { + return appId; + } + + public String getInstanceId() { + return instanceId; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatedEvent.java deleted file mode 100644 index eaa54e3..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatedEvent.java +++ /dev/null @@ -1,48 +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.messaging.event.applications; - -import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; -import org.apache.stratos.messaging.event.Event; - -import java.io.Serializable; -import java.util.Set; - -/** - * This event will be fired upon the application terminated is detected. - */ -public class ApplicationTerminatedEvent extends Event implements Serializable { - private static final long serialVersionUID = 2625412714611885089L; - - private String appId; - private Set<ClusterDataHolder> clusterData; - - public ApplicationTerminatedEvent(String appId, Set<ClusterDataHolder> clusterData) { - this.appId = appId; - this.clusterData = clusterData; - } - - public String getAppId() { - return appId; - } - - public Set<ClusterDataHolder> getClusterData() { - return clusterData; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatingEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatingEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatingEvent.java deleted file mode 100644 index c1afb73..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationTerminatingEvent.java +++ /dev/null @@ -1,48 +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.messaging.event.applications; - -import org.apache.stratos.messaging.event.Event; - -import java.io.Serializable; - -/** - * This event will be fired upon the application terminating is detected. - */ -public class ApplicationTerminatingEvent extends Event implements Serializable { - private static final long serialVersionUID = 2625412714611885089L; - - private String appId; - private String instanceId; - - - public ApplicationTerminatingEvent(String appId, String instanceId) { - this.appId = appId; - this.instanceId = instanceId; - - } - - public String getAppId() { - return appId; - } - - public String getInstanceId() { - return instanceId; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInactivatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInactivatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInactivatedMessageProcessor.java index 48ecb8b..5a3ef91 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInactivatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInactivatedMessageProcessor.java @@ -24,7 +24,7 @@ import org.apache.stratos.messaging.domain.applications.Application; import org.apache.stratos.messaging.domain.applications.ApplicationStatus; import org.apache.stratos.messaging.domain.applications.Applications; import org.apache.stratos.messaging.domain.instance.ApplicationInstance; -import org.apache.stratos.messaging.event.applications.ApplicationInactivatedEvent; +import org.apache.stratos.messaging.event.applications.ApplicationInstanceInactivatedEvent; import org.apache.stratos.messaging.message.processor.MessageProcessor; import org.apache.stratos.messaging.message.processor.applications.updater.ApplicationsUpdater; import org.apache.stratos.messaging.util.Util; @@ -49,14 +49,14 @@ public class ApplicationInactivatedMessageProcessor extends MessageProcessor { public boolean process(String type, String message, Object object) { Applications applications = (Applications) object; - if (ApplicationInactivatedEvent.class.getName().equals(type)) { + if (ApplicationInstanceInactivatedEvent.class.getName().equals(type)) { // Return if applications has not been initialized if (!applications.isInitialized()) return false; // Parse complete message and build event - ApplicationInactivatedEvent event = (ApplicationInactivatedEvent) Util. - jsonToObject(message, ApplicationInactivatedEvent.class); + ApplicationInstanceInactivatedEvent event = (ApplicationInstanceInactivatedEvent) Util. + jsonToObject(message, ApplicationInstanceInactivatedEvent.class); ApplicationsUpdater.acquireWriteLockForApplication(event.getAppId()); @@ -77,7 +77,7 @@ public class ApplicationInactivatedMessageProcessor extends MessageProcessor { } } - private boolean doProcess(ApplicationInactivatedEvent event, Applications applications) { + private boolean doProcess(ApplicationInstanceInactivatedEvent event, Applications applications) { // Validate event against the existing applications Application application = applications.getApplication(event.getAppId()); http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatedMessageProcessor.java index f07c6f6..a6d2cd5 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatedMessageProcessor.java @@ -21,15 +21,11 @@ package org.apache.stratos.messaging.message.processor.applications; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.messaging.domain.applications.Applications; -import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; -import org.apache.stratos.messaging.event.applications.ApplicationTerminatedEvent; +import org.apache.stratos.messaging.event.applications.ApplicationInstanceTerminatedEvent; import org.apache.stratos.messaging.message.processor.MessageProcessor; import org.apache.stratos.messaging.message.processor.applications.updater.ApplicationsUpdater; -import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater; import org.apache.stratos.messaging.util.Util; -import java.util.Set; - /** * This processor responsible to process the application Inactivation even and update the Topology. */ @@ -50,14 +46,14 @@ public class ApplicationTerminatedMessageProcessor extends MessageProcessor { public boolean process(String type, String message, Object object) { Applications applications = (Applications) object; - if (ApplicationTerminatedEvent.class.getName().equals(type)) { + if (ApplicationInstanceTerminatedEvent.class.getName().equals(type)) { // Return if applications has not been initialized if (!applications.isInitialized()) return false; // Parse complete message and build event - ApplicationTerminatedEvent event = (ApplicationTerminatedEvent) Util. - jsonToObject(message, ApplicationTerminatedEvent.class); + ApplicationInstanceTerminatedEvent event = (ApplicationInstanceTerminatedEvent) Util. + jsonToObject(message, ApplicationInstanceTerminatedEvent.class); ApplicationsUpdater.acquireWriteLockForApplications(); @@ -78,7 +74,7 @@ public class ApplicationTerminatedMessageProcessor extends MessageProcessor { } } - private boolean doProcess(ApplicationTerminatedEvent event, Applications applications) { + private boolean doProcess(ApplicationInstanceTerminatedEvent event, Applications applications) { // check if required properties are available if (event.getAppId() == null) { http://git-wip-us.apache.org/repos/asf/stratos/blob/5f8b31ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatingMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatingMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatingMessageProcessor.java index e6cdd2b..33ad474 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatingMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationTerminatingMessageProcessor.java @@ -24,7 +24,7 @@ import org.apache.stratos.messaging.domain.applications.Application; import org.apache.stratos.messaging.domain.applications.ApplicationStatus; import org.apache.stratos.messaging.domain.applications.Applications; import org.apache.stratos.messaging.domain.instance.ApplicationInstance; -import org.apache.stratos.messaging.event.applications.ApplicationTerminatingEvent; +import org.apache.stratos.messaging.event.applications.ApplicationInstanceTerminatingEvent; import org.apache.stratos.messaging.message.processor.MessageProcessor; import org.apache.stratos.messaging.message.processor.applications.updater.ApplicationsUpdater; import org.apache.stratos.messaging.util.Util; @@ -49,14 +49,14 @@ public class ApplicationTerminatingMessageProcessor extends MessageProcessor { public boolean process(String type, String message, Object object) { Applications applications = (Applications) object; - if (ApplicationTerminatingEvent.class.getName().equals(type)) { + if (ApplicationInstanceTerminatingEvent.class.getName().equals(type)) { // Return if applications has not been initialized if (!applications.isInitialized()) return false; // Parse complete message and build event - ApplicationTerminatingEvent event = (ApplicationTerminatingEvent) Util. - jsonToObject(message, ApplicationTerminatingEvent.class); + ApplicationInstanceTerminatingEvent event = (ApplicationInstanceTerminatingEvent) Util. + jsonToObject(message, ApplicationInstanceTerminatingEvent.class); ApplicationsUpdater.acquireWriteLockForApplication(event.getAppId()); @@ -77,7 +77,7 @@ public class ApplicationTerminatingMessageProcessor extends MessageProcessor { } } - private boolean doProcess(ApplicationTerminatingEvent event, Applications applications) { + private boolean doProcess(ApplicationInstanceTerminatingEvent event, Applications applications) { // Validate event against the existing applications Application application = applications.getApplication(event.getAppId());
