http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java
new file mode 100644
index 0000000..6496b6a
--- /dev/null
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java
@@ -0,0 +1,36 @@
+/*
+ * 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.rest.endpoint.bean;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class StratosApiResponse {
+
+    private String message;
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/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 eaed606..d37fdd1 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
@@ -151,8 +151,8 @@ public class StratosAuthorizingHandler implements 
RequestHandler {
         if (method != null) {
             return method;
         }
-        log.error("The requested resource is not found. Please check the 
resource path etc..");
-        throw new AccessDeniedException("Method is not available : 
Unauthorized");
+        log.error("The requested resource is not found. Please check the 
resource path, etc");
+        throw new AccessDeniedException("Method is not available: 
Unauthorized");
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
index 648e4cd..c90f6d4 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
@@ -24,7 +24,7 @@ import org.apache.stratos.manager.dto.SubscriptionInfo;
 import org.apache.stratos.manager.subscription.SubscriptionDomain;
 import org.apache.stratos.manager.user.mgt.beans.UserInfoBean;
 import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
-import org.apache.stratos.rest.endpoint.bean.StratosAdminResponse;
+import org.apache.stratos.rest.endpoint.bean.StratosApiResponse;
 import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
 import 
org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
@@ -68,7 +68,7 @@ public class MockContext {
         return mockContext;
     }
 
-    public StratosAdminResponse addCartirdgeDefinition(CartridgeDefinitionBean 
cartridgeDefinitionBean){
+    public StratosApiResponse addCartirdgeDefinition(CartridgeDefinitionBean 
cartridgeDefinitionBean){
        int tenantId = getTenantId();
        List<CartridgeDefinitionBean> tenantCartridges;
        
@@ -147,9 +147,9 @@ public class MockContext {
             System.out.println(cartridges.size());
         }
 
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deployed cartridge 
definition with type ");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully deployed cartridge 
definition with type ");
+        return stratosApiResponse;
     }
 
     public Cartridge[] getAvailableMultiTenantCartridges() throws 
RestAPIException{
@@ -315,7 +315,7 @@ public class MockContext {
 
     }
 
-    public StratosAdminResponse unsubscribe(String alias) throws 
RestAPIException{
+    public StratosApiResponse unsubscribe(String alias) throws 
RestAPIException{
        int tenantId = getTenantId();
        if(subscribedCartridges.containsKey(tenantId)){
                if((subscribedCartridges.get(tenantId)).containsKey(alias)){
@@ -324,9 +324,9 @@ public class MockContext {
         }else{
             throw new RestAPIException(Status.NO_CONTENT,"Unable to 
un-subscribe");
         }
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully un-subscribed");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully un-subscribed");
+        return stratosApiResponse;
     }
 
     public Cartridge getCartridgeInfo(String alias) throws RestAPIException{
@@ -374,13 +374,13 @@ public class MockContext {
         return 
(availableMultiTenantCartridges.get(tenantId)).get(cartridgeType);
     }
     
-    public StratosAdminResponse deleteCartridgeDefinition(String 
cartridgeType) throws RestAPIException{
+    public StratosApiResponse deleteCartridgeDefinition(String cartridgeType) 
throws RestAPIException{
        if(!deleteFromAvailableSingleTenantCartridgeDefinitions(cartridgeType) 
&& !deleteFromAvailableMultiTenantCartridgeDefinitions(cartridgeType)){
                throw new RestAPIException(Status.NO_CONTENT,"No cartridges 
defined for tenant");
        }
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully delete cartridge 
definition");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully delete cartridge 
definition");
+        return stratosApiResponse;
     }
     
     private boolean deleteFromAvailableSingleTenantCartridgeDefinitions(String 
cartridgeType){
@@ -421,7 +421,7 @@ public class MockContext {
         return true;
     }
 
-    public StratosAdminResponse addTenant(TenantInfoBean tenantInfoBean) 
throws RestAPIException{
+    public StratosApiResponse addTenant(TenantInfoBean tenantInfoBean) throws 
RestAPIException{
        try{
             tenantMap.put(tenantInfoBean.getTenantDomain(),tenantInfoBean);
             tenantInfoBean.setTenantId(tenantIdCount);
@@ -429,9 +429,9 @@ public class MockContext {
         }catch (Exception e){
             throw new 
RestAPIException(Status.INTERNAL_SERVER_ERROR,e.getMessage());
         }
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully added new Tenant");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully added new Tenant");
+        return stratosApiResponse;
     }
 
     public TenantInfoBean getTenant(String tenantDomain) throws 
RestAPIException{
@@ -441,16 +441,16 @@ public class MockContext {
         return tenantMap.get(tenantDomain);
     }
     
-    public StratosAdminResponse deleteTenant(String tenantDomain) {
+    public StratosApiResponse deleteTenant(String tenantDomain) {
         if(tenantMap.containsKey(tenantDomain)){
                TenantInfoBean tenant=tenantMap.get(tenantDomain);
                tenantMap.remove(tenantDomain);
                tenantIdMap.remove(tenant.getTenantId());
         }
                
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deleted tenant");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully deleted tenant");
+        return stratosApiResponse;
     }
 
     public TenantInfoBean[] getTenants() throws RestAPIException{
@@ -467,29 +467,29 @@ public class MockContext {
         return searchResult.toArray(new TenantInfoBean[0]);
     }
 
-    public StratosAdminResponse  activateTenant(String tenantDomain) throws 
RestAPIException{
+    public StratosApiResponse activateTenant(String tenantDomain) throws 
RestAPIException{
         if(tenantMap.containsKey(tenantDomain)){
             tenantMap.get(tenantDomain).setActive(true);
         } else{
             throw new RestAPIException(Status.BAD_REQUEST,"Invalid tenant 
domain");
         }
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully activated Tenant");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully activated Tenant");
+        return stratosApiResponse;
     }
 
-    public StratosAdminResponse deactivateTenant(String tenantDomain) throws 
RestAPIException{
+    public StratosApiResponse deactivateTenant(String tenantDomain) throws 
RestAPIException{
         if(tenantMap.containsKey(tenantDomain)){
             tenantMap.get(tenantDomain).setActive(false);
         } else{
             throw new RestAPIException(Status.BAD_REQUEST,"Invalid tenant 
domain");
         }
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deactivated Tenant");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully deactivated Tenant");
+        return stratosApiResponse;
     }
 
-    public StratosAdminResponse addPartition(Partition partition) {
+    public StratosApiResponse addPartition(Partition partition) {
        int tenantId = getTenantId();
        Map<String,Partition> partitions;
        
@@ -513,12 +513,12 @@ public class MockContext {
        }       
        
        partitions.put(partition.id, partition);
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deployed partition");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully deployed partition");
+        return stratosApiResponse;
     }
 
-    public StratosAdminResponse addAutoScalingPolicyDefinition(AutoscalePolicy 
autoscalePolicy) {
+    public StratosApiResponse addAutoScalingPolicyDefinition(AutoscalePolicy 
autoscalePolicy) {
        int tenantId = getTenantId();
        Map<String,AutoscalePolicy> policies;
        
@@ -542,12 +542,12 @@ public class MockContext {
        }
        
        policies.put(autoscalePolicy.getId(), autoscalePolicy);
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deployed auto scaling 
policy definition");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully deployed auto scaling 
policy definition");
+        return stratosApiResponse;
     }
 
-    public StratosAdminResponse addDeploymentPolicyDefinition(DeploymentPolicy 
deploymentPolicy) {
+    public StratosApiResponse addDeploymentPolicyDefinition(DeploymentPolicy 
deploymentPolicy) {
        int tenantId = getTenantId();
        Map<String,DeploymentPolicy> policies;
        
@@ -571,9 +571,9 @@ public class MockContext {
        }
        
        policies.put(deploymentPolicy.getId(),deploymentPolicy);
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deployed deployment 
policy definition");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully deployed deployment policy 
definition");
+        return stratosApiResponse;
     }
 
     public Partition[] getPartitions() throws RestAPIException{
@@ -726,7 +726,7 @@ public class MockContext {
        }
     }
     
-    public StratosAdminResponse deployService(ServiceDefinitionBean 
serviceDefinitionBean) {
+    public StratosApiResponse deployService(ServiceDefinitionBean 
serviceDefinitionBean) {
        int tenantId = getTenantId();
        Map<String,ServiceDefinitionBean> serviceDefinitions;
        
@@ -750,9 +750,9 @@ public class MockContext {
        }
        
        
serviceDefinitions.put(serviceDefinitionBean.getCartridgeType(),serviceDefinitionBean);
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deployed service");
-        return stratosAdminResponse;
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully deployed service");
+        return stratosApiResponse;
 
     }
        
@@ -841,7 +841,7 @@ public class MockContext {
         }
     }
 
-       public StratosAdminResponse addSubscriptionDomains(int tenantId, String 
alias, SubscriptionDomainRequest request) {
+       public StratosApiResponse addSubscriptionDomains(int tenantId, String 
alias, SubscriptionDomainRequest request) {
                // populate new alias
                List<String> aliasList;
                if(tenantIdToAliasesMap.containsKey(tenantId)) {
@@ -867,9 +867,9 @@ public class MockContext {
                
                subscriptionAliasToDomainMap.put(alias, list);
                
-               StratosAdminResponse stratosAdminResponse = new 
StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully added subscription 
domain/s.");
-        return stratosAdminResponse;
+               StratosApiResponse stratosApiResponse = new 
StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully added subscription 
domain/s.");
+        return stratosApiResponse;
        }
 
        public List<SubscriptionDomainBean> getSubscriptionDomains(int 
tenantId, String alias) {
@@ -899,9 +899,9 @@ public class MockContext {
                throw new RestAPIException(Status.NOT_FOUND, message);
        }
 
-       public StratosAdminResponse removeSubscriptionDomain(int tenantId,
+       public StratosApiResponse removeSubscriptionDomain(int tenantId,
                        String subscriptionAlias, String domainName) {
-               StratosAdminResponse stratosAdminResponse = new 
StratosAdminResponse();
+               StratosApiResponse stratosApiResponse = new 
StratosApiResponse();
                
                List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
                if(tenantAliases != null && 
tenantAliases.contains(subscriptionAlias)) {
@@ -910,14 +910,14 @@ public class MockContext {
                                SubscriptionDomain subscriptionDomain = 
(SubscriptionDomain) iterator.next();
                                if 
(subscriptionDomain.getDomainName().equals(domainName)) {
                                        iterator.remove();
-                                       
stratosAdminResponse.setMessage("Successfully removed the subscription domain: 
"+domainName);
+                                       
stratosApiResponse.setMessage("Successfully removed the subscription domain: 
"+domainName);
                                }
                        }
                } else {                
-                       stratosAdminResponse.setMessage("Failed to remove the 
subscription domain: "+domainName);
+                       stratosApiResponse.setMessage("Failed to remove the 
subscription domain: "+domainName);
                }
                
-        return stratosAdminResponse;
+        return stratosApiResponse;
        }
        
        public void addUser(UserInfoBean user) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java
new file mode 100644
index 0000000..34ddc40
--- /dev/null
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java
@@ -0,0 +1,578 @@
+/*
+ * 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.rest.endpoint.mock;
+
+
+import java.net.URI;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.TenantInfoBean;
+import org.apache.stratos.manager.dto.Cartridge;
+import org.apache.stratos.manager.dto.SubscriptionInfo;
+import org.apache.stratos.manager.exception.ADCException;
+import org.apache.stratos.manager.user.mgt.beans.UserInfoBean;
+import org.apache.stratos.rest.endpoint.Utils;
+import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
+import org.apache.stratos.rest.endpoint.annotation.SuperTenantService;
+import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
+import org.apache.stratos.rest.endpoint.bean.StratosApiResponse;
+import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
+import 
org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
+import 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
+import 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
+import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
+import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
+import 
org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean;
+import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
+import org.apache.stratos.rest.endpoint.exception.RestAPIException;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+@Path("/")
+public class StratosApiV40Mock {
+    private static Log log = LogFactory.getLog(StratosApiV40Mock.class);
+    @Context
+    HttpServletRequest httpServletRequest;
+    @Context
+    UriInfo uriInfo;
+
+    @POST
+    @Path("/init")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public StratosApiResponse initialize ()
+            throws RestAPIException {
+
+        StratosApiResponse stratosApiResponse = new StratosApiResponse();
+        stratosApiResponse.setMessage("Successfully logged in");
+        return stratosApiResponse;
+    }
+
+
+    @GET
+    @Path("/cookie")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Response getCookie(){
+        HttpSession httpSession = httpServletRequest.getSession(true);//create 
session if not found
+        String sessionId = httpSession.getId();
+        return Response.ok().header("WWW-Authenticate", 
"Basic").type(MediaType.APPLICATION_JSON).
+                
entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build();
+    }
+
+    @GET
+    @Path("/cartridge/tenanted/list")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cartridge[] getAvailableMultiTenantCartridges() throws 
RestAPIException {
+          return MockContext.getInstance().getAvailableMultiTenantCartridges();
+    }
+
+    @GET
+    @Path("/cartridge/list")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cartridge[] getAvailableSingleTenantCartridges() throws 
RestAPIException {
+         return MockContext.getInstance().getAvailableSingleTenantCartridges();
+    }
+
+    @GET
+    @Path("/cartridge/available/list")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cartridge[] getAvailableCartridges() throws RestAPIException {
+         return MockContext.getInstance().getAvailableCartridges();
+    }
+
+    @GET
+    @Path("/cartridge/list/subscribed")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cartridge[] getSubscribedCartridges() throws RestAPIException {
+         return MockContext.getInstance().getSubscribedCartridges();
+    }
+
+    @POST
+    @Path("/cartridge/subscribe")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean) 
throws RestAPIException{
+          return 
MockContext.getInstance().subscribeToCartridge(cartridgeInfoBean);
+    }
+
+
+    @GET
+    @Path("/cartridge/info/{subscriptionAlias}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cartridge getCartridgeInfo(@PathParam("subscriptionAlias") String 
subscriptionAlias) throws RestAPIException {
+        return MockContext.getInstance().getCartridgeInfo(subscriptionAlias);
+    }
+
+
+    @POST
+    @Path("/cartridge/unsubscribe")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public StratosApiResponse unsubscribe(String alias) throws 
RestAPIException{
+          return MockContext.getInstance().unsubscribe(alias);
+    }
+
+    @POST
+    @Path("/tenant")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse addTenant(TenantInfoBean tenantInfoBean) throws 
RestAPIException {
+       return MockContext.getInstance().addTenant(tenantInfoBean);
+    }
+
+
+    @PUT
+    @Path("/tenant")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse updateTenant(TenantInfoBean tenantInfoBean) 
throws RestAPIException {
+        return MockContext.getInstance().addTenant(tenantInfoBean);
+    }
+
+    @GET
+    @Path("/tenant/{tenantDomain}")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public TenantInfoBean getTenant(@PathParam("tenantDomain") String 
tenantDomain) throws RestAPIException {
+        return MockContext.getInstance().getTenant(tenantDomain);
+    }
+
+    @DELETE
+    @Path("/tenant/{tenantDomain}")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse deleteTenant(@PathParam("tenantDomain") String 
tenantDomain) throws RestAPIException {
+         return  MockContext.getInstance().deleteTenant(tenantDomain);
+    }
+
+
+    @GET
+    @Path("/tenant/list")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public TenantInfoBean[] retrieveTenants() throws RestAPIException {
+       return MockContext.getInstance().getTenants();
+    }
+
+    @GET
+    @Path("tenant/search/{domain}")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public TenantInfoBean[] 
retrievePartialSearchTenants(@PathParam("domain")String domain) throws 
RestAPIException {
+            return 
MockContext.getInstance().retrievePartialSearchTenants(domain);
+    }
+
+
+    @POST
+    @Path("tenant/activate/{tenantDomain}")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public void activateTenant(@PathParam("tenantDomain") String tenantDomain) 
throws RestAPIException {
+            MockContext.getInstance().activateTenant(tenantDomain);
+    }
+
+    @POST
+    @Path("tenant/deactivate/{tenantDomain}")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse deactivateTenant(@PathParam("tenantDomain") 
String tenantDomain) throws RestAPIException {
+        return  MockContext.getInstance().deactivateTenant(tenantDomain);
+    }
+
+   @POST
+   @Path("/service/definition")
+   @Produces("application/json")
+   @Consumes("application/json")
+   @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+   @SuperTenantService(true)
+   public StratosApiResponse deployService(ServiceDefinitionBean 
serviceDefinitionBean)
+           throws RestAPIException {
+
+       log.info("Service definition request.. : " + 
serviceDefinitionBean.getServiceName());
+       return MockContext.getInstance().deployService(serviceDefinitionBean);
+   }
+    @GET
+    @Path("/service")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public ServiceDefinitionBean[] getServices () throws RestAPIException {
+        return MockContext.getInstance().getServices();
+
+    }
+
+    @GET
+    @Path("/service/{serviceType}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public ServiceDefinitionBean getService(@PathParam("serviceType") String 
serviceType)throws RestAPIException {
+
+        return MockContext.getInstance().getServiceType(serviceType);
+    }
+
+    @POST
+    @Path("/cartridge/definition/")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse deployCartridgeDefinition 
(CartridgeDefinitionBean cartridgeDefinitionBean)
+            throws RestAPIException {
+        return 
MockContext.getInstance().addCartirdgeDefinition(cartridgeDefinitionBean);
+    }
+
+    @DELETE
+    @Path("/cartridge/definition/{cartridgeType}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public void unDeployCartridgeDefinition (@PathParam("cartridgeType") 
String cartridgeType) throws RestAPIException {
+         MockContext.getInstance().deleteCartridgeDefinition(cartridgeType);
+    }
+
+    @GET
+    @Path("/cartridge/available/info/{cartridgeType}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cartridge 
getAvailableSingleTenantCartridgeInfo(@PathParam("cartridgeType") String 
cartridgeType)
+            throws ADCException, RestAPIException {
+        return 
MockContext.getInstance().getAvailableSingleTenantCartridgeInfo(cartridgeType);
+    }
+
+    @GET
+    @Path("/cartridge/lb")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cartridge[] getAvailableLbCartridges() throws RestAPIException {
+        return MockContext.getInstance().getAvailableLbCartridges();
+    }
+
+
+
+    @POST
+    @Path("/policy/deployment/partition")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse deployPartition (Partition partition)
+            throws RestAPIException {
+        return MockContext.getInstance().addPartition(partition);
+    }
+
+    @POST
+    @Path("/policy/autoscale")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse deployAutoscalingPolicyDefintion 
(AutoscalePolicy autoscalePolicy)
+            throws RestAPIException {
+          return 
MockContext.getInstance().addAutoScalingPolicyDefinition(autoscalePolicy);
+
+    }
+
+    @POST
+    @Path("/policy/deployment")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public StratosApiResponse deployDeploymentPolicyDefinition 
(DeploymentPolicy deploymentPolicy)
+            throws RestAPIException {
+           return 
MockContext.getInstance().addDeploymentPolicyDefinition(deploymentPolicy);
+
+    }
+
+    @GET
+    @Path("/partition")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Partition[] getPartitions () throws RestAPIException {
+            return MockContext.getInstance().getPartitions();
+
+    }
+
+    @GET
+    @Path("/partition/{partitionId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Partition getPartition (@PathParam("partitionId") String 
partitionId) throws RestAPIException {
+            return MockContext.getInstance().getPartition(partitionId);
+
+    }
+
+    @GET
+    @Path("/partition/group/{deploymentPolicyId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public PartitionGroup[] getPartitionGroups 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
+            throws RestAPIException {
+          return 
MockContext.getInstance().getPartitionGroups(deploymentPolicyId);
+
+    }
+
+    @GET
+    @Path("/partition/{deploymentPolicyId}/{partitionGroupId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Partition[] getPartitions (@PathParam("deploymentPolicyId") String 
deploymentPolicyId,
+                                       @PathParam("partitionGroupId") String 
partitionGroupId) throws RestAPIException {
+           return MockContext.getInstance().getPartitions(deploymentPolicyId, 
partitionGroupId);
+
+    }
+
+    @GET
+    @Path("/partition/{deploymentPolicyId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Partition [] getPartitionsOfPolicy 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
+            throws RestAPIException {
+             return 
MockContext.getInstance().getPartitionsOfPolicy(deploymentPolicyId);
+
+    }
+
+    @GET
+    @Path("/policy/autoscale")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public AutoscalePolicy[] getAutoscalePolicies () throws RestAPIException {
+            return MockContext.getInstance().getAutoscalePolicies();
+
+    }
+
+    @GET
+    @Path("/policy/autoscale/{autoscalePolicyId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public AutoscalePolicy getAutoscalePolicies 
(@PathParam("autoscalePolicyId") String autoscalePolicyId)
+            throws RestAPIException {
+        return 
MockContext.getInstance().getAutoscalePolicies(autoscalePolicyId);
+
+    }
+
+    @GET
+    @Path("/policy/deployment")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public DeploymentPolicy[] getDeploymentPolicies () throws RestAPIException 
{
+          return MockContext.getInstance().getDeploymentPolicies();
+
+    }
+
+    @GET
+    @Path("/policy/deployment/{deploymentPolicyId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public DeploymentPolicy getDeploymentPolicies 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
+            throws RestAPIException {
+        return 
MockContext.getInstance().getDeploymentPolicies(deploymentPolicyId);
+
+    }
+
+    @GET
+    @Path("/cluster/")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cluster[] getClustersForTenant() throws RestAPIException {
+
+        return MockContext.getInstance().getClusters();
+    }
+
+    @GET
+    @Path("/cluster/{cartridgeType}/")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cluster[] getClusters(@PathParam("cartridgeType") String 
cartridgeType) throws RestAPIException {
+
+        return MockContext.getInstance().getClusters();
+    }
+
+    @GET
+    @Path("/cluster/{cartridgeType}/{subscriptionAlias}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cluster[] getCluster(@PathParam("cartridgeType") String 
cartridgeType,
+                              @PathParam("subscriptionAlias") String 
subscriptionAlias) throws RestAPIException, RestAPIException {
+
+        return MockContext.getInstance().getClusters();
+    }
+
+    @GET
+    @Path("/cluster/clusterId/{clusterId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Cluster[] getCluster(@PathParam("clusterId") String clusterId) 
throws RestAPIException {
+        return MockContext.getInstance().getClusters();
+    }
+
+    @GET
+    @Path("{cartridgeType}/policy/deployment")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public DeploymentPolicy[] getValidDeploymentPolicies 
(@PathParam("cartridgeType") String cartridgeType)
+            throws RestAPIException {
+
+        return 
MockContext.getInstance().getDeploymentPoliciesForCartridgeType(cartridgeType);
+    }
+
+    @POST
+    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public StratosApiResponse 
addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
+                                                      
@PathParam("subscriptionAlias") String subscriptionAlias,
+                                                      
SubscriptionDomainRequest request) throws RestAPIException {
+
+        return MockContext.getInstance().addSubscriptionDomains(2, 
subscriptionAlias, request);
+    }
+
+    @GET
+    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public SubscriptionDomainBean[] 
getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
+                                           @PathParam("subscriptionAlias") 
String subscriptionAlias) throws RestAPIException {
+
+        return MockContext.getInstance().getSubscriptionDomains(2, 
subscriptionAlias).toArray(new SubscriptionDomainBean[0]);
+    }
+
+    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public SubscriptionDomainBean 
getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+            @PathParam("subscriptionAlias") String subscriptionAlias, 
@PathParam("domainName") String domainName) throws RestAPIException {
+
+        return MockContext.getInstance().getSubscriptionDomain(2, 
cartridgeType, subscriptionAlias, domainName);
+    }
+
+    @DELETE
+    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public StratosApiResponse 
removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+                                                         
@PathParam("subscriptionAlias") String subscriptionAlias,
+                                                         
@PathParam("domainName") String domainName) throws RestAPIException {
+
+        return MockContext.getInstance().removeSubscriptionDomain(2, 
subscriptionAlias, domainName);
+    }
+    
+    @POST
+       @Path("/cartridge/sync")
+       @Consumes("application/json")
+       @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+       public Response synchronizeRepository(String alias) throws 
RestAPIException {
+               return Response.noContent().build();
+       }
+    
+    @POST
+    @Path("/user")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/admin/manage/add/users")
+    public Response addUser(UserInfoBean userInfoBean) throws RestAPIException 
{
+       MockContext.getInstance().addUser(userInfoBean);
+        URI url = 
uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build();
+        return Response.created(url).build();
+    }
+
+    @DELETE
+    @Path("/user/{userName}")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/admin/manage/add/users")
+    public Response deleteUser(@PathParam("userName") String userName) throws 
RestAPIException {
+       MockContext.getInstance().deleteUser(userName);
+        return Response.noContent().build();
+    }
+
+    @PUT
+    @Path("/user")
+    @Consumes("application/json")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/admin/manage/add/users")
+    public Response updateUser(UserInfoBean userInfoBean) throws 
RestAPIException {
+       MockContext.getInstance().updateUser(userInfoBean);
+        URI url = 
uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build();
+        return Response.created(url).build();
+    }
+
+    @GET
+    @Path("/user/list")
+    @Produces("application/json")
+    @AuthorizationAction("/permission/admin/manage/add/users")
+    public UserInfoBean[] retrieveUsers() throws RestAPIException {
+        List<UserInfoBean> userList = null;
+        userList = MockContext.getInstance().getAllUsers();
+        return userList.toArray(new UserInfoBean[userList.size()]);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
deleted file mode 100644
index 0b94641..0000000
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
+++ /dev/null
@@ -1,593 +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.rest.endpoint.mock;
-
-
-import java.net.URI;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.common.beans.TenantInfoBean;
-import org.apache.stratos.common.exception.StratosException;
-import org.apache.stratos.common.util.CommonUtil;
-import org.apache.stratos.manager.dto.Cartridge;
-import org.apache.stratos.manager.dto.SubscriptionInfo;
-import org.apache.stratos.manager.exception.ADCException;
-import org.apache.stratos.manager.exception.ServiceDoesNotExistException;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.subscription.SubscriptionDomain;
-import org.apache.stratos.manager.user.mgt.beans.UserInfoBean;
-import org.apache.stratos.rest.endpoint.ServiceHolder;
-import org.apache.stratos.rest.endpoint.Utils;
-import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
-import org.apache.stratos.rest.endpoint.annotation.SuperTenantService;
-import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
-import org.apache.stratos.rest.endpoint.bean.StratosAdminResponse;
-import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
-import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
-import 
org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
-import 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
-import 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
-import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
-import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
-import 
org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean;
-import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
-import org.apache.stratos.rest.endpoint.exception.RestAPIException;
-import org.apache.stratos.rest.endpoint.services.ServiceUtils;
-import org.apache.stratos.tenant.mgt.core.TenantPersistor;
-import org.apache.stratos.tenant.mgt.util.TenantMgtUtil;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.context.RegistryType;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
-import org.wso2.carbon.registry.core.session.UserRegistry;
-import org.wso2.carbon.user.core.tenant.Tenant;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.ws.rs.*;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-@Path("/admin/")
-public class StratosTestAdmin {
-    private static Log log = LogFactory.getLog(StratosTestAdmin.class);
-    @Context
-    HttpServletRequest httpServletRequest;
-    @Context
-    UriInfo uriInfo;
-
-    @POST
-    @Path("/init")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public StratosAdminResponse initialize ()
-            throws RestAPIException {
-
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully logged in");
-        return stratosAdminResponse;
-    }
-
-
-    @GET
-    @Path("/cookie")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Response getCookie(){
-        HttpSession httpSession = httpServletRequest.getSession(true);//create 
session if not found
-        String sessionId = httpSession.getId();
-        return Response.ok().header("WWW-Authenticate", 
"Basic").type(MediaType.APPLICATION_JSON).
-                
entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build();
-    }
-
-    @GET
-    @Path("/cartridge/tenanted/list")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cartridge[] getAvailableMultiTenantCartridges() throws 
RestAPIException {
-          return MockContext.getInstance().getAvailableMultiTenantCartridges();
-    }
-
-    @GET
-    @Path("/cartridge/list")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cartridge[] getAvailableSingleTenantCartridges() throws 
RestAPIException {
-         return MockContext.getInstance().getAvailableSingleTenantCartridges();
-    }
-
-    @GET
-    @Path("/cartridge/available/list")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cartridge[] getAvailableCartridges() throws RestAPIException {
-         return MockContext.getInstance().getAvailableCartridges();
-    }
-
-    @GET
-    @Path("/cartridge/list/subscribed")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cartridge[] getSubscribedCartridges() throws RestAPIException {
-         return MockContext.getInstance().getSubscribedCartridges();
-    }
-
-    @POST
-    @Path("/cartridge/subscribe")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean) 
throws RestAPIException{
-          return 
MockContext.getInstance().subscribeToCartridge(cartridgeInfoBean);
-    }
-
-
-    @GET
-    @Path("/cartridge/info/{subscriptionAlias}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cartridge getCartridgeInfo(@PathParam("subscriptionAlias") String 
subscriptionAlias) throws RestAPIException {
-        return MockContext.getInstance().getCartridgeInfo(subscriptionAlias);
-    }
-
-
-    @POST
-    @Path("/cartridge/unsubscribe")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public StratosAdminResponse unsubscribe(String alias) throws 
RestAPIException{
-          return MockContext.getInstance().unsubscribe(alias);
-    }
-
-    @POST
-    @Path("/tenant")
-    @Consumes("application/json")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse addTenant(TenantInfoBean tenantInfoBean) 
throws RestAPIException {
-       return MockContext.getInstance().addTenant(tenantInfoBean);
-    }
-
-
-    @PUT
-    @Path("/tenant")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse updateTenant(TenantInfoBean tenantInfoBean) 
throws RestAPIException {
-        return MockContext.getInstance().addTenant(tenantInfoBean);
-    }
-
-    @GET
-    @Path("/tenant/{tenantDomain}")
-    @Consumes("application/json")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public TenantInfoBean getTenant(@PathParam("tenantDomain") String 
tenantDomain) throws RestAPIException {
-        return MockContext.getInstance().getTenant(tenantDomain);
-    }
-
-    @DELETE
-    @Path("/tenant/{tenantDomain}")
-    @Consumes("application/json")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse deleteTenant(@PathParam("tenantDomain") String 
tenantDomain) throws RestAPIException {
-         return  MockContext.getInstance().deleteTenant(tenantDomain);
-    }
-
-
-    @GET
-    @Path("/tenant/list")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public TenantInfoBean[] retrieveTenants() throws RestAPIException {
-       return MockContext.getInstance().getTenants();
-    }
-
-    @GET
-    @Path("tenant/search/{domain}")
-    @Consumes("application/json")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public TenantInfoBean[] 
retrievePartialSearchTenants(@PathParam("domain")String domain) throws 
RestAPIException {
-            return 
MockContext.getInstance().retrievePartialSearchTenants(domain);
-    }
-
-
-    @POST
-    @Path("tenant/activate/{tenantDomain}")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public void activateTenant(@PathParam("tenantDomain") String tenantDomain) 
throws RestAPIException {
-            MockContext.getInstance().activateTenant(tenantDomain);
-    }
-
-    @POST
-    @Path("tenant/deactivate/{tenantDomain}")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse deactivateTenant(@PathParam("tenantDomain") 
String tenantDomain) throws RestAPIException {
-        return  MockContext.getInstance().deactivateTenant(tenantDomain);
-    }
-
-   @POST
-   @Path("/service/definition")
-   @Produces("application/json")
-   @Consumes("application/json")
-   @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-   @SuperTenantService(true)
-   public StratosAdminResponse deployService(ServiceDefinitionBean 
serviceDefinitionBean)
-           throws RestAPIException {
-
-       log.info("Service definition request.. : " + 
serviceDefinitionBean.getServiceName());
-       return MockContext.getInstance().deployService(serviceDefinitionBean);
-   }
-    @GET
-    @Path("/service")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public ServiceDefinitionBean[] getServices () throws RestAPIException {
-        return MockContext.getInstance().getServices();
-
-    }
-
-    @GET
-    @Path("/service/{serviceType}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public ServiceDefinitionBean getService(@PathParam("serviceType") String 
serviceType)throws RestAPIException {
-
-        return MockContext.getInstance().getServiceType(serviceType);
-    }
-
-    @POST
-    @Path("/cartridge/definition/")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse deployCartridgeDefinition 
(CartridgeDefinitionBean cartridgeDefinitionBean)
-            throws RestAPIException {
-        return 
MockContext.getInstance().addCartirdgeDefinition(cartridgeDefinitionBean);
-    }
-
-    @DELETE
-    @Path("/cartridge/definition/{cartridgeType}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public void unDeployCartridgeDefinition (@PathParam("cartridgeType") 
String cartridgeType) throws RestAPIException {
-         MockContext.getInstance().deleteCartridgeDefinition(cartridgeType);
-    }
-
-    @GET
-    @Path("/cartridge/available/info/{cartridgeType}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cartridge 
getAvailableSingleTenantCartridgeInfo(@PathParam("cartridgeType") String 
cartridgeType)
-            throws ADCException, RestAPIException {
-        return 
MockContext.getInstance().getAvailableSingleTenantCartridgeInfo(cartridgeType);
-    }
-
-    @GET
-    @Path("/cartridge/lb")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cartridge[] getAvailableLbCartridges() throws RestAPIException {
-        return MockContext.getInstance().getAvailableLbCartridges();
-    }
-
-
-
-    @POST
-    @Path("/policy/deployment/partition")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse deployPartition (Partition partition)
-            throws RestAPIException {
-        return MockContext.getInstance().addPartition(partition);
-    }
-
-    @POST
-    @Path("/policy/autoscale")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse deployAutoscalingPolicyDefintion 
(AutoscalePolicy autoscalePolicy)
-            throws RestAPIException {
-          return 
MockContext.getInstance().addAutoScalingPolicyDefinition(autoscalePolicy);
-
-    }
-
-    @POST
-    @Path("/policy/deployment")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    @SuperTenantService(true)
-    public StratosAdminResponse deployDeploymentPolicyDefinition 
(DeploymentPolicy deploymentPolicy)
-            throws RestAPIException {
-           return 
MockContext.getInstance().addDeploymentPolicyDefinition(deploymentPolicy);
-
-    }
-
-    @GET
-    @Path("/partition")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Partition[] getPartitions () throws RestAPIException {
-            return MockContext.getInstance().getPartitions();
-
-    }
-
-    @GET
-    @Path("/partition/{partitionId}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Partition getPartition (@PathParam("partitionId") String 
partitionId) throws RestAPIException {
-            return MockContext.getInstance().getPartition(partitionId);
-
-    }
-
-    @GET
-    @Path("/partition/group/{deploymentPolicyId}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public PartitionGroup[] getPartitionGroups 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
-            throws RestAPIException {
-          return 
MockContext.getInstance().getPartitionGroups(deploymentPolicyId);
-
-    }
-
-    @GET
-    @Path("/partition/{deploymentPolicyId}/{partitionGroupId}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Partition[] getPartitions (@PathParam("deploymentPolicyId") String 
deploymentPolicyId,
-                                       @PathParam("partitionGroupId") String 
partitionGroupId) throws RestAPIException {
-           return MockContext.getInstance().getPartitions(deploymentPolicyId, 
partitionGroupId);
-
-    }
-
-    @GET
-    @Path("/partition/{deploymentPolicyId}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Partition [] getPartitionsOfPolicy 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
-            throws RestAPIException {
-             return 
MockContext.getInstance().getPartitionsOfPolicy(deploymentPolicyId);
-
-    }
-
-    @GET
-    @Path("/policy/autoscale")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public AutoscalePolicy[] getAutoscalePolicies () throws RestAPIException {
-            return MockContext.getInstance().getAutoscalePolicies();
-
-    }
-
-    @GET
-    @Path("/policy/autoscale/{autoscalePolicyId}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public AutoscalePolicy getAutoscalePolicies 
(@PathParam("autoscalePolicyId") String autoscalePolicyId)
-            throws RestAPIException {
-        return 
MockContext.getInstance().getAutoscalePolicies(autoscalePolicyId);
-
-    }
-
-    @GET
-    @Path("/policy/deployment")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public DeploymentPolicy[] getDeploymentPolicies () throws RestAPIException 
{
-          return MockContext.getInstance().getDeploymentPolicies();
-
-    }
-
-    @GET
-    @Path("/policy/deployment/{deploymentPolicyId}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public DeploymentPolicy getDeploymentPolicies 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
-            throws RestAPIException {
-        return 
MockContext.getInstance().getDeploymentPolicies(deploymentPolicyId);
-
-    }
-
-    @GET
-    @Path("/cluster/")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cluster[] getClustersForTenant() throws RestAPIException {
-
-        return MockContext.getInstance().getClusters();
-    }
-
-    @GET
-    @Path("/cluster/{cartridgeType}/")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cluster[] getClusters(@PathParam("cartridgeType") String 
cartridgeType) throws RestAPIException {
-
-        return MockContext.getInstance().getClusters();
-    }
-
-    @GET
-    @Path("/cluster/{cartridgeType}/{subscriptionAlias}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cluster[] getCluster(@PathParam("cartridgeType") String 
cartridgeType,
-                              @PathParam("subscriptionAlias") String 
subscriptionAlias) throws RestAPIException, RestAPIException {
-
-        return MockContext.getInstance().getClusters();
-    }
-
-    @GET
-    @Path("/cluster/clusterId/{clusterId}")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Cluster[] getCluster(@PathParam("clusterId") String clusterId) 
throws RestAPIException {
-        return MockContext.getInstance().getClusters();
-    }
-
-    @GET
-    @Path("{cartridgeType}/policy/deployment")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public DeploymentPolicy[] getValidDeploymentPolicies 
(@PathParam("cartridgeType") String cartridgeType)
-            throws RestAPIException {
-
-        return 
MockContext.getInstance().getDeploymentPoliciesForCartridgeType(cartridgeType);
-    }
-
-    @POST
-    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public StratosAdminResponse 
addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
-                                                      
@PathParam("subscriptionAlias") String subscriptionAlias,
-                                                      
SubscriptionDomainRequest request) throws RestAPIException {
-
-        return MockContext.getInstance().addSubscriptionDomains(2, 
subscriptionAlias, request);
-    }
-
-    @GET
-    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public SubscriptionDomainBean[] 
getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
-                                           @PathParam("subscriptionAlias") 
String subscriptionAlias) throws RestAPIException {
-
-        return MockContext.getInstance().getSubscriptionDomains(2, 
subscriptionAlias).toArray(new SubscriptionDomainBean[0]);
-    }
-
-    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public SubscriptionDomainBean 
getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
-            @PathParam("subscriptionAlias") String subscriptionAlias, 
@PathParam("domainName") String domainName) throws RestAPIException {
-
-        return MockContext.getInstance().getSubscriptionDomain(2, 
cartridgeType, subscriptionAlias, domainName);
-    }
-
-    @DELETE
-    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public StratosAdminResponse 
removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
-                                                         
@PathParam("subscriptionAlias") String subscriptionAlias,
-                                                         
@PathParam("domainName") String domainName) throws RestAPIException {
-
-        return MockContext.getInstance().removeSubscriptionDomain(2, 
subscriptionAlias, domainName);
-    }
-    
-    @POST
-       @Path("/cartridge/sync")
-       @Consumes("application/json")
-       @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-       public Response synchronizeRepository(String alias) throws 
RestAPIException {
-               return Response.noContent().build();
-       }
-    
-    @POST
-    @Path("/user")
-    @Consumes("application/json")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/add/users")
-    public Response addUser(UserInfoBean userInfoBean) throws RestAPIException 
{
-       MockContext.getInstance().addUser(userInfoBean);
-        URI url = 
uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build();
-        return Response.created(url).build();
-    }
-
-    @DELETE
-    @Path("/user/{userName}")
-    @Consumes("application/json")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/add/users")
-    public Response deleteUser(@PathParam("userName") String userName) throws 
RestAPIException {
-       MockContext.getInstance().deleteUser(userName);
-        return Response.noContent().build();
-    }
-
-    @PUT
-    @Path("/user")
-    @Consumes("application/json")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/add/users")
-    public Response updateUser(UserInfoBean userInfoBean) throws 
RestAPIException {
-       MockContext.getInstance().updateUser(userInfoBean);
-        URI url = 
uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build();
-        return Response.created(url).build();
-    }
-
-    @GET
-    @Path("/user/list")
-    @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/add/users")
-    public UserInfoBean[] retrieveUsers() throws RestAPIException {
-        List<UserInfoBean> userList = null;
-        userList = MockContext.getInstance().getAllUsers();
-        return userList.toArray(new UserInfoBean[userList.size()]);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
deleted file mode 100644
index 37b1905..0000000
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
+++ /dev/null
@@ -1,68 +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.rest.endpoint.services;
-
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.CarbonContext;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils;
-import org.wso2.carbon.utils.ConfigurationContextService;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-
-/**
- * The abstract class for service beans. If the admin service want to get 
{@link ConfigurationContext} etc,
- * they should acquire them through this class' methods.
- */
-public class AbstractAdmin {
-    private static Log log = LogFactory.getLog(AbstractAdmin.class);
-
-    protected ConfigurationContext getConfigContext() {
-
-        // If a tenant has been set, then try to get the ConfigurationContext 
of that tenant
-        PrivilegedCarbonContext carbonContext = 
PrivilegedCarbonContext.getThreadLocalCarbonContext();
-        ConfigurationContextService configurationContextService =
-                (ConfigurationContextService) 
carbonContext.getOSGiService(ConfigurationContextService.class);
-        ConfigurationContext mainConfigContext = 
configurationContextService.getServerConfigContext();
-        String domain = carbonContext.getTenantDomain();
-        if (domain != null && 
!MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(domain)) {
-            return TenantAxisUtils.getTenantConfigurationContext(domain, 
mainConfigContext);
-        } else if (carbonContext.getTenantId() == 
MultitenantConstants.SUPER_TENANT_ID) {
-            return mainConfigContext;
-        } else {
-            throw new UnsupportedOperationException("Tenant domain 
unidentified. " +
-                    "Upstream code needs to identify & set the tenant domain & 
tenant ID. " +
-                    " The TenantDomain SOAP header could be set by the clients 
or " +
-                    "tenant authentication should be carried out.");
-        }
-    }
-
-    protected String getTenantDomain(){
-        return CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
-    }
-
-    protected String getUsername(){
-        return CarbonContext.getThreadLocalCarbonContext().getUsername();
-    }
-    
-    protected int getTenantId(){
-        return CarbonContext.getThreadLocalCarbonContext().getTenantId();
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java
deleted file mode 100644
index 7a2fd3d..0000000
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java
+++ /dev/null
@@ -1,67 +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.rest.endpoint.services;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.rest.endpoint.Utils;
-import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.ws.rs.*;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-@Path("/auth/")
-public class AuthenticationAdmin extends AbstractAdmin {
-    Log log = LogFactory.getLog(AuthenticationAdmin.class);
-    // TODO: investigate on the thread safety of this apprach...
-    @Context
-    HttpServletRequest httpServletRequest;
-
-
-    /*
-    This method gets called by the client who are interested in using session 
mechanism to authenticate themselves in
-    subsequent calls. This method call get authenticated by the basic 
authenticator.
-    Once the authenticated call received, the method creates a session.
-
-     */
-    @GET
-    @Path("/cookie")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public Response getCookie(){
-       HttpSession httpSession = httpServletRequest.getSession(true);//create 
session if not found
-       PrivilegedCarbonContext carbonContext = 
PrivilegedCarbonContext.getThreadLocalCarbonContext();
-       httpSession.setAttribute("userName",carbonContext.getUsername());
-       
httpSession.setAttribute("tenantDomain",carbonContext.getTenantDomain());
-       httpSession.setAttribute("tenantId",carbonContext.getTenantId());
-
-       String sessionId = httpSession.getId();
-        return Response.ok().header("WWW-Authenticate", 
"Basic").type(MediaType.APPLICATION_JSON).
-                
entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build();
-    }
-
-
-}

Reply via email to