You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by pr...@apache.org on 2014/01/07 13:50:59 UTC

git commit: mockcontext changes

Updated Branches:
  refs/heads/master 0e03fe2f2 -> 2231b6e40


mockcontext changes


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

Branch: refs/heads/master
Commit: 2231b6e40d44941763101bcdce0f665302c18a2c
Parents: 0e03fe2
Author: Pradeep Fernando <pr...@gmail.com>
Authored: Tue Jan 7 18:20:43 2014 +0530
Committer: Pradeep Fernando <pr...@gmail.com>
Committed: Tue Jan 7 18:20:43 2014 +0530

----------------------------------------------------------------------
 .../stratos/rest/endpoint/mock/MockContext.java | 94 ++++++++++++++++++++
 1 file changed, 94 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2231b6e4/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 ac0ec49..258c618 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
@@ -16,5 +16,99 @@ package org.apache.stratos.rest.endpoint.mock;/*
 * under the License.
 */
 
+import org.apache.stratos.adc.mgt.dto.Cartridge;
+import org.apache.stratos.adc.mgt.dto.SubscriptionInfo;
+import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
+
+import java.util.*;
+
 public class MockContext {
+    private static MockContext mockContext = new MockContext(); // singleton
+    private List<CartridgeDefinitionBean> cartridgeDefinitionBeanList = new LinkedList<CartridgeDefinitionBean>();
+    private Map<String,Cartridge> availableSingleTenantCartridges = new HashMap<String,Cartridge>();
+    private Map<String,Cartridge> availableMultiTenantCartridges = new HashMap<String,Cartridge>();
+    private Map<String,Cartridge> subscribedCartridges = new HashMap<String,Cartridge>();
+
+    private Set<Cartridge> temp = new HashSet<Cartridge>();
+
+
+    private MockContext(){} // do not allow to initialize
+
+    public static MockContext getInstance(){
+        return mockContext;
+    }
+
+
+    public void addCartirdgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean){
+        this.cartridgeDefinitionBeanList.add(cartridgeDefinitionBean);
+        Cartridge cartridge = new Cartridge();
+        cartridge.setCartridgeType(cartridgeDefinitionBean.type);
+        cartridge.setDescription(cartridgeDefinitionBean.description);
+        cartridge.setDisplayName(cartridgeDefinitionBean.displayName);
+        cartridge.setMultiTenant(cartridgeDefinitionBean.multiTenant);
+        cartridge.setProvider(cartridgeDefinitionBean.provider);
+        cartridge.setVersion(cartridgeDefinitionBean.version);
+
+        if(cartridge.isMultiTenant()){
+            availableMultiTenantCartridges.put(cartridge.getCartridgeType(), cartridge);
+        }else{
+            availableSingleTenantCartridges.put(cartridge.getCartridgeType(), cartridge);
+        }
+    }
+
+
+
+    public Cartridge[] getAvailableMultiTenantCartridges(){
+       return availableMultiTenantCartridges.values().toArray(new Cartridge[0]);
+    }
+
+
+    public Cartridge[] getAvailableSingleTenantCartridges(){
+        return availableSingleTenantCartridges.values().toArray(new Cartridge[0]);
+    }
+
+    public Cartridge[] getSubscribedCartridges(){
+        return subscribedCartridges.values().toArray(new Cartridge[0]);
+    }
+
+    public SubscriptionInfo subscribeToCartridge(CartridgeInfoBean cartridgeInfoBean){
+         String cartridgeType = cartridgeInfoBean.getCartridgeType();
+         String alias = cartridgeInfoBean.getAlias();
+         Cartridge subscribedCartridge;
+         // retrieve the cartridge from available ones
+         if(availableSingleTenantCartridges.containsKey(alias)){
+            subscribedCartridge = availableSingleTenantCartridges.get(cartridgeType);
+
+         }else if(availableMultiTenantCartridges.containsKey(alias)){
+             subscribedCartridge = availableMultiTenantCartridges.get(cartridgeType);
+         }else {
+             throw new RuntimeException("Wrong programme sequence"); // TODO; handle properly
+         }
+        //Proper way is copy construrctor
+        Cartridge copy = new Cartridge();
+        copy.setCartridgeType(subscribedCartridge.getCartridgeType());
+        copy.setDescription(subscribedCartridge.getDescription());
+        copy.setDisplayName(subscribedCartridge.getDisplayName());
+        copy.setMultiTenant(subscribedCartridge.isMultiTenant());
+        copy.setProvider(subscribedCartridge.getProvider());
+        copy.setVersion(subscribedCartridge.getVersion());
+        copy.setCartridgeAlias(alias);
+        copy.setHostName("dummy.stratos.com");
+        copy.setRepoURL("http://dummy.stratos.com/myrepo.git");
+
+        subscribedCartridges.put(alias,copy);
+
+        SubscriptionInfo subscriptionInfo = new SubscriptionInfo();
+        subscriptionInfo.setHostname(copy.getHostName());
+        subscriptionInfo.setRepositoryURL(copy.getRepoURL());
+
+        return subscriptionInfo;
+    }
+
+    public void unsubscribe(String alias) {
+        if(subscribedCartridges.containsKey(alias)){
+            subscribedCartridges.remove(alias);
+        }
+    }
 }