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

[4/5] git commit: Further code and config clean up

Further code and config clean up


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

Branch: refs/heads/master
Commit: 0de427179174987d0ef6a6bb6caaca206ca5c1d2
Parents: 9af8ef7
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Wed Feb 12 00:30:24 2014 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Wed Feb 12 00:30:24 2014 +0530

----------------------------------------------------------------------
 .../DataCartridgeSubscriptionConnector.java     |  22 +-
 .../manager/CartridgeSubscriptionManager.java   |  15 +
 .../service/ApplicationManagementService.java   | 677 -------------------
 .../manager/utils/CartridgeConstants.java       |   1 -
 .../rest/endpoint/services/ServiceUtils.java    |  49 +-
 .../src/main/conf/cartridge-config.properties   |  14 -
 6 files changed, 62 insertions(+), 716 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
index 4764f49..b376da4 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
@@ -19,17 +19,13 @@
 
 package org.apache.stratos.manager.connector.data;
 
+import java.util.Properties;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.manager.connector.CartridgeSubscriptionConnector;
-import org.apache.stratos.manager.dto.Cartridge;
 import org.apache.stratos.manager.exception.ADCException;
-import org.apache.stratos.manager.exception.NotSubscribedException;
 import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-import org.apache.stratos.manager.utils.CartridgeConstants;
