You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2015/05/06 10:40:39 UTC

[1/8] stratos git commit: Refining Rest-API

Repository: stratos
Updated Branches:
  refs/heads/master 5c87d5de2 -> 4750f1a6a


http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 47b72fc..0112b33 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -60,22 +60,21 @@ import org.apache.stratos.common.client.StratosManagerServiceClient;
 import org.apache.stratos.common.exception.InvalidEmailException;
 import org.apache.stratos.common.util.ClaimsMgtUtil;
 import org.apache.stratos.common.util.CommonUtil;
-import org.apache.stratos.manager.exception.ApplicationSignUpException;
 import org.apache.stratos.manager.service.stub.StratosManagerServiceApplicationSignUpExceptionException;
 import org.apache.stratos.manager.service.stub.StratosManagerServiceDomainMappingExceptionException;
 import org.apache.stratos.manager.service.stub.domain.application.signup.ApplicationSignUp;
 import org.apache.stratos.manager.service.stub.domain.application.signup.ArtifactRepository;
 import org.apache.stratos.manager.service.stub.domain.application.signup.DomainMapping;
-import org.apache.stratos.manager.user.management.StratosUserManager;
+import org.apache.stratos.manager.user.management.StratosUserManagerUtils;
 import org.apache.stratos.manager.user.management.exception.UserManagerException;
 import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-import org.apache.stratos.manager.utils.CartridgeConstants;
 import org.apache.stratos.messaging.domain.application.Application;
 import org.apache.stratos.messaging.domain.application.ClusterDataHolder;
 import org.apache.stratos.messaging.domain.application.Group;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.message.receiver.application.ApplicationManager;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.rest.endpoint.Constants;
 import org.apache.stratos.rest.endpoint.ServiceHolder;
 import org.apache.stratos.rest.endpoint.exception.*;
 import org.apache.stratos.rest.endpoint.util.converter.ObjectConverter;
@@ -105,6 +104,12 @@ public class StratosApiV41Utils {
 
     private static Log log = LogFactory.getLog(StratosApiV41Utils.class);
 
+    /**
+     * Add New Cartridge
+     *
+     * @param cartridgeDefinition Cartridge definition
+     * @throws RestAPIException
+     */
     // Util methods for cartridges
     public static void addCartridge(CartridgeBean cartridgeDefinition) throws RestAPIException {
 
@@ -122,13 +127,31 @@ public class StratosApiV41Utils {
                         "Successfully added cartridge: [cartridge-type] %s ",
                         cartridgeDefinition.getType()));
             }
-        } catch (Exception e) {
+        }catch (CloudControllerServiceCartridgeAlreadyExistsExceptionException e) {
+            String msg = "Could not add cartridge";
+            log.error(msg, e);
+            throw new RestAPIException(msg);
+        } catch (CloudControllerServiceInvalidCartridgeDefinitionExceptionException e) {
+            String msg = "Could not add cartridge";
+            log.error(msg, e);
+            throw new RestAPIException(msg);
+        } catch (RemoteException e) {
+            String msg = "Could not add cartridge";
+            log.error(msg, e);
+            throw new RestAPIException(msg);
+        } catch (CloudControllerServiceInvalidIaasProviderExceptionException e) {
             String msg = "Could not add cartridge";
             log.error(msg, e);
             throw new RestAPIException(msg);
         }
     }
 
+    /**
+     * Update Cartridge
+     *
+     * @param cartridgeDefinition Cartridge Definition
+     * @throws RestAPIException
+     */
     public static void updateCartridge(CartridgeBean cartridgeDefinition) throws RestAPIException {
 
         try {
@@ -145,16 +168,31 @@ public class StratosApiV41Utils {
                         cartridgeDefinition.getType()));
             }
         } catch (CloudControllerServiceCartridgeDefinitionNotExistsExceptionException e) {
-            String msg = "No cartridge definition exists with this definition.Please use the POST method to add the cartridge";
+            String msg = "Could not add cartridge";
             log.error(msg, e);
             throw new RestAPIException(msg);
-        } catch (Exception e) {
-            String msg = "Could not update cartridge " + e.getLocalizedMessage();
+        } catch (CloudControllerServiceInvalidCartridgeDefinitionExceptionException e) {
+            String msg = "Could not add cartridge";
+            log.error(msg, e);
+            throw new RestAPIException(msg);
+        } catch (RemoteException e) {
+            String msg = "Could not add cartridge";
+            log.error(msg, e);
+            throw new RestAPIException(msg);
+        } catch (CloudControllerServiceInvalidIaasProviderExceptionException e) {
+            String msg = "Could not add cartridge";
             log.error(msg, e);
             throw new RestAPIException(msg);
         }
     }
 
