adding group scaling support for group definition

Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b96d97df
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b96d97df
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b96d97df

Branch: refs/heads/master
Commit: b96d97df60adc7ad46724a1ce00f82a72f1c83b1
Parents: ed9ee86
Author: reka <[email protected]>
Authored: Wed Nov 26 11:47:32 2014 +0530
Committer: reka <[email protected]>
Committed: Wed Nov 26 11:47:32 2014 +0530

----------------------------------------------------------------------
 .../parser/DefaultApplicationParser.java        |   5 +-
 .../applications/pojo/GroupContext.java         |  48 +-
 .../monitor/application/ApplicationMonitor.java |  49 +-
 .../application/ApplicationMonitorFactory.java  |   2 +-
 .../autoscaler/monitor/group/GroupMonitor.java  |   6 +-
 .../status/checker/StatusChecker.java           |   4 +-
 .../checker/group/GroupStatusProcessor.java     |   2 +-
 .../application/beans/GroupDefinition.java      |  48 +-
 .../messaging/domain/applications/Group.java    |  18 +
 .../domain/applications/ParentComponent.java    |  22 +-
 .../bean/util/converter/PojoConverter.java      |   5 +-
 .../src/main/resources/AutoScalerService.wsdl   | 531 ++++++++++---------
 .../main/resources/CloudControllerService.wsdl  | 396 +++++++-------
 13 files changed, 599 insertions(+), 537 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
