You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2014/07/17 11:49:27 UTC
[3/6] git commit: Subscription structure initial impl.
Subscription structure initial impl.
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a8182aca
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a8182aca
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a8182aca
Branch: refs/heads/4.0.0-grouping
Commit: a8182aca92707eab3e185ba05e8b861869640233
Parents: cf72ef4
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Jul 15 13:06:22 2014 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Tue Jul 15 13:06:22 2014 +0530
----------------------------------------------------------------------
.../CompositeApplicationManager.java | 83 +++++++++++++++++---
.../subscription/CompositeAppSubscription.java | 39 ++++++---
.../manager/subscription/GroupSubscription.java | 64 +++++++++++++++
3 files changed, 168 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/a8182aca/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/CompositeApplicationManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/CompositeApplicationManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/CompositeApplicationManager.java
index 02893e8..0ca6ebc 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/CompositeApplicationManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/CompositeApplicationManager.java
@@ -1,8 +1,6 @@
package org.apache.stratos.manager.composite.application;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -17,6 +15,8 @@ import org.apache.stratos.manager.exception.*;
import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
+import org.apache.stratos.manager.subscription.CompositeAppSubscription;
+import org.apache.stratos.manager.subscription.GroupSubscription;
import org.apache.stratos.manager.subscription.SubscriptionData;
import org.apache.stratos.messaging.domain.topology.ConfigCompositeApplication;
@@ -37,22 +37,87 @@ public class CompositeApplicationManager {
//DataInsertionAndRetrievalManager mgr = new DataInsertionAndRetrievalManager();
//mgr.persistCompositeApplication(compositeAppDefinition);
- Set<CartridgeSubscription> cartridgeSubscriptions = new HashSet<CartridgeSubscription>();
+
+ // create the CompositeAppSubscription
+ CompositeAppSubscription compositeAppSubscription = new CompositeAppSubscription(compositeAppContext.getAppId());
+
+ // keep track of all CartridgeSubscriptions, against the alias
+ Map<String, CartridgeSubscription> aliasToCartridgeSubscription = new HashMap<String, CartridgeSubscription>();
+
+ // Keep track of all Group Subscriptions
+ Set<GroupSubscription> groupSubscriptions = new HashSet<GroupSubscription>();
// traverse through the Composite App Structure and create Cartridge Subscriptions
if(compositeAppContext.getSubscribableContexts() != null) {
- // Subscription relevant to top level Subscribables
- cartridgeSubscriptions.addAll(getCartridgeSybscriptionsForSubscribables(compositeAppContext.getSubscribableContexts(),
- tenantId, tenantDomain, tenantAdminUsername));
+ // Subscriptions relevant to top level Subscribables
+
+ for (CartridgeSubscription cartridgeSubscription : getCartridgeSybscriptionsForSubscribables(compositeAppContext.getSubscribableContexts(),
+ tenantId, tenantDomain, tenantAdminUsername)) {
+ aliasToCartridgeSubscription.put(cartridgeSubscription.getAlias(), cartridgeSubscription);
+ }
+ // get top level cartridge aliases to add to Composite App Subscription
+ compositeAppSubscription.addCartridgeSubscriptionAliases(getCartrigdeSubscriptionAliases(compositeAppContext.getSubscribableContexts()));
}
if (compositeAppContext.getGroupContexts() != null) {
// Subscriptions relevant to Groups
- cartridgeSubscriptions.addAll(getCartridgeSubscriptionForGroups(compositeAppContext.getGroupContexts(), tenantId,
- tenantDomain, tenantAdminUsername));
+
+ for (CartridgeSubscription cartridgeSubscription : getCartridgeSubscriptionForGroups(compositeAppContext.getGroupContexts(), tenantId,
+ tenantDomain, tenantAdminUsername)) {
+ aliasToCartridgeSubscription.put(cartridgeSubscription.getAlias(), cartridgeSubscription);
+ }
+
+ // set top level group aliases to Composite App Subscription
+ compositeAppSubscription.addGroupSubscriptionAliases(getGroupSubscriptionAliases(compositeAppContext.getGroupContexts()));
+
+ groupSubscriptions.addAll(getGroupSubscriptions(compositeAppContext.getGroupContexts()));
}
}
+ private Set<String> getCartrigdeSubscriptionAliases (Set<SubscribableContext> subscribableContexts) throws CompositeApplicationException {
+
+ Set<String> cartridgeSubscriptionAliases = new HashSet<String>();
+ for (SubscribableContext subscribableContext : subscribableContexts) {
+ cartridgeSubscriptionAliases.add(subscribableContext.getAlias());
+ }
+
+ return cartridgeSubscriptionAliases;
+ }
+
+ private Set<GroupSubscription> getGroupSubscriptions (Set<GroupContext> groupContexts) throws CompositeApplicationException {
+
+ Set<GroupSubscription> groupSubscriptions = new HashSet<GroupSubscription>();
+ for (GroupContext groupContext : groupContexts) {
+ // create Group Subscriptions for this Group
+ GroupSubscription groupSubscription = new GroupSubscription(groupContext.getAlias());
+ if (groupContext.getSubscribableContexts() != null) {
+ groupSubscription.addCartridgeSubscriptionAliases(getCartrigdeSubscriptionAliases(groupContext.getSubscribableContexts()));
+ }
+
+ // nested Group
+ if (groupContext.getGroupContexts() != null) {
+ groupSubscription.addGroupSubscriptionAliases(getGroupSubscriptionAliases(groupContext.getGroupContexts()));
+ // need to recurse to get other nested groups, if any
+ getGroupSubscriptions(groupContext.getGroupContexts());
+ }
+
+ groupSubscriptions.add(groupSubscription);
+ }
+
+ return groupSubscriptions;
+ }
+
+ private Set<String> getGroupSubscriptionAliases (Set<GroupContext> groupContexts) throws CompositeApplicationException {
+
+ Set<String> topLevelGroupAliases = new HashSet<String>();
+
+ for (GroupContext topLevelGroupCtxt : groupContexts) {
+ topLevelGroupAliases.add(topLevelGroupCtxt.getAlias());
+ }
+
+ return topLevelGroupAliases;
+ }
+
private Set<CartridgeSubscription> getCartridgeSubscriptionForGroups (Set<GroupContext> groupContexts,
int tenantId, String tenantDomain,
String tenantAdminUsername)
http://git-wip-us.apache.org/repos/asf/stratos/blob/a8182aca/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CompositeAppSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CompositeAppSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CompositeAppSubscription.java
index d60e939..86fb0cd 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CompositeAppSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CompositeAppSubscription.java
@@ -21,27 +21,48 @@ package org.apache.stratos.manager.subscription;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jboss.util.propertyeditor.StringArrayEditor;
import java.io.Serializable;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
public class CompositeAppSubscription implements Serializable {
private static Log log = LogFactory.getLog(CompositeAppSubscription.class);
- private Map<String, String> compositeAppToCartridgeSubcription;
+ private String appId;
- public CompositeAppSubscription () {
- compositeAppToCartridgeSubcription = new HashMap<String, String>();
+ private Set<String> cartridgeSubscriptionAliases;
+
+ private Set<String> groupSubscriptionAliases;
+
+ public CompositeAppSubscription (String appId) {
+
+ this.appId = appId;
+ cartridgeSubscriptionAliases = new HashSet<String>();
+ groupSubscriptionAliases = new HashSet<String>();
+ }
+
+ public Set<String> getGroupSubscriptionAliases() {
+ return groupSubscriptionAliases;
}
- public void addCartridgeSubscription (String compositeAppAlias, String cartridgeSubscriptionAlias) {
+ public void addCartridgeSubscriptionAlias (String cartridgeSubscriptionAlias) {
+ cartridgeSubscriptionAliases.add(cartridgeSubscriptionAlias);
+ }
+
+ public void addCartridgeSubscriptionAliases (Set<String> cartridgeSubscriptionAliases) {
+ cartridgeSubscriptionAliases.addAll(cartridgeSubscriptionAliases);
+ }
+
+ public void addGroupSubscriptionAlias (String groupSubscriptionAlias) {
+ groupSubscriptionAliases.add(groupSubscriptionAlias);
+ }
- compositeAppToCartridgeSubcription.put(compositeAppAlias, cartridgeSubscriptionAlias);
- if (log.isDebugEnabled()) {
- log.debug("Cartridge Subscription alias [ "+ cartridgeSubscriptionAlias +" ] stored against Composite Application alias [ "
- + compositeAppAlias + " ]");
- }
+ public void addGroupSubscriptionAliases (Set<String> groupSubscriptionAliases) {
+ cartridgeSubscriptionAliases.addAll(groupSubscriptionAliases);
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a8182aca/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/GroupSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/GroupSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/GroupSubscription.java
new file mode 100644
index 0000000..31fcb73
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/GroupSubscription.java
@@ -0,0 +1,64 @@
+/*
+ * 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.subscription;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+public class GroupSubscription implements Serializable {
+
+ private String groupAlias;
+
+ private Set<String> cartridgeSubscriptionAliases;
+
+ private Set<String> groupSubscriptionAliases;
+
+ public GroupSubscription (String groupAlias) {
+
+ this.groupAlias = groupAlias;
+ cartridgeSubscriptionAliases = new HashSet<String>();
+ groupSubscriptionAliases = new HashSet<String>();
+ }
+
+ public Set<String> getGroupSubscriptionAliases() {
+ return groupSubscriptionAliases;
+ }
+
+ public void addCartridgeSubscriptionAlias (String cartridgeSubscriptionAlias) {
+ cartridgeSubscriptionAliases.add(cartridgeSubscriptionAlias);
+ }
+
+ public void addGroupSubscriptionAlias (String groupSubscriptionAlias) {
+ groupSubscriptionAliases.add(groupSubscriptionAlias);
+ }
+
+ public void addCartridgeSubscriptionAliases (Set<String> cartridgeSubscriptionAliases) {
+ cartridgeSubscriptionAliases.addAll(cartridgeSubscriptionAliases);
+ }
+
+ public void addGroupSubscriptionAliases (Set<String> groupSubscriptionAliases) {
+ groupSubscriptionAliases.addAll(groupSubscriptionAliases);
+ }
+
+ public String getGroupAlias() {
+ return groupAlias;
+ }
+}