Repository: stratos
Updated Branches:
  refs/heads/4.0.0-grouping d7d226cb5 -> 5efc02521


more cleanup of grouping pco artifacts


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

Branch: refs/heads/4.0.0-grouping
Commit: 5efc02521c90c08e0c9928f63242acb23c667910
Parents: d7d226c
Author: Martin Eppel <[email protected]>
Authored: Mon Oct 27 19:44:28 2014 -0700
Committer: Martin Eppel <[email protected]>
Committed: Mon Oct 27 19:46:59 2014 -0700

----------------------------------------------------------------------
 .../autoscaler/ComplexApplicationContext.java   | 916 -------------------
 .../impl/CloudControllerServiceImpl.java        |   1 -
 .../controller/topology/TopologyBuilder.java    | 109 +--
 .../controller/topology/TopologyManager.java    |   2 -
 .../application/utils/ApplicationUtils.java     |   2 -
 .../messaging/domain/topology/Topology.java     |   7 +-
 .../util/CompositeApplicationBuilder.java       | 226 -----
 ...ompositeApplicationCreatedEventListener.java |  26 -
 ...ompositeApplicationRemovedEventListener.java |  26 -
 ...ositeApplicationCreatedMessageProcessor.java |  98 --
 ...ositeApplicationRemovedMessageProcessor.java | 100 --
 11 files changed, 10 insertions(+), 1503 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ComplexApplicationContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ComplexApplicationContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ComplexApplicationContext.java