index d984c29..c24dfe0 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
@@ -469,8 +469,11 @@ public class DefaultApplicationParser implements 
ApplicationParser {
         Group group = new Group(appId, groupCtxt.getName(), 
groupCtxt.getAlias());
 
         
group.setGroupScalingEnabled(isGroupScalingEnabled(groupCtxt.getName()));
+        group.setGroupMinInstances(groupCtxt.getGroupMinInstances());
+        group.setGroupMaxInstances(groupCtxt.getGroupMaxInstances());
+        group.setGroupScalingEnabled(groupCtxt.isGroupScalingEnabled());
+        
group.setGroupInstanceMonitoringEnabled(groupCtxt.isGroupInstanceMonitoringEnabled());
         group.setAutoscalingPolicy(groupCtxt.getAutoscalingPolicy());
-        //TODO *****group.setDeploymentPolicy(groupCtxt.getDeploymentPolicy());
         DependencyOrder dependencyOrder = new DependencyOrder();
         // create the Dependency Ordering
         String []  startupOrders = getStartupOrderForGroup(groupCtxt);

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
index 885cccc..1195252 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
@@ -29,7 +29,13 @@ public class GroupContext implements Serializable{
 
     private String alias;
 
-    private String deploymentPolicy;
+    private int groupMinInstances;
+
+    private int groupMaxInstances;
+
+    private boolean isGroupInstanceMonitoringEnabled;
+
+    private boolean isGroupScalingEnabled;
 
     private String autoscalingPolicy;
 
@@ -54,14 +60,6 @@ public class GroupContext implements Serializable{
         this.alias = alias;
     }
 
-    public String getDeploymentPolicy() {
-        return deploymentPolicy;
-    }
-
-    public void setDeploymentPolicy(String deploymentPolicy) {
-        this.deploymentPolicy = deploymentPolicy;
-    }
-
     public String getAutoscalingPolicy() {
         return autoscalingPolicy;
     }
@@ -85,4 +83,36 @@ public class GroupContext implements Serializable{
     public void setGroupContexts(GroupContext[] groupContexts) {
         this.groupContexts = groupContexts;
     }
+
+    public int getGroupMinInstances() {
+        return groupMinInstances;
+    }
+
+    public void setGroupMinInstances(int groupMinInstances) {
+        this.groupMinInstances = groupMinInstances;
+    }
+
+    public int getGroupMaxInstances() {
+        return groupMaxInstances;
+    }
+
+    public void setGroupMaxInstances(int groupMaxInstances) {
+        this.groupMaxInstances = groupMaxInstances;
+    }
+
+    public boolean isGroupInstanceMonitoringEnabled() {
+        return isGroupInstanceMonitoringEnabled;
+    }
+
+    public void setGroupInstanceMonitoringEnabled(boolean 
isGroupInstanceMonitoringEnabled) {
+        this.isGroupInstanceMonitoringEnabled = 
isGroupInstanceMonitoringEnabled;
+    }
+
+    public boolean isGroupScalingEnabled() {
+        return isGroupScalingEnabled;
+    }
+
+    public void setGroupScalingEnabled(boolean isGroupScalingEnabled) {
+        this.isGroupScalingEnabled = isGroupScalingEnabled;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/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 b0b6c4e..65a21f8 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
@@ -26,10 +26,12 @@ import 
org.apache.stratos.autoscaler.exception.TopologyInConsistentException;
 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.cluster.AbstractClusterMonitor;
-import org.apache.stratos.autoscaler.monitor.events.*;
-import org.apache.stratos.autoscaler.status.checker.StatusChecker;
-import org.apache.stratos.messaging.domain.applications.*;
+import org.apache.stratos.autoscaler.monitor.events.ApplicationStatusEvent;
+import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent;
+import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
+import org.apache.stratos.messaging.domain.applications.Application;
+import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
+import org.apache.stratos.messaging.domain.applications.GroupStatus;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState;
 
@@ -79,8 +81,8 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
             } else {
                 // check if this Group has nested sub Groups. If so, traverse 
them as well
                 if (monitor instanceof ParentComponentMonitor) {
-                    return findGroupMonitor(id, 
((ParentComponentMonitor)monitor).
-                                                            
getAliasToActiveMonitorsMap().values());
+                    return findGroupMonitor(id, ((ParentComponentMonitor) 
monitor).
+                            getAliasToActiveMonitorsMap().values());
                 }
             }
         }
@@ -163,40 +165,19 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
     }
 
     private void startMinimumDependencies(Application application)
-                                                            throws 
TopologyInConsistentException {
-        DeploymentPolicy policy = application.getComponentDeploymentPolicy();
-        int min = 1;
-        if(policy != null) {
-           min = policy.getMin();
-        }
-        if(application.getInstanceContextCount() >= min) {
+            throws TopologyInConsistentException {
+        //There will be one application instance
+        if (application.getInstanceContextCount() > 0) {
             startDependency(application);
         } else {
-            if(application.getInstanceContextCount() > 0) {
-                startDependency(application);
-                int remainingInstancesToBeStarted = min - 
application.getInstanceContextCount();
-                while (remainingInstancesToBeStarted > 0) {
-                    createInstanceAndStartDependency(application);
-                    remainingInstancesToBeStarted--;
-                }
-
-            } else {
-                //No available instances in the Applications. Need to start 
them all
-                int instancesToBeStarted = min;
-                while(instancesToBeStarted > 0) {
-                    createInstanceAndStartDependency(application);
-                    instancesToBeStarted--;
-
-                }
-            }
-
-
+            //No available instances in the Applications. Need to start them 
all
+            createInstanceAndStartDependency(application);
         }
     }
 
     private void createInstanceAndStartDependency(Application application)
-                                                            throws 
TopologyInConsistentException {
-        String instanceId  = createApplicationInstance(application);
+            throws TopologyInConsistentException {
+        String instanceId = createApplicationInstance(application);
         startDependency(application, instanceId);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
index 73f274d..11c1026 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
@@ -115,7 +115,7 @@ public class ApplicationMonitorFactory {
                         groupMonitor.setHasGroupScalingDependent(true);
                     }
                 }
-                //TODO*********** make it sync with the topology
+                //TODO*********** make it sync with the topology in the restart
 
                 /*if (group.getStatus() != groupMonitor.getStatus()) {
                     //updating the status, if the group is not in created 
state when creating group Monitor

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/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 ac1deb4..eeb21c6 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
@@ -223,11 +223,7 @@ public class GroupMonitor extends ParentComponentMonitor 
implements EventHandler
 
     private void startMinimumDependencies(Group group, String parentInstanceId)
             throws TopologyInConsistentException {
-        DeploymentPolicy policy = group.getComponentDeploymentPolicy();
-        int min = 1;
-        if(policy != null) {
-            min = policy.getMin();
-        }
+        int min = group.getGroupMinInstances();
         if(group.getInstanceContextCount() >= min) {
             startDependency(group);
         } else {

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/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 0d94110..4bfe40a 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
@@ -411,9 +411,7 @@ public class StatusChecker {
                 activeGroupInstances++;
             }
         }
-        if(activeGroupInstances >= 
group.getComponentDeploymentPolicy().getMin()) {
-            return true;
-        }
+
         return false;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/group/GroupStatusProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/group/GroupStatusProcessor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/group/GroupStatusProcessor.java
index 19a43c9..87d0481 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/group/GroupStatusProcessor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/group/GroupStatusProcessor.java
@@ -68,7 +68,7 @@ public abstract class GroupStatusProcessor extends 
StatusProcessor {
             } else {
                 //Checking the minimum of the group instances to be satisfied
                 List<InstanceContext> contexts = 
group.getInstanceContextsWithParentId(instanceId);
-                int minGroupInstances = 
group.getComponentDeploymentPolicy().getMin();
+                int minGroupInstances = group.getGroupMinInstances();
                 int sameStateInstances = 0;
                 for(InstanceContext context1 : contexts) {
                    
if(((GroupInstanceContext)context1).getStatus().equals(status)) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/GroupDefinition.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/GroupDefinition.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/GroupDefinition.java
index d7418c7..7986f75 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/GroupDefinition.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/GroupDefinition.java
@@ -29,7 +29,13 @@ public class GroupDefinition {
 
     private String alias;
 
-    private String deploymentPolicy;
+    private int groupMinInstances;
+
+    private int groupMaxInstances;
+
+    private boolean isGroupScalingEnabled;
+
+    private boolean isGroupInstanceMonitoringEnabled;
 
     private String autoscalingPolicy;
 
@@ -53,14 +59,6 @@ public class GroupDefinition {
         this.alias = alias;
     }
 
-    public String getDeploymentPolicy() {
-        return deploymentPolicy;
-    }
-
-    public void setDeploymentPolicy(String deploymentPolicy) {
-        this.deploymentPolicy = deploymentPolicy;
-    }
-
     public String getAutoscalingPolicy() {
         return autoscalingPolicy;
     }
@@ -84,4 +82,36 @@ public class GroupDefinition {
     public void setSubGroups(List<GroupDefinition> subGroups) {
         this.subGroups = subGroups;
     }
+
+    public int getGroupMinInstances() {
+        return groupMinInstances;
+    }
+
+    public void setGroupMinInstances(int groupMinInstances) {
+        this.groupMinInstances = groupMinInstances;
+    }
+
+    public int getGroupMaxInstances() {
+        return groupMaxInstances;
+    }
+
+    public void setGroupMaxInstances(int groupMaxInstances) {
+        this.groupMaxInstances = groupMaxInstances;
+    }
+
+    public boolean isGroupScalingEnabled() {
+        return isGroupScalingEnabled;
+    }
+
+    public void setGroupScalingEnabled(boolean isGroupScalingEnabled) {
+        this.isGroupScalingEnabled = isGroupScalingEnabled;
+    }
+
+    public boolean isGroupInstanceMonitoringEnabled() {
+        return isGroupInstanceMonitoringEnabled;
+    }
+
+    public void setGroupInstanceMonitoringEnabled(boolean 
isGroupInstanceMonitoringEnabled) {
+        this.isGroupInstanceMonitoringEnabled = 
isGroupInstanceMonitoringEnabled;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/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
index 7e82de8..f49306f 100644
--- 
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
@@ -34,6 +34,10 @@ public class Group extends 
ParentComponent<GroupInstanceContext> {
     private String name;
     // Group alias
     private String alias;
+    //minimum group instances
+    private int groupMinInstances;
+    //maximum group instances
+    private int groupMaxInstances;
     // Group level autoscaling policy
     private String autoscalingPolicy;
     // application id
@@ -108,5 +112,19 @@ public class Group extends 
ParentComponent<GroupInstanceContext> {
     }
 
 
+    public int getGroupMinInstances() {
+        return groupMinInstances;
+    }
+
+    public void setGroupMinInstances(int groupMinInstances) {
+        this.groupMinInstances = groupMinInstances;
+    }
 
+    public int getGroupMaxInstances() {
+        return groupMaxInstances;
+    }
+
+    public void setGroupMaxInstances(int groupMaxInstances) {
+        this.groupMaxInstances = groupMaxInstances;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/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
index 09d5578..7e225ef 100644
--- 
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
@@ -33,8 +33,6 @@ public abstract class ParentComponent<T extends 
InstanceContext> implements Seri
 
     // Dependency Order
     private DependencyOrder dependencyOrder;
-    //Deployment policy group/application
-    private DeploymentPolicy deploymentPolicy;
     // Group Map, key = Group.alias
     private final Map<String, Group> aliasToGroupMap;
     // Cluster Id map, key = subscription alias for the cartridge type
@@ -43,10 +41,12 @@ public abstract class ParentComponent<T extends 
InstanceContext> implements Seri
     protected Map<String, T> instanceIdToInstanceContextMap;
     // flag for Group level scaling
     private boolean isGroupScalingEnabled;
-
+    //flag for group instance level monitoring
+    private boolean isGroupInstanceMonitoringEnabled;
 
     public ParentComponent () {
         this.isGroupScalingEnabled = false;
+        this.isGroupInstanceMonitoringEnabled = false;
         aliasToGroupMap = new HashMap<String, Group>();
         aliasToClusterDataMap = new HashMap<String, ClusterDataHolder>();
     }
@@ -298,14 +298,6 @@ public abstract class ParentComponent<T extends 
InstanceContext> implements Seri
         return instanceIdToInstanceContextMap;
     }
 
-    public DeploymentPolicy getComponentDeploymentPolicy() {
-        return deploymentPolicy;
-    }
-
-    public void setDeploymentPolicy(DeploymentPolicy deploymentPolicy) {
-        this.deploymentPolicy = deploymentPolicy;
-    }
-
     public boolean isGroupScalingEnabled() {
         return isGroupScalingEnabled;
     }
@@ -313,4 +305,12 @@ public abstract class ParentComponent<T extends 
InstanceContext> implements Seri
     public void setGroupScalingEnabled(boolean isGroupScalingEnabled) {
         this.isGroupScalingEnabled = isGroupScalingEnabled;
     }
+
+    public boolean isGroupInstanceMonitoringEnabled() {
+        return isGroupInstanceMonitoringEnabled;
+    }
+
+    public void setGroupInstanceMonitoringEnabled(boolean 
isGroupInstanceMonitoringEnabled) {
+        this.isGroupInstanceMonitoringEnabled = 
isGroupInstanceMonitoringEnabled;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b96d97df/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
index 8a2b168..a98eb9a 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
@@ -1003,7 +1003,10 @@ public class PojoConverter {
             GroupContext groupContext = new GroupContext();
             groupContext.setName(groupDefinition.getName());
             groupContext.setAlias(groupDefinition.getAlias());
-            
groupContext.setDeploymentPolicy(groupDefinition.getDeploymentPolicy());
+            
groupContext.setGroupMaxInstances(groupDefinition.getGroupMaxInstances());
+            
groupContext.setGroupMinInstances(groupDefinition.getGroupMinInstances());
+            
groupContext.setGroupScalingEnabled(groupDefinition.isGroupScalingEnabled());
+            
groupContext.setGroupInstanceMonitoringEnabled(groupDefinition.isGroupInstanceMonitoringEnabled());
             
groupContext.setAutoscalingPolicy(groupDefinition.getAutoscalingPolicy());
             // nested Subscribables
             if (groupDefinition.getSubscribables() != null) {

Reply via email to