-
-import java.util.Properties;
 
 public class DataCartridgeSubscriptionConnector extends CartridgeSubscriptionConnector {
 
@@ -45,10 +41,10 @@ public class DataCartridgeSubscriptionConnector extends CartridgeSubscriptionCon
 
         Properties connectionProperties = new Properties();
 
-        int maxAttempts = Integer.parseInt(System.getProperty(CartridgeConstants.MAX_ATTEMPTS, "50"));
-        int attempts = 0;
-        while (attempts < maxAttempts) {
-            attempts++;
+       // int maxAttempts = Integer.parseInt(System.getProperty(CartridgeConstants.MAX_ATTEMPTS, "50"));
+        //int attempts = 0;
+       // while (attempts < maxAttempts) {
+            //attempts++;
             /*Cartridge cartridge = null;
              try {
                 cartridge = ApplicationManagementUtil.getCartridgeInfo(
@@ -74,12 +70,12 @@ public class DataCartridgeSubscriptionConnector extends CartridgeSubscriptionCon
                 }*/
             //}
 
-            if(attempts == maxAttempts) {
+            /*if(attempts == maxAttempts) {
                 String errorMsg = "Failed to connect " + cartridgeSubscription + " and " + connectingCartridgeSubscription;
                 log.error(errorMsg);
                 throw  new ADCException(errorMsg);
-            }
-        }
+            }*/
+        //}
 
         return connectionProperties;
     }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
index 4daa668..1b63890 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
@@ -288,4 +288,19 @@ public class CartridgeSubscriptionManager {
             throw new NotSubscribedException(errorMsg, alias);
         }
     }
+    
+    
+    /**
+     * 
+     * Returns a collection of Cartridge subscriptions for a particular tenant and a cartridge type
+     * 
+     * @param tenantId
+     * @param cartridgeType
+     * @return
+     */
+    public Collection<CartridgeSubscription> isCartridgeSubscribed(int tenantId, String cartridgeType) {
+    	
+    	DataInsertionAndRetrievalManager dataInsertionAndRetrievalManager = new DataInsertionAndRetrievalManager();
+        return dataInsertionAndRetrievalManager.getCartridgeSubscriptions(tenantId, cartridgeType);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
deleted file mode 100644
index 503bcec..0000000
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one 
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
- * KIND, either express or implied.  See the License for the 
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.stratos.manager.service;
-
-import org.apache.axis2.AxisFault;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-import org.apache.stratos.manager.client.CloudControllerServiceClient;
-import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
-import org.apache.stratos.manager.dto.*;
-import org.apache.stratos.manager.exception.*;
-import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
-import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-import org.apache.stratos.manager.utils.CartridgeConstants;
-import org.apache.stratos.manager.utils.PersistenceManager;
-import org.apache.stratos.manager.utils.PolicyHolder;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.core.AbstractAdmin;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
-import org.wso2.carbon.utils.DataPaginator;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Pattern;
-
-/**
- *
- *
- *
- */
-public class ApplicationManagementService extends AbstractAdmin {
-
-    private static final Log log = LogFactory.getLog(ApplicationManagementService.class);
-    //private RegistryManager registryManager = new RegistryManager();
-    private CartridgeSubscriptionManager cartridgeSubsciptionManager = new CartridgeSubscriptionManager();
-
-    /*
-     * Instantiate RepoNotificationService. Since this service is in the same 
-     * component (org.apache.stratos.manager), a new object is created.
-     * TODO: Is there a better way to get this service?
-     */
-    private RepoNotificationService repoNotificationService = new RepoNotificationService();
-
-	/**
-	 * Get Available Cartridges
-	 * 
-	 * @return Available Cartridges
-	 */
-	public Cartridge[] getAvailableCartridges(boolean multiTenant) throws ADCException {
-		List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant);
-		// Following is very important when working with axis2
-		return cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()]);
-	}
-
-	/**
-	 * Get Subscribed Cartridges
-	 * 
-	 * @return Subscribed Cartridges
-	 */
-	public Cartridge[] getSubscribedCartridges() throws ADCException {
-		checkSuperTenant();
-		List<Cartridge> cartridgeList = getSubscribedCartridges(null);
-		// Following is very important when working with axis2
-		return cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()]);
-	}
-
-	/**
-	 * Get available cartridges
-	 */
-	public CartridgeWrapper getPagedAvailableCartridges(String cartridgeSearchString, int pageNumber, boolean multiTenant)
-			throws ADCException {
-		checkSuperTenant();
-		CartridgeWrapper cartridgeWrapper = new CartridgeWrapper();
-		List<Cartridge> cartridges = getAvailableCartridges(cartridgeSearchString, multiTenant);
-    	
-		// TODO Improve pagination
-		if (!cartridges.isEmpty()) {
-			// Paginate only if cartridges are there.
-			DataPaginator.doPaging(pageNumber, cartridges, cartridgeWrapper);
-		} else {
-			// Must set this value as axis2 stub client will return an array
-			// with length = 1 and null element if cartridges[] is null
-			cartridgeWrapper.set(cartridges);
-		}
-		return cartridgeWrapper;
-	}
-
-	private List<Cartridge> getAvailableCartridges(String cartridgeSearchString, Boolean multiTenant) throws ADCException {
-		List<Cartridge> cartridges = new ArrayList<Cartridge>();
-		
-		if (log.isDebugEnabled()) {
-			log.debug("Getting available cartridges. Search String: " + cartridgeSearchString + ", Multi-Tenant: " + multiTenant);
-		}
-		
-		boolean allowMultipleSubscription = new Boolean(
-				System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
-
-		try {
-			Pattern searchPattern = getSearchStringPattern(cartridgeSearchString);
-
-			String[] availableCartridges = CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
-
-			if (availableCartridges != null) {
-				for (String cartridgeType : availableCartridges) {
-					CartridgeInfo cartridgeInfo = null;
-					try {
-						cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
-					} catch (Exception e) {
-						if (log.isWarnEnabled()) {
-							log.warn("Error when calling getCartridgeInfo for " + cartridgeType + ", Error: "
-									+ e.getMessage());
-						}
-					}
-					if (cartridgeInfo == null) {
-						// This cannot happen. But continue
-						if (log.isDebugEnabled()) {
-							log.debug("Cartridge Info not found: " + cartridgeType);
-						}
-						continue;
-					}
-					
-					if (multiTenant != null && !multiTenant && cartridgeInfo.getMultiTenant()) {
-						// Need only Single-Tenant cartridges
-						continue;
-					} else if (multiTenant != null && multiTenant && !cartridgeInfo.getMultiTenant()) {
-						// Need only Multi-Tenant cartridges
-						continue;
-					}
-					
-					if (!cartridgeMatches(cartridgeInfo, searchPattern)) {
-						continue;
-					}
-					
-					Cartridge cartridge = new Cartridge();
-					cartridge.setCartridgeType(cartridgeType);
-					cartridge.setProvider(cartridgeInfo.getProvider());
-					cartridge.setDisplayName(cartridgeInfo.getDisplayName());
-					cartridge.setDescription(cartridgeInfo.getDescription());
-					cartridge.setVersion(cartridgeInfo.getVersion());
-					cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
-					//cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
-					cartridge.setCartridgeAlias("-");
-					//cartridge.setActiveInstances(0);
-					cartridges.add(cartridge);
-					
-					if (cartridgeInfo.getMultiTenant() && !allowMultipleSubscription) {
-						// If the cartridge is multi-tenant. We should not let users
-						// createSubscription twice.
-						if (PersistenceManager.isAlreadySubscribed(cartridgeType,
-								ApplicationManagementUtil.getTenantId(getConfigContext()))) {
-							if (log.isDebugEnabled()) {
-								log.debug("Already subscribed to " + cartridgeType
-										+ ". This multi-tenant cartridge will not be available to createSubscription");
-							}
-							//cartridge.setStatus(CartridgeConstants.SUBSCRIBED);
-						}
-					}
-				}
-			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("There are no available cartridges");
-				}
-			}
-		} catch (Exception e) {
-			String msg = "Error when getting available cartridges. " + e.getMessage();
-			log.error(msg, e);
-			throw new ADCException("An error occurred getting available cartridges ", e);
-		}
-
-		Collections.sort(cartridges);
-
-		if (log.isDebugEnabled()) {
-			log.debug("Returning available cartridges " + cartridges.size());
-		}
-
-		return cartridges;
-	}
-
-	/**
-	 * Get subscribed cartridges
-	 */
-	public CartridgeWrapper getPagedSubscribedCartridges(String cartridgeSearchString, int pageNumber)
-			throws ADCException {
-		checkSuperTenant();
-		CartridgeWrapper cartridgeWrapper = new CartridgeWrapper();
-		List<Cartridge> cartridges = getSubscribedCartridges(cartridgeSearchString);
-
-		// TODO Improve pagination
-		if (!cartridges.isEmpty()) {
-			// Paginate only if cartridges are there.
-			DataPaginator.doPaging(pageNumber, cartridges, cartridgeWrapper);
-		} else {
-			cartridgeWrapper.set(cartridges);
-		}
-		return cartridgeWrapper;
-	}
-
-	private List<Cartridge> getSubscribedCartridges(String cartridgeSearchString) throws ADCException {
-		List<Cartridge> cartridges = new ArrayList<Cartridge>();
-		
-		if (log.isDebugEnabled()) {
-			log.debug("Getting subscribed cartridges. Search String: " + cartridgeSearchString);
-		}
-
-		try {
-			Pattern searchPattern = getSearchStringPattern(cartridgeSearchString);
-
-			List<CartridgeSubscriptionInfo> subscriptionList = PersistenceManager
-					.retrieveSubscribedCartridges(ApplicationManagementUtil.getTenantId(getConfigContext()));
-
-			if (subscriptionList != null && !subscriptionList.isEmpty()) {
-				for (CartridgeSubscriptionInfo subscription : subscriptionList) {
-					CartridgeInfo cartridgeInfo = null;
-					try {
-						cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(
-								subscription.getCartridge());
-					} catch (Exception e) {
-						if (log.isWarnEnabled()) {
-							log.warn("Error when calling getCartridgeInfo for " + subscription.getCartridge()
-									+ ", Error: " + e.getMessage());
-						}
-					}
-					if (cartridgeInfo == null) {
-						// This cannot happen. But continue
-						if (log.isDebugEnabled()) {
-							log.debug("Cartridge Info not found: " + subscription.getCartridge());
-						}
-						continue;
-					}
-					if (!cartridgeMatches(cartridgeInfo, subscription, searchPattern)) {
-						continue;
-					}
-					/*TopologyManagementService topologyMgtService = DataHolder.getTopologyMgtService();
-					String[] ips = topologyMgtService.getActiveIPs(subscription.getCartridge(),
-							subscription.getClusterDomain(), subscription.getClusterSubdomain());
-					Cartridge cartridge = ApplicationManagementUtil.populateCartridgeInfo(cartridgeInfo, subscription, ips, getTenantDomain());
-					cartridges.add(cartridge);*/
-				}
-			} else {
-				if (log.isDebugEnabled()) {
-					log.debug("There are no subscribed cartridges");
-				}
-			}
-		} catch (Exception e) {
-			String msg = "Error when getting subscribed cartridges. " + e.getMessage();
-			log.error(msg, e);
-			throw new ADCException("An Error occurred when getting subscribed cartridges.", e);
-		}
-
-		Collections.sort(cartridges);
-
-		if (log.isDebugEnabled()) {
-			log.debug("Returning subscribed cartridges " + cartridges.size());
-		}
-
-		return cartridges;
-	}
-
-    private Pattern getSearchStringPattern(String searchString) {
-        if (log.isDebugEnabled()) {
-            log.debug("Creating search pattern for " + searchString);
-        }
-        if (searchString != null) {
-            // Copied from org.wso2.carbon.webapp.mgt.WebappAdmin.doesWebappSatisfySearchString(WebApplication, String)
-            String regex = searchString.toLowerCase().replace("..?", ".?").replace("..*", ".*").replaceAll("\\?", ".?")
-                    .replaceAll("\\*", ".*?");
-            if (log.isDebugEnabled()) {
-                log.debug("Created regex: " + regex + " for search string " + searchString);
-            }
-
-            Pattern pattern = Pattern.compile(regex);
-            return pattern;
-        }
-        return null;
-    }
-
-    // TODO: Improve search method
-    private boolean cartridgeMatches(CartridgeInfo cartridgeInfo, Pattern pattern) {
-        if (pattern != null) {
-            boolean matches = false;
-            if (cartridgeInfo.getDisplayName() != null) {
-                matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
-            }
-            if (!matches && cartridgeInfo.getDescription() != null) {
-                matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
-            }
-            return matches;
-        }
-        return true;
-    }
-
-    private boolean cartridgeMatches(CartridgeInfo cartridgeInfo, CartridgeSubscriptionInfo cartridgeSubscriptionInfo, Pattern pattern) {
-        if (pattern != null) {
-            boolean matches = false;
-            if (cartridgeInfo.getDisplayName() != null) {
-                matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
-            }
-            if (!matches && cartridgeInfo.getDescription() != null) {
-                matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
-            }
-            if (!matches && cartridgeSubscriptionInfo.getCartridge() != null) {
-                matches = pattern.matcher(cartridgeSubscriptionInfo.getCartridge().toLowerCase()).find();
-            }
-            if (!matches && cartridgeSubscriptionInfo.getAlias() != null) {
-                matches = pattern.matcher(cartridgeSubscriptionInfo.getAlias().toLowerCase()).find();
-            }
-            return matches;
-        }
-        return true;
-    }
-    
-    public Cartridge getCartridgeInfo(String alias) throws ADCException, NotSubscribedException {
-    	checkSuperTenant();
-    	return ApplicationManagementUtil.getCartridgeInfo(alias, getTenantDomain());
-    }
-
-    public String[] getSubscribedCartridgeAliases() throws AxisFault {
-        try {
-            List<CartridgeSubscriptionInfo> subscriptionList = PersistenceManager
-                    .retrieveSubscribedCartridges(ApplicationManagementUtil.getTenantId(getConfigContext()));
-            List<String> subscribedAliases = new ArrayList<String>();
-            for (CartridgeSubscriptionInfo cartridgeSubscriptionInfo : subscriptionList) {
-
-                if(cartridgeSubscriptionInfo.getProvider().equalsIgnoreCase(CartridgeConstants.PROVIDER_NAME_WSO2) &&
-                        getCartridgeInfo(cartridgeSubscriptionInfo.getAlias()).isMultiTenant()) {
-
-                    subscribedAliases.add(cartridgeSubscriptionInfo.getCartridge());
-                } else {
-                    subscribedAliases.add(cartridgeSubscriptionInfo.getAlias());
-                }
-            }
-            if(subscribedAliases.size() == 0) {
-                return new String[]{""};
-            } else {
-                return subscribedAliases.toArray(new String[subscribedAliases.size()]);
-            }
-
-        } catch (Exception e) {
-            String msg = "Exception in getting subscribed cartridge aliases :" + e.getMessage();
-            log.error(msg, e);
-            throw new AxisFault("An error occurred while getting subscribed cartridge aliases", e);
-        }
-    }
-    
-	public PolicyDefinition[] getPolicyDefinitions() {
-		List<PolicyDefinition> policyDefinitions = PolicyHolder.getInstance().getPolicyDefinitions();
-		return policyDefinitions == null || policyDefinitions.isEmpty() ? new PolicyDefinition[0] : policyDefinitions
-				.toArray(new PolicyDefinition[policyDefinitions.size()]);
-	}
-
-	/**
-	 * Subscribe to a cartridge
-	 */
-	public SubscriptionInfo subscribe(String cartridgeType, String alias, String policy, String repoURL,
-			boolean privateRepo, String repoUsername, String repoPassword, String dataCartridgeType,
-			String dataCartridgeAlias) throws ADCException, PolicyException, UnregisteredCartridgeException,
-            InvalidCartridgeAliasException, DuplicateCartridgeAliasException, RepositoryRequiredException,
-            AlreadySubscribedException, RepositoryCredentialsRequiredException, InvalidRepositoryException,
-            RepositoryTransportException {
-
-		checkSuperTenant();
-
-		//return ApplicationManagementUtil.doSubscribe(cartridgeType, alias, policy, repoURL, privateRepo, repoUsername,
-		//		repoPassword, dataCartridgeType, dataCartridgeAlias, getUsername(),
-		//		ApplicationManagementUtil.getTenantId(getConfigContext()), getTenantDomain());
-
-        CartridgeSubscription cartridgeSubscription = cartridgeSubsciptionManager.subscribeToCartridge(cartridgeType,
-                alias.trim(), "economyPolicy", "economy-deployment", getTenantDomain(), ApplicationManagementUtil.getTenantId(configurationContext),
-                getUsername(), "git", repoURL, privateRepo, repoUsername, repoPassword, null);
-
-        if(dataCartridgeAlias != null && !dataCartridgeAlias.trim().isEmpty()) {
-
-            /*dataCartridgeAlias = dataCartridgeAlias.trim();
-
-            CartridgeSubscription connectingCartridgeSubscription = null;
-            try {
-                connectingCartridgeSubscription = cartridgeSubsciptionManager.getCartridgeSubscriptionForCluster(getTenantDomain(),
-                        dataCartridgeAlias);
-            } catch (NotSubscribedException e) {
-                log.error(e.getMessage(), e);
-            }
-            if (connectingCartridgeSubscription != null) {
-                // Publish tenant subscribed event
-                CartridgeSubscriptionUtils.publishTenantSubscribedEvent(getTenantId(), connectingCartridgeSubscription.getCartridgeInfo().getType());
-
-                try {
-                    cartridgeSubsciptionManager.connectCartridges(getTenantDomain(), cartridgeSubscription,
-                            connectingCartridgeSubscription.getAlias());
-
-                } catch (NotSubscribedException e) {
-                    log.error(e.getMessage(), e);
-
-                } catch (AxisFault axisFault) {
-                    log.error(axisFault.getMessage(), axisFault);
-                }
-            } else {
-                log.error("Failed to connect. No cartridge subscription found for tenant " +
-                        ApplicationManagementUtil.getTenantId(configurationContext) + " with alias " + alias);
-            } */
-        }
-
-        return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
-
-	}
-
-    /**
-     * Unsubscribing the cartridge
-     *
-     * @param alias name of the cartridge to be unsubscribed
-     */
-    public void unsubscribe(String alias) throws ADCException, NotSubscribedException {
-
-        checkSuperTenant();
-
-        // Find subscription of alias
-        CartridgeSubscriptionInfo subscription;
-        String errorMessage = String.format("Tenant %s is not subscribed for %s", getTenantDomain(), alias);
-        try {
-            subscription = PersistenceManager.getSubscription(getTenantDomain(), alias);
-            if(subscription == null) {
-                throw new ADCException(errorMessage);
-            }
-        } catch (Exception e) {
-            throw new ADCException(errorMessage);
-        }
-
-        // Un-subscribe from cartridge
-        cartridgeSubsciptionManager.unsubscribeFromCartridge(getTenantDomain(), alias);
-
-        // Publish tenant un-subscribed event
-        String serviceName = subscription.getCartridge();
-        CartridgeSubscriptionUtils.publishTenantUnSubscribedEvent(getTenantId(), serviceName);
-
-
-        /*CartridgeSubscriptionInfo subscription = null;
-        
-        try {
-			subscription = PersistenceManager.getSubscription(getTenantDomain(), alias);
-		} catch (Exception e) {
-			String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + alias;
-            log.error(msg, e);
-			throw new ADCException(msg, e);
-		}
-
-        if (subscription == null) {
-            String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + alias;
-            log.error(msg);
-            throw new NotSubscribedException("You have not subscribed for " + alias, alias);
-        }
-        
-        try {
-            String clusterDomain = subscription.getClusterDomain();
-            String clusterSubDomain = subscription.getClusterSubdomain();
-
-            if (log.isDebugEnabled()) {
-                log.debug("Finding cartridge information for " + subscription.getCartridge());
-            }
-            CartridgeInfo cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(subscription.getCartridge());
-            if (log.isDebugEnabled()) {
-                log.debug("Found " + cartridgeInfo.getDisplayName() + " for " + subscription.getCartridge());
-            }
-            if (!cartridgeInfo.getMultiTenant()) {
-                log.info("Terminating all instances of " + clusterDomain + " " + clusterSubDomain);
-                CloudControllerServiceClient.getServiceClient().terminateAllInstances(clusterDomain, clusterSubDomain);
-                log.info("All instances terminated.");
-                log.info("Unregistering services...");
-                CloudControllerServiceClient.getServiceClient().unregisterService(clusterDomain, clusterSubDomain);
-                log.info("Successfully terminated instances ..");
-            } else {
-                if (log.isInfoEnabled()) {
-                    log.info("Cartridge "
-                            + subscription.getCartridge()
-                            + " is a multi-tenant cartridge and therefore will not terminate all instances and unregister services");
-                }
-            }
-
-            new RepositoryFactory().destroyRepository(alias, getTenantDomain(), getUsername());
-            log.info("Repo is destroyed successfully.. ");
-
-            PersistenceManager.updateSubscriptionState(subscription.getSubscriptionId(), "UNSUBSCRIBED");
-            new DNSManager().removeSubDomain(subscription.getHostName());
-            registryManager.removeDomainMappingFromRegistry(subscription.getHostName());
-            TopologyManagementService topologyMgtService = DataHolder.getTopologyMgtService();
-			
-            String[] ips = topologyMgtService.getActiveIPs(subscription.getCartridge(),
-					subscription.getClusterDomain(), subscription.getClusterSubdomain());
-            PersistenceManager.updateInstanceState("INACTIVE", ips, subscription.getClusterDomain(), subscription.getClusterSubdomain(), subscription.getCartridge());
-
-        } catch (ADCException e) {
-        	log.error(e.getMessage(), e);
-        	throw e;
-        } catch (Exception e1) {
-            String msg1 = "Exception occurred :" + e1.getMessage();
-            log.error(msg1);
-            throw new ADCException("Unsubscribe failed for cartridge " + alias, e1);
-        }*/
-    }
-
-
-    public String addDomainMapping(String mappedDomain, String cartridgeAlias) throws ADCException, DomainMappingExistsException, NotSubscribedException {
-    	checkSuperTenant();
-    	// TODO Following was in CLI. Fix this
-		//		if (domain.indexOf('.') == -1) {
-		//			System.out.println("\nOwn domain should include a '.' ");
-		//		}
-
-        CartridgeSubscriptionInfo subscription = null;
-        String actualHost = null;
-        
-        try {
-			subscription = PersistenceManager.getSubscription(getTenantDomain(), cartridgeAlias);
-		} catch (Exception e) {
-			String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + cartridgeAlias;
-            log.error(msg, e);
-			throw new ADCException(msg, e);
-		}
-        if (subscription == null) {
-        	String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + cartridgeAlias;
-            log.error(msg);
-            throw new NotSubscribedException("You have not subscribed for " + cartridgeAlias, cartridgeAlias);
-        }
-
-        try {
-        	actualHost = getActualHost(cartridgeAlias);
-            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            //registryManager.addDomainMappingToRegistry(mappedDomain, actualHost);
-            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            log.info("Domain mapping is added for " + mappedDomain + " tenant: " + getTenantDomain());
-            PersistenceManager.updateDomainMapping(
-                    ApplicationManagementUtil.getTenantId(getConfigContext()), cartridgeAlias, mappedDomain);
-        } catch (RegistryException e) {
-            String msg = "Unable to add the mapping due to registry transaction error";
-            log.error(msg, e);
-            throw new ADCException("Unable to add the mapping due to internal error!", e);
-        } catch (DomainMappingExistsException e) {
-            String msg = "Domain mapping already exists.";
-            log.error(msg, e);
-            throw e;
-        } catch (Exception e) {
-            String msg = "Error occurred. Reason : " + e.getMessage();
-            log.error(msg, e);
-            throw new ADCException(msg, e);
-        }
-        return actualHost;
-    }
-
-	private String getActualHost(String cartridgeName) throws Exception {
-		return PersistenceManager.getHostNameForCartridgeName(
-				ApplicationManagementUtil.getTenantId(getConfigContext()), cartridgeName);
-	}
-
-    public void removeDomainMapping(String cartridgeAlias) throws ADCException, NotSubscribedException {
-    	checkSuperTenant();
-        CartridgeSubscriptionInfo subscription = null;
-        String actualHost = null;
-        
-        try {
-			subscription = PersistenceManager.getSubscription(getTenantDomain(), cartridgeAlias);
-		} catch (Exception e) {
-			String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + cartridgeAlias;
-            log.error(msg, e);
-			throw new ADCException(msg, e);
-		}
-        if (subscription == null) {
-        	String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + cartridgeAlias;
-            log.error(msg);
-            throw new NotSubscribedException("You have not subscribed for " + cartridgeAlias, cartridgeAlias);
-        }
-        
-        try {
-        	actualHost = getActualHost(cartridgeAlias);
-            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            //registryManager.removeDomainMappingFromRegistry(actualHost);
-            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            log.info("Domain mapping is removed for " + actualHost + " tenant: " + getTenantDomain());
-            PersistenceManager.updateDomainMapping(ApplicationManagementUtil.getTenantId(getConfigContext()),
-                    cartridgeAlias, null);
-        } catch (RegistryException e) {
-            String msg = "Unable to remove the mapping due to registry transaction error";
-            log.error(msg, e);
-            throw new ADCException("Unable to remove the mapping due to internal error!", e);
-        } catch (Exception e) {
-            String msg = "Error occurred. Reason : " + e.getMessage();
-            log.error(msg, e);
-            throw new ADCException(msg, e);
-        }
-    }
-
-	public void synchronizeRepository(String cartridgeAlias) throws ADCException, NotSubscribedException {
-		checkSuperTenant();
-        CartridgeSubscriptionInfo subscription = null;
-        
-        // Validating subscription
-        try {
-			subscription = PersistenceManager.getSubscription(getTenantDomain(), cartridgeAlias);
-		} catch (Exception e) {
-			String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + cartridgeAlias;
-            log.error(msg, e);
-			throw new ADCException(msg, e);
-		}
-        if (subscription == null) {
-        	String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + cartridgeAlias;
-            log.error(msg);
-            throw new NotSubscribedException("You have not subscribed for " + cartridgeAlias, cartridgeAlias);
-        }
-		
-		try {
-			repoNotificationService.notifyRepoUpdate(getTenantDomain(), cartridgeAlias);
-		} catch (Exception e) {
-			throw new ADCException(e.getMessage() != null ? e.getMessage() : "Failed to synchronize repository", e);
-		}
-	}
-
-	public String getTenantDomain() {
-        PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
-        return carbonContext.getTenantDomain();
-	}
-
-    public int getTenantId() {
-        PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
-        return carbonContext.getTenantId();
-    }
-    
-	/**
-	 * Allow to check whether features are enabled in the back-end
-	 * 
-	 * @param key
-	 *            The propery key
-	 * @return {@code true} if feature is enabled
-	 */
-	public boolean isFeatureEnabled(String key) {
-		if (key != null && key.startsWith("feature.")) {
-			return new Boolean(System.getProperty(key));
-		}
-		return false;
-	}
-
-	
-	public RepositoryInformation testRepositoryConnection(String repoURL, String repoUsername, String repoPassword, boolean privateRepo)
-			throws RepositoryRequiredException, ADCException, RepositoryCredentialsRequiredException,
-			InvalidRepositoryException, RepositoryTransportException {
-		return ApplicationManagementUtil.validateRepository(repoURL, repoUsername, repoPassword, privateRepo, true);
-	}
-	
-	// TODO Remove following when we support cartridge subscription for Super-tenant
-	private void checkSuperTenant() throws ADCException {
-		if (log.isDebugEnabled()) {
-			log.debug("Checking whether super tenant accesses the service methods. Tenant ID: "
-					+ ApplicationManagementUtil.getTenantId(getConfigContext()) + ", Tenant Domain: " + getTenantDomain());
-		}
-		if (MultitenantConstants.SUPER_TENANT_ID == ApplicationManagementUtil.getTenantId(getConfigContext())) {
-			throw new ADCException("Super Tenant is not allowed to complete requested operation");
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
index d56ba0b..f3ff654 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
@@ -37,7 +37,6 @@ public class CartridgeConstants {
 	public static final String APPEND_SCRIPT = "append.script";
 	public static final String REMOVE_SCRIPT = "remove.script";
 	public static final String BIND_FILE_PATH = "bind.file.path";
-	public static final String MAX_ATTEMPTS = "max.attempts";
 	
 	public static final String FEATURE_EXTERNAL_REPO_VAIDATION_ENABLED = "feature.externalrepo.validation.enabled";
 	public static final String FEATURE_INTERNAL_REPO_ENABLED = "feature.internalrepo.enabled";

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index 8fd6d52..fc83700 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -18,16 +18,40 @@
 
 package org.apache.stratos.rest.endpoint.services;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+import java.util.Set;
+import java.util.regex.Pattern;
+
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.cloud.controller.pojo.CartridgeConfig;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.LoadbalancerConfig;
+import org.apache.stratos.cloud.controller.pojo.Properties;
+import org.apache.stratos.cloud.controller.pojo.Property;
 import org.apache.stratos.manager.client.AutoscalerServiceClient;
 import org.apache.stratos.manager.client.CloudControllerServiceClient;
 import org.apache.stratos.manager.deploy.service.ServiceDeploymentManager;
 import org.apache.stratos.manager.dto.Cartridge;
 import org.apache.stratos.manager.dto.SubscriptionInfo;
-import org.apache.stratos.manager.exception.*;
+import org.apache.stratos.manager.exception.ADCException;
+import org.apache.stratos.manager.exception.AlreadySubscribedException;
+import org.apache.stratos.manager.exception.DuplicateCartridgeAliasException;
+import org.apache.stratos.manager.exception.InvalidCartridgeAliasException;
+import org.apache.stratos.manager.exception.InvalidRepositoryException;
+import org.apache.stratos.manager.exception.NotSubscribedException;
+import org.apache.stratos.manager.exception.PolicyException;
+import org.apache.stratos.manager.exception.RepositoryCredentialsRequiredException;
+import org.apache.stratos.manager.exception.RepositoryRequiredException;
+import org.apache.stratos.manager.exception.RepositoryTransportException;
+import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
 import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
 import org.apache.stratos.manager.subscription.CartridgeSubscription;
 import org.apache.stratos.manager.subscription.DataCartridgeSubscription;
@@ -35,9 +59,6 @@ import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
 import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
 import org.apache.stratos.manager.utils.ApplicationManagementUtil;
 import org.apache.stratos.manager.utils.CartridgeConstants;
-import org.apache.stratos.manager.utils.PersistenceManager;
-import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
-import org.apache.stratos.cloud.controller.pojo.Properties;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.Member;
 import org.apache.stratos.messaging.domain.topology.MemberStatus;
@@ -48,11 +69,6 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.Autosca
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
 import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
-import org.apache.stratos.cloud.controller.pojo.*;
-
-
-import java.util.*;
-import java.util.regex.Pattern;
 
 public class ServiceUtils {
     private static Log log = LogFactory.getLog(ServiceUtils.class);
@@ -471,7 +487,7 @@ public class ServiceUtils {
                     if (cartridgeInfo.getMultiTenant() && !allowMultipleSubscription) {
                         // If the cartridge is multi-tenant. We should not let users
                         // createSubscription twice.
-                        if (PersistenceManager.isAlreadySubscribed(cartridgeType,
+                        if (isAlreadySubscribed(cartridgeType,
                                 ApplicationManagementUtil.getTenantId(configurationContext))) {
                             if (log.isDebugEnabled()) {
                                 log.debug("Already subscribed to " + cartridgeType
@@ -501,7 +517,18 @@ public class ServiceUtils {
         return cartridges;
     }
 
-    static List<Cartridge> getSubscriptions (String cartridgeSearchString, ConfigurationContext configurationContext) throws ADCException {
+    private static boolean isAlreadySubscribed(String cartridgeType,
+			int tenantId) {
+		
+    	Collection<CartridgeSubscription> subscriptionList = cartridgeSubsciptionManager.isCartridgeSubscribed(tenantId, cartridgeType);
+    	if(subscriptionList == null || subscriptionList.isEmpty()){
+    		return false;	
+    	}else {
+    		return true;
+    	}		
+	}
+
+	static List<Cartridge> getSubscriptions (String cartridgeSearchString, ConfigurationContext configurationContext) throws ADCException {
 
         List<Cartridge> cartridges = new ArrayList<Cartridge>();
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
----------------------------------------------------------------------
diff --git a/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties b/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
index 53b50f2..302b4c1 100644
--- a/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
+++ b/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
@@ -19,20 +19,6 @@
 #
 #
 
-# Configuration properties
-#this file is in product
 autoscaler.service.url=https://as.stratos.apache.org:9446/services/AutoScalerService/
 cloud.controller.service.url=https://cc.stratos.apache.org:9444/services/CloudControllerService/
-autoscaler.time.out=190000
 puppet.ip=127.0.0.1
-
-adc.jdbc.url=jdbc:h2:repository/database/WSO2S2_DB
-adc.jdbc.username=wso2carbon
-adc.jdbc.password=wso2carbon
-adc.jdbc.driver=org.h2.Driver
-
-feature.externalrepo.validation.enabled=true
-feature.internalrepo.enabled=false
-feature.multitenant.multiplesubscription.enabled=false
-
-max.attempts=1000