+    /**
+     * Create cartridge configuration
+     *
+     * @param cartridgeDefinition Cartridge definition
+     * @return Created cartridge
+     * @throws RestAPIException
+     */
     private static Cartridge createCartridgeConfig(CartridgeBean cartridgeDefinition)
             throws RestAPIException {
         Cartridge cartridgeConfig =
@@ -169,6 +207,12 @@ public class StratosApiV41Utils {
         return cartridgeConfig;
     }
 
+    /**
+     * Remove Cartridge
+     *
+     * @param cartridgeType Cartridge Type
+     * @throws RestAPIException
+     */
     public static void removeCartridge(String cartridgeType) throws RestAPIException {
 
         try {
@@ -202,23 +246,42 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get List of Cartridges by filter
+     *
+     * @param filter filter
+     * @param criteria criteria
+     * @param configurationContext Configuration Contex
+     * @return List of cartridges matches filter
+     * @throws RestAPIException
+     */
     public static List<CartridgeBean> getCartridgesByFilter(
             String filter, String criteria, ConfigurationContext configurationContext) throws RestAPIException {
         List<CartridgeBean> cartridges = null;
 
-        if (filter.equals("singleTenant")) {
+        if (Constants.FILTER_TENANT_TYPE_SINGLE_TENANT.equals(filter)) {
             cartridges = getAvailableCartridges(null, false, configurationContext);
-        } else if (filter.equals("multiTenant")) {
+        } else if (Constants.FILTER_TENANT_TYPE_MULTI_TENANT.equals(filter)) {
             cartridges = getAvailableCartridges(null, true, configurationContext);
-        } else if (filter.equals("loadBalancer")) {
+        } else if (Constants.FILTER_LOAD_BALANCER.equals(filter)) {
             cartridges = getAvailableLbCartridges(false, configurationContext);
-        } else if (filter.equals("provider")) {
+        } else if (Constants.FILTER_PROVIDER.equals(filter)) {
             cartridges = getAvailableCartridgesByProvider(criteria);
         }
 
+
         return cartridges;
     }
 
+    /**
+     * Get a Cartridge by filter
+     *
+     * @param filter filter
+     * @param cartridgeType cartride Type
+     * @param configurationContext Configuration Context
+     * @return Cartridge matching filter
+     * @throws RestAPIException
+     */
     public static CartridgeBean getCartridgeByFilter(
             String filter, String cartridgeType, ConfigurationContext configurationContext) throws RestAPIException {
         List<CartridgeBean> cartridges = getCartridgesByFilter(filter, null, configurationContext);
@@ -233,13 +296,21 @@ public class StratosApiV41Utils {
         throw new RestAPIException(msg);
     }
 
+    /**
+     * Get the available Load balancer cartridges
+     *
+     * @param multiTenant Multi tenant true of false
+     * @param configurationContext Configuration Context
+     * @return List of available Load balancer cartridges
+     * @throws RestAPIException
+     */
     private static List<CartridgeBean> getAvailableLbCartridges(
-            Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
+            boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
         List<CartridgeBean> cartridges = getAvailableCartridges(null, multiTenant,
                 configurationContext);
         List<CartridgeBean> lbCartridges = new ArrayList<CartridgeBean>();
         for (CartridgeBean cartridge : cartridges) {
-            if ("loadbalancer".equalsIgnoreCase(cartridge.getCategory())) {
+            if (Constants.FILTER_LOAD_BALANCER.equalsIgnoreCase(cartridge.getCategory())) {
                 lbCartridges.add(cartridge);
             }
         }
@@ -317,20 +388,15 @@ public class StratosApiV41Utils {
     }
 
     public static List<CartridgeBean> getAvailableCartridges(
-            String cartridgeSearchString, Boolean multiTenant, ConfigurationContext configurationContext)
+            String cartridgeSearchString, boolean multiTenant, ConfigurationContext configurationContext)
             throws RestAPIException {
 
         List<CartridgeBean> cartridges = new ArrayList<CartridgeBean>();
 
         if (log.isDebugEnabled()) {
-            log.debug("Getting available cartridges. [Search String]: " + cartridgeSearchString + ", [Multi-Tenant]: "
-                    + multiTenant);
+            log.debug("Getting available cartridges. [Search String]: " + cartridgeSearchString + ", [Multi-Tenant]: " + multiTenant);
         }
 
-
-        boolean allowMultipleSubscription = Boolean.valueOf(
-                System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
-
         try {
             Pattern searchPattern = getSearchStringPattern(cartridgeSearchString);
 
@@ -355,10 +421,10 @@ public class StratosApiV41Utils {
                         continue;
                     }
 
-                    if (multiTenant != null && !multiTenant && cartridgeInfo.getMultiTenant()) {
+                    if (!multiTenant && cartridgeInfo.getMultiTenant()) {
                         // Need only Single-Tenant cartridges
                         continue;
-                    } else if (multiTenant != null && multiTenant && !cartridgeInfo.getMultiTenant()) {
+                    } else if (multiTenant && !cartridgeInfo.getMultiTenant()) {
                         // Need only Multi-Tenant cartridges
                         continue;
                     }
@@ -371,18 +437,6 @@ public class StratosApiV41Utils {
                     cartridges.add(cartridge);
 
 
-                    if (cartridgeInfo.getMultiTenant() && !allowMultipleSubscription) {
-                        // If the cartridge is multi-tenant. We should not let users
-                        // createSubscription twice.
-                        if (isAlreadySubscribed(cartridgeType,
-                                ApplicationManagementUtil.getTenantId(configurationContext))) {
-                            if (log.isDebugEnabled()) {
-                                log.debug("Already subscribed to " + cartridgeType
-                                        + ". This multi-tenant cartridge will not be available to createSubscription");
-                            }
-                            //cartridge.setStatus(CartridgeConstants.SUBSCRIBED);
-                        }
-                    }
                 }
             } else {
                 if (log.isDebugEnabled()) {
@@ -404,6 +458,13 @@ public class StratosApiV41Utils {
         return cartridges;
     }
 
+    /**
+     * Get cartridge details
+     *
+     * @param cartridgeType Catridge Type
+     * @return Cartridge details
+     * @throws RestAPIException
+     */
     public static CartridgeBean getCartridge(String cartridgeType) throws RestAPIException {
         try {
             Cartridge cartridgeInfo = CloudControllerServiceClient.getInstance().getCartridge(cartridgeType);
@@ -422,6 +483,13 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Check cartridge is available
+     *
+     * @param cartridgeType cartridgeType
+     * @return CartridgeBean
+     * @throws RestAPIException
+     */
     public static CartridgeBean getCartridgeForValidate(String cartridgeType) throws RestAPIException {
         try {
             Cartridge cartridgeInfo = CloudControllerServiceClient.getInstance().getCartridge(cartridgeType);
@@ -439,6 +507,12 @@ public class StratosApiV41Utils {
 
     }
 
+    /**
+     * Converts Cartridge to CartridgeDefinitionBean
+     *
+     * @param cartridgeInfo cartridge Info
+     * @return CartridgeBean
+     */
     private static CartridgeBean convertCartridgeToCartridgeDefinitionBean(Cartridge cartridgeInfo) {
         CartridgeBean cartridge = new CartridgeBean();
         cartridge.setType(cartridgeInfo.getType());
@@ -455,6 +529,12 @@ public class StratosApiV41Utils {
         return cartridge;
     }
 
+    /**
+     * Convert Persistence To PersistenceBean
+     *
+     * @param persistence persistence
+     * @return PersistenceBean
+     */
     private static PersistenceBean convertPersistenceToPersistenceBean(Persistence persistence) {
         if (persistence == null) {
             return null;
@@ -466,6 +546,12 @@ public class StratosApiV41Utils {
         return persistenceBean;
     }
 
+    /**
+     * Convert Volumes To VolumeBeans
+     *
+     * @param volumes Volumes
+     * @return VolumeBeans
+     */
     private static List<VolumeBean> convertVolumesToVolumeBeans(Volume[] volumes) {
         List<VolumeBean> list = new ArrayList<VolumeBean>();
         for (Volume volume : volumes) {
@@ -479,10 +565,13 @@ public class StratosApiV41Utils {
         return list;
     }
 
-    private static boolean isAlreadySubscribed(String cartridgeType, int tenantId) {
-        return false;
-    }
 
+    /**
+     * Convert SearchString to Pattern
+     *
+     * @param searchString SearchString
+     * @return Pattern
+     */
     private static Pattern getSearchStringPattern(String searchString) {
         if (log.isDebugEnabled()) {
             log.debug("Creating search pattern for " + searchString);
@@ -500,6 +589,13 @@ public class StratosApiV41Utils {
         return null;
     }
 
+    /**
+     * Search cartridge Display name/Description for pattern
+     *
+     * @param cartridgeInfo cartridgeInfo
+     * @param pattern Pattern
+     * @return Pattern match status
+     */
     private static boolean cartridgeMatches(Cartridge cartridgeInfo, Pattern pattern) {
         if (pattern != null) {
             boolean matches = false;
@@ -516,6 +612,12 @@ public class StratosApiV41Utils {
 
     // Util methods to get the service clients
 
+    /**
+     * Get CloudController Service Client
+     *
+     * @return CloudControllerServiceClient
+     * @throws RestAPIException
+     */
     private static CloudControllerServiceClient getCloudControllerServiceClient() throws RestAPIException {
 
         try {
@@ -529,6 +631,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Autoscaler Service Client
+     *
+     * @return AutoscalerServiceClient
+     * @throws RestAPIException
+     */
     private static AutoscalerServiceClient getAutoscalerServiceClient() throws RestAPIException {
         try {
             return AutoscalerServiceClient.getInstance();
@@ -540,6 +648,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Stratos Manager Service Client
+     *
+     * @return StratosManagerServiceClient
+     * @throws RestAPIException
+     */
     private static StratosManagerServiceClient getStratosManagerServiceClient() throws RestAPIException {
         try {
             return StratosManagerServiceClient.getInstance();
@@ -553,6 +667,12 @@ public class StratosApiV41Utils {
 
     // Util methods for Autoscaling policies
 
+    /**
+     * Add AutoscalePolicy
+     *
+     * @param autoscalePolicyBean autoscalePolicyBean
+     * @throws RestAPIException
+     */
     public static void addAutoscalingPolicy(AutoscalePolicyBean autoscalePolicyBean) throws RestAPIException,
             AutoscalerServiceInvalidPolicyExceptionException,
             AutoscalerServiceAutoScalingPolicyAlreadyExistExceptionException {
@@ -574,6 +694,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Add an application policy
+     *
+     * @param applicationPolicyBean applicationPolicyBean
+     * @throws RestAPIException
+     */
     public static void addApplicationPolicy(ApplicationPolicyBean applicationPolicyBean) throws RestAPIException,
             AutoscalerServiceInvalidPolicyExceptionException,
             AutoscalerServiceInvalidApplicationPolicyExceptionException {
@@ -605,6 +731,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Updates Application Policy
+     *
+     * @param applicationPolicyBean applicationPolicyBean
+     * @throws RestAPIException
+     */
     public static void updateApplicationPolicy(ApplicationPolicyBean applicationPolicyBean) throws RestAPIException,
             AutoscalerServiceInvalidApplicationPolicyExceptionException,
             AutoscalerServiceApplicatioinPolicyNotExistsExceptionException {
@@ -631,6 +763,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Application Policies
+     *
+     * @return Array of ApplicationPolicyBeans
+     * @throws RestAPIException
+     */
     public static ApplicationPolicyBean[] getApplicationPolicies() throws RestAPIException {
 
         ApplicationPolicy[] applicationPolicies = null;
@@ -647,6 +785,13 @@ public class StratosApiV41Utils {
         return ObjectConverter.convertASStubApplicationPoliciesToApplicationPolicies(applicationPolicies);
     }
 
+    /**
+     * Get ApplicationPolicy by Id
+     *
+     * @param applicationPolicyId applicationPolicyId
+     * @return ApplicationPolicyBean
+     * @throws RestAPIException
+     */
     public static ApplicationPolicyBean getApplicationPolicy(String applicationPolicyId) throws RestAPIException {
 
         if (applicationPolicyId == null) {
@@ -673,6 +818,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Removes an Application Policy
+     *
+     * @param applicationPolicyId applicationPolicyId
+     * @throws RestAPIException
+     */
     public static void removeApplicationPolicy(String applicationPolicyId) throws RestAPIException,
             AutoscalerServiceInvalidPolicyExceptionException {
 
@@ -698,6 +849,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Updates an Autoscaling Policy
+     * @param autoscalePolicyBean autoscalePolicyBean
+     * @throws RestAPIException
+     */
     public static void updateAutoscalingPolicy(AutoscalePolicyBean autoscalePolicyBean) throws RestAPIException,
             AutoscalerServiceInvalidPolicyExceptionException {
 
@@ -717,6 +873,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Removes an AutoscalingPolicy
+     *
+     * @param autoscalePolicyId autoscalePolicyId
+     * @throws RestAPIException
+     */
     public static void removeAutoscalingPolicy(String autoscalePolicyId) throws RestAPIException,
             AutoscalerServicePolicyDoesNotExistExceptionException,
             AutoscalerServiceUnremovablePolicyExceptionException {
@@ -735,6 +897,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get list of Autoscaling Policies
+     * @return Array of AutoscalingPolicies
+     * @throws RestAPIException
+     */
     public static AutoscalePolicyBean[] getAutoScalePolicies() throws RestAPIException {
 
         org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy[] autoscalePolicies = null;
@@ -752,6 +919,13 @@ public class StratosApiV41Utils {
         return ObjectConverter.convertStubAutoscalePoliciesToAutoscalePolicies(autoscalePolicies);
     }
 
+    /**
+     * Get an AutoScalePolicy
+     *
+     * @param autoscalePolicyId autoscalePolicyId
+     * @return AutoscalePolicyBean
+     * @throws RestAPIException
+     */
     public static AutoscalePolicyBean getAutoScalePolicy(String autoscalePolicyId) throws RestAPIException {
 
         org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = null;
@@ -773,6 +947,12 @@ public class StratosApiV41Utils {
 
     // Util methods for repo actions
 
+    /**
+     * Notify ArtifactUpdatedEvent
+     *
+     * @param payload GitNotificationPayloadBean
+     * @throws RestAPIException
+     */
     public static void notifyArtifactUpdatedEvent(GitNotificationPayloadBean payload) throws RestAPIException {
         try {
             StratosManagerServiceClient serviceClient = StratosManagerServiceClient.getInstance();
@@ -784,8 +964,13 @@ public class StratosApiV41Utils {
         }
     }
 
-    // Util methods for cartridge groups
+    // Util methods for service groups
 
+    /**
+     * Add a Service Group
+     * @param serviceGroupDefinition serviceGroupDefinition
+     * @throws RestAPIException
+     */
     public static void addServiceGroup(GroupBean serviceGroupDefinition) throws RestAPIException {
         try {
             if (serviceGroupDefinition == null) {
@@ -908,6 +1093,13 @@ public class StratosApiV41Utils {
         return retVals;
     }
 
+    /**
+     * Get a Service Group Definition by Name
+     *
+     * @param name Group Name
+     * @return GroupBean
+     * @throws RestAPIException
+     */
     public static GroupBean getServiceGroupDefinition(String name) throws RestAPIException {
 
         if (log.isDebugEnabled()) {
@@ -930,6 +1122,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get a list of GroupBeans
+     * @return array of Group Beans
+     * @throws RestAPIException
+     */
     public static GroupBean[] getServiceGroupDefinitions() throws RestAPIException {
 
         if (log.isDebugEnabled()) {
@@ -956,6 +1153,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Remove Service Group
+     *
+     * @param name Group Name
+     * @throws RestAPIException
+     */
     public static void removeServiceGroup(String name) throws RestAPIException {
 
         try {
@@ -1001,6 +1204,11 @@ public class StratosApiV41Utils {
         log.info("Successfully removed the cartridge group: [group-name] " + name);
     }
 
+    /**
+     * Find Cartridges In ServiceGroup
+     * @param serviceGroup serviceGroup
+     * @param cartridges List of cartridges
+     */
     private static void findCartridgesInServiceGroup(ServiceGroup serviceGroup, List<String> cartridges) {
 
         if (serviceGroup == null || cartridges == null) {
@@ -1020,6 +1228,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Find Cartrides in GroupBean
+     *
+     * @param groupBean groupBean
+     * @param cartridges List of cartridges
+     */
     private static void findCartridgesInGroupBean(GroupBean groupBean, List<String> cartridges) {
 
         if (groupBean == null || cartridges == null) {
@@ -1157,7 +1371,12 @@ public class StratosApiV41Utils {
         }
     }
 
-
+    /**
+     * Find Cartridges And Groups In Application
+     * @param applicationBean ApplicationBean
+     * @param cartridges List<String> cartridges
+     * @param cartridgeGroups List <String> cartridgeGroups
+     */
     private static void findCartridgesAndGroupsInApplication(
             ApplicationBean applicationBean, List<String> cartridges, List<String> cartridgeGroups) {
 
@@ -1178,6 +1397,12 @@ public class StratosApiV41Utils {
         findCartridgeNamesInCartridges(cartridgeReferenceBeans, cartridges);
     }
 
+    /**
+     * Find Cartridges And Groups In CartridgeGroup
+     * @param groupReferenceBean GroupReferenceBean
+     * @param cartridges List <String>
+     * @param cartridgeGroups List <String>
+     */
     private static void findCartridgesAndGroupsInCartridgeGroup(
             GroupReferenceBean groupReferenceBean, List<String> cartridges, List<String> cartridgeGroups) {
 
@@ -1199,6 +1424,11 @@ public class StratosApiV41Utils {
         findCartridgeNamesInCartridges(groupReferenceBean.getCartridges(), cartridges);
     }
 
+    /**
+     * Find Cartridge Names In Cartridges
+     * @param cartridgeReferenceBeans List of CartridgeReferenceBean
+     * @param cartridges List <String>
+     */
     private static void findCartridgeNamesInCartridges(
             List<CartridgeReferenceBean> cartridgeReferenceBeans, List<String> cartridges) {
 
@@ -1213,6 +1443,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Validate Application
+     *
+     * @param appDefinition ApplicationBean
+     * @throws RestAPIException
+     */
     private static void validateApplication(ApplicationBean appDefinition) throws RestAPIException {
 
         if (StringUtils.isBlank(appDefinition.getAlias())) {
@@ -1312,6 +1548,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Application Network Partitions
+     *
+     * @param applicationId Application ID
+     * @return ApplicationNetworkPartitionIdListBean
+     */
     public static ApplicationNetworkPartitionIdListBean getApplicationNetworkPartitions(String applicationId) {
         try {
             AutoscalerServiceClient serviceClient = AutoscalerServiceClient.getInstance();
@@ -1327,24 +1569,11 @@ public class StratosApiV41Utils {
     }
 
     /**
-     * Validate deployment policy
+     * Remove Application
      *
-     * @param deploymentPolicy Deployment Policy
+     * @param applicationId Application Id
+     * @throws RestAPIException
      */
-    private static void validateDeploymentPolicy(DeploymentPolicyBean deploymentPolicy) throws RestAPIException {
-        if (StringUtils.isBlank(deploymentPolicy.getId())) {
-            String message = "No deployment policy id specify with the policy";
-            log.error(message);
-            throw new RestAPIException(message);
-        }
-        if (deploymentPolicy.getNetworkPartitions().size() == 0) {
-            String message = "No network partitions specify with the policy";
-            log.error(message);
-            throw new RestAPIException(message);
-        }
-
-    }
-
     public static void removeApplication(String applicationId) throws RestAPIException {
 
         try {
@@ -1377,6 +1606,13 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Application Details
+     *
+     * @param applicationId Application Id
+     * @return ApplicationBean
+     * @throws RestAPIException
+     */
     public static ApplicationBean getApplication(String applicationId) throws RestAPIException {
         try {
             return ObjectConverter.convertStubApplicationContextToApplicationDefinition(
@@ -1388,6 +1624,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get list of Applications
+     *
+     * @return List of Application Beans
+     * @throws RestAPIException
+     */
     public static List<ApplicationBean> getApplications() throws RestAPIException {
         try {
             List<ApplicationBean> applicationDefinitions = new ArrayList<ApplicationBean>();
@@ -1409,6 +1651,13 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Undeploy an Application
+     *
+     * @param applicationId applicationId
+     * @param force parameter to set force undeployment
+     * @throws RestAPIException
+     */
     public static void undeployApplication(String applicationId, boolean force) throws RestAPIException {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (force) {
@@ -1435,26 +1684,12 @@ public class StratosApiV41Utils {
         }
     }
 
-    public static ApplicationInfoBean[] getApplicationRuntimes() {
-        List<ApplicationInfoBean> applicationBeanList = new ArrayList<ApplicationInfoBean>();
-        try {
-            ApplicationManager.acquireReadLockForApplications();
-            ApplicationInfoBean applicationInfoBean;
-            for (Application application : ApplicationManager.getApplications().getApplications().values()) {
-                applicationInfoBean = ObjectConverter.convertApplicationToApplicationBean(application);
-                for (ApplicationInstanceBean instanceBean : applicationInfoBean.getApplicationInstances()) {
-                    addClustersInstancesToApplicationInstanceBean(instanceBean, application);
-                    addGroupsInstancesToApplicationInstanceBean(instanceBean, application);
-                }
-                applicationBeanList.add(applicationInfoBean);
-            }
-        } finally {
-            ApplicationManager.releaseReadLockForApplications();
-        }
-
-        return applicationBeanList.toArray(new ApplicationInfoBean[applicationBeanList.size()]);
-    }
-
+    /**
+     * Get Application Runtime
+     *
+     * @param applicationId Application Id
+     * @return ApplicationInfoBean
+     */
     public static ApplicationInfoBean getApplicationRuntime(String applicationId) {
         ApplicationInfoBean applicationBean = null;
         try {
@@ -1474,6 +1709,12 @@ public class StratosApiV41Utils {
         return applicationBean;
     }
 
+    /**
+     * Add GroupsInstances To ApplicationInstanceBean
+     *
+     * @param applicationInstanceBean ApplicationInstanceBean
+     * @param application Application
+     */
     private static void addGroupsInstancesToApplicationInstanceBean(ApplicationInstanceBean applicationInstanceBean,
                                                                     Application application) {
         Collection<Group> groups = application.getGroups();
@@ -1490,6 +1731,12 @@ public class StratosApiV41Utils {
 
     }
 
+    /**
+     * Add ClustersInstances To ApplicationInstanceBean
+     *
+     * @param applicationInstanceBean ApplicationInstanceBean
+     * @param application Application
+     */
     private static void addClustersInstancesToApplicationInstanceBean(
             ApplicationInstanceBean applicationInstanceBean, Application application) {
 
@@ -1513,6 +1760,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Add ClustersInstances To GroupInstanceBean
+     * @param groupInstanceBean GroupInstanceBean
+     * @param group Group
+     */
     private static void addClustersInstancesToGroupInstanceBean(
             GroupInstanceBean groupInstanceBean,
             Group group) {
@@ -1536,6 +1788,12 @@ public class StratosApiV41Utils {
 
     }
 
+    /**
+     * Set Sub Group Instances
+     *
+     * @param group Group
+     * @param groupInstanceBean GroupInstanceBean
+     */
     private static void setSubGroupInstances(Group group, GroupInstanceBean groupInstanceBean) {
         Collection<Group> subgroups = group.getGroups();
         addClustersInstancesToGroupInstanceBean(groupInstanceBean, group);
@@ -1556,6 +1814,13 @@ public class StratosApiV41Utils {
 
     // Util methods for Kubernetes clusters
 
+    /**
+     * Add Kubernetes Cluster
+     *
+     * @param kubernetesClusterBean KubernetesClusterBean
+     * @return add status
+     * @throws RestAPIException
+     */
     public static boolean addKubernetesCluster(KubernetesClusterBean kubernetesClusterBean) throws RestAPIException,
             CloudControllerServiceInvalidKubernetesClusterExceptionException,
             CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException {
@@ -1575,6 +1840,14 @@ public class StratosApiV41Utils {
         return false;
     }
 
+    /**
+     * Add Kubernetes Host
+     *
+     * @param kubernetesClusterId KubernetesClusterId
+     * @param kubernetesHostBean  KubernetesHostBean
+     * @return add status
+     * @throws RestAPIException
+     */
     public static boolean addKubernetesHost(String kubernetesClusterId, KubernetesHostBean kubernetesHostBean)
             throws RestAPIException {
 
@@ -1601,6 +1874,13 @@ public class StratosApiV41Utils {
         return false;
     }
 
+    /**
+     * Update Kubernetes Master
+     *
+     * @param kubernetesMasterBean KubernetesMasterBean
+     * @return update status
+     * @throws RestAPIException
+     */
     public static boolean updateKubernetesMaster(KubernetesMasterBean kubernetesMasterBean) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
@@ -1626,6 +1906,12 @@ public class StratosApiV41Utils {
         return false;
     }
 
+    /**
+     * Get Available Kubernetes Clusters
+     *
+     * @return Array of KubernetesClusterBeans
+     * @throws RestAPIException
+     */
     public static KubernetesClusterBean[] getAvailableKubernetesClusters() throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
@@ -1648,6 +1934,12 @@ public class StratosApiV41Utils {
         return null;
     }
 
+    /**
+     * Get a Kubernetes Cluster
+     * @param kubernetesClusterId Cluster ID
+     * @return KubernetesClusterBean
+     * @throws RestAPIException
+     */
     public static KubernetesClusterBean getKubernetesCluster(String kubernetesClusterId) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
@@ -1669,6 +1961,13 @@ public class StratosApiV41Utils {
         return null;
     }
 
+    /**
+     * Remove Kubernetes Cluster
+     *
+     * @param kubernetesClusterId kubernetesClusterId
+     * @return remove status
+     * @throws RestAPIException
+     */
     public static boolean removeKubernetesCluster(String kubernetesClusterId) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
@@ -1688,6 +1987,13 @@ public class StratosApiV41Utils {
         return false;
     }
 
+    /**
+     * Remove Kubernetes Host
+     *
+     * @param kubernetesHostId Kubernetes HostId
+     * @return remove status
+     * @throws RestAPIException
+     */
     public static boolean removeKubernetesHost(String kubernetesHostId) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
@@ -1707,6 +2013,13 @@ public class StratosApiV41Utils {
         return false;
     }
 
+    /**
+     * Get Kubernetes Hosts
+     *
+     * @param kubernetesClusterId  kubernetesClusterId
+     * @return List of KubernetesHostBeans
+     * @throws RestAPIException
+     */
     public static KubernetesHostBean[] getKubernetesHosts(String kubernetesClusterId) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
@@ -1732,6 +2045,13 @@ public class StratosApiV41Utils {
         return null;
     }
 
+    /**
+     * Get Kubernetes Master
+     *
+     * @param kubernetesClusterId Kubernetes ClusterId
+     * @return KubernetesMasterBean
+     * @throws RestAPIException
+     */
     public static KubernetesMasterBean getKubernetesMaster(String kubernetesClusterId) throws RestAPIException {
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
@@ -1752,6 +2072,13 @@ public class StratosApiV41Utils {
         return null;
     }
 
+    /**
+     * Update KubernetesHost
+     *
+     * @param kubernetesHostBean KubernetesHostBean
+     * @return update status
+     * @throws RestAPIException
+     */
     public static boolean updateKubernetesHost(KubernetesHostBean kubernetesHostBean) throws RestAPIException {
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
@@ -1775,6 +2102,13 @@ public class StratosApiV41Utils {
         return false;
     }
 
+    /**
+     * Add Application Signup
+     *
+     * @param applicationId applicationId
+     * @param applicationSignUpBean ApplicationSignUpBean
+     * @throws RestAPIException
+     */
     public static void addApplicationSignUp(String applicationId, ApplicationSignUpBean applicationSignUpBean)
             throws RestAPIException {
 
@@ -1880,6 +2214,13 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Application SignUp
+     *
+     * @param applicationId applicationId
+     * @return ApplicationSignUpBean
+     * @throws RestAPIException
+     */
     public static ApplicationSignUpBean getApplicationSignUp(String applicationId) throws RestAPIException,
             StratosManagerServiceApplicationSignUpExceptionException {
         if (StringUtils.isBlank(applicationId)) {
@@ -1912,6 +2253,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Remove Application SignUp
+     *
+     * @param applicationId applicationId
+     * @throws RestAPIException
+     */
     public static void removeApplicationSignUp(String applicationId) throws RestAPIException {
         if (StringUtils.isBlank(applicationId)) {
             throw new RestAPIException("Application id is null");
@@ -1944,41 +2291,14 @@ public class StratosApiV41Utils {
         }
     }
 
-    public static List<ApplicationSignUpBean> getApplicationSignUps(String applicationId) throws RestAPIException {
-        if (StringUtils.isBlank(applicationId)) {
-            throw new RestAPIException("Application id is null");
-        }
-
-        ApplicationBean application = getApplication(applicationId);
-        if (application == null) {
-            throw new RestAPIException("Application does not exist: [application-id] " + applicationId);
-        }
-
-        if (!application.isMultiTenant()) {
-            throw new RestAPIException("Application singups not available for single-tenant applications");
-        }
-
-        try {
-            List<ApplicationSignUpBean> applicationSignUpBeans = new ArrayList<ApplicationSignUpBean>();
-            StratosManagerServiceClient serviceClient = StratosManagerServiceClient.getInstance();
-            ApplicationSignUp[] applicationSignUps = serviceClient.getApplicationSignUps(applicationId);
-            if (applicationSignUps != null) {
-                for (ApplicationSignUp applicationSignUp : applicationSignUps) {
-                    if (applicationSignUp != null) {
-                        ApplicationSignUpBean applicationSignUpBean =
-                                ObjectConverter.convertStubApplicationSignUpToApplicationSignUpBean(applicationSignUp);
-                        applicationSignUpBeans.add(applicationSignUpBean);
-                    }
-                }
-            }
-            return applicationSignUpBeans;
-        } catch (Exception e) {
-            String message = "Could not get application signups: [application-id] " + applicationId;
-            log.error(message, e);
-            throw new RestAPIException(message, e);
-        }
-    }
 
+    /**
+     * Add Application Domain Mappings
+     *
+     * @param applicationId  application Id
+     * @param domainMapppingsBean ApplicationDomainMappingsBean
+     * @throws RestAPIException
+     */
     public static void addApplicationDomainMappings(
             String applicationId, ApplicationDomainMappingsBean domainMapppingsBean) throws RestAPIException,
             StratosManagerServiceDomainMappingExceptionException {
@@ -2015,6 +2335,13 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Finnd Cluster Data Holder
+     *
+     * @param applicationId applicationId
+     * @param cartridgeAlias cartridge Alias
+     * @return ClusterDataHolder
+     */
     private static ClusterDataHolder findClusterDataHolder(String applicationId, String cartridgeAlias) {
         Application application = ApplicationManager.getApplications().getApplication(applicationId);
         if (application == null) {
@@ -2029,6 +2356,13 @@ public class StratosApiV41Utils {
         return clusterDataHolder;
     }
 
+    /**
+     * Remove Application Domain Mappings
+     *
+     * @param applicationId applicationId
+     * @param domainMapppingsBean ApplicationDomainMappingsBean
+     * @throws RestAPIException
+     */
     public static void removeApplicationDomainMappings(String applicationId,
                                                        ApplicationDomainMappingsBean domainMapppingsBean)
             throws RestAPIException, StratosManagerServiceDomainMappingExceptionException {
@@ -2055,6 +2389,13 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Application Domain Mappings
+     *
+     * @param applicationId applicationId
+     * @return List of DomainMappingBeans
+     * @throws RestAPIException
+     */
     public static List<DomainMappingBean> getApplicationDomainMappings(String applicationId) throws RestAPIException,
             StratosManagerServiceDomainMappingExceptionException {
         try {
@@ -2079,6 +2420,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Add a Network Partition
+     *
+     * @param networkPartitionBean NetworkPartitionBean
+     */
     public static void addNetworkPartition(NetworkPartitionBean networkPartitionBean) throws RestAPIException,
             CloudControllerServiceNetworkPartitionAlreadyExistsExceptionException {
         try {
@@ -2092,6 +2438,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Network Partitions
+     *
+     * @return Array of NetworkPartitionBeans
+     */
     public static NetworkPartitionBean[] getNetworkPartitions() throws RestAPIException {
         try {
             CloudControllerServiceClient serviceClient = CloudControllerServiceClient.getInstance();
@@ -2105,6 +2456,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Remove Network Partition
+     *
+     * @param networkPartitionId networkPartitionId
+     */
     public static void removeNetworkPartition(String networkPartitionId) throws RestAPIException,
             CloudControllerServiceNetworkPartitionNotExistsExceptionException {
         try {
@@ -2119,6 +2475,12 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Get Network Partition
+     *
+     * @param networkPartitionId networkPartitionId
+     * @return NetworkPartitionBean
+     */
     public static NetworkPartitionBean getNetworkPartition(String networkPartitionId) throws RestAPIException {
         try {
             CloudControllerServiceClient serviceClient = CloudControllerServiceClient.getInstance();
@@ -2134,6 +2496,11 @@ public class StratosApiV41Utils {
         }
     }
 
+    /**
+     * Update Network Partition
+     *
+     * @param networkPartition NetworkPartitionBean
+     */
     public static void updateNetworkPartition(NetworkPartitionBean networkPartition) throws RestAPIException,
             CloudControllerServiceNetworkPartitionNotExistsExceptionException {
         try {
@@ -2305,7 +2672,7 @@ public class StratosApiV41Utils {
     /**
      * Add Tenant
      *
-     * @param tenantInfoBean
+     * @param tenantInfoBean TenantInfoBean
      * @throws RestAPIException
      */
     public static void addTenant(org.apache.stratos.common.beans.TenantInfoBean tenantInfoBean) throws RestAPIException,
@@ -2394,7 +2761,7 @@ public class StratosApiV41Utils {
     /**
      * Update Existing Tenant
      *
-     * @param tenantInfoBean
+     * @param tenantInfoBean TenantInfoBean
      * @throws Exception
      */
     public static void updateExistingTenant(org.apache.stratos.common.beans.TenantInfoBean tenantInfoBean) throws
@@ -2517,8 +2884,8 @@ public class StratosApiV41Utils {
     /**
      * Get a Tenant by Domain
      *
-     * @param tenantDomain
-     * @return
+     * @param tenantDomain TenantInfoBean
+     * @return TenantInfoBean
      * @throws Exception
      */
     public static org.apache.stratos.common.beans.TenantInfoBean getTenantByDomain(String tenantDomain) throws Exception {
@@ -2556,23 +2923,13 @@ public class StratosApiV41Utils {
         bean.setFirstname(ClaimsMgtUtil.getFirstNamefromUserStoreManager(ServiceHolder.getRealmService(), tenantId));
         bean.setLastname(ClaimsMgtUtil.getLastNamefromUserStoreManager(ServiceHolder.getRealmService(), tenantId));
 
-        //getting the subscription plan
-        String activePlan = "";
-        //TODO: usage plan using billing service
-
-        if (activePlan != null && activePlan.trim().length() > 0) {
-            bean.setUsagePlan(activePlan);
-        } else {
-            bean.setUsagePlan("");
-        }
-
         return bean;
     }
 
     /**
      * Get a list of available Tenants
      *
-     * @return
+     * @return list of available Tenants
      * @throws RestAPIException
      */
     public static List<org.apache.stratos.common.beans.TenantInfoBean> getAllTenants() throws RestAPIException {
@@ -2599,8 +2956,8 @@ public class StratosApiV41Utils {
     /**
      * Get List of Partial Tenant Domains
      *
-     * @param domain
-     * @return
+     * @param domain domain Name
+     * @return List of Partial Tenant Domains
      * @throws RestAPIException
      */
     public static List<org.apache.stratos.common.beans.TenantInfoBean> searchPartialTenantsDomains(String domain)
@@ -2630,7 +2987,7 @@ public class StratosApiV41Utils {
     /**
      * Activate a Tenant
      *
-     * @param tenantDomain
+     * @param tenantDomain tenantDomainName
      * @throws RestAPIException
      */
     public static void activateTenant(String tenantDomain) throws RestAPIException {
@@ -2665,7 +3022,7 @@ public class StratosApiV41Utils {
     /**
      * Deactivate Tenant
      *
-     * @param tenantDomain
+     * @param tenantDomain tenantDomain
      * @throws RestAPIException
      */
     public static void deactivateTenant(String tenantDomain) throws RestAPIException {
@@ -2704,15 +3061,12 @@ public class StratosApiV41Utils {
     /**
      * Adds an User
      *
-     * @param userInfoBean
+     * @param userInfoBean User Info
      * @throws RestAPIException
      */
     public static void addUser(UserInfoBean userInfoBean) throws RestAPIException {
-        StratosUserManager stratosUserManager = new StratosUserManager();
-
-        try {
-            stratosUserManager.addUser(getTenantUserStoreManager(), userInfoBean);
-
+       try {
+            StratosUserManagerUtils.addUser(getTenantUserStoreManager(), userInfoBean);
         } catch (UserManagerException e) {
             throw new RestAPIException(e.getMessage());
         }
@@ -2752,10 +3106,8 @@ public class StratosApiV41Utils {
      * @throws RestAPIException
      */
     public static void removeUser(String userName) throws RestAPIException {
-        StratosUserManager stratosUserManager = new StratosUserManager();
-
         try {
-            stratosUserManager.removeUser(getTenantUserStoreManager(), userName);
+            StratosUserManagerUtils.removeUser(getTenantUserStoreManager(), userName);
         } catch (UserManagerException e) {
             throw new RestAPIException(e.getMessage());
         }
@@ -2768,10 +3120,8 @@ public class StratosApiV41Utils {
      * @throws RestAPIException
      */
     public static void updateUser(UserInfoBean userInfoBean) throws RestAPIException {
-        StratosUserManager stratosUserManager = new StratosUserManager();
-
         try {
-            stratosUserManager.updateUser(getTenantUserStoreManager(), userInfoBean);
+            StratosUserManagerUtils.updateUser(getTenantUserStoreManager(), userInfoBean);
 
         } catch (UserManagerException e) {
             throw new RestAPIException(e.getMessage());
@@ -2782,14 +3132,13 @@ public class StratosApiV41Utils {
     /**
      * Get List of Users
      *
-     * @return
+     * @return  List of Users
      * @throws RestAPIException
      */
     public static List<UserInfoBean> getUsers() throws RestAPIException {
-        StratosUserManager stratosUserManager = new StratosUserManager();
         List<UserInfoBean> userList;
         try {
-            userList = stratosUserManager.getAllUsers(getTenantUserStoreManager());
+            userList = StratosUserManagerUtils.getAllUsers(getTenantUserStoreManager());
         } catch (UserManagerException e) {
             throw new RestAPIException(e.getMessage());
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/BadRequestExceptionMapper.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/BadRequestExceptionMapper.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/BadRequestExceptionMapper.java
index e4df93d..f3997c5 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/BadRequestExceptionMapper.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/BadRequestExceptionMapper.java
@@ -19,7 +19,7 @@ package org.apache.stratos.rest.endpoint.handlers;/*
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 
 import javax.ws.rs.BadRequestException;
 import javax.ws.rs.core.MediaType;
@@ -40,6 +40,6 @@ public class BadRequestExceptionMapper implements ExceptionMapper<BadRequestExce
         String errorMsg = badRequestException.getMessage() != null ? badRequestException.getMessage() : "please check" +
                 "your input format";
         return Response.status(Response.Status.BAD_REQUEST).type(MediaType.APPLICATION_JSON).
-                entity(new ErrorResponseBean(Response.Status.BAD_REQUEST.getStatusCode(), errorMsg)).build();
+                entity(new StatusResponseBean(Response.Status.BAD_REQUEST.getStatusCode(), errorMsg)).build();
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CookieBasedAuthenticationHandler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CookieBasedAuthenticationHandler.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CookieBasedAuthenticationHandler.java
index cd7228e..dbba25e 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CookieBasedAuthenticationHandler.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CookieBasedAuthenticationHandler.java
@@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.cxf.jaxrs.ext.RequestHandler;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.message.Message;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 import org.apache.stratos.rest.endpoint.context.AuthenticationContext;
 import org.wso2.carbon.context.PrivilegedCarbonContext;
 
@@ -67,7 +67,7 @@ public class CookieBasedAuthenticationHandler implements RequestHandler {
         }
         return Response.status(Response.Status.FORBIDDEN).
                 type(MediaType.APPLICATION_JSON).entity(
-                new ErrorResponseBean(Response.Status.FORBIDDEN.getStatusCode(),
+                new StatusResponseBean(Response.Status.FORBIDDEN.getStatusCode(),
                         "The endpoint requires authentication")).build();
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomExceptionMapper.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomExceptionMapper.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomExceptionMapper.java
index 062a153..20cc9b7 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomExceptionMapper.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomExceptionMapper.java
@@ -20,7 +20,7 @@ package org.apache.stratos.rest.endpoint.handlers;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 
 import javax.ws.rs.core.MediaType;
@@ -47,6 +47,6 @@ public class CustomExceptionMapper implements ExceptionMapper<RestAPIException>
 
         log.error(errorMessage, restAPIException);
         return Response.status(httpStatus.getStatusCode()).type(MediaType.APPLICATION_JSON).
-                entity(new ErrorResponseBean(httpStatus.getStatusCode(), errorMessage)).build();
+                entity(new StatusResponseBean(httpStatus.getStatusCode(), errorMessage)).build();
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomThrowableExceptionMapper.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomThrowableExceptionMapper.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomThrowableExceptionMapper.java
index 3558c55..ed50f71 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomThrowableExceptionMapper.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/CustomThrowableExceptionMapper.java
@@ -19,7 +19,7 @@ package org.apache.stratos.rest.endpoint.handlers;/*
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
@@ -34,6 +34,6 @@ public class CustomThrowableExceptionMapper implements ExceptionMapper<Throwable
         }
 
         return Response.status(Response.Status.INTERNAL_SERVER_ERROR).type(MediaType.APPLICATION_JSON).
-                entity(new ErrorResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Internal server error")).build();
+                entity(new StatusResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Internal server error")).build();
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/GenericExceptionMapper.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/GenericExceptionMapper.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/GenericExceptionMapper.java
index 69c4e3d..fd992ab 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/GenericExceptionMapper.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/GenericExceptionMapper.java
@@ -20,7 +20,7 @@ package org.apache.stratos.rest.endpoint.handlers;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.MediaType;
@@ -41,6 +41,6 @@ public class GenericExceptionMapper implements ExceptionMapper<WebApplicationExc
         String errorMessage = (webApplicationException.getMessage() != null) ?
                 webApplicationException.getMessage() : "Internal server error";
         return Response.status(Response.Status.INTERNAL_SERVER_ERROR).type(MediaType.APPLICATION_JSON).
-                entity(new ErrorResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), errorMessage)).build();
+                entity(new StatusResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), errorMessage)).build();
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthenticationHandler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthenticationHandler.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthenticationHandler.java
index 09b24fd..4414bc5 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthenticationHandler.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthenticationHandler.java
@@ -26,7 +26,7 @@ import org.apache.cxf.jaxrs.ext.RequestHandler;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.security.SecurityContext;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 import org.apache.stratos.rest.endpoint.ServiceHolder;
 import org.apache.stratos.rest.endpoint.context.AuthenticationContext;
 import org.apache.stratos.rest.endpoint.security.StratosSecurityContext;
@@ -80,13 +80,13 @@ public class StratosAuthenticationHandler extends AbstractAuthenticationAuthoriz
             log.error("username is seen as null/empty values");
             return Response.status(Response.Status.UNAUTHORIZED)
                     .header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON)
-                    .entity(new ErrorResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
+                    .entity(new StatusResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
                             "Username cannot be null")).build();
         } else if (certObject == null && (StringUtils.isEmpty(password))) {
             log.error("password is seen as null/empty values");
             return Response.status(Response.Status.UNAUTHORIZED)
                     .header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON)
-                    .entity(new ErrorResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
+                    .entity(new StatusResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
                             "password cannot be null")).build();
         }
 
@@ -103,7 +103,7 @@ public class StratosAuthenticationHandler extends AbstractAuthenticationAuthoriz
                     log.error("Invalid domain or unactivated tenant login");
                     // is this the correct HTTP code for this scenario ? (401)
                     return Response.status(Response.Status.UNAUTHORIZED).header("WWW-Authenticate", "Basic").
-                            type(MediaType.APPLICATION_JSON).entity(new ErrorResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(), "Tenant not found")).build();
+                            type(MediaType.APPLICATION_JSON).entity(new StatusResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(), "Tenant not found")).build();
                 }
             }
             username = MultitenantUtils.getTenantAwareUsername(username);
@@ -129,14 +129,14 @@ public class StratosAuthenticationHandler extends AbstractAuthenticationAuthoriz
                 log.warn(String.format("Unable to authenticate the request: [message-id] %s", message.getId()));
                 // authentication failed, request the authetication, add the realm name if needed to the value of WWW-Authenticate
                 return Response.status(Response.Status.UNAUTHORIZED).header("WWW-Authenticate", "Basic").
-                        type(MediaType.APPLICATION_JSON).entity(new ErrorResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
+                        type(MediaType.APPLICATION_JSON).entity(new StatusResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
                         "Authentication failed. Please check your username/password")).build();
             }
         } catch (Exception exception) {
             log.error(String.format("Authentication failed: [message-id] %s", message.getId()), exception);
             // server error in the eyes of the client. Hence 5xx HTTP code.
             return Response.status(Response.Status.INTERNAL_SERVER_ERROR).type(MediaType.APPLICATION_JSON).
-                    entity(new ErrorResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
+                    entity(new StatusResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
                             "Unexpected error. Please contact the system admin")).build();
         }
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java
index f55ec6b..32b2972 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java
@@ -28,7 +28,7 @@ import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.BindingOperationInfo;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 import org.apache.stratos.rest.endpoint.context.AuthenticationContext;
 import org.wso2.carbon.context.CarbonContext;
 import org.wso2.carbon.context.PrivilegedCarbonContext;
@@ -84,7 +84,7 @@ public class StratosAuthorizingHandler implements RequestHandler {
                 log.warn("User :" + userName + "trying to perform unauthrorized action" +
                         " against the resource :" + targetMethod);
                 return Response.status(Response.Status.FORBIDDEN).type(MediaType.APPLICATION_JSON).
-                        entity(new ErrorResponseBean(Response.Status.FORBIDDEN.getStatusCode(), "The user does not have required permissions to " +
+                        entity(new StatusResponseBean(Response.Status.FORBIDDEN.getStatusCode(), "The user does not have required permissions to " +
                                 "perform this operation")).build();
             }
             return null;
@@ -92,7 +92,7 @@ public class StratosAuthorizingHandler implements RequestHandler {
         } catch (Exception exception) {
             log.error("Unexpected error occured while REST api, authorization process", exception);
             return Response.status(Response.Status.INTERNAL_SERVER_ERROR).type(MediaType.APPLICATION_JSON).
-                    entity(new ErrorResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
+                    entity(new StatusResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
                             "Unexpected error. Please contact the system admin")).build();
         }
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosMockHandler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosMockHandler.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosMockHandler.java
index 6c9f6fe..930cc33 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosMockHandler.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosMockHandler.java
@@ -24,7 +24,7 @@ import org.apache.cxf.configuration.security.AuthorizationPolicy;
 import org.apache.cxf.jaxrs.ext.RequestHandler;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.message.Message;
-import org.apache.stratos.common.beans.ErrorResponseBean;
+import org.apache.stratos.common.beans.StatusResponseBean;
 import org.wso2.carbon.context.PrivilegedCarbonContext;
 
 import javax.servlet.http.HttpServletRequest;
@@ -66,13 +66,13 @@ public class StratosMockHandler extends AbstractAuthenticationAuthorizationHandl
             log.error("username is seen as null/empty values.");
             return Response.status(Response.Status.UNAUTHORIZED)
                     .header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON)
-                    .entity(new ErrorResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
+                    .entity(new StatusResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
                             "Username cannot be null")).build();
         } else if (certObject == null && ((password == null) || password.equals(""))) {
             log.error("password is seen as null/empty values.");
             return Response.status(Response.Status.UNAUTHORIZED)
                     .header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON)
-                    .entity(new ErrorResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
+                    .entity(new StatusResponseBean(Response.Status.UNAUTHORIZED.getStatusCode(),
                             "password cannot be null")).build();
         }
 
@@ -86,7 +86,7 @@ public class StratosMockHandler extends AbstractAuthenticationAuthorizationHandl
             log.error("Authentication failed", exception);
             // server error in the eyes of the client. Hence 5xx HTTP code.
             return Response.status(Response.Status.INTERNAL_SERVER_ERROR).type(MediaType.APPLICATION_JSON).
-                    entity(new ErrorResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
+                    entity(new StatusResponseBean(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
                             "Unexpected error. Please contact the system admin")).build();
         }
 


[8/8] stratos git commit: Merge remote-tracking branch 'upstream/master'

Posted by ud...@apache.org.
Merge remote-tracking branch 'upstream/master'


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

Branch: refs/heads/master
Commit: 4750f1a6aceb11253b1ca475994d7c24c88a8369
Parents: 4e43ff1 5c87d5d
Author: anuruddhal <an...@gmail.com>
Authored: Wed May 6 11:50:40 2015 +0530
Committer: anuruddhal <an...@gmail.com>
Committed: Wed May 6 11:50:40 2015 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java  |  4 +-
 .../AutoscalerTopologyEventReceiver.java        | 10 +++-
 .../stratos/autoscaler/monitor/Monitor.java     | 13 ++--
 .../monitor/cluster/ClusterMonitor.java         | 10 ++--
 .../monitor/component/ApplicationMonitor.java   |  6 +-
 .../monitor/component/GroupMonitor.java         |  2 +-
 .../component/ParentComponentMonitor.java       | 63 +++++++++-----------
 .../builder/MonitorStatusEventBuilder.java      |  4 +-
 .../rule/AutoscalerRuleEvaluator.java           | 18 ++++--
 9 files changed, 72 insertions(+), 58 deletions(-)
----------------------------------------------------------------------



[2/8] stratos git commit: Refining Rest-API

Posted by ud...@apache.org.
Refining Rest-API


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

Branch: refs/heads/master
Commit: 46a5b601dfbd6ad4691b4bde2230eda7a702b589
Parents: e97d336
Author: anuruddhal <an...@gmail.com>
Authored: Thu Apr 30 15:13:45 2015 +0530
Committer: anuruddhal <an...@gmail.com>
Committed: Thu Apr 30 15:13:45 2015 +0530

----------------------------------------------------------------------
 .../stratos/common/beans/ErrorResponseBean.java |  58 --
 .../common/beans/StatusResponseBean.java        |  54 ++
 .../common/beans/SuccessResponseBean.java       |  54 --
 .../user/management/StratosUserManager.java     | 201 ------
 .../management/StratosUserManagerUtils.java     | 201 ++++++
 .../apache/stratos/rest/endpoint/Constants.java |   6 +
 .../rest/endpoint/api/StratosApiV41.java        | 168 ++---
 .../rest/endpoint/api/StratosApiV41Utils.java   | 635 ++++++++++++++-----
 .../handlers/BadRequestExceptionMapper.java     |   4 +-
 .../CookieBasedAuthenticationHandler.java       |   4 +-
 .../handlers/CustomExceptionMapper.java         |   4 +-
 .../CustomThrowableExceptionMapper.java         |   4 +-
 .../handlers/GenericExceptionMapper.java        |   4 +-
 .../handlers/StratosAuthenticationHandler.java  |  12 +-
 .../handlers/StratosAuthorizingHandler.java     |   6 +-
 .../endpoint/handlers/StratosMockHandler.java   |   8 +-
 16 files changed, 860 insertions(+), 563 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ErrorResponseBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ErrorResponseBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ErrorResponseBean.java
deleted file mode 100644
index 02f643b..0000000
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ErrorResponseBean.java
+++ /dev/null
@@ -1,58 +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.common.beans;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement(name = "error")
-public class ErrorResponseBean {
-
-    private int errorCode;
-    private String errorMessage;
-
-    public ErrorResponseBean() {
-
-    }
-
-    public ErrorResponseBean(String errorMessage) {
-        this.errorMessage = errorMessage;
-    }
-
-    public ErrorResponseBean(int errorCode, String errorMessage) {
-        this.errorCode = errorCode;
-        this.errorMessage = errorMessage;
-    }
-
-    public int getErrorCode() {
-        return errorCode;
-    }
-
-    public void setErrorCode(int errorCode) {
-        this.errorCode = errorCode;
-    }
-
-    public String getErrorMessage() {
-        return errorMessage;
-    }
-
-    public void setErrorMessage(String errorMessage) {
-        this.errorMessage = errorMessage;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
new file mode 100644
index 0000000..16d19a6
--- /dev/null
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
@@ -0,0 +1,54 @@
+/*
+ * 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.common.beans;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class StatusResponseBean {
+
+    private int statusCode;
+    private String successMessage;
+
+    public StatusResponseBean() {
+    }
+
+    public StatusResponseBean(int statusCode, String message) {
+        this.statusCode = statusCode;
+        this.successMessage = message;
+    }
+
+    public int getStatusCode() {
+        return statusCode;
+    }
+
+    public void setStatusCode(int statusCode) {
+        this.statusCode = statusCode;
+    }
+
+    public String getSuccessMessage() {
+        return successMessage;
+    }
+
+    public void setSuccessMessage(String successMessage) {
+        this.successMessage = successMessage;
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/SuccessResponseBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/SuccessResponseBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/SuccessResponseBean.java
deleted file mode 100644
index 3506f8a..0000000
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/SuccessResponseBean.java
+++ /dev/null
@@ -1,54 +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.common.beans;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement(name = "success")
-public class SuccessResponseBean {
-
-    private int statusCode;
-    private String successMessage;
-
-    public SuccessResponseBean() {
-    }
-
-    public SuccessResponseBean(int statusCode, String message) {
-        this.statusCode = statusCode;
-        this.successMessage = message;
-    }
-
-    public int getStatusCode() {
-        return statusCode;
-    }
-
-    public void setStatusCode(int statusCode) {
-        this.statusCode = statusCode;
-    }
-
-    public String getSuccessMessage() {
-        return successMessage;
-    }
-
-    public void setSuccessMessage(String successMessage) {
-        this.successMessage = successMessage;
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManager.java
deleted file mode 100644
index bac6970..0000000
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManager.java
+++ /dev/null
@@ -1,201 +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.manager.user.management;
-
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.common.beans.UserInfoBean;
-import org.apache.stratos.manager.user.management.exception.UserManagerException;
-import org.wso2.carbon.user.api.UserStoreException;
-import org.wso2.carbon.user.api.UserStoreManager;
-import org.wso2.carbon.user.core.UserCoreConstants;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * This Class provides the operations related to adding/updating/deleting and listing users using
- * the carbon UserStoreManager in the particular tenant space
- */
-public class StratosUserManager {
-
-    private transient static final Log log = LogFactory.getLog(StratosUserManager.class);
-    private static final String INTERNAL_EVERYONE_ROLE = "Internal/everyone";
-    private static final String GET_ALL_USERS_WILD_CARD = "*";
-
-    /**
-     * Add a user to the user-store of the particular tenant
-     *
-     * @param userStoreManager UserStoreManager
-     * @param userInfoBean     UserInfoBean
-     * @throws UserManagerException
-     */
-    public void addUser(UserStoreManager userStoreManager, UserInfoBean userInfoBean)
-            throws UserManagerException {
-
-        if (log.isDebugEnabled()) {
-            log.debug("Creating new User: " + userInfoBean.getUserName());
-        }
-
-        String[] roles = new String[1];
-        roles[0] = userInfoBean.getRole();
-        Map<String, String> claims = new HashMap<String, String>();
-
-        //set firstname, lastname and email as user claims
-        claims.put(UserCoreConstants.ClaimTypeURIs.EMAIL_ADDRESS, userInfoBean.getEmail());
-        claims.put(UserCoreConstants.ClaimTypeURIs.GIVEN_NAME, userInfoBean.getFirstName());
-        claims.put(UserCoreConstants.ClaimTypeURIs.SURNAME, userInfoBean.getLastName());
-
-        try {
-            userStoreManager.addUser(userInfoBean.getUserName(), userInfoBean.getCredential(), roles, claims, userInfoBean.getProfileName());
-        } catch (UserStoreException e) {
-            String msg = "Error in adding user " + userInfoBean.getUserName() + " to User Store";
-            log.error(msg, e);
-            throw new UserManagerException(msg, e);
-        }
-
-    }
-
-    /**
-     * Delete the user with the given username in the relevant tenant space
-     *
-     * @param userStoreManager UserStoreManager
-     * @param userName         UserName
-     * @throws UserManagerException
-     */
-    public void removeUser(UserStoreManager userStoreManager, String userName)
-            throws UserManagerException {
-
-        try {
-            if (userStoreManager.isExistingUser(userName)) {
-                userStoreManager.deleteUser(userName);
-            } else {
-                String msg = "Requested user " + userName + " does not exist";
-                throw new UserManagerException(msg);
-            }
-        } catch (UserStoreException e) {
-            String msg = "Error in deleting the user " + userName + " from User Store";
-            log.error(msg, e);
-            throw new UserManagerException(msg, e);
-        }
-    }
-
-
-    /**
-     * Updates the user info given the new UserInfoBean
-     *
-     * @param userStoreManager UserStoreManager
-     * @param userInfoBean     UserInfoBean
-     * @throws UserManagerException
-     */
-    public void updateUser(UserStoreManager userStoreManager, UserInfoBean userInfoBean)
-            throws UserManagerException {
-
-        try {
-            if (userStoreManager.isExistingUser(userInfoBean.getUserName())) {
-                if (log.isDebugEnabled()) {
-                    log.debug("Updating User " + userInfoBean.getUserName());
-                }
-
-                String[] newRoles = new String[1];
-                newRoles[0] = userInfoBean.getRole();
-
-                userStoreManager.updateRoleListOfUser(userInfoBean.getUserName(), getRefinedListOfRolesOfUser(userStoreManager, userInfoBean.getUserName()), newRoles);
-                userStoreManager.setUserClaimValue(userInfoBean.getUserName(), UserCoreConstants.ClaimTypeURIs.EMAIL_ADDRESS, userInfoBean.getEmail(), userInfoBean.getProfileName());
-                userStoreManager.setUserClaimValue(userInfoBean.getUserName(), UserCoreConstants.ClaimTypeURIs.GIVEN_NAME, userInfoBean.getFirstName(), userInfoBean.getProfileName());
-                userStoreManager.setUserClaimValue(userInfoBean.getUserName(), UserCoreConstants.ClaimTypeURIs.SURNAME, userInfoBean.getLastName(), userInfoBean.getProfileName());
-                userStoreManager.updateCredentialByAdmin(userInfoBean.getUserName(), userInfoBean.getCredential());
-            } else {
-                String msg = "Requested user " + userInfoBean.getUserName() + " does not exist";
-                throw new UserManagerException(msg);
-            }
-        } catch (UserStoreException e) {
-            String msg = "Error in updating the user " + userInfoBean.getUserName() + " in User Store";
-            log.error(msg, e);
-            throw new UserManagerException(msg, e);
-        }
-    }
-
-    /**
-     * Get a List of usernames and associated Roles as a UserInfoBean
-     *
-     * @param userStoreManager UserStoreManager
-     * @return List<UserInfoBean>
-     * @throws UserManagerException
-     */
-    public List<UserInfoBean> getAllUsers(UserStoreManager userStoreManager)
-            throws UserManagerException {
-
-        String[] users;
-        List<UserInfoBean> userList = new ArrayList<UserInfoBean>();
-
-        try {
-            users = userStoreManager.listUsers(GET_ALL_USERS_WILD_CARD, -1);
-        } catch (UserStoreException e) {
-            String msg = "Error in listing the users in User Store";
-            log.error(msg, e);
-            throw new UserManagerException(msg, e);
-        }
-
-        //Iterate through the list of users and retrieve their roles
-        for (String user : users) {
-            UserInfoBean userInfoBean = new UserInfoBean();
-            userInfoBean.setUserName(user);
-            userInfoBean.setRole(getRefinedListOfRolesOfUser(userStoreManager, user)[0]);
-            userList.add(userInfoBean);
-        }
-
-        return userList;
-    }
-
-    /**
-     * Get the List of userRoles except the Internal/everyone role
-     *
-     * @param userStoreManager UserStoreManager
-     * @param username         Username of the user
-     * @return String[]
-     * @throws UserManagerException
-     */
-    private String[] getRefinedListOfRolesOfUser(UserStoreManager userStoreManager, String username)
-            throws UserManagerException {
-
-        ArrayList<String> rolesWithoutEveryoneRole = new ArrayList<String>();
-
-        try {
-            String[] allUserRoles = userStoreManager.getRoleListOfUser(username);
-
-            for (String role : allUserRoles) {
-                if (!role.equals(INTERNAL_EVERYONE_ROLE)) {
-                    rolesWithoutEveryoneRole.add(role);
-                }
-            }
-            String[] rolesWithoutEveryoneRoleArray = new String[rolesWithoutEveryoneRole.size()];
-            return rolesWithoutEveryoneRole.toArray(rolesWithoutEveryoneRoleArray);
-
-        } catch (UserStoreException e) {
-            String msg = "Error in listing the roles of user " + username + " in User Store";
-            log.error(msg, e);
-            throw new UserManagerException(msg, e);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManagerUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManagerUtils.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManagerUtils.java
new file mode 100644
index 0000000..5ca089d
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/user/management/StratosUserManagerUtils.java
@@ -0,0 +1,201 @@
+/*
+ * 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.manager.user.management;
+
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.UserInfoBean;
+import org.apache.stratos.manager.user.management.exception.UserManagerException;
+import org.wso2.carbon.user.api.UserStoreException;
+import org.wso2.carbon.user.api.UserStoreManager;
+import org.wso2.carbon.user.core.UserCoreConstants;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This Class provides the operations related to adding/updating/deleting and listing users using
+ * the carbon UserStoreManager in the particular tenant space
+ */
+public class StratosUserManagerUtils {
+
+    private transient static final Log log = LogFactory.getLog(StratosUserManagerUtils.class);
+    private static final String INTERNAL_EVERYONE_ROLE = "Internal/everyone";
+    private static final String GET_ALL_USERS_WILD_CARD = "*";
+
+    /**
+     * Add a user to the user-store of the particular tenant
+     *
+     * @param userStoreManager UserStoreManager
+     * @param userInfoBean     UserInfoBean
+     * @throws UserManagerException
+     */
+    public static void addUser(UserStoreManager userStoreManager, UserInfoBean userInfoBean)
+            throws UserManagerException {
+
+        if (log.isDebugEnabled()) {
+            log.debug("Creating new User: " + userInfoBean.getUserName());
+        }
+
+        String[] roles = new String[1];
+        roles[0] = userInfoBean.getRole();
+        Map<String, String> claims = new HashMap<String, String>();
+
+        //set firstname, lastname and email as user claims
+        claims.put(UserCoreConstants.ClaimTypeURIs.EMAIL_ADDRESS, userInfoBean.getEmail());
+        claims.put(UserCoreConstants.ClaimTypeURIs.GIVEN_NAME, userInfoBean.getFirstName());
+        claims.put(UserCoreConstants.ClaimTypeURIs.SURNAME, userInfoBean.getLastName());
+
+        try {
+            userStoreManager.addUser(userInfoBean.getUserName(), userInfoBean.getCredential(), roles, claims, userInfoBean.getProfileName());
+        } catch (UserStoreException e) {
+            String msg = "Error in adding user " + userInfoBean.getUserName() + " to User Store";
+            log.error(msg, e);
+            throw new UserManagerException(msg, e);
+        }
+
+    }
+
+    /**
+     * Delete the user with the given username in the relevant tenant space
+     *
+     * @param userStoreManager UserStoreManager
+     * @param userName         UserName
+     * @throws UserManagerException
+     */
+    public static void removeUser(UserStoreManager userStoreManager, String userName)
+            throws UserManagerException {
+
+        try {
+            if (userStoreManager.isExistingUser(userName)) {
+                userStoreManager.deleteUser(userName);
+            } else {
+                String msg = "Requested user " + userName + " does not exist";
+                throw new UserManagerException(msg);
+            }
+        } catch (UserStoreException e) {
+            String msg = "Error in deleting the user " + userName + " from User Store";
+            log.error(msg, e);
+            throw new UserManagerException(msg, e);
+        }
+    }
+
+
+    /**
+     * Updates the user info given the new UserInfoBean
+     *
+     * @param userStoreManager UserStoreManager
+     * @param userInfoBean     UserInfoBean
+     * @throws UserManagerException
+     */
+    public static void updateUser(UserStoreManager userStoreManager, UserInfoBean userInfoBean)
+            throws UserManagerException {
+
+        try {
+            if (userStoreManager.isExistingUser(userInfoBean.getUserName())) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Updating User " + userInfoBean.getUserName());
+                }
+
+                String[] newRoles = new String[1];
+                newRoles[0] = userInfoBean.getRole();
+
+                userStoreManager.updateRoleListOfUser(userInfoBean.getUserName(), getRefinedListOfRolesOfUser(userStoreManager, userInfoBean.getUserName()), newRoles);
+                userStoreManager.setUserClaimValue(userInfoBean.getUserName(), UserCoreConstants.ClaimTypeURIs.EMAIL_ADDRESS, userInfoBean.getEmail(), userInfoBean.getProfileName());
+                userStoreManager.setUserClaimValue(userInfoBean.getUserName(), UserCoreConstants.ClaimTypeURIs.GIVEN_NAME, userInfoBean.getFirstName(), userInfoBean.getProfileName());
+                userStoreManager.setUserClaimValue(userInfoBean.getUserName(), UserCoreConstants.ClaimTypeURIs.SURNAME, userInfoBean.getLastName(), userInfoBean.getProfileName());
+                userStoreManager.updateCredentialByAdmin(userInfoBean.getUserName(), userInfoBean.getCredential());
+            } else {
+                String msg = "Requested user " + userInfoBean.getUserName() + " does not exist";
+                throw new UserManagerException(msg);
+            }
+        } catch (UserStoreException e) {
+            String msg = "Error in updating the user " + userInfoBean.getUserName() + " in User Store";
+            log.error(msg, e);
+            throw new UserManagerException(msg, e);
+        }
+    }
+
+    /**
+     * Get a List of usernames and associated Roles as a UserInfoBean
+     *
+     * @param userStoreManager UserStoreManager
+     * @return List<UserInfoBean>
+     * @throws UserManagerException
+     */
+    public static List<UserInfoBean> getAllUsers(UserStoreManager userStoreManager)
+            throws UserManagerException {
+
+        String[] users;
+        List<UserInfoBean> userList = new ArrayList<UserInfoBean>();
+
+        try {
+            users = userStoreManager.listUsers(GET_ALL_USERS_WILD_CARD, -1);
+        } catch (UserStoreException e) {
+            String msg = "Error in listing the users in User Store";
+            log.error(msg, e);
+            throw new UserManagerException(msg, e);
+        }
+
+        //Iterate through the list of users and retrieve their roles
+        for (String user : users) {
+            UserInfoBean userInfoBean = new UserInfoBean();
+            userInfoBean.setUserName(user);
+            userInfoBean.setRole(getRefinedListOfRolesOfUser(userStoreManager, user)[0]);
+            userList.add(userInfoBean);
+        }
+
+        return userList;
+    }
+
+    /**
+     * Get the List of userRoles except the Internal/everyone role
+     *
+     * @param userStoreManager UserStoreManager
+     * @param username         Username of the user
+     * @return String[]
+     * @throws UserManagerException
+     */
+    private static String[] getRefinedListOfRolesOfUser(UserStoreManager userStoreManager, String username)
+            throws UserManagerException {
+
+        ArrayList<String> rolesWithoutEveryoneRole = new ArrayList<String>();
+
+        try {
+            String[] allUserRoles = userStoreManager.getRoleListOfUser(username);
+
+            for (String role : allUserRoles) {
+                if (!role.equals(INTERNAL_EVERYONE_ROLE)) {
+                    rolesWithoutEveryoneRole.add(role);
+                }
+            }
+            String[] rolesWithoutEveryoneRoleArray = new String[rolesWithoutEveryoneRole.size()];
+            return rolesWithoutEveryoneRole.toArray(rolesWithoutEveryoneRoleArray);
+
+        } catch (UserStoreException e) {
+            String msg = "Error in listing the roles of user " + username + " in User Store";
+            log.error(msg, e);
+            throw new UserManagerException(msg, e);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
index 3574e17..6966d32 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
@@ -25,4 +25,10 @@ public class Constants {
 
     public static final String SUPER_TENANT_SERVICE = "super.tenant.service";
 
+    // Values used to Filter Cartridges
+    public static final String FILTER_TENANT_TYPE_SINGLE_TENANT="singleTenant";
+    public static final String FILTER_TENANT_TYPE_MULTI_TENANT="multiTenant";
+    public static final String FILTER_LOAD_BALANCER="loadBalancer";
+    public static final String FILTER_PROVIDER="provider";
+
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/46a5b601/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 5120efc..045d84c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -68,7 +68,7 @@ import java.util.List;
  */
 @Path("/")
 public class StratosApiV41 extends AbstractApi {
-    private static Log log = LogFactory.getLog(StratosApiV41.class);
+    private static final Log log = LogFactory.getLog(StratosApiV41.class);
 
     @Context
     HttpServletRequest httpServletRequest;
@@ -136,12 +136,12 @@ public class StratosApiV41 extends AbstractApi {
             String msg = String.format("Cartridge already exists: [cartridge-type] %s", cartridgeType);
             log.warn(msg);
             return Response.status(Response.Status.CONFLICT)
-                    .entity(new ErrorResponseBean(Response.Status.CONFLICT.getStatusCode(), msg)).build();
+                    .entity(new StatusResponseBean(Response.Status.CONFLICT.getStatusCode(), msg)).build();
         }
 
         StratosApiV41Utils.addCartridge(cartridgeDefinitionBean);
         URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeType).build();
-        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                 String.format("Cartridge added successfully: [cartridge-type] %s", cartridgeType))).build();
     }
 
@@ -172,7 +172,7 @@ public class StratosApiV41 extends AbstractApi {
             return Response.status(Response.Status.CONFLICT).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
-        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                 String.format("Deployment policy added successfully: " + "[deployment-policy-id] %s",
                         deploymentPolicyID))).build();
     }
@@ -246,7 +246,7 @@ public class StratosApiV41 extends AbstractApi {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
-        return Response.ok(url).entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Deployment policy updated successfully: " + "[deployment-policy-id] %s",
                         deploymentPolicyID))).build();
     }
@@ -272,7 +272,7 @@ public class StratosApiV41 extends AbstractApi {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
-        return Response.ok(url).entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Deployment policy removed successfully: " + "[deployment-policy-id] %s",
                         deploymentPolicyID))).build();
     }
@@ -294,7 +294,7 @@ public class StratosApiV41 extends AbstractApi {
         StratosApiV41Utils.updateCartridge(cartridgeDefinitionBean);
         URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeDefinitionBean.getType()).build();
         return Response.ok(url)
-                .entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(), "Cartridge updated successfully"))
+                .entity(new StatusResponseBean(Response.Status.OK.getStatusCode(), "Cartridge updated successfully"))
                 .build();
 
     }
@@ -312,7 +312,7 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/admin/manage/getCartridge")
     public Response getCartridges()
             throws RestAPIException {
-        List<CartridgeBean> cartridges = StratosApiV41Utils.getAvailableCartridges(null, null, getConfigContext());
+        List<CartridgeBean> cartridges = StratosApiV41Utils.getAvailableCartridges(null, false, getConfigContext());
         if (cartridges == null || cartridges.isEmpty()) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
@@ -409,7 +409,7 @@ public class StratosApiV41 extends AbstractApi {
     public Response removeCartridge(
             @PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
         StratosApiV41Utils.removeCartridge(cartridgeType);
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Cartridge deleted successfully: [cartridge-type] %s", cartridgeType))).build();
 
     }
@@ -434,7 +434,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addServiceGroup(serviceGroupDefinition);
             URI url = uriInfo.getAbsolutePathBuilder().path(serviceGroupDefinition.getName()).build();
-            return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                     String.format("Service Group added successfully: [service-group] %s",
                             serviceGroupDefinition.getName()))).build();
         } catch (RestAPIException e) {
@@ -512,7 +512,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("groupDefinitionName") String groupDefinitionName) throws RestAPIException {
 
         StratosApiV41Utils.removeServiceGroup(groupDefinitionName);
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Service Group deleted successfully: [service-group] %s", groupDefinitionName)))
                 .build();
     }
@@ -538,11 +538,11 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addNetworkPartition(networkPartitionBean);
         } catch (CloudControllerServiceNetworkPartitionAlreadyExistsExceptionException e) {
             return Response.status(Response.Status.CONFLICT)
-                    .entity(new ErrorResponseBean(Response.Status.CONFLICT.getStatusCode(), e.getLocalizedMessage()))
+                    .entity(new StatusResponseBean(Response.Status.CONFLICT.getStatusCode(), e.getLocalizedMessage()))
                     .build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(networkPartitionId).build();
-        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                 String.format("Network partition added successfully: [network-partition] %s", networkPartitionId)))
                 .build();
     }
@@ -607,7 +607,7 @@ public class StratosApiV41 extends AbstractApi {
         } catch (CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Network Partition deleted successfully: [network-partition] %s",
                         networkPartitionId))).build();
     }
@@ -631,7 +631,7 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addApplication(applicationDefinition, getConfigContext(), getUsername(), getTenantDomain());
 
             URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationId()).build();
-            return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                     String.format("Application added successfully: [application] %s",
                             applicationDefinition.getApplicationId()))).build();
         } catch (ApplicationAlreadyExistException e) {
@@ -660,7 +660,7 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.updateApplication(applicationDefinition, getConfigContext(), getUsername(), getTenantDomain());
 
             URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationId()).build();
-            return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                     String.format("Application added successfully: [application] %s",
                             applicationDefinition.getApplicationId()))).build();
         } catch (RestAPIException e) {
@@ -730,7 +730,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
         try {
             StratosApiV41Utils.deployApplication(applicationId, applicationPolicyId);
-            return Response.accepted().entity(new SuccessResponseBean(Response.Status.ACCEPTED.getStatusCode(),
+            return Response.accepted().entity(new StatusResponseBean(Response.Status.ACCEPTED.getStatusCode(),
                     String.format("Application deployed successfully: [application] %s", applicationId))).build();
         } catch (ApplicationAlreadyDeployedException e) {
 
@@ -758,7 +758,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addApplicationPolicy(applicationPolicy);
             URI url = uriInfo.getAbsolutePathBuilder().path(applicationPolicy.getId()).build();
-            return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                     String.format("Application policy added successfully: [application-policy] %s",
                             applicationPolicy.getId()))).build();
         } catch (RestAPIException e) {
@@ -832,15 +832,15 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
         try {
             StratosApiV41Utils.removeApplicationPolicy(applicationPolicyId);
-            return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+            return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                     String.format("Application policy deleted successfully: [application-policy] %s",
                             applicationPolicyId))).build();
         } catch (ApplicationPolicyIdIsEmptyException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy id is empty"))
                     .build();
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy is invalid"))
                     .build();
         }
@@ -864,15 +864,15 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateApplicationPolicy(applicationPolicy);
         } catch (AutoscalerServiceInvalidApplicationPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Invalid application policy"))
                     .build();
         } catch (AutoscalerServiceApplicatioinPolicyNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Application policy does not exist"))
                     .build();
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Application policy updated successfully: [application-policy] %s",
                         applicationPolicy.getId()))).build();
     }
@@ -895,7 +895,7 @@ public class StratosApiV41 extends AbstractApi {
         if (appNetworkPartitionsBean == null ||
                 (appNetworkPartitionsBean.getNetworkPartitionIds().size() == 1 &&
                         appNetworkPartitionsBean.getNetworkPartitionIds().get(0) == null)) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "No network partitions used in the application"))
                     .build();
         }
@@ -921,7 +921,7 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         StratosApiV41Utils.addApplicationSignUp(applicationId, applicationSignUpBean);
         URI url = uriInfo.getAbsolutePathBuilder().path(applicationId).build();
-        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                 String.format("Successfully signed up for: [application] %s", applicationId))).build();
     }
 
@@ -944,14 +944,14 @@ public class StratosApiV41 extends AbstractApi {
         try {
             applicationSignUpBean = StratosApiV41Utils.getApplicationSignUp(applicationId);
             if (applicationSignUpBean == null) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                         Response.Status.NOT_FOUND.getStatusCode(), "No Application sign ups found for application"))
                         .build();
             }
 
             return Response.ok(applicationSignUpBean).build();
         } catch (ApplicationSignUpRestAPIException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to get application sign ups"))
                     .build();
         }
@@ -994,7 +994,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addApplicationDomainMappings(applicationId, domainMappingsBean);
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to add domain mapping for " +
                     "application")).build();
         }
@@ -1004,7 +1004,7 @@ public class StratosApiV41 extends AbstractApi {
             domainMappingList.add(domainMappingBean.getDomainName());
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(applicationId).build();
-        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                 String.format("Domain Mappings added successfully: [domain-mappings] %s", domainMappingList)))
                 .build();
     }
@@ -1028,7 +1028,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeApplicationDomainMappings(applicationId, domainMapppingsBean);
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to delete domain mapping of " +
                     "application")).build();
         }
@@ -1037,7 +1037,7 @@ public class StratosApiV41 extends AbstractApi {
         for (DomainMappingBean domainMappingBean : mappings) {
             domainMappingList.add(domainMappingBean.getDomainName());
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Domain Mappings deleted successfully: [domain-mappings] %s", domainMappingList)))
                 .build();
     }
@@ -1060,12 +1060,12 @@ public class StratosApiV41 extends AbstractApi {
         try {
             domainMappingsBeanList = StratosApiV41Utils.getApplicationDomainMappings(applicationId);
             if (domainMappingsBeanList == null || domainMappingsBeanList.isEmpty()) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                         Response.Status.NOT_FOUND.getStatusCode(), "No domain mappings found for the application"))
                         .build();
             }
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to get domain mapping of application"))
                     .build();
         }
@@ -1096,18 +1096,18 @@ public class StratosApiV41 extends AbstractApi {
         if (applicationDefinition == null) {
             String msg = String.format("Application does not exist [application-id] %s", applicationId);
             log.info(msg);
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), msg)).build();
         }
         if (!applicationDefinition.getStatus().equalsIgnoreCase(StratosApiV41Utils.APPLICATION_STATUS_DEPLOYED)) {
             String message = String.format("Could not undeploy since application is not in DEPLOYED status " +
                     "[application-id] %s [current status] %S", applicationId, applicationDefinition.getStatus());
             log.info(message);
-            return Response.status(Response.Status.CONFLICT).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
                     Response.Status.CONFLICT.getStatusCode(), message)).build();
         }
         StratosApiV41Utils.undeployApplication(applicationId, force);
-        return Response.accepted().entity(new SuccessResponseBean(Response.Status.ACCEPTED.getStatusCode(),
+        return Response.accepted().entity(new StatusResponseBean(Response.Status.ACCEPTED.getStatusCode(),
                 String.format("Application undeployed successfully: [application] %s", applicationId))).build();
     }
 
@@ -1128,7 +1128,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationInfoBean applicationRuntime = StratosApiV41Utils.getApplicationRuntime(applicationId);
         if (applicationRuntime == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Application runtime not found")).build();
         } else {
             return Response.ok().entity(applicationRuntime).build();
@@ -1153,18 +1153,18 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationBean applicationDefinition = StratosApiV41Utils.getApplication(applicationId);
         if (applicationDefinition == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Application not found")).build();
         }
 
         if (!applicationDefinition.getStatus().equalsIgnoreCase(StratosApiV41Utils.APPLICATION_STATUS_CREATED)) {
-            return Response.status(Response.Status.CONFLICT).entity(new SuccessResponseBean(Response.Status.CONFLICT.
+            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(Response.Status.CONFLICT.
                     getStatusCode(), String.format("Could not delete since application is not in CREATED state :" +
                     " [application] %s [current-status] %S", applicationId, applicationDefinition.getStatus()))).build();
         }
 
         StratosApiV41Utils.removeApplication(applicationId);
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Application deleted successfully: [application] %s", applicationId))).build();
     }
 
@@ -1185,7 +1185,7 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         AutoscalePolicyBean[] autoScalePolicies = StratosApiV41Utils.getAutoScalePolicies();
         if (autoScalePolicies == null || autoScalePolicies.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "No Autoscaling policies found")).build();
         }
 
@@ -1208,7 +1208,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("autoscalePolicyId") String autoscalePolicyId) throws RestAPIException {
         AutoscalePolicyBean autoScalePolicy = StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId);
         if (autoScalePolicy == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling policy not found")).build();
         }
         return Response.ok().entity(autoScalePolicy).build();
@@ -1232,14 +1232,14 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addAutoscalingPolicy(autoscalePolicy);
             URI url = uriInfo.getAbsolutePathBuilder().path(autoscalePolicy.getId()).build();
-            return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                     String.format("Autoscaling policy added successfully: [autoscale-policy] %s",
                             autoscalePolicy.getId()))).build();
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Provided Autoscaling policy is invalid")).build();
         } catch (AutoscalerServiceAutoScalingPolicyAlreadyExistExceptionException e) {
-            return Response.status(Response.Status.CONFLICT).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
                     Response.Status.CONFLICT.getStatusCode(), "Autoscaling policy already exists")).build();
         } catch (RestAPIException e) {
             throw e;
@@ -1264,10 +1264,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateAutoscalingPolicy(autoscalePolicy);
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy is invalid")).build();
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Autoscaling policy updated successfully: [autoscale-policy] %s",
                         autoscalePolicy.getId()))).build();
     }
@@ -1290,10 +1290,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateNetworkPartition(networkPartition);
         } catch (CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Network partition not found")).build();
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Network Partition updated successfully: [network-partition] %s",
                         networkPartition.getId()))).build();
     }
@@ -1316,13 +1316,13 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeAutoscalingPolicy(autoscalingPolicyId);
         } catch (AutoscalerServiceUnremovablePolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy is in use")).build();
         } catch (AutoscalerServicePolicyDoesNotExistExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling policy not found")).build();
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Autoscaling policy deleted successfully: [autoscale-policy] %s",
                         autoscalingPolicyId))).build();
     }
@@ -1345,7 +1345,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             ClusterBean clusterBean = StratosApiV41Utils.getClusterInfo(clusterId);
             if (clusterBean == null) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                         Response.Status.NOT_FOUND.getStatusCode(), "Cluster not found")).build();
             } else {
                 return Response.ok().entity(clusterBean).build();
@@ -1378,15 +1378,15 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addTenant(tenantInfoBean);
 
         } catch (InvalidEmailException e) {
-            Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Invalid email")).build();
         } catch (InvalidDomainException e) {
-            Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Invalid domain")).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(tenantInfoBean.getTenantDomain()).build();
         return Response.created(url).entity(
-                new SuccessResponseBean(Response.Status.CREATED.getStatusCode(), String.format(
+                new StatusResponseBean(Response.Status.CREATED.getStatusCode(), String.format(
                         "Tenant added successfully: [tenant] %s", tenantInfoBean.getTenantDomain()))).build();
     }
 
@@ -1408,10 +1408,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateExistingTenant(tenantInfoBean);
         } catch (TenantNotFoundException ex) {
-            Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Tenant not found")).build();
         } catch (InvalidEmailException e) {
-            Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Invalid email")).build();
         } catch (Exception e) {
             String msg = "Error in updating tenant " + tenantInfoBean.getTenantDomain();
@@ -1419,7 +1419,7 @@ public class StratosApiV41 extends AbstractApi {
             throw new RestAPIException(msg);
         }
 
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Tenant updated successfully: [tenant] %s", tenantInfoBean.getTenantDomain())))
                 .build();
     }
@@ -1444,7 +1444,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             TenantInfoBean tenantInfo = StratosApiV41Utils.getTenantByDomain(tenantDomain);
             if (tenantInfo == null) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                         Response.Status.NOT_FOUND.getStatusCode(), "Tenant information not found")).build();
             }
 
@@ -1472,7 +1472,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
 
         return Response.status(Response.Status.NOT_ACCEPTABLE)
-                .entity(new ErrorResponseBean(Response.Status.NOT_ACCEPTABLE.getStatusCode(),
+                .entity(new StatusResponseBean(Response.Status.NOT_ACCEPTABLE.getStatusCode(),
                         "Please use the tenant deactivate method")).build();
 
     }
@@ -1554,7 +1554,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
 
         StratosApiV41Utils.activateTenant(tenantDomain);
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Tenant activated successfully: [tenant] %s", tenantDomain))).build();
     }
 
@@ -1575,7 +1575,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
 
         StratosApiV41Utils.deactivateTenant(tenantDomain);
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Tenant deactivated successfully: [tenant] %s", tenantDomain))).build();
     }
 
@@ -1600,7 +1600,7 @@ public class StratosApiV41 extends AbstractApi {
         }
 
         StratosApiV41Utils.notifyArtifactUpdatedEvent(payload);
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Repository notificaton sent successfully"))).build();
     }
 
@@ -1624,7 +1624,7 @@ public class StratosApiV41 extends AbstractApi {
         StratosApiV41Utils.addUser(userInfoBean);
         log.info("Successfully added an user with Username " + userInfoBean.getUserName());
         URI url = uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build();
-        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                 String.format("User added successfully: [user] %s", userInfoBean.getUserName()))).build();
     }
 
@@ -1645,7 +1645,7 @@ public class StratosApiV41 extends AbstractApi {
 
         StratosApiV41Utils.removeUser(userName);
         log.info("Successfully removed user: [username] " + userName);
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("User deleted successfully: [user] %s", userName))).build();
     }
 
@@ -1666,7 +1666,7 @@ public class StratosApiV41 extends AbstractApi {
 
         StratosApiV41Utils.updateUser(userInfoBean);
         log.info("Successfully updated an user with Username " + userInfoBean.getUserName());
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("User updated successfully: [user] %s", userInfoBean.getUserName()))).build();
     }
 
@@ -1709,16 +1709,16 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addKubernetesCluster(kubernetesCluster);
             URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterId()).build();
-            return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                     String.format("Kubernetes Host Cluster added successfully: [kub-host-cluster] %s",
                             kubernetesCluster.getClusterId()))).build();
         } catch (RestAPIException e) {
             throw e;
         } catch (CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException e) {
-            return Response.status(Response.Status.CONFLICT).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
                     Response.Status.CONFLICT.getStatusCode(), "Kubernetes cluster already exists")).build();
         } catch (CloudControllerServiceInvalidKubernetesClusterExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
                     Response.Status.BAD_REQUEST.getStatusCode(), "Kubernetes cluster is invalid")).build();
         }
     }
@@ -1742,7 +1742,7 @@ public class StratosApiV41 extends AbstractApi {
 
         StratosApiV41Utils.addKubernetesHost(kubernetesClusterId, kubernetesHost);
         URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesHost.getHostId()).build();
-        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                 String.format("Kubernetes Host added successfully: [kub-host] %s", kubernetesHost.getHostId())))
                 .build();
     }
@@ -1764,11 +1764,11 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateKubernetesMaster(kubernetesMaster);
             URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesMaster.getHostId()).build();
-            return Response.ok(url).entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+            return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                     String.format("Kubernetes Master updated successfully: [kub-master] %s",
                             kubernetesMaster.getHostId()))).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
         }
     }
@@ -1784,11 +1784,11 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateKubernetesHost(kubernetesHost);
             URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesHost.getHostId()).build();
-            return Response.ok(url).entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+            return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                     String.format("Kubernetes Host updated successfully: [kub-host] %s",
                             kubernetesHost.getHostId()))).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes host not found")).build();
         }
     }
@@ -1808,7 +1808,7 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         KubernetesClusterBean[] availableKubernetesClusters = StratosApiV41Utils.getAvailableKubernetesClusters();
         if (availableKubernetesClusters == null || availableKubernetesClusters.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
         }
 
@@ -1832,7 +1832,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return Response.ok().entity(StratosApiV41Utils.getKubernetesCluster(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
         }
     }
@@ -1854,7 +1854,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return Response.ok().entity(StratosApiV41Utils.getKubernetesHosts(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes hosts not found")).build();
         }
     }
@@ -1876,7 +1876,7 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return Response.ok().entity(StratosApiV41Utils.getKubernetesMaster(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
         }
     }
@@ -1899,11 +1899,11 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.removeKubernetesCluster(kubernetesClusterId);
         } catch (RestAPIException e) {
             return Response.status(Response.Status.NOT_FOUND)
-                    .entity(new SuccessResponseBean(Response.Status.NOT_FOUND.getStatusCode(),
+                    .entity(new StatusResponseBean(Response.Status.NOT_FOUND.getStatusCode(),
                             String.format("Could not find specified Kubernetes cluster: [kub-cluster] %s",
                                     kubernetesClusterId))).build();
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Kubernetes Cluster removed successfully: [kub-cluster] %s", kubernetesClusterId)))
                 .build();
     }
@@ -1926,10 +1926,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeKubernetesHost(kubernetesHostId);
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
+            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
                     Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
         }
-        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Kubernetes Host removed successfully: [kub-host] %s", kubernetesHostId)))
                 .build();
     }


[6/8] stratos git commit: Resolving Merge Conflicts

Posted by ud...@apache.org.
Resolving Merge Conflicts


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

Branch: refs/heads/master
Commit: 5c8fdcf71c6fc66ab6f95c28686f86f3bcd18341
Parents: 13fa801 4d99362
Author: anuruddhal <an...@gmail.com>
Authored: Tue May 5 13:25:17 2015 +0530
Committer: anuruddhal <an...@gmail.com>
Committed: Tue May 5 13:25:17 2015 +0530

----------------------------------------------------------------------
 .../dependency/DependencyBuilder.java           |   9 +-
 .../applications/dependency/DependencyTree.java |  37 +--
 .../parser/DefaultApplicationParser.java        |   2 +-
 .../applications/parser/ParserUtils.java        |   4 +-
 .../context/cluster/ClusterContext.java         |  20 +-
 .../internal/AutoscalerServiceComponent.java    |   3 +-
 .../monitor/component/GroupMonitor.java         |  29 +-
 .../component/ParentComponentMonitor.java       | 113 ++++---
 .../autoscaler/pojo/policy/PolicyManager.java   |  12 +-
 .../autoscaler/services/AutoscalerService.java  |   1 -
 .../services/impl/AutoscalerServiceImpl.java    |   5 +-
 .../src/main/assembly/src.xml                   |  32 +-
 .../java/org/apache/stratos/cli/CliTool.java    |  97 +++---
 .../java/org/apache/stratos/cli/Command.java    | 104 +++---
 .../org/apache/stratos/cli/CommandContext.java  | 136 ++++----
 .../stratos/cli/CommandLineApplication.java     | 330 ++++++++++---------
 .../apache/stratos/cli/CommandLineService.java  | 312 +++++++++---------
 .../apache/stratos/cli/GenericRestClient.java   |  45 ++-
 .../main/java/org/apache/stratos/cli/Main.java  |   1 -
 .../java/org/apache/stratos/cli/RestClient.java |   2 +-
 .../stratos/cli/RestCommandLineService.java     | 279 ++++++++++------
 .../apache/stratos/cli/StratosApplication.java  |  68 ++--
 .../stratos/cli/StratosCommandContext.java      |  44 +--
 .../apache/stratos/cli/WebClientWrapper.java    |  47 ++-
 .../cli/commands/ActivateTenantCommand.java     |  54 +--
 .../commands/AddApplicationPolicyCommand.java   |  34 +-
 .../commands/AddApplicationSignupCommand.java   |  34 +-
 .../commands/AddAutoscalingPolicyCommand.java   |  34 +-
 .../cli/commands/AddCartridgeCommand.java       |  38 +--
 .../cli/commands/AddCartridgeGroupCommand.java  |  32 +-
 .../commands/AddDeploymentPolicyCommand.java    |  38 +--
 .../cli/commands/AddDomainMappingsCommand.java  |  36 +-
 .../commands/AddKubernetesClusterCommand.java   |  32 +-
 .../cli/commands/AddKubernetesHostCommand.java  |  54 +--
 .../commands/AddNetworkPartitionCommand.java    |  35 +-
 .../stratos/cli/commands/AddTenantCommand.java  |  41 ++-
 .../stratos/cli/commands/AddUserCommand.java    |  51 +--
 .../cli/commands/CreateApplicationCommand.java  |  38 +--
 .../cli/commands/DeactivateTenantCommand.java   |  58 ++--
 .../cli/commands/DeleteApplicationCommand.java  |  58 ++--
 .../DeleteApplicationSignupCommand.java         |  58 ++--
 .../DeleteAutoScalingPolicyCommand.java         |  58 ++--
 .../stratos/cli/commands/DeleteUserCommand.java |  58 ++--
 .../cli/commands/DeployApplicationCommand.java  |  40 +--
 .../commands/DescribeApplicationCommand.java    |  78 ++---
 .../DescribeApplicationPolicyCommand.java       |  32 +-
 .../DescribeApplicationRuntimeCommand.java      |  32 +-
 .../DescribeApplicationSignupCommand.java       |  78 ++---
 .../DescribeAutoScalingPolicyCommand.java       |  61 ++--
 .../cli/commands/DescribeCartridgeCommand.java  |  61 ++--
 .../commands/DescribeCartridgeGroupCommand.java |  78 ++---
 .../DescribeDeploymentPolicyCommand.java        |  61 ++--
 .../DescribeKubernetesClusterCommand.java       |  32 +-
 .../DescribeKubernetesMasterCommand.java        |  32 +-
 .../DescribeNetworkPartitionCommand.java        |  32 +-
 .../cli/commands/DescribeTenantCommand.java     |  36 +-
 .../stratos/cli/commands/ExitCommand.java       | 100 +++---
 .../stratos/cli/commands/HelpCommand.java       | 106 +++---
 .../stratos/cli/commands/InfoCommand.java       |  84 ++---
 .../ListApplicationPoliciesCommand.java         |  34 +-
 .../cli/commands/ListApplicationsCommand.java   |  32 +-
 .../commands/ListAutoscalePolicyCommand.java    |  32 +-
 .../commands/ListCartridgeGroupsCommand.java    |  84 ++---
 .../cli/commands/ListCartridgesCommand.java     |  90 ++---
 .../commands/ListDeploymentPoliciesCommand.java |  32 +-
 .../cli/commands/ListDomainMappingsCommand.java |  88 ++---
 .../commands/ListKubernetesClustersCommand.java |  84 ++---
 .../commands/ListKubernetesHostsCommand.java    |  56 ++--
 .../commands/ListNetworkPartitionCommand.java   |  32 +-
 .../ListPartialSearchTenantsCommand.java        |  38 +--
 .../stratos/cli/commands/ListTenants.java       |  34 +-
 .../apache/stratos/cli/commands/ListUsers.java  |  34 +-
 .../RemoveApplicationPolicyCommand.java         |  32 +-
 .../cli/commands/RemoveCartridgeCommand.java    |  58 ++--
 .../commands/RemoveCartridgeGroupCommand.java   |  32 +-
 .../commands/RemoveDeploymentPolicyCommand.java |  32 +-
 .../commands/RemoveDomainMappingsCommand.java   |  32 +-
 .../RemoveKubernetesClusterCommand.java         |  35 +-
 .../commands/RemoveKubernetesHostCommand.java   |  32 +-
 .../commands/RemoveNetworkPartitionCommand.java |  32 +-
 .../commands/SynchronizeArtifactsCommand.java   | 104 +++---
 .../commands/UndeployApplicationCommand.java    |  32 +-
 .../UpdateApplicationPolicyCommand.java         |  34 +-
 .../UpdateAutoscalingPolicyCommand.java         |  34 +-
 .../cli/commands/UpdateCartridgeCommand.java    |  34 +-
 .../commands/UpdateDeploymentPolicyCommand.java |  34 +-
 .../commands/UpdateKubernetesHostCommand.java   |  59 ++--
 .../commands/UpdateKubernetesMasterCommand.java |  51 +--
 .../commands/UpdateNetworkPartitionCommand.java |  34 +-
 .../cli/commands/UpdateTenantCommand.java       |  40 +--
 .../stratos/cli/commands/UpdateUserCommand.java |  48 +--
 .../stratos/cli/completer/CommandCompleter.java | 228 +++++++------
 .../cli/completer/StratosFileNameCompleter.java |  61 ++--
 .../stratos/cli/exception/CommandException.java |  56 ++--
 .../stratos/cli/exception/ErrorWrapper.java     |  32 +-
 .../stratos/cli/exception/ExceptionMapper.java  |  34 +-
 .../apache/stratos/cli/utils/CliConstants.java  |  42 +--
 .../org/apache/stratos/cli/utils/CliUtils.java  | 177 +++++-----
 .../org/apache/stratos/cli/utils/RowMapper.java |  34 +-
 .../controller/domain/NetworkPartition.java     |   3 +-
 .../impl/CloudControllerServiceImpl.java        |   2 +-
 .../common/client/AutoscalerServiceClient.java  |   2 +-
 .../kubernetes/client/rest/RestClient.java      |   4 +-
 .../console/applications_form.jag               |   2 +
 .../console/configure_form.jag                  |   4 +-
 .../default/configure/autoscalingpolicies.json  |   1 -
 .../forms/default/configure/cartridges.json     |   1 -
 .../schema/configure/autoscalingpolicies.json   |   8 -
 .../forms/schema/configure/cartridges.json      |   9 -
 .../controllers/forms/schema/users/users.json   |   3 +-
 .../console/controllers/menu/menu.json          |   4 +-
 .../theme0/css/custom/application_editor.css    |   3 +
 .../images/ContextMenu/page_white_delete.png    | Bin 0 -> 536 bytes
 .../images/ContextMenu/page_white_edit.png      | Bin 0 -> 618 bytes
 .../theme0/js/custom/applications-deploy.js     |   5 +
 .../theme0/js/custom/applications-editor.js     |  33 +-
 .../js/custom/applications_group_editor.js      |  93 +++++-
 .../themes/theme0/partials/applications.hbs     |   5 +
 .../theme0/partials/applications_form.hbs       |   5 +
 .../partials/applications_group_editor.hbs      |  36 +-
 .../theme0/partials/applications_topology.hbs   |   5 +
 .../themes/theme0/partials/configure_form.hbs   |  18 +-
 .../themes/theme0/partials/users_form.hbs       |   6 +
 components/org.apache.stratos.messaging/pom.xml |   3 +-
 .../broker/connect/amqp/AmqpTopicPublisher.java |   6 +-
 .../connect/amqp/AmqpTopicSubscriber.java       |   4 +-
 .../broker/connect/mqtt/MqttTopicPublisher.java |   2 +-
 .../messaging/domain/application/Group.java     |   5 +-
 .../domain/instance/ApplicationInstance.java    |   2 +-
 .../domain/instance/ClusterInstance.java        |   2 +-
 .../domain/instance/GroupInstance.java          |   2 +-
 .../messaging/domain/topology/Cluster.java      |   2 +-
 .../messaging/domain/topology/Member.java       |   2 +-
 .../messaging/domain/topology/Topology.java     |   8 +-
 .../lifecycle/LifeCycleStateManager.java        |   2 +-
 .../signup/ApplicationSignUpAddedEvent.java     |   1 -
 .../instance/notifier/ArtifactUpdatedEvent.java |   2 -
 .../instance/status/InstanceActivatedEvent.java |   2 -
 .../event/tenant/TenantSubscribedEvent.java     |   3 +-
 .../event/topology/MemberActivatedEvent.java    |   8 +-
 .../message/processor/MessageProcessor.java     |   1 -
 .../ApplicationSignUpMessageProcessorChain.java |   2 -
 .../ClusterStatusMessageProcessorChain.java     |   1 -
 .../InstanceStatusMessageProcessorChain.java    |   6 -
 .../tenant/TenantMessageProcessorChain.java     |   5 +-
 .../ClusterCreatedMessageProcessor.java         |   4 +-
 .../CompleteTopologyMessageProcessor.java       |   4 +-
 .../MemberActivatedMessageProcessor.java        |   6 +-
 .../topology/MemberStartedMessageProcessor.java |   6 +-
 .../MemberSuspendedMessageProcessor.java        |   6 +-
 .../ClusterStatusEventMessageListener.java      |   2 -
 .../status/ClusterStatusEventMessageQueue.java  |   1 -
 .../stat/HealthStatEventMessageDelegator.java   |   2 -
 .../stat/HealthStatEventMessageQueue.java       |   1 -
 .../InstanceNotifierEventMessageQueue.java      |   1 -
 .../status/InstanceStatusEventMessageQueue.java |   1 -
 .../tenant/TenantEventMessageQueue.java         |   1 -
 .../topology/TopologyEventMessageQueue.java     |   1 -
 .../stratos/messaging/util/MessagingUtil.java   |   2 +-
 .../messaging/test/AmqpSubscriberTest.java      |   4 +-
 .../messaging/test/MessageFilterTest.java       |  38 +--
 .../topology/locking/TopologyLockingTest.java   |   2 +-
 .../rest/endpoint/api/StratosApiV41.java        |  48 +--
 .../rest/endpoint/api/StratosApiV41Utils.java   |  62 +++-
 .../tests/SampleApplicationsTest.java           |   2 +-
 .../applications/app-bursting-pattern/README.md |   8 -
 .../artifacts/application-signup.json           |  18 -
 .../artifacts/application.json                  |  25 --
 .../artifacts/domain-mappings.json              |   9 -
 .../scripts/common/deploy.sh                    |  51 ---
 .../scripts/common/undeploy.sh                  |  33 --
 .../app-bursting-pattern/scripts/ec2/deploy.sh  |   9 -
 .../scripts/ec2/undeploy.sh                     |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../app-bursting-pattern/scripts/mock/deploy.sh |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 .../applications/complex-app-with-lb/README.md  |  13 -
 .../artifacts/application.json                  | 141 --------
 .../scripts/common/deploy.sh                    |  67 ----
 .../scripts/common/undeploy.sh                  |  31 --
 .../complex-app-with-lb/scripts/ec2/deploy.sh   |   9 -
 .../complex-app-with-lb/scripts/ec2/undeploy.sh |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../complex-app-with-lb/scripts/mock/deploy.sh  |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/complex-app/README.md      |  13 -
 .../complex-app/artifacts/application.json      | 131 --------
 .../artifacts/autoscaling-policy.json           |  14 -
 .../artifacts/deployment-policy.json            |  15 -
 .../complex-app/scripts/common/deploy.sh        |  64 ----
 .../complex-app/scripts/common/undeploy.sh      |  36 --
 .../complex-app/scripts/ec2/deploy.sh           |   9 -
 .../complex-app/scripts/ec2/undeploy.sh         |   7 -
 .../complex-app/scripts/kubernetes/deploy.sh    |  15 -
 .../complex-app/scripts/kubernetes/undeploy.sh  |  13 -
 .../complex-app/scripts/mock/deploy.sh          |   9 -
 .../complex-app/scripts/mock/undeploy.sh        |   7 -
 .../complex-app/scripts/openstack/deploy.sh     |   9 -
 .../complex-app/scripts/openstack/undeploy.sh   |   7 -
 .../README.md                                   |  10 +
 .../artifacts/application.json                  | 121 +++++++
 .../scripts/common/add-domain-mappings.sh       |   9 +
 .../scripts/common/add-network-partition.sh     |   9 +
 .../scripts/common/deploy.sh                    |  65 ++++
 .../scripts/common/get-application-runtime.sh   |  10 +
 .../scripts/common/list-domain-mappings.sh      |   4 +
 .../scripts/common/list-network-partition.sh    |   4 +
 .../scripts/common/undeploy.sh                  |  37 +++
 .../scripts/common/update-deployment-policy.sh  |  12 +
 .../scripts/mock/deploy.sh                      |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../complex/tomcat-single-signon/README.md      |  30 ++
 .../artifacts/application.json                  |  38 +++
 .../scripts/common/deploy.sh                    |  54 +++
 .../scripts/common/undeploy.sh                  |  27 ++
 .../tomcat-single-signon/scripts/ec2/deploy.sh  |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  16 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../tomcat-single-signon/scripts/mock/deploy.sh |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../complex/wordpress-app/README.md             |  20 ++
 .../wordpress-app/artifacts/application.json    |  41 +++
 .../wordpress-app/scripts/common/deploy.sh      |  60 ++++
 .../wordpress-app/scripts/common/undeploy.sh    |  35 ++
 .../complex/wordpress-app/scripts/ec2/deploy.sh |   9 +
 .../wordpress-app/scripts/ec2/undeploy.sh       |   7 +
 .../wordpress-app/scripts/kubernetes/deploy.sh  |  16 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../wordpress-app/scripts/mock/deploy.sh        |   9 +
 .../wordpress-app/scripts/mock/undeploy.sh      |   7 +
 .../wordpress-app/scripts/openstack/deploy.sh   |   9 +
 .../wordpress-app/scripts/openstack/undeploy.sh |   7 +
 .../sample-cartridges/README.md                 |  13 -
 .../artifacts/application.json                  |  46 ---
 .../sample-cartridges/scripts/common/deploy.sh  |  53 ---
 .../scripts/common/undeploy.sh                  |  21 --
 .../sample-cartridges/scripts/ec2/deploy.sh     |   9 -
 .../sample-cartridges/scripts/ec2/undeploy.sh   |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../sample-cartridges/scripts/mock/deploy.sh    |   9 -
 .../sample-cartridges/scripts/mock/undeploy.sh  |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 .../dependent-scaling/sample-groups/README.md   |  13 -
 .../sample-groups/artifacts/application.json    |  74 -----
 .../sample-groups/scripts/common/deploy.sh      |  58 ----
 .../sample-groups/scripts/common/undeploy.sh    |  25 --
 .../sample-groups/scripts/ec2/deploy.sh         |   9 -
 .../sample-groups/scripts/ec2/undeploy.sh       |   7 -
 .../sample-groups/scripts/kubernetes/deploy.sh  |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../sample-groups/scripts/mock/deploy.sh        |   9 -
 .../sample-groups/scripts/mock/undeploy.sh      |   7 -
 .../sample-groups/scripts/openstack/deploy.sh   |   9 -
 .../sample-groups/scripts/openstack/undeploy.sh |   7 -
 .../README.md                                   |  23 --
 .../artifacts/application.json                  | 141 --------
 .../scripts/common/deploy.sh                    |  64 ----
 .../scripts/common/undeploy.sh                  |  35 --
 .../scripts/ec2/deploy.sh                       |   9 -
 .../scripts/ec2/undeploy.sh                     |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../scripts/mock/deploy.sh                      |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/group-cartridges/README.md |  14 -
 .../group-cartridges/artifacts/application.json |  49 ---
 .../group-cartridges/scripts/common/deploy.sh   |  63 ----
 .../group-cartridges/scripts/common/undeploy.sh |  38 ---
 .../group-cartridges/scripts/ec2/deploy.sh      |   9 -
 .../group-cartridges/scripts/ec2/undeploy.sh    |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../group-cartridges/scripts/mock/deploy.sh     |   9 -
 .../group-cartridges/scripts/mock/undeploy.sh   |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/group-scaling-v1/README.md |  18 -
 .../group-scaling-v1/artifacts/application.json |  48 ---
 .../group-scaling-v1/scripts/common/deploy.sh   |  58 ----
 .../group-scaling-v1/scripts/common/undeploy.sh |  29 --
 .../group-scaling-v1/scripts/ec2/deploy.sh      |   9 -
 .../group-scaling-v1/scripts/ec2/undeploy.sh    |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../group-scaling-v1/scripts/mock/deploy.sh     |   9 -
 .../group-scaling-v1/scripts/mock/undeploy.sh   |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/group-scaling/README.md    |  18 -
 .../group-scaling/artifacts/application.json    |  97 ------
 .../group-scaling/scripts/common/deploy.sh      |  72 ----
 .../group-scaling/scripts/common/undeploy.sh    |  33 --
 .../group-scaling/scripts/ec2/deploy.sh         |   9 -
 .../group-scaling/scripts/ec2/undeploy.sh       |   7 -
 .../group-scaling/scripts/kubernetes/deploy.sh  |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../group-scaling/scripts/mock/deploy.sh        |   9 -
 .../group-scaling/scripts/mock/undeploy.sh      |   7 -
 .../group-scaling/scripts/openstack/deploy.sh   |   9 -
 .../group-scaling/scripts/openstack/undeploy.sh |   7 -
 samples/applications/more-complex-app/README.md |  14 -
 .../more-complex-app/artifacts/application.json | 202 ------------
 .../more-complex-app/scripts/common/deploy.sh   |  64 ----
 .../more-complex-app/scripts/common/undeploy.sh |  31 --
 .../more-complex-app/scripts/ec2/deploy.sh      |   9 -
 .../more-complex-app/scripts/ec2/undeploy.sh    |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../more-complex-app/scripts/mock/deploy.sh     |   9 -
 .../more-complex-app/scripts/mock/undeploy.sh   |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 .../n-level-nesting/artifacts/application.json  | 184 -----------
 .../n-level-nesting/scripts/common/deploy.sh    |  67 ----
 .../n-level-nesting/scripts/common/undeploy.sh  |  36 --
 .../n-level-nesting/scripts/ec2/deploy.sh       |   9 -
 .../n-level-nesting/scripts/ec2/undeploy.sh     |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../n-level-nesting/scripts/mock/deploy.sh      |   9 -
 .../n-level-nesting/scripts/mock/undeploy.sh    |   7 -
 .../n-level-nesting/scripts/openstack/deploy.sh |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/nested-group-v2/README.md  |  30 --
 .../nested-group-v2/artifacts/application.json  |  97 ------
 .../nested-group-v2/images/nested-group-app.png | Bin 22765 -> 0 bytes
 .../nested-group-v2/scripts/common/deploy.sh    |  66 ----
 .../nested-group-v2/scripts/common/undeploy.sh  |  29 --
 .../nested-group-v2/scripts/ec2/deploy.sh       |   9 -
 .../nested-group-v2/scripts/ec2/undeploy.sh     |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../nested-group-v2/scripts/mock/deploy.sh      |   9 -
 .../nested-group-v2/scripts/mock/undeploy.sh    |   7 -
 .../nested-group-v2/scripts/openstack/deploy.sh |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/nested-group/README.md     |  14 -
 .../nested-group/artifacts/application.json     |  82 -----
 .../nested-group/scripts/common/deploy.sh       |  62 ----
 .../nested-group/scripts/common/undeploy.sh     |  29 --
 .../scripts/common/update-deployment-policy.sh  |  12 -
 .../scripts/common/update-network-partition.sh  |  11 -
 .../nested-group/scripts/ec2/deploy.sh          |   9 -
 .../nested-group/scripts/ec2/undeploy.sh        |   7 -
 .../nested-group/scripts/kubernetes/deploy.sh   |  15 -
 .../nested-group/scripts/kubernetes/undeploy.sh |  13 -
 .../nested-group/scripts/mock/deploy.sh         |   9 -
 .../nested-group/scripts/mock/undeploy.sh       |   7 -
 .../scripts/mock/update-network-partition.sh    |   6 -
 .../nested-group/scripts/openstack/deploy.sh    |   9 -
 .../nested-group/scripts/openstack/undeploy.sh  |   7 -
 .../openstack/update-network-partition.sh       |  11 -
 .../nested/complex-app-with-lb/README.md        |  13 +
 .../artifacts/application.json                  | 141 ++++++++
 .../scripts/common/deploy.sh                    |  67 ++++
 .../scripts/common/undeploy.sh                  |  38 +++
 .../complex-app-with-lb/scripts/ec2/deploy.sh   |   9 +
 .../complex-app-with-lb/scripts/ec2/undeploy.sh |   7 +
 .../scripts/kubernetes/deploy.sh                |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../complex-app-with-lb/scripts/mock/deploy.sh  |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../README.md                                   |  23 ++
 .../artifacts/application.json                  | 141 ++++++++
 .../scripts/common/deploy.sh                    |  64 ++++
 .../scripts/common/undeploy.sh                  |  35 ++
 .../scripts/ec2/deploy.sh                       |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  16 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../scripts/mock/deploy.sh                      |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../artifacts/application.json                  | 184 +++++++++++
 .../scripts/common/deploy.sh                    |  67 ++++
 .../scripts/common/undeploy.sh                  |  36 ++
 .../scripts/ec2/deploy.sh                       |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  16 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../scripts/mock/deploy.sh                      |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../single-level-nested-group-app/README.md     |  14 +
 .../artifacts/application.json                  |  82 +++++
 .../scripts/common/deploy.sh                    |  62 ++++
 .../scripts/common/undeploy.sh                  |  36 ++
 .../scripts/common/update-deployment-policy.sh  |  12 +
 .../scripts/common/update-network-partition.sh  |  11 +
 .../scripts/ec2/deploy.sh                       |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../scripts/mock/deploy.sh                      |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/mock/update-network-partition.sh    |   6 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../openstack/update-network-partition.sh       |  11 +
 .../single-level-nested-groups-app/README.md    |  13 +
 .../artifacts/application.json                  | 131 ++++++++
 .../artifacts/autoscaling-policy.json           |  14 +
 .../artifacts/deployment-policy.json            |  15 +
 .../scripts/common/deploy.sh                    |  64 ++++
 .../scripts/common/undeploy.sh                  |  36 ++
 .../scripts/ec2/deploy.sh                       |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../scripts/mock/deploy.sh                      |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../README.md                                   |  10 -
 .../artifacts/application.json                  | 121 -------
 .../scripts/common/add-domain-mappings.sh       |   9 -
 .../scripts/common/add-network-partition.sh     |   9 -
 .../scripts/common/deploy.sh                    |  65 ----
 .../scripts/common/get-application-runtime.sh   |  10 -
 .../scripts/common/list-domain-mappings.sh      |   4 -
 .../scripts/common/list-network-partition.sh    |   4 -
 .../scripts/common/undeploy.sh                  |  37 ---
 .../scripts/common/update-deployment-policy.sh  |  12 -
 .../scripts/mock/deploy.sh                      |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scaling/app-bursting-pattern/README.md      |   8 +
 .../artifacts/application-signup.json           |  18 +
 .../artifacts/application.json                  |  25 ++
 .../artifacts/domain-mappings.json              |   9 +
 .../scripts/common/deploy.sh                    |  51 +++
 .../scripts/common/undeploy.sh                  |  33 ++
 .../app-bursting-pattern/scripts/ec2/deploy.sh  |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  16 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../app-bursting-pattern/scripts/mock/deploy.sh |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../sample-cartridges/README.md                 |  13 +
 .../artifacts/application.json                  |  46 +++
 .../sample-cartridges/scripts/common/deploy.sh  |  53 +++
 .../scripts/common/undeploy.sh                  |  21 ++
 .../sample-cartridges/scripts/ec2/deploy.sh     |   9 +
 .../sample-cartridges/scripts/ec2/undeploy.sh   |   7 +
 .../scripts/kubernetes/deploy.sh                |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../sample-cartridges/scripts/mock/deploy.sh    |   9 +
 .../sample-cartridges/scripts/mock/undeploy.sh  |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../dependent-scaling/sample-groups/README.md   |  13 +
 .../sample-groups/artifacts/application.json    |  74 +++++
 .../sample-groups/scripts/common/deploy.sh      |  58 ++++
 .../sample-groups/scripts/common/undeploy.sh    |  25 ++
 .../sample-groups/scripts/ec2/deploy.sh         |   9 +
 .../sample-groups/scripts/ec2/undeploy.sh       |   7 +
 .../sample-groups/scripts/kubernetes/deploy.sh  |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../sample-groups/scripts/mock/deploy.sh        |   9 +
 .../sample-groups/scripts/mock/undeploy.sh      |   7 +
 .../sample-groups/scripts/openstack/deploy.sh   |   9 +
 .../sample-groups/scripts/openstack/undeploy.sh |   7 +
 .../group-scaling/group-scaling-app/README.md   |  18 +
 .../artifacts/application.json                  |  97 ++++++
 .../group-scaling-app/scripts/common/deploy.sh  |  72 ++++
 .../scripts/common/undeploy.sh                  |  33 ++
 .../group-scaling-app/scripts/ec2/deploy.sh     |   9 +
 .../group-scaling-app/scripts/ec2/undeploy.sh   |   7 +
 .../scripts/kubernetes/deploy.sh                |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../group-scaling-app/scripts/mock/deploy.sh    |   9 +
 .../group-scaling-app/scripts/mock/undeploy.sh  |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../group-scaling/group-scaling-v1/README.md    |  18 +
 .../group-scaling-v1/artifacts/application.json |  48 +++
 .../group-scaling-v1/scripts/common/deploy.sh   |  58 ++++
 .../group-scaling-v1/scripts/common/undeploy.sh |  29 ++
 .../group-scaling-v1/scripts/ec2/deploy.sh      |   9 +
 .../group-scaling-v1/scripts/ec2/undeploy.sh    |   7 +
 .../scripts/kubernetes/deploy.sh                |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../group-scaling-v1/scripts/mock/deploy.sh     |   9 +
 .../group-scaling-v1/scripts/mock/undeploy.sh   |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../single-group-group-scaling/README.md        |  13 +
 .../artifacts/application.json                  |  33 ++
 .../scripts/common/deploy.sh                    |  55 ++++
 .../scripts/common/undeploy.sh                  |  28 ++
 .../scripts/ec2/deploy.sh                       |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  15 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../scripts/mock/deploy.sh                      |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../simple/single-cartridge-app/README.md       |   8 +
 .../artifacts/application-signup.json           |  18 +
 .../artifacts/application.json                  |  25 ++
 .../artifacts/domain-mappings.json              |   9 +
 .../scripts/common/add-domain-mappings.sh       |   9 +
 .../scripts/common/add-network-partition.sh     |   9 +
 .../scripts/common/deploy.sh                    |  49 +++
 .../scripts/common/get-application-runtime.sh   |  10 +
 .../scripts/common/list-domain-mappings.sh      |   4 +
 .../scripts/common/list-network-partition.sh    |   4 +
 .../scripts/common/undeploy.sh                  |  31 ++
 .../scripts/common/update-deployment-policy.sh  |  12 +
 .../single-cartridge-app/scripts/ec2/deploy.sh  |   9 +
 .../scripts/ec2/undeploy.sh                     |   7 +
 .../scripts/kubernetes/deploy.sh                |  16 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../single-cartridge-app/scripts/mock/deploy.sh |   9 +
 .../scripts/mock/undeploy.sh                    |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 .../simple/single-group-app/README.md           |  15 +
 .../single-group-app/artifacts/application.json |  72 ++++
 .../single-group-app/scripts/common/deploy.sh   |  62 ++++
 .../single-group-app/scripts/common/undeploy.sh |  37 +++
 .../single-group-app/scripts/ec2/deploy.sh      |   9 +
 .../single-group-app/scripts/ec2/undeploy.sh    |   7 +
 .../scripts/kubernetes/deploy.sh                |  16 +
 .../scripts/kubernetes/undeploy.sh              |  13 +
 .../single-group-app/scripts/mock/deploy.sh     |   9 +
 .../single-group-app/scripts/mock/undeploy.sh   |   7 +
 .../scripts/openstack/deploy.sh                 |   9 +
 .../scripts/openstack/undeploy.sh               |   7 +
 samples/applications/single-cartridge/README.md |   8 -
 .../artifacts/application-signup.json           |  18 -
 .../single-cartridge/artifacts/application.json |  25 --
 .../artifacts/domain-mappings.json              |   9 -
 .../scripts/common/add-domain-mappings.sh       |   9 -
 .../scripts/common/add-network-partition.sh     |   9 -
 .../single-cartridge/scripts/common/deploy.sh   |  49 ---
 .../scripts/common/get-application-runtime.sh   |  10 -
 .../scripts/common/list-domain-mappings.sh      |   4 -
 .../scripts/common/list-network-partition.sh    |   4 -
 .../single-cartridge/scripts/common/undeploy.sh |  31 --
 .../scripts/common/update-deployment-policy.sh  |  12 -
 .../single-cartridge/scripts/ec2/deploy.sh      |   9 -
 .../single-cartridge/scripts/ec2/undeploy.sh    |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../single-cartridge/scripts/mock/deploy.sh     |   9 -
 .../single-cartridge/scripts/mock/undeploy.sh   |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 .../single-group-cartridge/README.md            |  15 -
 .../artifacts/application.json                  |  72 ----
 .../scripts/common/deploy.sh                    |  62 ----
 .../scripts/common/undeploy.sh                  |  37 ---
 .../scripts/ec2/deploy.sh                       |   9 -
 .../scripts/ec2/undeploy.sh                     |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../scripts/mock/deploy.sh                      |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 .../single-group-group-scaling/README.md        |  13 -
 .../artifacts/application.json                  |  33 --
 .../scripts/common/deploy.sh                    |  55 ----
 .../scripts/common/undeploy.sh                  |  28 --
 .../scripts/ec2/deploy.sh                       |   9 -
 .../scripts/ec2/undeploy.sh                     |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../scripts/mock/deploy.sh                      |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/single-group-v1/README.md  |  15 -
 .../artifacts/application-up.json               |  38 ---
 .../single-group-v1/artifacts/application.json  |  57 ----
 .../single-group-v1/scripts/common/deploy.sh    |  57 ----
 .../single-group-v1/scripts/common/undeploy.sh  |  35 --
 .../single-group-v1/scripts/ec2/deploy.sh       |   9 -
 .../single-group-v1/scripts/ec2/undeploy.sh     |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../single-group-v1/scripts/mock/deploy.sh      |   9 -
 .../single-group-v1/scripts/mock/undeploy.sh    |   7 -
 .../single-group-v1/scripts/openstack/deploy.sh |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/single-group-v2/README.md  |  14 -
 .../single-group-v2/artifacts/application.json  |  72 ----
 .../single-group-v2/scripts/common/deploy.sh    |  59 ----
 .../single-group-v2/scripts/common/undeploy.sh  |  31 --
 .../single-group-v2/scripts/ec2/deploy.sh       |   9 -
 .../single-group-v2/scripts/ec2/undeploy.sh     |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../single-group-v2/scripts/mock/deploy.sh      |   9 -
 .../single-group-v2/scripts/mock/undeploy.sh    |   7 -
 .../single-group-v2/scripts/openstack/deploy.sh |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/single-group-v3/README.md  |  14 -
 .../single-group-v3/artifacts/application.json  |  34 --
 .../single-group-v3/scripts/common/deploy.sh    |  53 ---
 .../single-group-v3/scripts/common/undeploy.sh  |  28 --
 .../single-group-v3/scripts/ec2/deploy.sh       |   9 -
 .../single-group-v3/scripts/ec2/undeploy.sh     |   7 -
 .../scripts/kubernetes/deploy.sh                |  15 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../single-group-v3/scripts/mock/deploy.sh      |   9 -
 .../single-group-v3/scripts/mock/undeploy.sh    |   7 -
 .../single-group-v3/scripts/openstack/deploy.sh |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 .../applications/tomcat-single-signon/README.md |  30 --
 .../artifacts/application.json                  |  38 ---
 .../scripts/common/deploy.sh                    |  54 ---
 .../scripts/common/undeploy.sh                  |  27 --
 .../tomcat-single-signon/scripts/ec2/deploy.sh  |   9 -
 .../scripts/ec2/undeploy.sh                     |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../tomcat-single-signon/scripts/mock/deploy.sh |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/tomcat/README.md           |  18 -
 .../tomcat/artifacts/application.json           |  25 --
 .../tomcat/scripts/common/deploy.sh             |  53 ---
 .../tomcat/scripts/common/undeploy.sh           |  25 --
 .../applications/tomcat/scripts/ec2/deploy.sh   |   9 -
 .../applications/tomcat/scripts/ec2/undeploy.sh |   7 -
 .../tomcat/scripts/kubernetes/deploy.sh         |  16 -
 .../tomcat/scripts/kubernetes/undeploy.sh       |  13 -
 .../applications/tomcat/scripts/mock/deploy.sh  |   9 -
 .../tomcat/scripts/mock/undeploy.sh             |   7 -
 .../tomcat/scripts/openstack/deploy.sh          |   9 -
 .../tomcat/scripts/openstack/undeploy.sh        |   7 -
 .../wordpress-extended-v1/README.md             |  22 --
 .../artifacts/application.json                  |  62 ----
 .../scripts/common/deploy.sh                    |  63 ----
 .../scripts/common/undeploy.sh                  |  36 --
 .../wordpress-extended-v1/scripts/ec2/deploy.sh |   9 -
 .../scripts/ec2/undeploy.sh                     |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../scripts/mock/deploy.sh                      |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 .../wordpress-extended-v2/README.md             |  23 --
 .../artifacts/application.json                  |  63 ----
 .../scripts/common/deploy.sh                    |  63 ----
 .../scripts/common/undeploy.sh                  |  36 --
 .../wordpress-extended-v2/scripts/ec2/deploy.sh |   9 -
 .../scripts/ec2/undeploy.sh                     |   7 -
 .../scripts/kubernetes/deploy.sh                |  16 -
 .../scripts/kubernetes/undeploy.sh              |  13 -
 .../scripts/mock/deploy.sh                      |   9 -
 .../scripts/mock/undeploy.sh                    |   7 -
 .../scripts/openstack/deploy.sh                 |   9 -
 .../scripts/openstack/undeploy.sh               |   7 -
 samples/applications/wordpress/README.md        |  20 --
 .../wordpress/artifacts/application.json        |  41 ---
 .../wordpress/scripts/common/deploy.sh          |  60 ----
 .../wordpress/scripts/common/undeploy.sh        |  35 --
 .../wordpress/scripts/ec2/deploy.sh             |   9 -
 .../wordpress/scripts/ec2/undeploy.sh           |   7 -
 .../wordpress/scripts/kubernetes/deploy.sh      |  16 -
 .../wordpress/scripts/kubernetes/undeploy.sh    |  13 -
 .../wordpress/scripts/mock/deploy.sh            |   9 -
 .../wordpress/scripts/mock/undeploy.sh          |   7 -
 .../wordpress/scripts/openstack/deploy.sh       |   9 -
 .../wordpress/scripts/openstack/undeploy.sh     |   7 -
 .../src/main/resources/AutoscalerService.wsdl   | 257 +++++++--------
 690 files changed, 7684 insertions(+), 9871 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5c8fdcf7/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 045d84c,81c07b7..fe1721c
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@@ -439,7 -439,8 +439,8 @@@ public class StratosApiV41 extends Abst
                              serviceGroupDefinition.getName()))).build();
          } catch (RestAPIException e) {
              if (e.getCause().getMessage().contains("already exists")) {
-                 return Response.status(Response.Status.CONFLICT).build();
 -                return Response.status(Response.Status.CONFLICT).entity(new ErrorResponseBean(
++                return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
+                         Response.Status.CONFLICT.getStatusCode(), "Cartridge group not found")).build();
              } else {
                  throw e;
              }
@@@ -461,14 -462,13 +462,13 @@@
      public Response getServiceGroupDefinition(
              @PathParam("groupDefinitionName") String groupDefinitionName) throws RestAPIException {
          GroupBean serviceGroupDefinition = StratosApiV41Utils.getServiceGroupDefinition(groupDefinitionName);
-         Response.ResponseBuilder rb;
+ 
          if (serviceGroupDefinition != null) {
-             rb = Response.ok().entity(serviceGroupDefinition);
+             return Response.ok().entity(serviceGroupDefinition).build();
          } else {
-             rb = Response.status(Response.Status.NOT_FOUND);
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Cartridge group not found")).build();
          }
- 
-         return rb.build();
      }
  
      /**
@@@ -485,14 -485,13 +485,13 @@@
      public Response getServiceGroups()
              throws RestAPIException {
          GroupBean[] serviceGroups = StratosApiV41Utils.getServiceGroupDefinitions();
-         Response.ResponseBuilder rb;
+ 
          if (serviceGroups != null) {
-             rb = Response.ok().entity(serviceGroups);
+             return Response.ok().entity(serviceGroups).build();
          } else {
-             rb = Response.status(Response.Status.NOT_FOUND);
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Cartridge group not found")).build();
          }
- 
-         return rb.build();
      }
  
      /**
@@@ -538,11 -537,11 +537,12 @@@
              StratosApiV41Utils.addNetworkPartition(networkPartitionBean);
          } catch (CloudControllerServiceNetworkPartitionAlreadyExistsExceptionException e) {
              return Response.status(Response.Status.CONFLICT)
 -                    .entity(new ErrorResponseBean(Response.Status.CONFLICT.getStatusCode(), "Network partition already" +
 -                            "exists")).build();
 +                    .entity(new StatusResponseBean(Response.Status.CONFLICT.getStatusCode(), e.getLocalizedMessage()))
 +                    .build();
++
          }
          URI url = uriInfo.getAbsolutePathBuilder().path(networkPartitionId).build();
 -        return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
 +        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
                  String.format("Network partition added successfully: [network-partition] %s", networkPartitionId)))
                  .build();
      }
@@@ -562,7 -561,8 +562,8 @@@
              throws RestAPIException {
          NetworkPartitionBean[] networkPartitions = StratosApiV41Utils.getNetworkPartitions();
          if (networkPartitions == null || networkPartitions.length == 0) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "No network partitions found")).build();
          }
  
          return Response.ok(networkPartitions).build();
@@@ -583,7 -583,8 +584,8 @@@
              @PathParam("networkPartitionId") String networkPartitionId) throws RestAPIException {
          NetworkPartitionBean networkPartition = StratosApiV41Utils.getNetworkPartition(networkPartitionId);
          if (networkPartition == null) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Network partition is not found")).build();
          }
  
          return Response.ok(networkPartition).build();
@@@ -605,9 -606,10 +607,10 @@@
          try {
              StratosApiV41Utils.removeNetworkPartition(networkPartitionId);
          } catch (CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Network partition is not found")).build();
          }
 -        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
 +        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                  String.format("Network Partition deleted successfully: [network-partition] %s",
                          networkPartitionId))).build();
      }
@@@ -636,7 -638,8 +639,8 @@@
                              applicationDefinition.getApplicationId()))).build();
          } catch (ApplicationAlreadyExistException e) {
  
-             return Response.status(Response.Status.CONFLICT).build();
 -            return Response.status(Response.Status.CONFLICT).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
+                     Response.Status.CONFLICT.getStatusCode(), "Application already exists")).build();
          } catch (RestAPIException e) {
  
              throw e;
@@@ -683,7 -686,8 +687,8 @@@
      public Response getApplications() throws RestAPIException {
          List<ApplicationBean> applicationDefinitions = StratosApiV41Utils.getApplications();
          if (applicationDefinitions == null || applicationDefinitions.isEmpty()) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "No applications found")).build();
          }
  
          ApplicationBean[] applicationDefinitionsArray = applicationDefinitions
@@@ -707,7 -711,8 +712,8 @@@
              @PathParam("applicationId") String applicationId) throws RestAPIException {
          ApplicationBean applicationDefinition = StratosApiV41Utils.getApplication(applicationId);
          if (applicationDefinition == null) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Application not found")).build();
          }
          return Response.ok(applicationDefinition).build();
      }
@@@ -734,7 -739,8 +740,8 @@@
                      String.format("Application deployed successfully: [application] %s", applicationId))).build();
          } catch (ApplicationAlreadyDeployedException e) {
  
-             return Response.status(Response.Status.CONFLICT).build();
 -            return Response.status(Response.Status.CONFLICT).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
+                     Response.Status.CONFLICT.getStatusCode(), "Application policy already deployed")).build();
          } catch (RestAPIException e) {
  
              throw e;
@@@ -763,10 -769,9 +770,9 @@@
                              applicationPolicy.getId()))).build();
          } catch (RestAPIException e) {
              throw e;
-         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-             return Response.status(Response.Status.BAD_REQUEST).build();
          } catch (AutoscalerServiceInvalidApplicationPolicyExceptionException e) {
-             return Response.status(Response.Status.BAD_REQUEST).build();
 -            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
+                     Response.Status.BAD_REQUEST.getStatusCode(), "Invalid application policy")).build();
          }
      }
  

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c8fdcf7/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 4c9fe1a,bc4342d..418439f
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@@ -694,14 -575,7 +695,13 @@@ public class StratosApiV41Utils 
          }
      }
  
 +    /**
 +     * Add an application policy
 +     *
 +     * @param applicationPolicyBean applicationPolicyBean
 +     * @throws RestAPIException
 +     */
      public static void addApplicationPolicy(ApplicationPolicyBean applicationPolicyBean) throws RestAPIException,
-             AutoscalerServiceInvalidPolicyExceptionException,
              AutoscalerServiceInvalidApplicationPolicyExceptionException {
  
          if (applicationPolicyBean == null) {


[3/8] stratos git commit: Refine Constants

Posted by ud...@apache.org.
Refine Constants


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

Branch: refs/heads/master
Commit: 2d7825c4335209f8344310295acc33854a1dd723
Parents: 46a5b60
Author: anuruddhal <an...@gmail.com>
Authored: Thu Apr 30 15:21:15 2015 +0530
Committer: anuruddhal <an...@gmail.com>
Committed: Thu Apr 30 15:21:15 2015 +0530

----------------------------------------------------------------------
 .../org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/2d7825c4/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 0112b33..4c9fe1a 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -310,7 +310,7 @@ public class StratosApiV41Utils {
                 configurationContext);
         List<CartridgeBean> lbCartridges = new ArrayList<CartridgeBean>();
         for (CartridgeBean cartridge : cartridges) {
-            if (Constants.FILTER_LOAD_BALANCER.equalsIgnoreCase(cartridge.getCategory())) {
+            if ("loadbalancer".equalsIgnoreCase(cartridge.getCategory())) {
                 lbCartridges.add(cartridge);
             }
         }


[5/8] stratos git commit: Changing the ResponseMessageBean

Posted by ud...@apache.org.
Changing the ResponseMessageBean


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

Branch: refs/heads/master
Commit: 13fa801c0c7ea48285756d5a4375b8bfee4590f9
Parents: 76edb4c
Author: anuruddhal <an...@gmail.com>
Authored: Thu Apr 30 15:29:24 2015 +0530
Committer: anuruddhal <an...@gmail.com>
Committed: Thu Apr 30 15:29:24 2015 +0530

----------------------------------------------------------------------
 .../org/apache/stratos/common/beans/StatusResponseBean.java  | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/13fa801c/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
index 660fc82..814f640 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
@@ -42,12 +42,12 @@ public class StatusResponseBean {
         this.statusCode = statusCode;
     }
 
-    public String getSuccessMessage() {
-        return successMessage;
+    public String getMessage() {
+        return message;
     }
 
-    public void setSuccessMessage(String successMessage) {
-        this.successMessage = successMessage;
+    public void setMessage(String successMessage) {
+        this.message = successMessage;
     }
 
 


[4/8] stratos git commit: Changing the ResponseMessageBean

Posted by ud...@apache.org.
Changing the ResponseMessageBean


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

Branch: refs/heads/master
Commit: 76edb4c496fc7314fdf33b62f0e21e634d3bf361
Parents: 2d7825c
Author: anuruddhal <an...@gmail.com>
Authored: Thu Apr 30 15:23:29 2015 +0530
Committer: anuruddhal <an...@gmail.com>
Committed: Thu Apr 30 15:23:29 2015 +0530

----------------------------------------------------------------------
 .../java/org/apache/stratos/common/beans/StatusResponseBean.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/76edb4c4/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
index 16d19a6..660fc82 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
@@ -24,14 +24,14 @@ import javax.xml.bind.annotation.XmlRootElement;
 public class StatusResponseBean {
 
     private int statusCode;
-    private String successMessage;
+    private String message;
 
     public StatusResponseBean() {
     }
 
     public StatusResponseBean(int statusCode, String message) {
         this.statusCode = statusCode;
-        this.successMessage = message;
+        this.message = message;
     }
 
     public int getStatusCode() {


[7/8] stratos git commit: Resolving merger conflicts

Posted by ud...@apache.org.
Resolving merger conflicts


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

Branch: refs/heads/master
Commit: 4e43ff1822d30a3593ea3f808f5111951f527fdd
Parents: 5c8fdcf 6b7061d
Author: anuruddhal <an...@gmail.com>
Authored: Wed May 6 11:50:30 2015 +0530
Committer: anuruddhal <an...@gmail.com>
Committed: Wed May 6 11:50:30 2015 +0530

----------------------------------------------------------------------
 .../dependency/DependencyBuilder.java           |   2 +-
 .../applications/dependency/DependencyTree.java |   2 +-
 .../AutoScalingPolicyAlreadyExistException.java |   2 +-
 .../CartridgeGroupNotFoundException.java        |   7 +
 .../internal/AutoscalerServiceComponent.java    |   3 +-
 .../autoscaler/services/AutoscalerService.java  |   9 +-
 .../services/impl/AutoscalerServiceImpl.java    |  11 +-
 .../common/client/AutoscalerServiceClient.java  |   6 +-
 .../rest/endpoint/api/StratosApiV41.java        |  77 +--
 .../rest/endpoint/api/StratosApiV41Utils.java   |  33 +-
 .../util/converter/ObjectConverter.java         | 471 +++++--------------
 .../src/main/resources/AutoscalerService.wsdl   | 428 +++++++++--------
 12 files changed, 423 insertions(+), 628 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4e43ff18/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index fe1721c,1e4badc..f165f41
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@@ -237,16 -234,24 +234,24 @@@ public class StratosApiV41 extends Abst
          // TODO :: Deployment policy validation
  
          try {
+ 
              StratosApiV41Utils.updateDeploymentPolicy(deploymentPolicyDefinitionBean);
+ 
          } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-             return Response.status(Response.Status.BAD_REQUEST).build();
+ 
 -            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
+                     Response.Status.BAD_REQUEST.getStatusCode(), "Deployment policy is invalid")).build();
          } catch (AutoscalerServiceInvalidDeploymentPolicyExceptionException e) {
-             return Response.status(Response.Status.NOT_FOUND).build();
+ 
 -            return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
+                     Response.Status.BAD_REQUEST.getStatusCode(), "Deployment policy is invalid")).build();
          } catch (AutoscalerServiceDeploymentPolicyNotExistsExceptionException e) {
-             return Response.status(Response.Status.NOT_FOUND).build();
+ 
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Deployment policy not found")).build();
          }
          URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
 -        return Response.ok(url).entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
 +        return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                  String.format("Deployment policy updated successfully: " + "[deployment-policy-id] %s",
                          deploymentPolicyID))).build();
      }
@@@ -269,10 -274,11 +274,11 @@@
          try {
              StratosApiV41Utils.removeDeploymentPolicy(deploymentPolicyID);
          } catch (AutoscalerServiceDeploymentPolicyNotExistsExceptionException e) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling policy not found")).build();
          }
          URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
 -        return Response.ok(url).entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
 +        return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
                  String.format("Deployment policy removed successfully: " + "[deployment-policy-id] %s",
                          deploymentPolicyID))).build();
      }
@@@ -312,9 -318,10 +318,10 @@@
      @AuthorizationAction("/permission/admin/manage/getCartridge")
      public Response getCartridges()
              throws RestAPIException {
 -        List<CartridgeBean> cartridges = StratosApiV41Utils.getAvailableCartridges(null, null, getConfigContext());
 +        List<CartridgeBean> cartridges = StratosApiV41Utils.getAvailableCartridges(null, false, getConfigContext());
          if (cartridges == null || cartridges.isEmpty()) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.CONFLICT.getStatusCode(), "No cartridges found")).build();
          }
          CartridgeBean[] cartridgeArray = cartridges.toArray(new CartridgeBean[cartridges.size()]);
          return Response.ok().entity(cartridgeArray).build();
@@@ -339,7 -346,8 +346,8 @@@
              cartridge = StratosApiV41Utils.getCartridge(cartridgeType);
              return Response.ok().entity(cartridge).build();
          } catch (RestAPIException e) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Cartridge not found")).build();
          }
      }
  
@@@ -362,7 -370,8 +370,8 @@@
          List<CartridgeBean> cartridges = StratosApiV41Utils.
                  getCartridgesByFilter(filter, criteria, getConfigContext());
          if (cartridges == null || cartridges.isEmpty()) {
-             return Response.status(Response.Status.NOT_FOUND).build();
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "No cartridges found")).build();
          }
  
          CartridgeBean[] cartridgeArray = cartridges.toArray(new CartridgeBean[cartridges.size()]);
@@@ -386,12 -395,14 +395,14 @@@
              @PathParam("cartridgeType") String cartridgeType, @DefaultValue("") @PathParam("filter") String filter)
              throws RestAPIException {
          CartridgeBean cartridge;
-         try {
-             cartridge = StratosApiV41Utils.getCartridgeByFilter(filter, cartridgeType, getConfigContext());
-             return Response.ok().entity(cartridge).build();
-         } catch (RestAPIException e) {
-             return Response.status(Response.Status.NOT_FOUND).build();
+ 
+         cartridge = StratosApiV41Utils.getCartridgeByFilter(filter, cartridgeType, getConfigContext());
+         if (cartridge == null) {
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "No cartridges found for this filter")).build();
          }
+         return Response.ok().entity(cartridge).build();
+ 
      }
  
      /**
@@@ -434,8 -445,8 +445,9 @@@
          try {
              StratosApiV41Utils.addServiceGroup(serviceGroupDefinition);
              URI url = uriInfo.getAbsolutePathBuilder().path(serviceGroupDefinition.getName()).build();
 -            return Response.created(url).entity(new SuccessResponseBean(Response.Status.CREATED.getStatusCode(),
++
 +            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
-                     String.format("Service Group added successfully: [service-group] %s",
+                     String.format("Cartridge Group added successfully: [cartridge-group] %s",
                              serviceGroupDefinition.getName()))).build();
          } catch (RestAPIException e) {
              if (e.getCause().getMessage().contains("already exists")) {
@@@ -509,10 -520,15 +521,14 @@@
      @SuperTenantService(true)
      public Response removeServiceGroup(
              @PathParam("groupDefinitionName") String groupDefinitionName) throws RestAPIException {
--
-         StratosApiV41Utils.removeServiceGroup(groupDefinitionName);
+         try {
+             StratosApiV41Utils.removeServiceGroup(groupDefinitionName);
+         } catch (AutoscalerServiceCartridgeGroupNotFoundExceptionException e) {
 -            return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponseBean(
++            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
+                     Response.Status.NOT_FOUND.getStatusCode(), "Cartridge group not found")).build();
+         }
 -        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
 +        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
-                 String.format("Service Group deleted successfully: [service-group] %s", groupDefinitionName)))
+                 String.format("Cartridge Group deleted successfully: [cartridge-group] %s", groupDefinitionName)))
                  .build();
      }
  
@@@ -660,17 -675,14 +676,15 @@@
      @Consumes("application/json")
      @AuthorizationAction("/permission/protected/manage/addApplication")
      public Response updateApplication(ApplicationBean applicationDefinition) throws RestAPIException {
-         try {
-             StratosApiV41Utils.updateApplication(applicationDefinition, getConfigContext(), getUsername(), getTenantDomain());
  
-             URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationId()).build();
-             return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
-                     String.format("Application added successfully: [application] %s",
-                             applicationDefinition.getApplicationId()))).build();
-         } catch (RestAPIException e) {
 -        StratosApiV41Utils.updateApplication(applicationDefinition, getConfigContext(), getUsername(), getTenantDomain());
  
-             throw e;
-         }
++        StratosApiV41Utils.updateApplication(applicationDefinition, getConfigContext(), getUsername(), getTenantDomain());
+         URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationId()).build();
 -        return Response.created(url).entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
++        return Response.created(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+                 String.format("Application updated successfully: [application] %s",
+                         applicationDefinition.getApplicationId()))).build();
+ 
++
      }
  
      /**
@@@ -978,7 -990,8 +992,8 @@@
      public Response removeApplicationSignUp(
              @PathParam("applicationId") String applicationId) throws RestAPIException {
          StratosApiV41Utils.removeApplicationSignUp(applicationId);
-         return Response.ok().build();
 -        return Response.ok().entity(new SuccessResponseBean(Response.Status.OK.getStatusCode(),
++        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+                 String.format("Application sign up removed successfully: [application] %s", applicationId))).build();
      }
  
      /**
@@@ -1903,9 -1916,9 +1918,9 @@@
              @PathParam("kubernetesClusterId") String kubernetesClusterId) throws RestAPIException {
          try {
              StratosApiV41Utils.removeKubernetesCluster(kubernetesClusterId);
-         } catch (RestAPIException e) {
+         } catch (CloudControllerServiceNonExistingKubernetesClusterExceptionException e) {
              return Response.status(Response.Status.NOT_FOUND)
 -                    .entity(new SuccessResponseBean(Response.Status.NOT_FOUND.getStatusCode(),
 +                    .entity(new StatusResponseBean(Response.Status.NOT_FOUND.getStatusCode(),
                              String.format("Could not find specified Kubernetes cluster: [kub-cluster] %s",
                                      kubernetesClusterId))).build();
          }

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e43ff18/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 418439f,2b44bbb..31ac501
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@@ -292,21 -229,11 +292,19 @@@ public class StratosApiV41Utils 
                  return cartridge;
              }
          }
-         String msg = "Unavailable cartridge type: " + cartridgeType;
-         log.error(msg);
-         throw new RestAPIException(msg);
+         return null;
      }
  
 +    /**
 +     * Get the available Load balancer cartridges
 +     *
 +     * @param multiTenant Multi tenant true of false
 +     * @param configurationContext Configuration Context
 +     * @return List of available Load balancer cartridges
 +     * @throws RestAPIException
 +     */
      private static List<CartridgeBean> getAvailableLbCartridges(
 -            Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
 +            boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
          List<CartridgeBean> cartridges = getAvailableCartridges(null, multiTenant,
                  configurationContext);
          List<CartridgeBean> lbCartridges = new ArrayList<CartridgeBean>();
@@@ -1153,15 -954,8 +1151,15 @@@
          }
      }
  
++
 +    /**
 +     * Remove Service Group
 +     *
 +     * @param name Group Name
 +     * @throws RestAPIException
 +     */
-     public static void removeServiceGroup(String name) throws RestAPIException {
+     public static void removeServiceGroup(String name) throws RestAPIException, AutoscalerServiceCartridgeGroupNotFoundExceptionException {
  
-         try {
              if (log.isDebugEnabled()) {
                  log.debug("Removing cartridge group: [name] " + name);
              }
@@@ -2019,15 -1724,9 +2017,18 @@@
          return null;
      }
  
++
 +    /**
 +     * Remove Kubernetes Cluster
 +     *
 +     * @param kubernetesClusterId kubernetesClusterId
 +     * @return remove status
 +     * @throws RestAPIException
 +     */
-     public static boolean removeKubernetesCluster(String kubernetesClusterId) throws RestAPIException {
+     public static boolean removeKubernetesCluster(String kubernetesClusterId) throws RestAPIException,
+             CloudControllerServiceNonExistingKubernetesClusterExceptionException {
+ 
 +
          CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
          if (cloudControllerServiceClient != null) {
              try {