Updated Branches:
  refs/heads/master cbe7b4c6f -> 9504cbb21

use arrays for partitions groups instead of List since axis2 does not support 
objects with list.


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

Branch: refs/heads/master
Commit: 9504cbb2181d549bcbdb461b01928e8e2eeba5c3
Parents: cbe7b4c
Author: Udara Liyanage <[email protected]>
Authored: Fri Dec 6 15:19:43 2013 -0500
Committer: Udara Liyanage <[email protected]>
Committed: Fri Dec 6 15:19:43 2013 -0500

----------------------------------------------------------------------
 .../stratos/autoscaler/ClusterContext.java      |  6 +++-
 .../stratos/autoscaler/PartitionContext.java    | 20 ++++++++++++--
 .../deployment/policy/DeploymentPolicy.java     | 25 +++++++++++++----
 .../internal/AutoscalerServerComponent.java     | 29 ++++++++++++++++++++
 .../autoscaler/partition/PartitionManager.java  |  5 ++--
 .../processors/AutoscalerTopologyReceiver.java  | 11 +++++---
 .../autoscaler/util/AutoScalerConstants.java    |  6 ++++
 .../stratos/autoscaler/util/AutoscalerUtil.java |  6 ++--
 8 files changed, 91 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
index 2e9acf4..b844ccc 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
@@ -65,7 +65,7 @@ public class ClusterContext {
     private Map<String, String> memberPartitionMap;
     private DeploymentPolicy deploymentPolicy;
 
-    public ClusterContext(String clusterId, String serviceId, DeploymentPolicy 
deploymentPolicy, List<Partition> partitions) {
+    public ClusterContext(String clusterId, String serviceId, DeploymentPolicy 
deploymentPolicy, Partition[] partitions) {
 
         this.clusterId = clusterId;
         this.serviceId = serviceId;
@@ -274,5 +274,9 @@ public class ClusterContext {
        public String getPartitonOfMember(String memberId){
                return this.memberPartitionMap.get(memberId);
        }
+       
+       public boolean memberExist(String memberId){
+               return this.memberPartitionMap.containsKey(memberId);
+       }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
index 741e509..10cd652 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
@@ -50,6 +50,9 @@ public class PartitionContext {
     // members to be terminated
     private List<String> obsoletedMembers;
     
+    // Contains the members that CEP notified as faulty members.
+    private List<String> faultyMembers;
+    
     // active members
     private List<MemberContext> activeMembers;
     
@@ -59,6 +62,7 @@ public class PartitionContext {
         this.pendingMembers = new ArrayList<MemberContext>();
         this.activeMembers = new ArrayList<MemberContext>();
         this.obsoletedMembers = new CopyOnWriteArrayList<String>(); 
+        this.faultyMembers = new CopyOnWriteArrayList<String>();
         Thread th = new Thread(new PendingMemberWatcher(this));
         th.start();
     }
@@ -160,6 +164,18 @@ public class PartitionContext {
     public boolean removeObsoleteMember(String memberId) {
         return this.obsoletedMembers.remove(memberId);
     }
+    
+    public void addFaultyMember(String memberId) {
+        this.faultyMembers.add(memberId);
+    }
+    
+    public boolean removeFaultyMember(String memberId) {
+        return this.faultyMembers.remove(memberId);
+    }
+    
+    public List<String> getFaultyMembers() {
+        return this.faultyMembers;
+    }
 
     public long getExpiryTime() {
         return expiryTime;
@@ -172,7 +188,7 @@ public class PartitionContext {
     public List<String> getObsoletedMembers() {
         return obsoletedMembers;
     }
-
+        
     public void setObsoletedMembers(List<String> obsoletedMembers) {
         this.obsoletedMembers = obsoletedMembers;
     }
@@ -218,5 +234,5 @@ public class PartitionContext {
             }
         }
 
-    }
+    } 
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
index c253d9a..c955fff 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
@@ -36,7 +36,7 @@ public class DeploymentPolicy implements Serializable{
     private static final long serialVersionUID = 5675507196284400099L;
     private String id;
        private PartitionGroup[] partitionGroups;
-       private List<Partition> allPartitions;
+       private Partition[] allPartitions;
 
     /**
      * Gets the value of the id property.
@@ -64,22 +64,27 @@ public class DeploymentPolicy implements Serializable{
     
     @SuppressWarnings("unchecked")
     public void setPartitionGroups(PartitionGroup[] groups) {
+       ArrayList<Partition> partitionslist = new ArrayList<Partition>();
         this.partitionGroups = groups;
+        /*
         if(allPartitions == null) {
             allPartitions = new ArrayList<Partition>();
         }
+        */
         for (PartitionGroup partitionGroup : groups) {
             Partition[] partitions = partitionGroup.getPartitions();
             if(partitions != null) {
-                allPartitions.addAll(Arrays.asList(partitions));
+               partitionslist.addAll(Arrays.asList(partitions));
             }
         }
+        
+       this.allPartitions = partitionslist.toArray(new Partition[0]);
     }
     
-    public List<Partition> getAllPartitions() {
+    public Partition[] getAllPartitions() {
         return allPartitions;
     }
-    
+        
     public Partition getPartitionById(String id){
        for(Partition p : this.getAllPartitions()){
                if(p.getId().equalsIgnoreCase(id))
@@ -87,6 +92,7 @@ public class DeploymentPolicy implements Serializable{
        }
         return null;
     }
+    
     /**
      * Gets the value of the partition-groups.
      */
@@ -95,8 +101,17 @@ public class DeploymentPolicy implements Serializable{
         return this.partitionGroups;
     }
     
+    public PartitionGroup getPartitionGroup(String partitionGrpId){
+       for(PartitionGroup parGrp : this.getPartitionGroups()){
+               if(parGrp.getId().equals(partitionGrpId))
+                       return parGrp;
+               
+       }
+       return null;
+    }
+    
     public String toString() {
-        return "Deployment Policy: "+this.id;
+        return "Deployment Policy: " + this.id;
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
index a02411d..74a18fd 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
@@ -24,14 +24,23 @@ import 
org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageD
 import 
org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageReceiver;
 import org.apache.stratos.autoscaler.rule.ExecutorTaskScheduler;
 import 
org.apache.stratos.autoscaler.topology.processors.AutoscalerTopologyReceiver;
+import org.apache.stratos.autoscaler.util.ServiceReferenceHolder;
 import org.apache.stratos.messaging.broker.subscribe.TopicSubscriber;
 import org.apache.stratos.messaging.util.Constants;
 import org.osgi.service.component.ComponentContext;
+import org.wso2.carbon.registry.api.RegistryException;
+import org.wso2.carbon.registry.core.service.RegistryService;
 
 /**
  * @scr.component name=
  * "org.apache.stratos.autoscaler.internal.AutoscalerServerComponent"
  * immediate="true"
+ * 
+ * @scr.reference name="registry.service"
+ *                interface=
+ *                "org.wso2.carbon.registry.core.service.RegistryService"
+ *                cardinality="1..1" policy="dynamic" bind="setRegistryService"
+ *                unbind="unsetRegistryService" 
  */
 
 public class AutoscalerServerComponent {
@@ -87,4 +96,24 @@ public class AutoscalerServerComponent {
             log.info("Autoscaler Server Component activated");
         }
     }
+    
+    protected void setRegistryService(RegistryService registryService) {
+               if (log.isDebugEnabled()) {
+                       log.debug("Setting the Registry Service");
+               }
+               try {
+               
ServiceReferenceHolder.getInstance().setRegistry(registryService.getGovernanceSystemRegistry());
+        } catch (RegistryException e) {
+               String msg = "Failed when retrieving Governance System 
Registry.";
+               log.error(msg, e);
+               //throw new CloudControllerException(msg, e);
+        }
+        }
+
+       protected void unsetRegistryService(RegistryService registryService) {
+               if (log.isDebugEnabled()) {
+            log.debug("Unsetting the Registry Service");
+        }
+        ServiceReferenceHolder.getInstance().setRegistry(null);
+       }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
index d19c4ec..a17393d 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
@@ -75,8 +75,9 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
                        return null;
        }
        
-       public List<Partition> getAllPartitions(){
-               return Collections.unmodifiableList(new 
ArrayList<Partition>(partitionListMap.values()));
+       public Partition[] getAllPartitions(){
+               //return Collections.unmodifiableList(new 
ArrayList<Partition>(partitionListMap.values()));
+               return partitionListMap.values().toArray(new Partition[0]);
                
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java
index ab77a79..686cfc5 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java
@@ -19,6 +19,8 @@
 
 package org.apache.stratos.autoscaler.topology.processors;
 
+import java.util.Collection;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.ClusterContext;
@@ -31,6 +33,10 @@ import org.apache.stratos.autoscaler.util.AutoscalerUtil;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.Service;
 import org.apache.stratos.messaging.event.Event;
+import org.apache.stratos.messaging.event.topology.ClusterCreatedEvent;
+import org.apache.stratos.messaging.event.topology.ClusterRemovedEvent;
+import org.apache.stratos.messaging.event.topology.MemberActivatedEvent;
+import org.apache.stratos.messaging.event.topology.MemberTerminatedEvent;
 import 
org.apache.stratos.messaging.listener.topology.ClusterCreatedEventListener;
 import 
org.apache.stratos.messaging.listener.topology.ClusterRemovedEventListener;
 import 
org.apache.stratos.messaging.listener.topology.CompleteTopologyEventListener;
@@ -38,13 +44,10 @@ import 
org.apache.stratos.messaging.listener.topology.MemberActivatedEventListen
 import 
org.apache.stratos.messaging.listener.topology.MemberStartedEventListener;
 import 
org.apache.stratos.messaging.listener.topology.MemberTerminatedEventListener;
 import 
org.apache.stratos.messaging.listener.topology.ServiceRemovedEventListener;
-import org.apache.stratos.messaging.event.topology.*;
 import 
org.apache.stratos.messaging.message.processor.topology.TopologyMessageProcessorChain;
 import 
org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
-import java.util.Collection;
-
 /**
  * Load balancer topology receiver.
  */
@@ -56,7 +59,7 @@ public class AutoscalerTopologyReceiver implements Runnable {
     private boolean terminated;
 
     public AutoscalerTopologyReceiver() {
-        this.topologyReceiver = new TopologyReceiver(createMessageDelegator());
+               this.topologyReceiver = new 
TopologyReceiver(createMessageDelegator());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
index de51f9b..da96b74 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
@@ -29,5 +29,11 @@ public final class AutoScalerConstants {
     public static final String PROPERTY_ELEMENT = "property";
     public static final String PROPERTY_NAME_ATTR= "name";
     public static final String PROPERTY_VALUE_ATTR = "value";
+    
+    /**
+        * Persistence
+        */
+       public static final String AUTOSCALER_RESOURCE = "/autoscaler";
+       public static final String DATA_RESOURCE = "/data";
        
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9504cbb2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index 98048a6..caacebd 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -90,7 +90,7 @@ public class AutoscalerUtil {
             throw new PolicyValidationException(msg);
         }
 
-        List<Partition> allPartitions = deploymentPolicy.getAllPartitions();
+        Partition[] allPartitions = deploymentPolicy.getAllPartitions();
         if (allPartitions == null) {
             String msg =
                          "Deployment Policy's Partitions are null. Policy 
name: " +
@@ -109,7 +109,7 @@ public class AutoscalerUtil {
 
         CloudControllerClient.getInstance()
                              
.validatePartitionsOfPolicy(cluster.getServiceName(),
-                                                         
allPartitions.toArray(new Partition[0]));
+                                                         allPartitions);
         ClusterContext clusterContext =
                                         new 
ClusterContext(cluster.getClusterId(),
                                                            
cluster.getServiceName(),
@@ -132,7 +132,7 @@ public class AutoscalerUtil {
         return clusterContext;
     }
 
-    private static void validateExistenceOfPartions(List<Partition> 
partitions) throws InvalidPartitionException {
+    private static void validateExistenceOfPartions(Partition[] partitions) 
throws InvalidPartitionException {
         PartitionManager partitionMgr = PartitionManager.getInstance();
         for (Partition partition : partitions) {
             String partitionId = partition.getId();

Reply via email to