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/08/28 11:24:12 UTC

git commit: merging manager component

Repository: stratos
Updated Branches:
  refs/heads/4.0.0-grouping 8c14177f4 -> bc7f7b249


merging manager component


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

Branch: refs/heads/4.0.0-grouping
Commit: bc7f7b249d2f40543c127d6f564ce2d5dd3a9d3d
Parents: 8c14177
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Aug 28 14:53:51 2014 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Aug 28 14:53:51 2014 +0530

----------------------------------------------------------------------
 components/org.apache.stratos.manager/pom.xml   |  6 +++
 .../DomainSubscriptionDoesNotExist.java         | 48 ++++++++++++++++++++
 .../publisher/TenantSynzhronizerTask.java       | 35 +++++++++++---
 .../subscription/SubscriptionDomain.java        | 48 ++++++++++++++++++++
 .../event/tenant/TenantUnSubscribedEvent.java   | 10 +++-
 5 files changed, 139 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/bc7f7b24/components/org.apache.stratos.manager/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/pom.xml b/components/org.apache.stratos.manager/pom.xml
index 3c24303..7481745 100644
--- a/components/org.apache.stratos.manager/pom.xml
+++ b/components/org.apache.stratos.manager/pom.xml
@@ -114,6 +114,12 @@
             <artifactId>org.apache.stratos.messaging</artifactId>
             <version>${project.version}</version>
         </dependency>
+       <dependency>
+            <groupId>org.apache.stratos</groupId>
+            <artifactId>org.apache.stratos.tenant.mgt</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
 	<build>