deleted file mode 100644
index 84df0fb..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ComplexApplicationContext.java
+++ /dev/null
@@ -1,916 +0,0 @@
-package org.apache.stratos.autoscaler;
-
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.domain.topology.*;
-import 
org.apache.stratos.messaging.domain.topology.util.CompositeApplicationBuilder;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-
-import java.util.*;
-
-
-public class ComplexApplicationContext {
-       
-       static {
-               is_kill_all_enabled_flag = new HashMap<String, Boolean>();
-               is_in_kill_all_transition = new HashSet<String>();
-       }
-       
-       private static Map<String, Boolean> is_kill_all_enabled_flag;
-       private static HashSet<String> is_in_kill_all_transition;
-       
-
-       
-    private static final Log log = 
LogFactory.getLog(ComplexApplicationContext.class);  
-
-    // return value of true will bring up new instance (all startup 
dependencies are up and active)
-    public static boolean checkStartupDependencies (String clusterId) {
-       String serviceType = "undefined";
-       if (log.isDebugEnabled()) {
-                       log.debug("checkStartupDependenciesY: serviceType " + 
serviceType + "  + clusterId "+ clusterId);
-               }
-       return checkServiceDependencies (serviceType, clusterId, false);
-    }
-    
-    
-    public boolean checkStartupDependencies (String serviceType, String 
clusterId) {
-       if (log.isDebugEnabled()) {
-                       log.debug("checkStartupDependenciesY: serviceType " + 
serviceType + "  + clusterId "+ clusterId);
-               }
-       return checkServiceDependencies (serviceType, clusterId, false);
-    }
-    
-
-    // return false will terminate instances
-    public boolean checkKillDependencies (String clusterId) {
-       String serviceType = "undefined";
-       if (log.isDebugEnabled()) {
-                       log.debug("checkKillDependenciesY: serviceType " + 
serviceType + "  + clusterId "+ clusterId);
-               }
-       return checkKillTerminateDependencies (serviceType, clusterId, true);
-    }
-    
-    public boolean checkKillDependencies (String serviceType, String 
clusterId) {
-       if (log.isDebugEnabled()) {
-                       log.debug("checkKillDependenciesY: serviceType " + 
serviceType + "  + clusterId "+ clusterId);
-               }
-       return checkKillTerminateDependencies (serviceType, clusterId, true);
-    }
-    
-    
-    public static boolean checkServiceDependencies(String serviceType, String 
clusterId, boolean kill_flag) {
-       
-       
-               if (log.isDebugEnabled()) {
-                       log.debug("ServiceGroupContext:checkServiceDependencies 
for service with XY " + 
-                               " serviceType "  + serviceType + 
-                       " clusterId: " + clusterId  + " kill_flag: " + 
kill_flag);
-               }               
-
-               CompositeApplicationBuilder builder = new 
CompositeApplicationBuilder();
-               CompositeApplication complexApplication = 
builder.buildCompositeApplication(TopologyManager.getTopology(), null);
-               
-
-               // no app configured
-               if (complexApplication == null) {
-                       return true;
-               }
-               
-               String aServiceId = serviceType;
-               if (log.isDebugEnabled()) {
-                       log.debug("checking dependencies for service alias " + 
aServiceId);
-               }
-
-               if (aServiceId == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("invalid serviceType null for cluster 
 " + clusterId + "skipping dependency check (returning true)");
-                       }
-                       return true;
-               } 
-               
-               List<GroupTemp> service_type_groupTemps = 
complexApplication.findAllGroupsForServiceType(serviceType);
-
-               String clusterGroupFromClusterId = 
extractClusterGroupFromClusterId(clusterId);
-               
-               if (clusterGroupFromClusterId == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("cluster id " + clusterId + " has 
incompatible name to extract group, skipping dependency check (return true)");
-                       }
-               }
-               
-               for (GroupTemp service_type_groupTemp : 
service_type_groupTemps) {
-                       // check if cluster is in the group
-                       if (log.isDebugEnabled()) {
-                               log.debug(" checking if cluster  " + clusterId 
+ " is in the group " + service_type_groupTemp.getAlias() +
-                                               "extracted group from clusterId 
is " + clusterGroupFromClusterId);
-                       }
-                       if 
(service_type_groupTemp.getAlias().equals(clusterGroupFromClusterId)) {
-                               boolean result_flag = 
checkServiceDependenciesForServiceType (serviceType, clusterId, kill_flag, 
service_type_groupTemp);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("cluster is " + clusterId + " 
is in the group " + service_type_groupTemp.getAlias() + " and startup 
dependency check is " + result_flag);
-                               }
-                               return result_flag;
-                       }
-               }
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("no matching group found for cluster  " + 
clusterId + " skipping dependency check (return true)" );
-               }
-               
-       return true;
-       
-    }
-    
-    public static boolean checkServiceDependenciesForServiceType(String 
serviceType, String clusterId, boolean kill_flag, GroupTemp home_groupTemp) {
-               
-       String aServiceId = serviceType;
-               
-               if (home_groupTemp == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug(" lone cluster without group " + 
aServiceId + "skip checking and return true (no dependency check)" );
-                       }
-                       return true;
-               }
-               
-               
-               if 
(ComplexApplicationContext.isInKillAllTransition(getKillInTransitionKey(serviceType,
 home_groupTemp.getAlias()))) {
-                       if (log.isDebugEnabled()) {
-                               log.debug(" subscribable " + aServiceId + " is 
inKillAll transition, not spawning a new instance" );
-                       }
-                       return false;
-               } else {
-                       if (log.isDebugEnabled()) {
-                               log.debug(" subscribable " + aServiceId + " is 
not inKillAll transition, continue with dependenciy check" );
-                       }
-               }
-
-               Map<String, String> downstreamDependencies = 
home_groupTemp.getDownStreamDependenciesAsMap(aServiceId);
-               
-               
-               if (downstreamDependencies == null || 
downstreamDependencies.size() == 0) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("serviceType " + aServiceId + " has 
no dependencies, returning true (no kill)");
-                       }
-                       return true;
-               } 
-               
-               if (log.isDebugEnabled()) {
-                       StringBuffer buf = new StringBuffer();
-                       buf.append("downstreamdependencies list: [ ");
-                       
-                       
-                       Set<String> downstream_keys = 
downstreamDependencies.keySet();
-                       for (String c : downstream_keys) {
-                               String d = downstreamDependencies.get(c);
-                               buf.append(c + ", in group:  
").append(downstreamDependencies.get(d));
-                       }
-                       
-                       buf.append("] ").append(" serviceId 
").append(aServiceId);
-                       log.debug(buf.toString());
-               } 
-
-               
-               List<String> in_active_downstreams = 
getServiceSet_StateInActive(downstreamDependencies);
-               if (in_active_downstreams.size() > 0) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("found inactive downstream 
dependencies for serviceType " + aServiceId + " returning false");
-                               for (String in_active : in_active_downstreams) {
-                                       log.debug("inactive downstream 
dependency " + in_active + " for " + aServiceId);
-                               }
-                       }
-                       
-                       return false;
-               }
-
-               if (log.isDebugEnabled()) {
-                       log.debug("returning true for dependency check on 
serviceType " + serviceType);
-               }
-               return true;
-       }    
-    
-    // return false will terminate instances
-    public boolean checkKillTerminateDependencies (String serviceType, String 
clusterId, boolean kill_flag) {
-               if (log.isDebugEnabled()) {
-                       
log.debug("ServiceGroupContext:checkKillTerminateDependencies for service with 
X " + 
-                               " serviceType "  + serviceType + 
-                       " clusterId: " + clusterId  + " kill_flag: " + 
kill_flag);
-               }               
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("getting app from builder ");
-               }
-               
-               CompositeApplicationBuilder builder = new 
CompositeApplicationBuilder();
-               CompositeApplication complexApplication = 
builder.buildCompositeApplication(TopologyManager.getTopology(), null);
-               
-               String aServiceId = serviceType;
-               if (log.isDebugEnabled()) {
-                       log.debug("checking dependencies for service alias " + 
-                       aServiceId);
-               }
-
-               if (aServiceId == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("invalid serviceType null for cluster 
 " + clusterId + "skipping dependency check (returning true)");
-                       }
-                       return true;
-               } 
-
-
-               // no app configured, don't terminate
-               if (complexApplication == null) {
-                       return true;
-               }
-
-               List<GroupTemp> service_type_groupTemps = 
complexApplication.findAllGroupsForServiceType(serviceType);
-
-               String clusterGroupFromClusterId = 
extractClusterGroupFromClusterId(clusterId);
-               
-               if (clusterGroupFromClusterId == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("cluster id " + clusterId + " has 
incompatible name to extract group, skipping terminate dependency check (return 
true)");
-                       }
-               }
-               
-               for (GroupTemp service_type_groupTemp : 
service_type_groupTemps) {
-                       // check if cluster is in the group
-                       if (log.isDebugEnabled()) {
-                               log.debug(" checking if cluster  " + clusterId 
+ " is in the group " + service_type_groupTemp.getAlias() +
-                                               "extracted group from clusterId 
is " + clusterGroupFromClusterId);
-                       }
-                       if 
(service_type_groupTemp.getAlias().equals(clusterGroupFromClusterId)) {
-                               boolean result_flag = 
checkKillTerminateDependenciesForServiceType (serviceType, clusterId, kill_flag,
-                        service_type_groupTemp, complexApplication);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("cluster is " + clusterId + " 
is in the group " + service_type_groupTemp.getAlias() + " and kill dependency 
check is " + result_flag);
-                               }
-                               return result_flag;
-                       }
-               }
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("no matching group found for cluster  " + 
clusterId + " skipping terminate dependency check (return true)" );
-               }
-               
-               return true;
-    }
-
-    // return false will terminate instances
-    public boolean checkKillTerminateDependenciesForServiceType (String 
serviceType, String clusterId, boolean kill_flag, 
-               GroupTemp home_groupTemp, CompositeApplication 
complexApplication ) {
-               
-       String aServiceId = serviceType;
-               
-               if (home_groupTemp == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug(" lone cluster without top level 
group " + aServiceId + "skip checking and return true (no kill)" );
-                       }
-                       return true;
-               } else if (home_groupTemp.findGroup(aServiceId) == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug(" lone cluster without group " + 
aServiceId + "skip checking and return true (no kill)" );
-                       }
-                       return true;
-               }
-
-               
-               //Group home_group = 
complexApplication.getTop_level().findGroup(aServiceId);
-
-               if (log.isDebugEnabled()) {
-                       log.debug("checking  downstream dependencies for " + 
aServiceId );
-               }
-               Map<String, String> downstreamDependencies = null;
-               downstreamDependencies = 
home_groupTemp.getDownStreamDependenciesAsMap(aServiceId);
-               if (log.isDebugEnabled()) {
-                       StringBuffer buf = new StringBuffer();
-                       buf.append("downstreamdependencies list: [ ");
-                       
-                       if (downstreamDependencies != null && 
downstreamDependencies.keySet().size() > 0) {
-                               Set<String> downstream_keys = 
downstreamDependencies.keySet();
-                               for (String c : downstream_keys) {
-                                       String d = 
downstreamDependencies.get(c);
-                                       buf.append(c + ", in group:  
").append(d).append(" ");
-                               }
-                               buf.append("] ").append(" serviceId 
").append(aServiceId);
-                       } else {
-                               buf.append(" downstreamDependencies is null ");
-                       }
-                       log.debug(buf.toString());
-               }
-               
-               
-               
-               if (log.isDebugEnabled()) {
-                               log.debug("checking  upstream dependencies for 
" + aServiceId );
-               }
-               // 2. get upstream dependencies
-               Map<String, String> upstreamDependencies = 
home_groupTemp.getUpstreamDependenciesAsMap(aServiceId);
-               
-               if (log.isDebugEnabled()) {
-                       StringBuffer buf = new StringBuffer();
-                       buf.append("upstreamdependencies list: [ ");
-                       
-                       if (upstreamDependencies != null && 
upstreamDependencies.keySet().size() > 0) {
-                               Set<String> upstream_keys = 
upstreamDependencies.keySet();
-                               for (String c : upstream_keys) {
-                                       String d = upstreamDependencies.get(c);
-                                       buf.append(c + ", in group:  
").append(upstreamDependencies.get(d)).append(" ");
-                               }
-                               
-                               buf.append("] ").append(" serviceId 
").append(aServiceId);
-                       } else {
-                               buf.append(" upstreamDependencies is null ");
-                       }
-                       log.debug(buf.toString());
-               }
-;      
-               List<String> in_active_upstreams = 
this.getServiceSet_StateInActive(upstreamDependencies);
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("getting list of InActive upstream 
dependencies for  " + aServiceId + " with size of "  + 
in_active_upstreams.size());
-               }       
-               
-               String kill_behavior = Dependencies.KILL_UNDEFINED;
-               // return false if instances should be terminated, true if not
-               for (String serviceTypeAlias : in_active_upstreams) {
-                       String gr_alias = 
upstreamDependencies.get(serviceTypeAlias); 
-                       GroupTemp gr = 
complexApplication.getGroupFromGroupAlias(gr_alias);
-                       if (gr != null) {
-                               
-                               kill_behavior = 
gr.getDependencies().getKill_behavior();
-                               if 
(kill_behavior.equals(Dependencies.KILL_ALL)) {
-                                       if 
(ComplexApplicationContext.isKillAllEnabled(gr.getAlias())) {
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug(" 
isKillAllEnabled is enabled on upstream (kill) for group " + gr.getAlias() + ", 
disabling kilAll and preventing " + 
-                                                             " serviceType " + 
aServiceId + " in group " + gr.getAlias() + 
-                                                                       " to 
spin up a new instance (setting killAllTransitionFlag) ");
-                                               }
-                                           // adding to the killalltransition 
flag
-                                               // building key from alias + 
group alias
-                                               
ComplexApplicationContext.setKillAllTransitionFlag(getKillInTransitionKey(serviceTypeAlias,gr.getAlias()));
-                                               // building key from alias + 
group alias
-                                               
ComplexApplicationContext.setKillAllTransitionFlag(getKillInTransitionKey(aServiceId,
 home_groupTemp.getAlias()));
-                                               return false;
-                                       } else {
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug(" 
isKillAllEnabled is disabled on upstream (no kill) for group " + gr.getAlias() 
);
-                                               }
-                                               return true;
-                                       }
-                               } else if 
(kill_behavior.equals(Dependencies.KILL_DEPENDENTS)) {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug(" continue to check 
upstream for kill_flag " + kill_behavior + " for group " + gr.getAlias() );
-                                       }
-                               // continue to check
-                               } else if 
(kill_behavior.equals(Dependencies.KILL_NONE)) {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug(" continue to check 
upstream for kill_flag " + kill_behavior + " for group " + gr.getAlias() );
-                                       }
-                                       // continue to check
-                               } else {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug(" continue to check 
upstream for invalide kill_flag " + kill_behavior + " for group " + 
gr.getAlias() );
-                                       }
-                                       //continue to check
-                               }
-                       } else {
-                               // skip 
-                               if (log.isDebugEnabled()) {
-                                       log.debug(" no group found for " + 
serviceTypeAlias + " while loopig over in_active_upstreams" );
-                               }
-                       }
-                       
-               }
-               
-               // check kill_all_enabled flag
-               Map<String, String> all = 
complexApplication.getAllInPathOfAsMap(aServiceId, home_groupTemp);
-               String [] group_with_kill_all_aliases = 
home_groupTemp.findAllGroupsWithKill2(all, Dependencies.KILL_ALL);
-               // "persistent flag for each group"
-               this.updateEnableKillAllFlag(all, group_with_kill_all_aliases);
-               
-               //List<String> in_active_downstreams = 
this.getClusterSet_StateInActive(dependeciesAliasArray);jj
-               List<String> in_active_downstreams = 
this.getServiceSet_StateInActive(downstreamDependencies);
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("getting list of InActive downstream 
dependencies for  " + aServiceId + " with size of "  + 
in_active_downstreams.size());
-               }
-               
-               kill_behavior = Dependencies.KILL_UNDEFINED;
-               for (String alias : in_active_downstreams) {
-                       GroupTemp gr = home_groupTemp.findGroup(alias);
-                       if (gr !=null) {
-                               kill_behavior = 
gr.getDependencies().getKill_behavior();
-                               if (kill_behavior.equals(Dependencies.KILL_ALL) 
) {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug(" return true on 
downstream for kill_flag " + kill_behavior + " for group " + gr.getAlias() );
-                                       }
-                                       if 
(ComplexApplicationContext.isKillAllEnabled(gr.getAlias())) {
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug(" 
isKillAllEnabled is enabled on downstream (kill) for group " + gr.getAlias() +
-                                                                         " 
setting killAllTransitionFlag for" + alias);
-                                               }
-                                               // adding to the 
killalltransition flag
-                                               
ComplexApplicationContext.setKillAllTransitionFlag(alias);
-                                               return false;
-                                       } else {
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug(" 
isKillAllEnabled is disabled on downstream (no kill) for group " + 
gr.getAlias() );
-                                               }
-                                               return true;
-                                       }
-                               } else if 
(kill_behavior.equals(Dependencies.KILL_DEPENDENTS)) {
-                                       if (log.isDebugEnabled()) {
-                                               //log.debug(" continue 
downstream for kill_flag " + kill_behavior + " for group " + gr.getAlias() );
-                                               log.debug(" downstream 
service(s) is inactive for aServiceId " + aServiceId + 
-                                                               " returning 
false (kill) and terminating cluster members" );
-                                       }
-                                       return false;
-                               } else if 
(kill_behavior.equals(Dependencies.KILL_NONE)) {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug(" continue downstream 
to check for kill_flag " + kill_behavior + " for group " + gr.getAlias() );
-                                       }
-                                       // continue to check
-                               } else {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug(" continue downstream 
to check for invalide kill_flag " + kill_behavior + " for group " + 
gr.getAlias() );
-                                       }
-                                       //continue to check
-                               }
-                       } else {
-                               // skip 
-                               if (log.isDebugEnabled()) {
-                                       log.debug(" no group found for " + 
alias + " while loopig over in_active_downstreams" );
-                               }
-                       }
-                       
-               }
-               
-               // this cluster
-               GroupTemp gr = home_groupTemp.findGroup(aServiceId);
-               if (gr == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug(" cluster without group, should not 
reach this code ? for " + aServiceId );
-                       }
-                       return true;
-               } 
-               
-               kill_behavior = gr.getDependencies().getKill_behavior();
-               
-               if (kill_behavior.equals(Dependencies.KILL_DEPENDENTS)) {
-                       if (log.isDebugEnabled()) {
-                               log.debug(Dependencies.KILL_DEPENDENTS + " 
check if any downstream cluster is inactive for aServiceId " + aServiceId );
-                       }
-                       if (in_active_downstreams.size() > 0) {
-                               if (log.isDebugEnabled()) {
-                                       log.debug(" downstream cluster(s) is 
inactive for aServiceId " + aServiceId + 
-                                                       " returning false 
(kill) and terminating cluster members" );
-                               }
-                               return false;
-                       } else {
-                               if (log.isDebugEnabled()) {
-                                       log.debug(" no downstream cluster(s) is 
inactive for aServiceId " + aServiceId + 
-                                                       " returning true (no 
kill)" );
-                               }
-                               return true;
-                       }
-               }
-               
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("returning true (no kill) for down and 
upstream dependency check on clusterId " + aServiceId);
-               }
-               return true;
-       }
-       
-    
-       private static boolean hasClusterActiveMember (Cluster cluster) {
-               boolean flag = false;
-        if(cluster.isLbCluster()){
-               if (log.isDebugEnabled()) {
-                       log.debug("cluster member is lbCluster, not checking " 
+ cluster);
-               }
-        }else{
-               if (log.isDebugEnabled()) {
-               log.debug("checking member acitve for " + 
-                               " clusterId: " + cluster.getClusterId() + 
-                               " serviceId: " + cluster.getServiceName());
-               }
-
-                       Collection<Member> members = cluster.getMembers();
-                       for (Member member:members) {
-                               if (log.isDebugEnabled()) {
-                                       log.debug("listing members while 
checking if active" + 
-                                                       member.getMemberId() + 
-                                                       " private Ip: " + 
member.getMemberIp() + 
-                                                       " public Ip:" + 
member.getMemberPublicIp() + 
-                                                       " member state: " + 
member.getStatus());
-                               }
-                               if 
(member.getStatus().equals(MemberStatus.Activated)) {
-                                       log.debug("member ACTIVE found :" + 
member.getMemberId());
-                                       flag = true;
-                                       break;
-                               }
-                       }
-                        
-            }
-        return flag;
-    }
-       
-       
-       
-       private static String extractAlias(String clusterId) {
-               String [] s = clusterId.split("\\.");
-               if (log.isDebugEnabled())  {
-                       log.debug("clusterId alias is " + clusterId + " size: " 
+ s.length);
-               }
-               if (s.length == 0) {
-                       return null;
-               } 
-               if (log.isDebugEnabled())  {
-                       log.debug("clusterId alias is " + clusterId + " alias: 
" + s[0]);
-               }
-               return s[0];
-       }
-       
-       private static String extractClusterGroupFromClusterId(String 
clusterId) {
-               String sub1 = extractAlias(clusterId);
-               if (sub1 == null) {
-                       return null;
-               }
-               
-               String [] s = sub1.split("-");
-               if (log.isDebugEnabled())  {
-                       log.debug("clusterGroup alias is " + sub1 + " size: " + 
s.length);
-               }
-               if (s.length == 0) {
-                       return null;
-               } 
-               if (log.isDebugEnabled())  {
-                       log.debug("cluster " + clusterId + " is in group " +  
s[0]);
-               }
-               return s[0];
-       }
-       
-
-       
-       private void updateEnableKillAllFlag(Map<String, 
String>all_dependencies, String [] group_with_kill_all_aliases) {
-               if (log.isDebugEnabled()) {
-                       log.debug("updating enable_kill_flag ");
-               }
-               if (group_with_kill_all_aliases == null)  {
-                       return;
-               }
-               //if (isClusterSet_StateActive(all_dependencies)) { //
-               if (isServiceSet_StateActive(all_dependencies)) {
-                       for (String alias : group_with_kill_all_aliases) {
-                               
ComplexApplicationContext.setKillAllEnabled(alias);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("enable  enable_kill_flag for 
subscribable" + alias);
-                               }
-                       }
-               //} else if (isClusterSet_StateInActive(all_dependencies)) {
-               } else if (isServiceSet_StateInActive(all_dependencies)) {
-                       for (String alias : group_with_kill_all_aliases) {
-                               
ComplexApplicationContext.resetKillAllEnabled(alias);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("disable  enable_kill_flag 
for subscribable" + alias);
-                               }
-                       }
-                       
-                       // resetting killalltransition flag for all 
subscribables
-                       Set<String> key_set = all_dependencies.keySet();
-                       for (String serviceTypeAlias : key_set) {
-                               String group_alias = 
all_dependencies.get(serviceTypeAlias);
-                               
ComplexApplicationContext.resetKillAllTransitionFlag(getKillInTransitionKey(serviceTypeAlias,
 group_alias));
-                               if (log.isDebugEnabled()) {
-                                       log.debug("resetting  enable_kill_flag, 
is_in_kill_all_transition for subscribable " + serviceTypeAlias + " in group " 
+ group_alias);
-                               }
-                       }
-                       
-               } else {
-                       // do nothing
-                       if (log.isDebugEnabled()) {
-                               log.debug("leaving enable_kill_flag, 
is_in_kill_all_transition unchanged ");
-                       }
-               }
-               
-       }
-       
-       private static String getKillInTransitionKey(String serviceTypeAlias, 
String gr_alias) {
-               return serviceTypeAlias + gr_alias;
-       }
-
-       
-       private boolean isServiceSet_StateActive(Map<String, 
String>serviceTypes) {
-               List<String> result = getServiceSet_StateActive(serviceTypes);
-               if (result.size() == serviceTypes.size()) {
-                       return true;
-               } 
-               
-               return false;
-       }
-       
-       private boolean isServiceSet_StateInActive(Map<String, String> 
serviceTypes) {
-               List<String> result = getServiceSet_StateInActive(serviceTypes);
-               if (result.size() == serviceTypes.size()) {
-                       return true;
-               } 
-               
-               return false;
-       }
-       
-       
-       private static List<String> getServiceSet_StateInActive(Map<String, 
String> serviceTypesMap) {
-               List<String> result = new ArrayList<String> ();
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("checking ServiceSet_StateInActive " + 
serviceTypesMap.size());
-               }
-               
-               if (serviceTypesMap == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("skipping getting set of InActive 
services, serviceTypes is null ");
-                       }
-                       return result;
-               } 
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("getting set of InActive clusters for 
serviceTypes (length)" + serviceTypesMap.size());
-               }
-               
-               
-               Collection<Service> services = 
TopologyManager.getTopology().getServices();
-               
-               Set<String> serviceTypes = serviceTypesMap.keySet();
-               
-               for (String serviceType : serviceTypes) {
-                       boolean hasServiceFound = false;
-                       for(Service service : services) {
-                               String serviceTypeGroup = 
serviceTypesMap.get(serviceType);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("checking inactive state for 
service " + service.getServiceName() + 
-                                                       " with nr_of_clusters: 
" + service.getClusters().size() + 
-                                                       " against serviceType " 
+ serviceType + " in group " + serviceTypeGroup);
-                               }
-                               if 
(serviceType.equals(service.getServiceName())) {
-                                       // matching service type  - check if 
has active cluster
-                                       if (log.isDebugEnabled()) {
-                                               log.debug("matching service 
types, checking clusters for service " + serviceType);
-                                       }
-                                       hasServiceFound = true;
-                                       Collection<Cluster> clusters = 
service.getClusters();
-                                       boolean hasClusterWithActiveMember = 
false;
-                                       if (clusters.size() > 0) {
-                                               // at least one cluster has to 
exist for service to exist 
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("service " + 
service.getServiceName() + " has at least 1 cluster ");
-                                               }
-                                               for (Cluster cluster : 
clusters) {
-                                                       String clusterGroup = 
extractClusterGroupFromClusterId(cluster.getClusterId());
-                                                       if 
(log.isDebugEnabled()) {
-                                                               
log.debug("checking (inactive) cluster state for  " + cluster.getClusterId() + 
" (in group " + clusterGroup + ")" +
-                                                                               
" and serviceType " + serviceType + " (in group " + serviceTypeGroup + ")");
-                                                       }
-                                                       // TODO if 
(hasClusterActiveMember (cluster)) {
-                                                       // check group cluster 
is in 
-                                                       
-                                                       if (clusterGroup != 
null && clusterGroup.equals(serviceTypeGroup)) {
-                                                               if 
(hasClusterActiveMember (cluster)) { 
-                                                                       
hasClusterWithActiveMember = true;
-                                                                       if 
(log.isDebugEnabled()) {
-                                                                               
log.debug("found active cluster for service " + cluster.getClusterId() + " in 
group " + serviceTypeGroup);
-                                                                       }
-                                                                       break;
-                                                               }
-                                                       }
-                                               }
-                                       } else {
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("service " + 
service.getServiceName() + " in group " + serviceTypeGroup + " has no cluster, 
adding as inactive service ");
-                                                       
hasClusterWithActiveMember = false;
-                                               }
-                                       }
-                                       
-                                       if (!hasClusterWithActiveMember) {
-                                               result.add(serviceType);
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("service has 
not a clutser with active member, adding " + serviceType + " as inactive");
-                                               }
-                                       }
-                               } else {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug("service mismatch 
between " + service.getServiceName() + " and servicetype " + serviceType + " 
continue to search ");
-                                       }
-                               }
-                               
-                       }
-                       // covers the case that service hasn't be deployed yet
-                       if (!hasServiceFound) {
-                               result.add(serviceType);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("no matching service found 
for " + serviceType + " adding as inactive");
-                               }
-                       }
-               }
-
-               return result;
-       }
-       
-       
-       private List<String> getServiceSet_StateActive (Map<String, String> 
serviceTypesMap) {
-               List<String> result = new ArrayList<String> ();
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("checking ServiceSet_StateActive " + 
serviceTypesMap.size());
-               }
-               
-               if (serviceTypesMap == null) {
-                       if (log.isDebugEnabled()) {
-                               log.debug("skipping getting set of Active 
services, serviceTypes is null ");
-                       }
-                       return result;
-               } 
-               
-               if (log.isDebugEnabled()) {
-                       log.debug("getting set of Active clusters for 
serviceTypes (length)" + serviceTypesMap.size());
-               }
-               
-               
-               Collection<Service> services = 
TopologyManager.getTopology().getServices();
-       
-               Set<String> serviceTypes = serviceTypesMap.keySet();
-               
-               for (String serviceType : serviceTypes) {
-                       boolean hasServiceFound = false;
-                       for(Service service : services) {
-                               String serviceTypeGroup = 
serviceTypesMap.get(serviceType);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("checking active state for 
service " + service.getServiceName() + 
-                                                       " with nr_of_clusters: 
" + service.getClusters().size() + 
-                                                       " against serviceType " 
+ serviceType + " in group " + serviceTypeGroup);
-                               }
-                               if 
(serviceType.equals(service.getServiceName())) {
-                                       // matching service type  - check if 
has active cluster
-                                       if (log.isDebugEnabled()) {
-                                               log.debug("matching service 
types, checking clusters for service " + serviceType);
-                                       }
-                                       hasServiceFound = true;
-                                       Collection<Cluster> clusters = 
service.getClusters();
-                                       boolean hasClusterWithActiveMember = 
false;
-                                       if (clusters.size() > 0) {
-                                               // at least one cluster has to 
exist for service to exist 
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("service " + 
service.getServiceName() + " has at least 1 cluster ");
-                                               }
-                                               for (Cluster cluster : 
clusters) {
-                                                       String clusterGroup = 
extractClusterGroupFromClusterId(cluster.getClusterId());
-                                                       if 
(log.isDebugEnabled()) {
-                                                               
log.debug("checking (active) cluster state for  " + cluster.getClusterId() + " 
(in group " + clusterGroup + ")" +
-                                                                               
" and serviceType " + serviceType + " (in group " + serviceTypeGroup + ")");
-                                                       }
-                                                       
-                                                       if (clusterGroup != 
null && clusterGroup.equals(serviceTypeGroup) && hasClusterActiveMember 
(cluster)) {
-                                                               
hasClusterWithActiveMember = true;
-                                                               if 
(log.isDebugEnabled()) {
-                                                                       
log.debug("found active cluster for service " + cluster.getClusterId() + " in 
group " + serviceTypeGroup +
-                                                                               
        " , adding as active service");
-                                                               }
-                                                               
result.add(serviceType);
-                                                               break;
-                                                       }
-                                               }
-                                       } else {
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("service " + 
service.getServiceName() + " has no cluster, skipping service ");
-                                                       
hasClusterWithActiveMember = false;
-                                               }
-                                       }
-                                       
-                                       if (!hasClusterWithActiveMember) {;
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("service has 
not a clutser with active member, skipping " + serviceType + " as active 
service");
-                                               }
-                                       }
-                               } else {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug("service mismatch 
between " + service.getServiceName() + " and servicetype " + serviceType + " 
continue to search ");
-                                       }
-                               }
-                               
-                       }
-                       // covers the case that service hasn't be deployed yet
-                       if (!hasServiceFound) {
-                               if (log.isDebugEnabled()) {
-                                       log.debug("no matching service found 
for " + serviceType + " skipping as active service");
-                               }
-                       }
-               }
-
-               return result;
-       }
-       
-       /*
-        * get a list of clusters based on the subscription alias name
-        */
-       private List<Cluster> getClusters (String [] clusterAliases) {
-               List<Cluster> clusters = new ArrayList<Cluster>();
-               
-               for (String alias : clusterAliases) {
-                       Cluster cluster = getClusterFromAlias(alias);
-                       if (cluster != null) {
-                               clusters.add(cluster);
-                       } else {
-                               if (log.isDebugEnabled()) {
-                                       log.debug("getting a (inactive) cluster 
retrieved as null for alias " + alias);
-                               }
-                       }
-               }
-               return clusters;
-       }
-       
-       /*
-        * get a cluster based on the subscription alias name
-        */
-       private Cluster getClusterFromAlias(String findClusterId) {
-               Cluster result = null;
-               Collection<Service> services = 
TopologyManager.getTopology().getServices();
-               for(Service service : services) {
-                       // extract list of clusters, clusterId -> alias
-                       if (log.isDebugEnabled()) {
-                               
log.debug("ServiceGroupContext:calculateKillBehaviorFlag:service:" + 
service.getServiceName());
-                       }
-                       
-                       for(Cluster cluster : service.getClusters()) {
-                               String clusterId = cluster.getClusterId();
-                               String clusterIdAlias = 
this.extractAlias(clusterId);
-                               if (log.isDebugEnabled()) {
-                                       log.debug("looping over cluster " +  
clusterId + 
-                                                       " extracted alias " + 
clusterIdAlias);
-                               }
-                               
-                               if (clusterIdAlias != null && 
findClusterId.equals(clusterIdAlias)) {
-                                       return cluster;
-                               } else {
-                                       if (log.isDebugEnabled()) {
-                                               log.debug(" ignoring cluster " 
+ clusterId + " in cluster check for " + findClusterId);
-                                       }
-                               }
-
-                       }
-               }
-               return result;
-       }
-       
-       private static void setKillAllEnabled(String groupId ) { 
-       ComplexApplicationContext.is_kill_all_enabled_flag.put(groupId, true);
-    }
-       
-    private static void resetKillAllEnabled(String groupId ) { 
-       // all cartridges are terminated after kill_all 
-       ComplexApplicationContext.is_kill_all_enabled_flag.put(groupId, false);
-    }
-    
-    private static void resetKillAllTransitionFlag(String alias) {
-       ComplexApplicationContext.is_in_kill_all_transition.remove(alias);
-    }
-    
-    private static void setKillAllTransitionFlag(String alias) {
-       ComplexApplicationContext.is_in_kill_all_transition.add(alias);
-    }
-    
-    public static synchronized Boolean isKillAllEnabled(String groupId) {
-       Boolean flag = false;
-       if (ComplexApplicationContext.is_kill_all_enabled_flag == null) {
-               if (log.isDebugEnabled()) {
-                               log.debug(" creating new 
is_kill_all_enabled_flag");
-                       }
-               ComplexApplicationContext.is_kill_all_enabled_flag = new 
HashMap<String, Boolean>();
-       } 
-        flag = ComplexApplicationContext.is_kill_all_enabled_flag.get(groupId);
-        if (flag == null) {
-               if (log.isDebugEnabled()) {
-                               log.debug(" is_kill_all_enabled_flag not 
initialized for " + groupId + " initializing with true");
-                       }
-               
-               ComplexApplicationContext.setKillAllEnabled(groupId);
-               flag = 
ComplexApplicationContext.is_kill_all_enabled_flag.get(groupId);
-        }
-        return flag;
-    }
-    
-    
-    public static synchronized Boolean isInKillAllTransition(String key) {
-       if (ComplexApplicationContext.is_in_kill_all_transition == null) {
-               if (log.isDebugEnabled()) {
-                               log.debug(" creating new 
is_in_kill_all_transition");
-                       }
-               ComplexApplicationContext.is_in_kill_all_transition = new 
HashSet<String>();
-       } 
-        if (ComplexApplicationContext.is_in_kill_all_transition.contains(key)) 
{
-               return true;
-        }
-        return false;
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/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 0b322f8..6a337ba 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
@@ -44,7 +44,6 @@ 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.ConfigCompositeApplication;
 import org.apache.stratos.messaging.domain.topology.Member;
 import org.apache.stratos.messaging.domain.topology.MemberStatus;
 import org.apache.stratos.messaging.util.Constants;

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/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 f4606b8..e715130 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
@@ -30,7 +30,6 @@ 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.topology.*;
-import 
org.apache.stratos.messaging.domain.topology.util.CompositeApplicationBuilder;
 import org.apache.stratos.messaging.event.application.status.*;
 import 
org.apache.stratos.messaging.event.application.status.AppStatusApplicationActivatedEvent;
 import 
org.apache.stratos.messaging.event.application.status.AppStatusApplicationCreatedEvent;
@@ -65,6 +64,7 @@ public class TopologyBuilder {
             log.warn(String.format("Cartridge list is empty"));
             return;
         }
+        
         try {
 
             TopologyManager.acquireWriteLock();
@@ -99,7 +99,7 @@ public class TopologyBuilder {
     public static void handleServiceRemoved(List<Cartridge> cartridgeList) {
         Topology topology = TopologyManager.getTopology();
 
-        for (Cartridge cartridge : cartridgeList) {
+        for (Cartridge cartridge : cartridgeList) { 
             if (topology.getService(cartridge.getType()).getClusters().size() 
== 0) {
                 if (topology.serviceExists(cartridge.getType())) {
                     try {
@@ -286,27 +286,6 @@ public class TopologyBuilder {
             return;
         }
 
-        //grouping
-
-        if (log.isDebugEnabled()) {
-            log.debug("checking group id in ToplogyBuilder for member started 
event");
-        }
-
-        CompositeApplicationBuilder builder = new 
CompositeApplicationBuilder();
-        String appAlias = "compositeApplicationAlias";
-        CompositeApplication app = builder.buildCompositeApplication(topology, 
appAlias);
-        if (app != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder found composite app for " + 
appAlias);
-            }
-            String clusterId = instanceStartedEvent.getClusterId();
-            String groupAlias = 
app.extractClusterGroupFromClusterId(clusterId);
-            instanceStartedEvent.setGroupId(groupAlias);
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder  setting groupAlias " + groupAlias 
+ " for instance started event for cluster " + clusterId);
-            }
-        }
-
         try {
             TopologyManager.acquireWriteLock();
             // try update lifecycle state
@@ -348,23 +327,6 @@ public class TopologyBuilder {
             return;
         }
 
-        // grouping
-
-        CompositeApplicationBuilder builder = new 
CompositeApplicationBuilder();
-        String appAlias = "compositeApplicationAlias";
-        CompositeApplication app = builder.buildCompositeApplication(topology, 
appAlias);
-        if (app != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder found composite app for member 
activated " + appAlias);
-            }
-            String clusterId = instanceActivatedEvent.getClusterId();
-            String groupAlias = 
app.extractClusterGroupFromClusterId(clusterId);
-            instanceActivatedEvent.setGroupId(groupAlias);
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder  setting groupAlias " + groupAlias 
+ " for instance activated event for cluster " + clusterId);
-            }
-        }
-
 
         Member member = 
cluster.getMember(instanceActivatedEvent.getMemberId());
 
@@ -437,27 +399,7 @@ public class TopologyBuilder {
             return;
         }
 
-        //grouping
-
-        if (log.isDebugEnabled()) {
-            log.debug("checking group id in ToplogyBuilder for member started 
event");
-        }
-
-        CompositeApplicationBuilder builder = new 
CompositeApplicationBuilder();
-        String appAlias = "compositeApplicationAlias";
-        CompositeApplication app = builder.buildCompositeApplication(topology, 
appAlias);
-        if (app != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder found composite app for " + 
appAlias);
-            }
-            String clusterId = instanceReadyToShutdownEvent.getClusterId();
-            String groupAlias = 
app.extractClusterGroupFromClusterId(clusterId);
-            instanceReadyToShutdownEvent.setGroupId(groupAlias);
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder  setting groupAlias " + groupAlias 
+ " for instance ready shutdown event for cluster " + clusterId);
-            }
-        }
-
+        
         Member member = 
cluster.getMember(instanceReadyToShutdownEvent.getMemberId());
         if (member == null) {
             log.warn(String.format("Member %s does not exist",
@@ -521,28 +463,6 @@ public class TopologyBuilder {
         }
 
 
-        //grouping
-
-        if (log.isDebugEnabled()) {
-            log.debug("checking group id in ToplogyBuilder for member started 
event");
-        }
-
-        CompositeApplicationBuilder builder = new 
CompositeApplicationBuilder();
-        String appAlias = "compositeApplicationAlias";
-        CompositeApplication app = builder.buildCompositeApplication(topology, 
appAlias);
-        if (app != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder found composite app for " + 
appAlias);
-            }
-            String clusterId = instanceMaintenanceModeEvent.getClusterId();
-
-            String groupAlias = 
app.extractClusterGroupFromClusterId(clusterId);
-            instanceMaintenanceModeEvent.setGroupId(groupAlias);
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder  setting groupAlias " + groupAlias 
+ " for instance ready shutdown event for cluster " + clusterId);
-            }
-        }
-
         MemberMaintenanceModeEvent memberMaintenanceModeEvent = new 
MemberMaintenanceModeEvent(
                 instanceMaintenanceModeEvent.getServiceName(),
                 instanceMaintenanceModeEvent.getClusterId(),
@@ -591,27 +511,6 @@ public class TopologyBuilder {
             return;
         }
 
-        //grouping
-
-        if (log.isDebugEnabled()) {
-            log.debug("checking group id in ToplogyBuilder for member started 
event");
-        }
-
-        CompositeApplicationBuilder builder = new 
CompositeApplicationBuilder();
-        String appAlias = "compositeApplicationAlias";
-        CompositeApplication app = builder.buildCompositeApplication(topology, 
appAlias);
-
-        String groupAlias = null;
-        if (app != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder found composite app for " + 
appAlias);
-            }
-            groupAlias = app.extractClusterGroupFromClusterId(clusterId);
-            if (log.isDebugEnabled()) {
-                log.debug("TopologyBuilder  setting groupAlias " + groupAlias 
+ " for member terminated event for cluster " + clusterId);
-            }
-        }
-
         try {
             TopologyManager.acquireWriteLock();
             properties = member.getProperties();
@@ -620,6 +519,8 @@ public class TopologyBuilder {
         } finally {
             TopologyManager.releaseWriteLock();
         }
+        /* @TODO leftover from grouping_poc*/
+        String groupAlias = null;
         TopologyEventPublisher.sendMemberTerminatedEvent(serviceName, 
clusterId, networkPartitionId, partitionId, memberId, properties, groupAlias);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
index bc07404..9862b9a 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
@@ -81,8 +81,6 @@ public class TopologyManager {
                             log.debug("Topology not found in registry, 
creating new");
                         }
                         topology = new Topology();
-                    } else {
-                       topology.getConfigCompositeApplication();
                     }
                     if (log.isDebugEnabled()) {
                         log.debug("Topology initialized");

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
index 4dbf251..15d9d44 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
@@ -8,8 +8,6 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.manager.exception.InvalidCartridgeAliasException;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
-import 
org.apache.stratos.messaging.event.topology.CompositeApplicationCreatedEvent;
-import 
org.apache.stratos.messaging.event.topology.CompositeApplicationRemovedEvent;
 import org.apache.stratos.messaging.util.Constants;
 
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
index 76d73fe..ddd5ffa 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
@@ -38,7 +38,7 @@ public class Topology implements Serializable {
     private Map<String, Service> serviceMap;
     //Grouping
     private Map<String, CompositeApplication> compositeApplicationMap;
-    private Map<String, ConfigCompositeApplication> 
configCompositeApplicationMap;
+    // grouping_poc private Map<String, ConfigCompositeApplication> 
configCompositeApplicationMap;
     // Key: Application.id
     private Map<String, Application> applicationMap;
 
@@ -48,7 +48,7 @@ public class Topology implements Serializable {
     public Topology() {
         this.serviceMap = new HashMap<String, Service>();
         this.compositeApplicationMap = new HashMap<String, 
CompositeApplication>();
-        this.configCompositeApplicationMap = new HashMap<String, 
ConfigCompositeApplication>();
+        // grouping_poc this.configCompositeApplicationMap = new 
HashMap<String, ConfigCompositeApplication>();
         this.applicationMap = new HashMap<String, Application>();
     }
 
@@ -124,6 +124,7 @@ public class Topology implements Serializable {
         this.compositeApplicationMap.remove(alias);
     }
     
+ /* grouping_poc 
     public Collection<ConfigCompositeApplication> 
getConfigCompositeApplication() {
         
         if (this.configCompositeApplicationMap == null) {
@@ -188,6 +189,8 @@ public class Topology implements Serializable {
     public void setConfigCompositeApplicationMap(Map<String, 
ConfigCompositeApplication> configCompositeApplicationMap) {
                this.configCompositeApplicationMap = 
configCompositeApplicationMap;
        }
+       
+       */
 
        public void setInitialized(boolean initialized) {
         this.initialized = initialized;

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/util/CompositeApplicationBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/util/CompositeApplicationBuilder.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/util/CompositeApplicationBuilder.java
deleted file mode 100644
index e29fdbb..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/util/CompositeApplicationBuilder.java
+++ /dev/null
@@ -1,226 +0,0 @@
-package org.apache.stratos.messaging.domain.topology.util;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.domain.topology.*;
-
-import java.util.*;
-
-
-
-public class CompositeApplicationBuilder {
-
-       private Map<String, GroupTemp> groups = null;
-       private Map<String, Cartridge> cartridgesTypes = null;
-       
-       private List<ConfigGroup> configGroupArray = null;
-       private List<ConfigCartridge> configCartridgeArray = null;
-       
-       private static Log log = 
LogFactory.getLog(CompositeApplicationBuilder.class);
-       
-    public CompositeApplication buildCompositeApplication(Topology topology, 
String appAlias) {
-       if (log.isDebugEnabled()) {
-                               log.debug("buildCompositeApplication 
configComplexApplication with topology " + topology);
-                       }
-               Collection<ConfigCompositeApplication> 
configComplexApplications = topology.getConfigCompositeApplication();
-               CompositeApplication complexApplication = new 
CompositeApplication();
-               if (configComplexApplications.size() > 0) {
-                       ConfigCompositeApplication [] complexConfigAppArray = 
new ConfigCompositeApplication[configComplexApplications.size()];
-                       complexConfigAppArray = 
configComplexApplications.toArray(complexConfigAppArray);
-                       
-                       // assuming only 1 complex app is configured
-                       
-                       ConfigCompositeApplication configComplexApplication = 
complexConfigAppArray[0];
-                       if (log.isDebugEnabled()) {
-                               log.debug("buildCompositeApplication 
configComplexApplication" + configComplexApplication);
-                       }
-                       if (configComplexApplication!= null) {
-                               if (log.isDebugEnabled()) {
-                                       log.debug("buildCompositeApplication 
configComplexApplication" + configComplexApplication);
-                               }
-                               
setConfigConfiguration(configComplexApplication);
-                               
-                       GroupTemp top_level = this.buildApplication();
-                       if (top_level != null) {
-                               if (log.isDebugEnabled()) {
-                                       
log.debug("ServiceGroupContext:configComplexApplication toplevel is " + 
top_level.getAlias());
-                               }
-                       } else {
-                               if (log.isDebugEnabled()) {
-                                       log.debug("buildCompositeApplication 
toplevel is null");
-                               }
-                       }
-                       if (top_level == null) {
-                               log.debug("buildCompositeApplication top level 
group is null ...");
-                               return null;
-                       } else {
-                               log.debug("buildCompositeApplication setting 
top level group " + top_level.getAlias());
-                               //complexApplication.setTop_level(top_level);
-                               complexApplication.setAll_groups(this.groups);
-                               return complexApplication;
-                       }
-                       } else {
-                               log.debug("buildCompositeApplication 
configComplexApplication is null");
-                       }
-               } else {
-                       log.debug("buildCompositeApplication 
configComplexApplications is null");
-                       return null;
-               }
-               return null;
-    }
-       
-       
-       
-       public GroupTemp buildApplication() {
-
-               for (ConfigGroup configGroup : configGroupArray) {
-                       log.debug("deploying group " + configGroup.getAlias());
-                       GroupTemp realGroupTemp = new 
GroupTemp(configGroup.getAlias());
-                       groups.put(realGroupTemp.getAlias(), realGroupTemp);
-               }
-               
-
-               for (ConfigCartridge configCartridge : configCartridgeArray) {
-                       log.debug("deploying cartridge component " + 
configCartridge.getAlias());
-                       Cartridge realCartridge = new 
Cartridge(configCartridge.getAlias());
-                       cartridgesTypes.put(realCartridge.getAlias(), 
realCartridge);
-               }
-               
-               // building groups
-               // this should be done when reading the topology event in 
autoscaler
-               log.debug("converting group configuration to groups and 
assembling application");
-               for (ConfigGroup configGroup : configGroupArray) {
-                       GroupTemp assembleGroupTemp = 
groups.get(configGroup.getAlias());
-                       Map<String, Cartridge> groupCartridges = new 
HashMap<String, Cartridge>();
-                       log.debug("converting configuration for group " + 
assembleGroupTemp.getAlias());
-                       for (String key : configGroup.getSubscribables()) {
-                               GroupTemp realgroup = groups.get(key);
-                               if (realgroup != null) {
-                                       // try cartridges
-                                       assembleGroupTemp.add(realgroup);
-                                       realgroup.setParent(assembleGroupTemp);
-                                       
realgroup.setHomeGroup(assembleGroupTemp);
-                               } else {
-                                       Cartridge realcartridge_type = 
cartridgesTypes.get(key);
-                                       if (realcartridge_type != null) {
-                                               // create a copy of the 
cartridge type
-                                               Cartridge groupCartridge = new 
Cartridge(realcartridge_type.getAlias());
-                                               
groupCartridge.setCartridgeId(getCartridgeId(assembleGroupTemp.getAlias(), 
realcartridge_type.getAlias()));
-                                               
assembleGroupTemp.add(groupCartridge);
-                                               
groupCartridge.setParent(assembleGroupTemp);
-                                               
groupCartridge.setHomeGroup(assembleGroupTemp); // TODO need to consolidate 
parent / home group
-                                               
groupCartridges.put(groupCartridge.getAlias(), groupCartridge);
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("added new 
cartrdige of type " + groupCartridge.getAlias() + " and cartrdigeId " + 
groupCartridge.getCartridgeId() + 
-                                                                       " to 
group " + assembleGroupTemp.getAlias());
-                                               }
-                                       } else {
-                                               log.debug("Error: no group, 
cartridge found for alias: " + key);
-                                       }
-                               }
-                       }
-                       // build dependencies
-                       log.debug("building dependencies for group " + 
assembleGroupTemp.getAlias());
-                       Dependencies real_dependencies = 
buildDependency(configGroup, groups, groupCartridges);
-                       assembleGroupTemp.setDependencies(real_dependencies);
-                       real_dependencies.setGroupTemp(assembleGroupTemp);
-               }
-               
-               GroupTemp application = getTopLevelGroup();
-               log.debug("top level group is: " + application.getAlias());
-               
-               return application;
-       }
-       
-       public GroupTemp getTopLevelGroup () {
-               String alias = null;
-               for (ConfigGroup configGroup : configGroupArray) {
-                       alias = configGroup.getAlias();
-                       boolean isTopLevelGroup = true;
-                       log.debug("checking if group " + alias + " is a sub 
component");
-                       for (ConfigGroup configGroupInner : configGroupArray) {
-                               for (String key : 
configGroupInner.getSubscribables()) {
-                                       log.debug("in group " + 
configGroupInner.getAlias() );
-                                       if (key.equals(alias)) {
-                                               log.debug("found group " + 
alias + " as sub component in " + configGroupInner.getAlias());
-                                               isTopLevelGroup = false;
-                                               break;
-                                       } 
-                               }
-                       }
-                       if (isTopLevelGroup) {
-                               log.debug("is top level group: " + alias);
-                               break;
-                       }
-               }               
-               GroupTemp application = groups.get(alias);
-               log.debug("top level group is: " + alias);
-               return application;
-       }
-       
-       public Dependencies buildDependency(ConfigGroup configGroup, 
Map<String, GroupTemp> groups, Map<String, Cartridge> groupCartridges) {
-               
-               // building dependencies
-               ConfigDependencies config_dep = configGroup.getDependencies();
-               Dependencies real_dependencies = new Dependencies();
-               if (config_dep != null) {
-                   String kill_behavior = config_dep.getKill_behavior();
-                   real_dependencies.setKill_behavior(kill_behavior);
-                   List<ConfigDependencies.Pair> startup_order = 
config_dep.getStartup_order(); 
-                   for (ConfigDependencies.Pair pair: startup_order) {
-                       String key = pair.getKey();
-                       String value = pair.getValue();
-                           //check groups
-                           GroupTemp gr = groups.get(value);
-                           log.debug("checking dependency for key " + key + " 
/val: " + value + " in groups");
-                           if (gr != null) {
-                               real_dependencies.addDependency(key, gr);
-                           } else {
-                               log.debug("checking dependency for key " + key 
+ " /val: " + value + " in group cartridges");
-                               Cartridge cr = groupCartridges.get(value);
-                               if (cr != null) {
-                                       real_dependencies.addDependency(key, 
cr);
-                                       if (log.isDebugEnabled()) {
-                                               log.debug("adding group 
cartridge  " + cr.getCartridgeId()+ " as dependency");
-                                       }
-                               } else {
-                                       cr = this.cartridgesTypes.get(value);
-                                       if (cr != null) {
-                                               
real_dependencies.addDependency(key, cr);
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("adding a 
lone cartridge  " + cr.getAlias() + " as dependency");
-                                               }
-                                       } else {
-                                               log.debug("error retrieving 
group with name " + key);
-                                       }
-                               }
-                           }
- 
-                   }       
-               }
-               return real_dependencies;
-    }
-       
-       private  void setConfigConfiguration(ConfigCompositeApplication 
configApp) {
-               this.groups = new HashMap<String, GroupTemp>();
-               this.cartridgesTypes = new HashMap<String, Cartridge>();
-               
-               if (configApp.getComponents() != null) {
-                       configGroupArray = configApp.getComponents();
-               } else {
-                       configGroupArray = new ArrayList<ConfigGroup>();
-               }
-
-               if (configApp.getCartridges() != null) {
-                       configCartridgeArray = configApp.getCartridges();
-               } else {
-                       configCartridgeArray = new ArrayList<ConfigCartridge>();
-               }
-
-       }
-       
-       private String getCartridgeId (String homeGroupId, String 
cartridgeType) {
-               String id = homeGroupId +":"+ cartridgeType;
-               return id;
-       }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationCreatedEventListener.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationCreatedEventListener.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationCreatedEventListener.java
deleted file mode 100644
index 6c3aa7a..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationCreatedEventListener.java
+++ /dev/null
@@ -1,26 +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.listener.topology;
-
-import org.apache.stratos.messaging.listener.EventListener;
-
-public abstract class CompositeApplicationCreatedEventListener extends 
EventListener {
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationRemovedEventListener.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationRemovedEventListener.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationRemovedEventListener.java
deleted file mode 100644
index 04dce2b..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/topology/CompositeApplicationRemovedEventListener.java
+++ /dev/null
@@ -1,26 +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.listener.topology;
-
-import org.apache.stratos.messaging.listener.EventListener;
-
-public abstract class CompositeApplicationRemovedEventListener extends 
EventListener {
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationCreatedMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationCreatedMessageProcessor.java
deleted file mode 100644
index 1b4faa5..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationCreatedMessageProcessor.java
+++ /dev/null
@@ -1,98 +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.message.processor.topology;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.domain.topology.ConfigCompositeApplication;
-import org.apache.stratos.messaging.domain.topology.Topology;
-import 
org.apache.stratos.messaging.event.topology.CompositeApplicationCreatedEvent;
-import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.util.Util;
-import org.apache.stratos.messaging.domain.topology.CompositeApplication;
-import 
org.apache.stratos.messaging.domain.topology.util.CompositeApplicationBuilder;
-
-//Grouping
-public class CompositeApplicationCreatedMessageProcessor extends 
MessageProcessor {
-
-    private static final Log log = 
LogFactory.getLog(CompositeApplicationCreatedMessageProcessor.class);
-    private MessageProcessor nextProcessor;
-
-    @Override
-    public void setNext(MessageProcessor nextProcessor) {
-        this.nextProcessor = nextProcessor;
-    }
-
-    @Override
-    public boolean process(String type, String message, Object object) {
-        Topology topology = (Topology) object;
-        
-        if (log.isDebugEnabled()) {
-               log.debug("processing application event of type " + type + 
-                               " / topology:" +  topology + " msg: " + 
message);
-        }
-
-        if (CompositeApplicationCreatedEvent.class.getName().equals(type)) {
-            // Return if topology has not been initialized
-            if (!topology.isInitialized()) {
-                
-               if (log.isDebugEnabled()) {
-                       log.debug("topology is not initialized .... need to add 
check ... Grouping");
-                }
-               
-               //return false;
-            }
-
-            // Parse complete message and build event
-            CompositeApplicationCreatedEvent event = 
-                       (CompositeApplicationCreatedEvent) 
Util.jsonToObject(message, CompositeApplicationCreatedEvent.class);
-            
-            if (log.isDebugEnabled()) {
-               log.debug("processing application created event with 
application id: " + event.getApplicationAlias());
-            }
-
-         // Validate event against the existing topology
-            if 
(topology.compositeApplicationExists(event.getApplicationAlias())) {
-                if (log.isWarnEnabled()) {
-                    log.warn(String.format("CompositeApplication already 
created: [com app] %s", event.getApplicationAlias()));
-                }
-            } else {
-               
-               ConfigCompositeApplication configApp = 
event.getCompositeApplication();
-               String alias = "compositeApplicationAlias"; 
-                if (log.isInfoEnabled()) {
-                       log.info("adding ConfigCompositeApplication with alias 
" + alias + " to topology");
-                }
-                topology.addConfigCompositeApplication(alias, configApp);
-            }
-            
-            // Notify event listeners
-            notifyEventListeners(event);
-            return true;
-
-        } else {
-            if (nextProcessor != null) {
-                // ask the next processor to take care of the message.
-                return nextProcessor.process(type, message, topology);
-            } else {
-                throw new RuntimeException(String.format("Failed to process 
message using available message processors: [type] %s [body] %s", type, 
message));
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/5efc0252/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationRemovedMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationRemovedMessageProcessor.java
deleted file mode 100644
index 2bb688a..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompositeApplicationRemovedMessageProcessor.java
+++ /dev/null
@@ -1,100 +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.message.processor.topology;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.domain.topology.ConfigCompositeApplication;
-import org.apache.stratos.messaging.domain.topology.Service;
-import org.apache.stratos.messaging.domain.topology.Topology;
-import 
org.apache.stratos.messaging.event.topology.CompositeApplicationCreatedEvent;
-import 
org.apache.stratos.messaging.event.topology.CompositeApplicationRemovedEvent;
-import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.util.Util;
-import org.apache.stratos.messaging.domain.topology.CompositeApplication;
-import 
org.apache.stratos.messaging.domain.topology.util.CompositeApplicationBuilder;
-
-//Grouping
-public class CompositeApplicationRemovedMessageProcessor extends 
MessageProcessor {
-
-    private static final Log log = 
LogFactory.getLog(CompositeApplicationRemovedMessageProcessor.class);
-    private MessageProcessor nextProcessor;
-
-    @Override
-    public void setNext(MessageProcessor nextProcessor) {
-        this.nextProcessor = nextProcessor;
-    }
-
-    @Override
-    public boolean process(String type, String message, Object object) {
-        Topology topology = (Topology) object;
-        
-        if (log.isDebugEnabled()) {
-               log.debug("processing application event of type " + type + 
-                               " / topology:" +  topology + " msg: " + 
message);
-        }
-
-        if (CompositeApplicationRemovedEvent.class.getName().equals(type)) {
-            // Return if topology has not been initialized
-               
-            if (!topology.isInitialized()) {
-
-               if (log.isDebugEnabled()) {
-                       log.debug("topology is not initialized .... need to add 
check ... Grouping");
-                }
-                //return false;
-            }
-
-            // Parse complete message and build event
-            CompositeApplicationRemovedEvent event = 
-                       (CompositeApplicationRemovedEvent) 
Util.jsonToObject(message, CompositeApplicationRemovedEvent.class);
-            
-            if (log.isDebugEnabled()) {
-               log.debug("processing application removed event with 
application id: " + event.getApplicationAlias());
-            }
-
-         // Validate event against the existing topology
-            if 
(topology.configCompositeApplicationExists(event.getApplicationAlias())) {
-               topology.removeAllConfigCompositeApplication();
-                if (log.isDebugEnabled()) {
-                    log.debug("CompositeApplication exists, removing all 
ConfigCompositeApplication" + event.getApplicationAlias()) ;
-                }
-            } else {
-                topology.removeAllConfigCompositeApplication();
-               if (log.isWarnEnabled()) {
-                    log.warn("ConfigCompositeApplication " + 
event.getApplicationAlias() + " does not exist, removing all ") ;
-                }
-            }
-           
-            
-            
-            // Notify event listeners
-            notifyEventListeners(event);
-            return true;
-
-        } else {
-            if (nextProcessor != null) {
-                // ask the next processor to take care of the message.
-                return nextProcessor.process(type, message, topology);
-            } else {
-                throw new RuntimeException(String.format("Failed to process 
message using available message processors: [type] %s [body] %s", type, 
message));
-            }
-        }
-    }
-}

Reply via email to