You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/11/06 20:59:48 UTC

[05/10] stratos git commit: Introducing REST API versioning and renaming API context path from /stratos/admin to /api/{version} (version is optional)

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