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