moving Application Strucutre related classes to applications package
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e1534308 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e1534308 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e1534308 Branch: refs/heads/docker-grouping-merge Commit: e15343080254dc46756804fffd454bbbd6dacced Parents: ae257c1 Author: Isuru Haththotuwa <[email protected]> Authored: Fri Oct 31 12:06:42 2014 +0530 Committer: Isuru Haththotuwa <[email protected]> Committed: Fri Oct 31 12:06:42 2014 +0530 ---------------------------------------------------------------------- .../grouping/dependency/DependencyBuilder.java | 2 +- .../grouping/dependency/DependencyTree.java | 1 - .../context/ApplicationContextFactory.java | 5 +- .../grouping/topic/StatusEventPublisher.java | 1 + .../AutoscalerTopologyEventReceiver.java | 4 + .../monitor/ApplicationMonitorFactory.java | 2 + .../monitor/MonitorStatusEventBuilder.java | 4 +- .../monitor/ParentComponentMonitor.java | 6 +- .../monitor/application/ApplicationMonitor.java | 6 +- .../monitor/cluster/ClusterMonitor.java | 4 +- .../monitor/events/ApplicationStatusEvent.java | 2 +- .../monitor/events/GroupStatusEvent.java | 2 +- .../autoscaler/monitor/group/GroupMonitor.java | 7 +- .../status/checker/StatusChecker.java | 1 + .../parser/DefaultApplicationParser.java | 5 +- .../application/parser/ParserUtils.java | 2 +- .../impl/CloudControllerServiceImpl.java | 4 +- .../interfaces/ApplicationParser.java | 2 +- .../controller/topology/TopologyBuilder.java | 1 + .../topology/TopologyEventPublisher.java | 1 + .../StratosManagerTopologyEventReceiver.java | 2 +- .../domain/applications/Application.java | 124 +++++++++++ .../domain/applications/ApplicationStatus.java | 74 +++++++ .../domain/applications/ClusterDataHolder.java | 51 +++++ .../domain/applications/DependencyOrder.java | 52 +++++ .../messaging/domain/applications/Group.java | 112 ++++++++++ .../domain/applications/GroupStatus.java | 73 +++++++ .../domain/applications/ParentComponent.java | 212 +++++++++++++++++++ .../domain/applications/StartupOrder.java | 40 ++++ .../messaging/domain/topology/Application.java | 123 ----------- .../domain/topology/ApplicationStatus.java | 74 ------- .../domain/topology/ClusterDataHolder.java | 51 ----- .../domain/topology/DependencyOrder.java | 52 ----- .../messaging/domain/topology/Group.java | 111 ---------- .../messaging/domain/topology/GroupStatus.java | 73 ------- .../domain/topology/ParentComponent.java | 212 ------------------- .../messaging/domain/topology/StartupOrder.java | 40 ---- .../messaging/domain/topology/Topology.java | 1 + .../AppStatusApplicationTerminatedEvent.java | 2 +- .../event/topology/ApplicationCreatedEvent.java | 2 +- .../topology/ApplicationTerminatedEvent.java | 2 +- .../topology/ApplicationUndeployedEvent.java | 2 +- .../ApplicationActivatedMessageProcessor.java | 4 +- .../ApplicationCreatedMessageProcessor.java | 2 +- .../ApplicationInactivatedMessageProcessor.java | 4 +- .../ApplicationTerminatedMessageProcessor.java | 2 +- .../ApplicationTerminatingMessageProcessor.java | 4 +- .../ApplicationUndeployedMessageProcessor.java | 3 + .../CompleteTopologyMessageProcessor.java | 1 + .../topology/GroupActivatedProcessor.java | 3 + .../topology/GroupCreatedProcessor.java | 8 +- .../topology/GroupInActivateProcessor.java | 7 +- .../topology/GroupTerminatedProcessor.java | 6 +- .../topology/GroupTerminatingProcessor.java | 6 +- .../topology/locking/TopologyLockingTest.java | 2 + .../bean/util/converter/PojoConverter.java | 4 +- .../rest/endpoint/services/ServiceUtils.java | 3 + 57 files changed, 811 insertions(+), 795 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java index 4e67848..bf1233f 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java @@ -24,7 +24,7 @@ import org.apache.stratos.autoscaler.*; import org.apache.stratos.autoscaler.exception.DependencyBuilderException; import org.apache.stratos.autoscaler.grouping.dependency.context.ApplicationContext; import org.apache.stratos.autoscaler.grouping.dependency.context.ApplicationContextFactory; -import org.apache.stratos.messaging.domain.topology.*; +import org.apache.stratos.messaging.domain.applications.*; import java.util.Set; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyTree.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyTree.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyTree.java index 1ec686b..05769a6 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyTree.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyTree.java @@ -21,7 +21,6 @@ package org.apache.stratos.autoscaler.grouping.dependency; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.grouping.dependency.context.ApplicationContext; -import org.apache.stratos.messaging.domain.topology.Application; import java.util.ArrayList; import java.util.List; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java index 631e5d4..3ea4cd5 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java @@ -22,9 +22,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.Constants; import org.apache.stratos.autoscaler.grouping.dependency.DependencyTree; -import org.apache.stratos.messaging.domain.topology.ClusterDataHolder; -import org.apache.stratos.messaging.domain.topology.Group; -import org.apache.stratos.messaging.domain.topology.ParentComponent; +import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; +import org.apache.stratos.messaging.domain.applications.ParentComponent; /** * Factory to create new GroupContext or ClusterContext http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java index 9b39a52..eb6e084 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java @@ -4,6 +4,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.messaging.broker.publish.EventPublisher; import org.apache.stratos.messaging.broker.publish.EventPublisherPool; +import org.apache.stratos.messaging.domain.applications.*; import org.apache.stratos.messaging.domain.topology.*; import org.apache.stratos.messaging.event.Event; import org.apache.stratos.messaging.event.application.status.*; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java index 54a1461..fe4d9df 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java @@ -37,6 +37,10 @@ import org.apache.stratos.autoscaler.monitor.group.GroupMonitor; import org.apache.stratos.autoscaler.partition.PartitionManager; import org.apache.stratos.autoscaler.policy.PolicyManager; import org.apache.stratos.autoscaler.status.checker.StatusChecker; +import org.apache.stratos.messaging.domain.applications.Application; +import org.apache.stratos.messaging.domain.applications.ApplicationStatus; +import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; +import org.apache.stratos.messaging.domain.applications.GroupStatus; import org.apache.stratos.messaging.domain.topology.*; import org.apache.stratos.messaging.event.Event; import org.apache.stratos.messaging.event.topology.*; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java index 2ead896..debcf93 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java @@ -44,6 +44,8 @@ import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition; import org.apache.stratos.cloud.controller.stub.pojo.MemberContext; import org.apache.stratos.cloud.controller.stub.pojo.Properties; import org.apache.stratos.cloud.controller.stub.pojo.Property; +import org.apache.stratos.messaging.domain.applications.Application; +import org.apache.stratos.messaging.domain.applications.Group; import org.apache.stratos.messaging.domain.topology.*; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; import org.apache.stratos.messaging.util.Constants; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorStatusEventBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorStatusEventBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorStatusEventBuilder.java index 59bb4c0..dac53b4 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorStatusEventBuilder.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorStatusEventBuilder.java @@ -24,9 +24,9 @@ import org.apache.stratos.autoscaler.monitor.events.ApplicationStatusEvent; import org.apache.stratos.autoscaler.monitor.events.ClusterStatusEvent; import org.apache.stratos.autoscaler.monitor.events.GroupStatusEvent; import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent; -import org.apache.stratos.messaging.domain.topology.ApplicationStatus; +import org.apache.stratos.messaging.domain.applications.ApplicationStatus; import org.apache.stratos.messaging.domain.topology.ClusterStatus; -import org.apache.stratos.messaging.domain.topology.GroupStatus; +import org.apache.stratos.messaging.domain.applications.GroupStatus; /** * This will build the necessary monitor status events to be sent to the parent/child monitor http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java index 91d5275..c304027 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java @@ -28,12 +28,8 @@ import org.apache.stratos.autoscaler.grouping.dependency.DependencyBuilder; import org.apache.stratos.autoscaler.grouping.dependency.DependencyTree; import org.apache.stratos.autoscaler.grouping.dependency.context.ApplicationContext; import org.apache.stratos.autoscaler.grouping.topic.StatusEventPublisher; -import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent; import org.apache.stratos.autoscaler.status.checker.StatusChecker; -import org.apache.stratos.messaging.domain.topology.Application; -import org.apache.stratos.messaging.domain.topology.ApplicationStatus; -import org.apache.stratos.messaging.domain.topology.GroupStatus; -import org.apache.stratos.messaging.domain.topology.ParentComponent; +import org.apache.stratos.messaging.domain.applications.ParentComponent; import java.util.HashMap; import java.util.List; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java index 4632361..dbcbabb 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java @@ -31,10 +31,10 @@ import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent; import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent; import org.apache.stratos.autoscaler.monitor.events.MonitorTerminateAllEvent; import org.apache.stratos.autoscaler.status.checker.StatusChecker; -import org.apache.stratos.messaging.domain.topology.Application; -import org.apache.stratos.messaging.domain.topology.ApplicationStatus; +import org.apache.stratos.messaging.domain.applications.Application; +import org.apache.stratos.messaging.domain.applications.ApplicationStatus; import org.apache.stratos.messaging.domain.topology.ClusterStatus; -import org.apache.stratos.messaging.domain.topology.GroupStatus; +import org.apache.stratos.messaging.domain.applications.GroupStatus; import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState; import java.util.Collection; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java index 988f266..22b5e48 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java @@ -33,9 +33,9 @@ import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator; import org.apache.stratos.cloud.controller.stub.pojo.MemberContext; import org.apache.stratos.cloud.controller.stub.pojo.Properties; import org.apache.stratos.cloud.controller.stub.pojo.Property; -import org.apache.stratos.messaging.domain.topology.ApplicationStatus; +import org.apache.stratos.messaging.domain.applications.ApplicationStatus; import org.apache.stratos.messaging.domain.topology.ClusterStatus; -import org.apache.stratos.messaging.domain.topology.GroupStatus; +import org.apache.stratos.messaging.domain.applications.GroupStatus; import java.util.ArrayList; import java.util.List; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ApplicationStatusEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ApplicationStatusEvent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ApplicationStatusEvent.java index d92de77..83c764d 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ApplicationStatusEvent.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ApplicationStatusEvent.java @@ -18,7 +18,7 @@ */ package org.apache.stratos.autoscaler.monitor.events; -import org.apache.stratos.messaging.domain.topology.ApplicationStatus; +import org.apache.stratos.messaging.domain.applications.ApplicationStatus; /** * This will use to notify observers upon a application activation events received in Topology. http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/GroupStatusEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/GroupStatusEvent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/GroupStatusEvent.java index 7956914..7f21761 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/GroupStatusEvent.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/GroupStatusEvent.java @@ -18,7 +18,7 @@ */ package org.apache.stratos.autoscaler.monitor.events; -import org.apache.stratos.messaging.domain.topology.GroupStatus; +import org.apache.stratos.messaging.domain.applications.GroupStatus; /** * This will use to notify observers upon a group activation events received in Topology. http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java index 3623de9..d48c7ae 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java @@ -24,7 +24,6 @@ import org.apache.stratos.autoscaler.exception.DependencyBuilderException; import org.apache.stratos.autoscaler.exception.TopologyInConsistentException; import org.apache.stratos.autoscaler.grouping.topic.StatusEventPublisher; import org.apache.stratos.autoscaler.monitor.EventHandler; -import org.apache.stratos.autoscaler.monitor.Monitor; import org.apache.stratos.autoscaler.monitor.MonitorStatusEventBuilder; import org.apache.stratos.autoscaler.monitor.ParentComponentMonitor; import org.apache.stratos.autoscaler.monitor.events.GroupStatusEvent; @@ -32,10 +31,10 @@ import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent; import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent; import org.apache.stratos.autoscaler.monitor.events.MonitorTerminateAllEvent; import org.apache.stratos.autoscaler.status.checker.StatusChecker; -import org.apache.stratos.messaging.domain.topology.ApplicationStatus; +import org.apache.stratos.messaging.domain.applications.ApplicationStatus; import org.apache.stratos.messaging.domain.topology.ClusterStatus; -import org.apache.stratos.messaging.domain.topology.Group; -import org.apache.stratos.messaging.domain.topology.GroupStatus; +import org.apache.stratos.messaging.domain.applications.Group; +import org.apache.stratos.messaging.domain.applications.GroupStatus; import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState; /** http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java index a742b89..392a0d5 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java @@ -26,6 +26,7 @@ import org.apache.stratos.autoscaler.PartitionContext; import org.apache.stratos.autoscaler.grouping.topic.StatusEventPublisher; import org.apache.stratos.autoscaler.monitor.AbstractClusterMonitor; import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor; +import org.apache.stratos.messaging.domain.applications.*; import org.apache.stratos.messaging.domain.topology.*; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java index 06f749a..000a06a 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java @@ -33,7 +33,10 @@ import org.apache.stratos.cloud.controller.pojo.Cartridge; import org.apache.stratos.cloud.controller.pojo.application.*; import org.apache.stratos.cloud.controller.pojo.payload.MetaDataHolder; import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; -import org.apache.stratos.messaging.domain.topology.*; +import org.apache.stratos.messaging.domain.applications.Application; +import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; +import org.apache.stratos.messaging.domain.applications.DependencyOrder; +import org.apache.stratos.messaging.domain.applications.Group; import java.util.*; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java index 23b0bab..e6cdda0 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java @@ -22,7 +22,7 @@ package org.apache.stratos.cloud.controller.application.parser; import org.apache.stratos.cloud.controller.exception.ApplicationDefinitionException; import org.apache.stratos.cloud.controller.pojo.application.GroupContext; import org.apache.stratos.cloud.controller.pojo.application.SubscribableContext; -import org.apache.stratos.messaging.domain.topology.StartupOrder; +import org.apache.stratos.messaging.domain.applications.StartupOrder; import java.util.*; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java index 6e003b1..0c27316 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java @@ -39,12 +39,10 @@ import org.apache.stratos.cloud.controller.publisher.CartridgeInstanceDataPublis import org.apache.stratos.cloud.controller.registry.RegistryManager; import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; import org.apache.stratos.cloud.controller.topology.TopologyBuilder; -import org.apache.stratos.cloud.controller.topology.TopologyManager; import org.apache.stratos.cloud.controller.util.CloudControllerConstants; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; import org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator; -import org.apache.stratos.messaging.domain.topology.Application; -import org.apache.stratos.messaging.domain.topology.Member; +import org.apache.stratos.messaging.domain.applications.Application; import org.apache.stratos.messaging.domain.topology.MemberStatus; import org.apache.stratos.messaging.util.Constants; import org.jclouds.compute.ComputeService; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/ApplicationParser.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/ApplicationParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/ApplicationParser.java index 7bd471d..33e98f9 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/ApplicationParser.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/ApplicationParser.java @@ -22,7 +22,7 @@ package org.apache.stratos.cloud.controller.interfaces; import org.apache.stratos.cloud.controller.exception.ApplicationDefinitionException; import org.apache.stratos.cloud.controller.pojo.ApplicationClusterContext; import org.apache.stratos.cloud.controller.pojo.payload.MetaDataHolder; -import org.apache.stratos.messaging.domain.topology.Application; +import org.apache.stratos.messaging.domain.applications.Application; import java.util.Set; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java index 2cf4905..e31cf32 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java @@ -29,6 +29,7 @@ import org.apache.stratos.cloud.controller.publisher.CartridgeInstanceDataPublis import org.apache.stratos.cloud.controller.registry.RegistryManager; import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; +import org.apache.stratos.messaging.domain.applications.*; import org.apache.stratos.messaging.domain.topology.*; import org.apache.stratos.messaging.event.application.status.*; import org.apache.stratos.messaging.event.instance.status.InstanceActivatedEvent; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java index c9337d2..f96ba8e 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java @@ -26,6 +26,7 @@ import org.apache.stratos.cloud.controller.pojo.PortMapping; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; import org.apache.stratos.messaging.broker.publish.EventPublisher; import org.apache.stratos.messaging.broker.publish.EventPublisherPool; +import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; import org.apache.stratos.messaging.domain.topology.*; import org.apache.stratos.messaging.event.Event; import org.apache.stratos.messaging.event.instance.status.InstanceStartedEvent; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java index d4e90cc..d6cc395 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java @@ -26,7 +26,7 @@ import org.apache.stratos.manager.exception.ApplicationSubscriptionException; import org.apache.stratos.manager.manager.CartridgeSubscriptionManager; import org.apache.stratos.manager.subscription.ApplicationSubscription; import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel; -import org.apache.stratos.messaging.domain.topology.Application; +import org.apache.stratos.messaging.domain.applications.Application; import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.domain.topology.Service; import org.apache.stratos.messaging.event.Event; http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java new file mode 100644 index 0000000..e33de39 --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java @@ -0,0 +1,124 @@ +/* + * 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.domain.applications; + +import org.apache.commons.lang3.RandomStringUtils; +import org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior; +import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager; + +import java.util.*; + +/** + * Represents an Application in the Topology + */ + +public class Application extends ParentComponent implements LifeCycleStateTransitionBehavior<ApplicationStatus> { + + private static final long serialVersionUID = -5092959597171649688L; + // Unique id for the Application, defined in Application Definition + private String id; + // Key used for authentication (with metadata service, etc.) + private String key; + // tenant id + private int tenantId; + // tenant domain + private String tenantDomain; + // tenant admin user + private String tenantAdminUserName; + // Life cycle state manager + protected LifeCycleStateManager<ApplicationStatus> applicationStateManager; + + public Application (String id) { + super(); + this.id = id; + this.key = RandomStringUtils.randomAlphanumeric(16); + this.applicationStateManager = + new LifeCycleStateManager<ApplicationStatus>(ApplicationStatus.Created, id); + } + + public String getUniqueIdentifier() { + return id; + } + + public String getKey() { + return key; + } + + public int getTenantId() { + return tenantId; + } + + public void setTenantId(int tenantId) { + this.tenantId = tenantId; + } + + public String getTenantDomain() { + return tenantDomain; + } + + public void setTenantDomain(String tenantDomain) { + this.tenantDomain = tenantDomain; + } + + public String getTenantAdminUserName() { + return tenantAdminUserName; + } + + public void setTenantAdminUserName(String tenantAdminUserName) { + this.tenantAdminUserName = tenantAdminUserName; + } + + @Override + public boolean isStateTransitionValid(ApplicationStatus newState) { + return this.applicationStateManager.isStateTransitionValid(newState); + } + + @Override + public Stack<ApplicationStatus> getTransitionedStates() { + return this.applicationStateManager.getStateStack(); + } + + @Override + public ApplicationStatus getStatus() { + return this.applicationStateManager.getCurrentState(); + } + + @Override + public void setStatus(ApplicationStatus newState) { + this.applicationStateManager.changeState(newState); + } + + public boolean equals(Object other) { + if(other == null || !(other instanceof Application)) { + return false; + } + + if(this == other) { + return true; + } + + Application that = (Application)other; + return this.id.equals(that.id); + } + + public int hashCode () { + return id.hashCode(); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ApplicationStatus.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ApplicationStatus.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ApplicationStatus.java new file mode 100644 index 0000000..38ac01c --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ApplicationStatus.java @@ -0,0 +1,74 @@ +/* + * 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.domain.applications; + +import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +public enum ApplicationStatus implements LifeCycleState { + + Created (0) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Created, + ApplicationStatus.Active, ApplicationStatus.Terminating)); + } + }, + Active (1) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Active, + ApplicationStatus.Terminating, ApplicationStatus.Inactive)); + } + }, + Inactive (2) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Inactive, ApplicationStatus.Active, + ApplicationStatus.Terminating)); + } + }, + Terminating (3) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Terminating, + ApplicationStatus.Terminated)); + } + }, + Terminated (4) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Terminated)); + } + }; + + private int code; + + private ApplicationStatus (int code) { + this.code = code; + } + + public int getCode() { + return code; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java new file mode 100644 index 0000000..6a7e421 --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java @@ -0,0 +1,51 @@ +/* + * 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.domain.applications; + +import java.io.Serializable; + +/** + * Data Holder for a Cluster. + * Will hold the Service Type and Cluster Id. + */ + +public class ClusterDataHolder implements Serializable { + + // Service/Cartridge type + private String serviceType; + + // Cluster id + private String clusterId; + + public ClusterDataHolder (String serviceType, String clusterId) { + + this.serviceType = serviceType; + this.clusterId = clusterId; + } + + + public String getServiceType() { + return serviceType; + } + + public String getClusterId() { + return clusterId; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/DependencyOrder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/DependencyOrder.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/DependencyOrder.java new file mode 100644 index 0000000..9ece450 --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/DependencyOrder.java @@ -0,0 +1,52 @@ +/* + * 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.domain.applications; + +import java.io.Serializable; +import java.util.Set; + +public class DependencyOrder implements Serializable { + + private static final long serialVersionUID = -599600831844477527L; + + private Set<StartupOrder> startupOrders; + + private String terminationBehaviour; + + public DependencyOrder () { + + } + + public String getTerminationBehaviour() { + return terminationBehaviour; + } + + public void setTerminationBehaviour(String terminationBehaviour) { + this.terminationBehaviour = terminationBehaviour; + } + + public Set<StartupOrder> getStartupOrders() { + return startupOrders; + } + + public void setStartupOrders(Set<StartupOrder> startupOrders) { + this.startupOrders = startupOrders; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java new file mode 100644 index 0000000..1f4d323 --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java @@ -0,0 +1,112 @@ +/* + * 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.domain.applications; + +import org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior; +import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager; + +import java.util.Stack; + +/** + * Represents a Group/nested Group in an Application/Group + */ + +public class Group extends ParentComponent implements LifeCycleStateTransitionBehavior<GroupStatus> { + + private static final long serialVersionUID = 8347096598203655846L; + // Name of the Group, specified in Group Definition + private String name; + // Group alias + private String alias; + // Group deployment policy + private String deploymentPolicy; + // Group level autoscaling policy + private String autoscalingPolicy; + // Life cycle state manager + protected LifeCycleStateManager<GroupStatus> groupStateManager; + + public Group (String name, String alias) { + super(); + this.name = name; + this.alias = alias; + this.groupStateManager = new LifeCycleStateManager<GroupStatus>(GroupStatus.Created, alias); + } + + public String getUniqueIdentifier() { + return alias; + } + + public String getAlias() { + return alias; + } + + public String getDeploymentPolicy() { + return deploymentPolicy; + } + + public void setDeploymentPolicy(String deploymentPolicy) { + this.deploymentPolicy = deploymentPolicy; + } + + public String getAutoscalingPolicy() { + return autoscalingPolicy; + } + + public void setAutoscalingPolicy(String autoscalingPolicy) { + this.autoscalingPolicy = autoscalingPolicy; + } + + @Override + public boolean isStateTransitionValid(GroupStatus newState) { + return groupStateManager.isStateTransitionValid(newState); + } + + @Override + public Stack<GroupStatus> getTransitionedStates() { + return groupStateManager.getStateStack(); + } + + @Override + public GroupStatus getStatus() { + return groupStateManager.getCurrentState(); + } + + @Override + public void setStatus(GroupStatus newState) { + this.groupStateManager.changeState(newState); + } + + public boolean equals(Object other) { + if(other == null || !(other instanceof Group)) { + return false; + } + + if(this == other) { + return true; + } + + Group that = (Group)other; + return this.name.equals(that.name) && this.alias.equals(that.alias); + } + + public int hashCode () { + return name.hashCode() + alias.hashCode(); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/GroupStatus.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/GroupStatus.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/GroupStatus.java new file mode 100644 index 0000000..0079476 --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/GroupStatus.java @@ -0,0 +1,73 @@ +/* + * 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.domain.applications; + +import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +public enum GroupStatus implements LifeCycleState { + + Created(0) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Created, + GroupStatus.Active, GroupStatus.Terminating)); + } + }, + Active(1) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Active, + GroupStatus.Inactive, GroupStatus.Terminating)); + } + }, + Inactive(2) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Inactive, GroupStatus.Terminating)); + } + }, + Terminating(3) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Terminating, + GroupStatus.Terminated, GroupStatus.Created)); + } + }, + Terminated(4) { + @Override + public Set<LifeCycleState> getNextStates() { + return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Terminated)); + } + }; + + private int code; + + private GroupStatus(int code) { + this.code = code; + } + + public int getCode() { + return code; + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java new file mode 100644 index 0000000..3c2814f --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java @@ -0,0 +1,212 @@ +/* + * 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.domain.applications; + +import java.io.Serializable; +import java.util.*; + +/** + * Abstraction for a an entity that can have child entities + * in an Application withing the Topology + */ + +public abstract class ParentComponent implements Serializable { + + // Dependency Order + private DependencyOrder dependencyOrder; + // Group Map, key = Group.alias + private Map<String, Group> aliasToGroupMap; + // Cluster Id map, key = subscription alias for the cartridge type + private Map<String, ClusterDataHolder> aliasToClusterDataMap; + // Application status + + public ParentComponent () { + aliasToGroupMap = new HashMap<String, Group>(); + aliasToClusterDataMap = new HashMap<String, ClusterDataHolder>(); + } + + /** + * This method should be implemented in each concrete child class + * to return the unique identifier for each implementation + * ex.: group alias for a Group, app id for an Application + * + * @return unique identifier String + */ + public abstract String getUniqueIdentifier (); + + /** + * Adds a group + * + * @param group Group instance to be added + */ + public void addGroup(Group group) { + aliasToGroupMap.put(group.getUniqueIdentifier(), group); + } + + /** + * Setter for Group alias to Group map + * + * @param groupAliasToGroup Map, key = alias given to the Group, value = Group + */ + public void setGroups(Map<String, Group> groupAliasToGroup) { + aliasToGroupMap.putAll(groupAliasToGroup); + } + + /** + * Get the Group for the given alias in the context of the parent entity. + * Will not search recursively in the nested levels. + * + * @param groupAlias alias of the Group + * @return Group, if exists for the given alias, else null + */ + public Group getGroup(String groupAlias) { + return aliasToGroupMap.get(groupAlias); + } + + /** + * Get the Group for the given alias in the context of the parent entity. + * Will search recursively in the nested levels. + * + * @param groupAlias alias of the Group + * @return Group, if exists for the given alias, else null + */ + public Group getGroupRecursively(String groupAlias) { + + return travereAndCheckRecursively(aliasToGroupMap, groupAlias); + } + + private Group travereAndCheckRecursively (Map<String,Group> aliasToGroupMap, String groupAlias) { + + if (aliasToGroupMap.containsKey(groupAlias)) { + synchronized (aliasToGroupMap) { + if (aliasToGroupMap.containsKey(groupAlias)) { + return aliasToGroupMap.get(groupAlias); + } + } + } else { + for (Group group : aliasToGroupMap.values()) { + return travereAndCheckRecursively(group.getAliasToGroupMap(), groupAlias); + } + } + + return null; + } + + /** + * Getter for alias to Group map + * Will not search recursively in the nested levels. + * + * @return Map, key = alias given to the Group, value = Group + */ + public Map<String, Group> getAliasToGroupMap() { + return this.aliasToGroupMap; + } + + /** + * Getter for cluster alias to ClusterData map for this level + * + * @return Map, key = alias given to the cluster, value = ClusterData object + */ + public Map<String, ClusterDataHolder> getClusterDataMap() { + return this.aliasToClusterDataMap; + } + + /** + * Collection of Groups in this level + * + * @return Group Collection object, empty if no Groups are found + */ + public Collection<Group> getGroups() { + return aliasToGroupMap.values(); + } + + /** + * Setter for Dependency Order + * + * @param dependencyOrder Dependency Order object + */ + public void setDependencyOrder(DependencyOrder dependencyOrder) { + this.dependencyOrder = dependencyOrder; + } + + /** + * Getter for Dependency Order for this level + * + * @return Dependency Order object + */ + public DependencyOrder getDependencyOrder() { + return dependencyOrder; + } + + /** + * Setter for alias to Cluster Data map + * + * @param aliasToClusterData Map, key = alias given to the cluster, value = ClusterData object + */ + public void setClusterData(Map<String, ClusterDataHolder> aliasToClusterData) { + this.aliasToClusterDataMap.putAll(aliasToClusterData); + } + + /** + * Getter for Cluster Data instance for the given alias + * Will not search recursively in the nested levels. + * + * @param alias + * @return + */ + public ClusterDataHolder getClusterData(String alias) { + return aliasToClusterDataMap.get(alias); + } + + /** + * Collects the Cluster Data for the parent component and all the + * child components recursively + * + * @return Set of ClusterDataHolder objects if available, else null + */ + public Set<ClusterDataHolder> getClusterDataRecursively () { + + Set<ClusterDataHolder> appClusterData = new HashSet<ClusterDataHolder>(); + + // get top level Cluster Data + if (this.aliasToClusterDataMap != null && !this.aliasToClusterDataMap.isEmpty()) { + appClusterData.addAll(this.aliasToClusterDataMap.values()); + } + + // find other nested Cluster Data (in the Groups) + if (getGroups() != null) { + getClusterData(appClusterData, getGroups()); + } + + return appClusterData; + } + + private void getClusterData (Set<ClusterDataHolder> clusterData, Collection<Group> groups) { + + for (Group group : groups) { + if (group.getClusterDataMap() != null && !group.getClusterDataMap().isEmpty()) { + clusterData.addAll(group.getClusterDataMap().values()); + if (group.getGroups() != null) { + getClusterData(clusterData, group.getGroups()); + } + } + } + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/StartupOrder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/StartupOrder.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/StartupOrder.java new file mode 100644 index 0000000..83d583e --- /dev/null +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/StartupOrder.java @@ -0,0 +1,40 @@ +/* + * 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.domain.applications; + +import java.io.Serializable; +import java.util.List; + +public class StartupOrder implements Serializable { + + private List<String> startList; + + public StartupOrder (List<String> startList) { + this.startList = startList; + } + + public List<String> getStartList() { + return startList; + } + + public void setStartList(List<String> startList) { + this.startList = startList; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java deleted file mode 100644 index 0e4438b..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java +++ /dev/null @@ -1,123 +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.domain.topology; - -import org.apache.commons.lang3.RandomStringUtils; -import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager; - -import java.util.*; - -/** - * Represents an Application in the Topology - */ - -public class Application extends ParentComponent implements LifeCycleStateTransitionBehavior<ApplicationStatus> { - - private static final long serialVersionUID = -5092959597171649688L; - // Unique id for the Application, defined in Application Definition - private String id; - // Key used for authentication (with metadata service, etc.) - private String key; - // tenant id - private int tenantId; - // tenant domain - private String tenantDomain; - // tenant admin user - private String tenantAdminUserName; - // Life cycle state manager - protected LifeCycleStateManager<ApplicationStatus> applicationStateManager; - - public Application (String id) { - super(); - this.id = id; - this.key = RandomStringUtils.randomAlphanumeric(16); - this.applicationStateManager = - new LifeCycleStateManager<ApplicationStatus>(ApplicationStatus.Created, id); - } - - public String getUniqueIdentifier() { - return id; - } - - public String getKey() { - return key; - } - - public int getTenantId() { - return tenantId; - } - - public void setTenantId(int tenantId) { - this.tenantId = tenantId; - } - - public String getTenantDomain() { - return tenantDomain; - } - - public void setTenantDomain(String tenantDomain) { - this.tenantDomain = tenantDomain; - } - - public String getTenantAdminUserName() { - return tenantAdminUserName; - } - - public void setTenantAdminUserName(String tenantAdminUserName) { - this.tenantAdminUserName = tenantAdminUserName; - } - - @Override - public boolean isStateTransitionValid(ApplicationStatus newState) { - return this.applicationStateManager.isStateTransitionValid(newState); - } - - @Override - public Stack<ApplicationStatus> getTransitionedStates() { - return this.applicationStateManager.getStateStack(); - } - - @Override - public ApplicationStatus getStatus() { - return this.applicationStateManager.getCurrentState(); - } - - @Override - public void setStatus(ApplicationStatus newState) { - this.applicationStateManager.changeState(newState); - } - - public boolean equals(Object other) { - if(other == null || !(other instanceof Application)) { - return false; - } - - if(this == other) { - return true; - } - - Application that = (Application)other; - return this.id.equals(that.id); - } - - public int hashCode () { - return id.hashCode(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ApplicationStatus.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ApplicationStatus.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ApplicationStatus.java deleted file mode 100644 index 2173f86..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ApplicationStatus.java +++ /dev/null @@ -1,74 +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.domain.topology; - -import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -public enum ApplicationStatus implements LifeCycleState { - - Created (0) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Created, - ApplicationStatus.Active, ApplicationStatus.Terminating)); - } - }, - Active (1) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Active, - ApplicationStatus.Terminating, ApplicationStatus.Inactive)); - } - }, - Inactive (2) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Inactive, ApplicationStatus.Active, - ApplicationStatus.Terminating)); - } - }, - Terminating (3) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Terminating, - ApplicationStatus.Terminated)); - } - }, - Terminated (4) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(ApplicationStatus.Terminated)); - } - }; - - private int code; - - private ApplicationStatus (int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterDataHolder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterDataHolder.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterDataHolder.java deleted file mode 100644 index 70eab4c..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterDataHolder.java +++ /dev/null @@ -1,51 +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.domain.topology; - -import java.io.Serializable; - -/** - * Data Holder for a Cluster. - * Will hold the Service Type and Cluster Id. - */ - -public class ClusterDataHolder implements Serializable { - - // Service/Cartridge type - private String serviceType; - - // Cluster id - private String clusterId; - - public ClusterDataHolder (String serviceType, String clusterId) { - - this.serviceType = serviceType; - this.clusterId = clusterId; - } - - - public String getServiceType() { - return serviceType; - } - - public String getClusterId() { - return clusterId; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java deleted file mode 100644 index bdba59c..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java +++ /dev/null @@ -1,52 +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.domain.topology; - -import java.io.Serializable; -import java.util.Set; - -public class DependencyOrder implements Serializable { - - private static final long serialVersionUID = -599600831844477527L; - - private Set<StartupOrder> startupOrders; - - private String terminationBehaviour; - - public DependencyOrder () { - - } - - public String getTerminationBehaviour() { - return terminationBehaviour; - } - - public void setTerminationBehaviour(String terminationBehaviour) { - this.terminationBehaviour = terminationBehaviour; - } - - public Set<StartupOrder> getStartupOrders() { - return startupOrders; - } - - public void setStartupOrders(Set<StartupOrder> startupOrders) { - this.startupOrders = startupOrders; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java deleted file mode 100644 index 79ce4bc..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java +++ /dev/null @@ -1,111 +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.domain.topology; - -import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager; - -import java.util.Stack; - -/** - * Represents a Group/nested Group in an Application/Group - */ - -public class Group extends ParentComponent implements LifeCycleStateTransitionBehavior<GroupStatus> { - - private static final long serialVersionUID = 8347096598203655846L; - // Name of the Group, specified in Group Definition - private String name; - // Group alias - private String alias; - // Group deployment policy - private String deploymentPolicy; - // Group level autoscaling policy - private String autoscalingPolicy; - // Life cycle state manager - protected LifeCycleStateManager<GroupStatus> groupStateManager; - - public Group (String name, String alias) { - super(); - this.name = name; - this.alias = alias; - this.groupStateManager = new LifeCycleStateManager<GroupStatus>(GroupStatus.Created, alias); - } - - public String getUniqueIdentifier() { - return alias; - } - - public String getAlias() { - return alias; - } - - public String getDeploymentPolicy() { - return deploymentPolicy; - } - - public void setDeploymentPolicy(String deploymentPolicy) { - this.deploymentPolicy = deploymentPolicy; - } - - public String getAutoscalingPolicy() { - return autoscalingPolicy; - } - - public void setAutoscalingPolicy(String autoscalingPolicy) { - this.autoscalingPolicy = autoscalingPolicy; - } - - @Override - public boolean isStateTransitionValid(GroupStatus newState) { - return groupStateManager.isStateTransitionValid(newState); - } - - @Override - public Stack<GroupStatus> getTransitionedStates() { - return groupStateManager.getStateStack(); - } - - @Override - public GroupStatus getStatus() { - return groupStateManager.getCurrentState(); - } - - @Override - public void setStatus(GroupStatus newState) { - this.groupStateManager.changeState(newState); - } - - public boolean equals(Object other) { - if(other == null || !(other instanceof Group)) { - return false; - } - - if(this == other) { - return true; - } - - Group that = (Group)other; - return this.name.equals(that.name) && this.alias.equals(that.alias); - } - - public int hashCode () { - return name.hashCode() + alias.hashCode(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/e1534308/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/GroupStatus.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/GroupStatus.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/GroupStatus.java deleted file mode 100644 index fbbaebc..0000000 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/GroupStatus.java +++ /dev/null @@ -1,73 +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.domain.topology; - -import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -public enum GroupStatus implements LifeCycleState { - - Created(0) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Created, - GroupStatus.Active, GroupStatus.Terminating)); - } - }, - Active(1) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Active, - GroupStatus.Inactive, GroupStatus.Terminating)); - } - }, - Inactive(2) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Inactive, GroupStatus.Terminating)); - } - }, - Terminating(3) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Terminating, - GroupStatus.Terminated, GroupStatus.Created)); - } - }, - Terminated(4) { - @Override - public Set<LifeCycleState> getNextStates() { - return new HashSet<LifeCycleState>(Arrays.asList(GroupStatus.Terminated)); - } - }; - - private int code; - - private GroupStatus(int code) { - this.code = code; - } - - public int getCode() { - return code; - } - -}