http://git-wip-us.apache.org/repos/asf/stratos/blob/bc7f7b24/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/exception/DomainSubscriptionDoesNotExist.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/exception/DomainSubscriptionDoesNotExist.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/exception/DomainSubscriptionDoesNotExist.java
new file mode 100644
index 0000000..fbef4a8
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/exception/DomainSubscriptionDoesNotExist.java
@@ -0,0 +1,48 @@
+/*
+ * 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.exception;
+
+public class DomainSubscriptionDoesNotExist extends Exception {
+
+    private static final long serialVersionUID = 1L;
+
+    private final String message;
+
+    private final String subscriptionDomain;
+
+    public DomainSubscriptionDoesNotExist(String message, String subscriptionDomain, Throwable cause) {
+        super(message, cause);
+        this.message = message;
+        this.subscriptionDomain = subscriptionDomain;
+    }
+
+    public DomainSubscriptionDoesNotExist(String message, String subscriptionDomain) {
+        super(message);
+        this.message = message;
+        this.subscriptionDomain = subscriptionDomain;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public String getSubscriptionDomain() {
+        return subscriptionDomain;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bc7f7b24/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
index 3eac3f5..81ec432 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
@@ -21,21 +21,22 @@ package org.apache.stratos.manager.publisher;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.TenantInfoBean;
 import org.apache.stratos.manager.internal.DataHolder;
 import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
 import org.apache.stratos.manager.subscription.CartridgeSubscription;
+import org.apache.stratos.manager.subscription.SubscriptionDomain;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
+import org.apache.stratos.messaging.domain.tenant.Subscription;
 import org.apache.stratos.messaging.domain.tenant.Tenant;
 import org.apache.stratos.messaging.event.tenant.CompleteTenantEvent;
 import org.apache.stratos.messaging.util.Constants;
+import org.apache.stratos.tenant.mgt.util.TenantMgtUtil;
 import org.wso2.carbon.ntask.core.Task;
 import org.wso2.carbon.user.core.tenant.TenantManager;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Tenant synchronizer task for publishing complete tenant event periodically
@@ -65,18 +66,38 @@ public class TenantSynzhronizerTask implements Task {
                     log.debug(String.format("Tenant found: [tenant-id] %d [tenant-domain] %s", carbonTenant.getId(), carbonTenant.getDomain()));
                 }
                 tenant = new Tenant(carbonTenant.getId(), carbonTenant.getDomain());
+               
+                if (!org.apache.stratos.messaging.message.receiver.tenant.TenantManager
+                        .getInstance().tenantExists(carbonTenant.getId())) {
+                    // if the tenant is not already there in TenantManager,
+                    // trigger TenantCreatedEvent
+                    TenantInfoBean tenantBean = new TenantInfoBean();
+                    tenantBean.setTenantId(carbonTenant.getId());
+                    tenantBean.setTenantDomain(carbonTenant.getDomain());
+                    TenantMgtUtil.triggerAddTenant(tenantBean);
+                    // add tenant to Tenant Manager
+                    org.apache.stratos.messaging.message.receiver.tenant.TenantManager
+                    .getInstance().addTenant(tenant);
+                }
+               
                 // Add subscriptions
                 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                 //List<CartridgeSubscriptionInfo> cartridgeSubscriptions = PersistenceManager.getSubscriptionsForTenant(tenant.getTenantId());
                 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                 Collection<CartridgeSubscription> cartridgeSubscriptions = new DataInsertionAndRetrievalManager().getCartridgeSubscriptions(tenant.getTenantId());
                 if (cartridgeSubscriptions != null && !cartridgeSubscriptions.isEmpty()) {
-                    for (CartridgeSubscription subscription : cartridgeSubscriptions) {
+                    for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptions) {
                         if(log.isDebugEnabled()) {
                             log.debug(String.format("Tenant subscription found: [tenant-id] %d [tenant-domain] %s [service] %s",
-                                    carbonTenant.getId(), carbonTenant.getDomain(), subscription.getType()));
+                                    carbonTenant.getId(), carbonTenant.getDomain(), cartridgeSubscription.getType()));
+                        }
+                        HashSet<String> clusterIds = new HashSet<String>();
+                        clusterIds.add(cartridgeSubscription.getCluster().getClusterDomain());
+                        Subscription subscription = new Subscription(cartridgeSubscription.getType(), clusterIds);
+                        for(SubscriptionDomain subscriptionDomain : cartridgeSubscription.getSubscriptionDomains()) {
+                            subscription.addSubscriptionDomain(subscriptionDomain.getDomainName(), subscriptionDomain.getApplicationContext());
                         }
-                        tenant.addServiceSubscription(subscription.getType());
+                        tenant.addSubscription(subscription);
                     }
                 }
                 tenants.add(tenant);

http://git-wip-us.apache.org/repos/asf/stratos/blob/bc7f7b24/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java
new file mode 100644
index 0000000..9fed0b0
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java
@@ -0,0 +1,48 @@
+/*
+ * 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;
+
+/**
+ * Subscription domain definition.
+ */
+public class SubscriptionDomain implements Serializable{
+    private final String domainName;
+    private final String applicationContext;
+
+    public SubscriptionDomain(String domainName, String applicationContext) {
+        this.domainName = domainName;
+        this.applicationContext = applicationContext;
+    }
+
+    public String getDomainName() {
+        return domainName;
+    }
+
+    public String getApplicationContext() {
+        return applicationContext;
+    }
+
+    @Override
+    public String toString() {
+        return String.format("[domain-name] %s [application-context] %s", getDomainName(), getApplicationContext());
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bc7f7b24/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
index 2262cd4..5cfcfdf 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
@@ -20,6 +20,8 @@
 package org.apache.stratos.messaging.event.tenant;
 
 import java.io.Serializable;
+import java.util.Collections;
+import java.util.Set;
 
 /**
  * This event is fired when a tenant is un-subscribed from a service.
@@ -29,10 +31,12 @@ public class TenantUnSubscribedEvent extends TenantEvent implements Serializable
 
     private final int tenantId;
     private final String serviceName;
+    private final Set<String> clusterIds;
 
-    public TenantUnSubscribedEvent(int tenantId, String serviceName) {
+    public TenantUnSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
         this.tenantId = tenantId;
         this.serviceName = serviceName;
+        this.clusterIds = clusterIds;
     }
 
     public int getTenantId() {
@@ -42,4 +46,8 @@ public class TenantUnSubscribedEvent extends TenantEvent implements Serializable
     public String getServiceName() {
         return serviceName;
     }
+
+    public Set<String> getClusterIds() {
+        return Collections.unmodifiableSet(clusterIds);
+    }
 }