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:40 UTC

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

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();
     }