You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/05/05 17:18:18 UTC
[1/2] Added application alias to subscription domain to manage
virtual host setup in cartridge instance
Repository: incubator-stratos
Updated Branches:
refs/heads/master e0da580a2 -> 70ed85714
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
index 725ad0f..b5edfc1 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
@@ -37,8 +37,8 @@ public class TenantMessageProcessorChain extends MessageProcessorChain {
private TenantRemovedMessageProcessor tenantRemovedMessageProcessor;
private TenantSubscribedMessageProcessor tenantSubscribedMessageProcessor;
private TenantUnSubscribedMessageProcessor tenantUnSubscribedMessageProcessor;
- private SubscriptionDomainsAddedMessageProcessor subscriptionDomainsAddedMessageProcessor;
- private SubscriptionDomainsRemovedMessageProcessor subscriptionDomainsRemovedMessageProcessor;
+ private SubscriptionDomainAddedMessageProcessor subscriptionDomainAddedMessageProcessor;
+ private SubscriptionDomainRemovedMessageProcessor subscriptionDomainRemovedMessageProcessor;
public void initialize() {
// Add tenant event processors
@@ -60,11 +60,11 @@ public class TenantMessageProcessorChain extends MessageProcessorChain {
tenantUnSubscribedMessageProcessor = new TenantUnSubscribedMessageProcessor();
add(tenantUnSubscribedMessageProcessor);
- subscriptionDomainsAddedMessageProcessor = new SubscriptionDomainsAddedMessageProcessor();
- add(subscriptionDomainsAddedMessageProcessor);
+ subscriptionDomainAddedMessageProcessor = new SubscriptionDomainAddedMessageProcessor();
+ add(subscriptionDomainAddedMessageProcessor);
- subscriptionDomainsRemovedMessageProcessor = new SubscriptionDomainsRemovedMessageProcessor();
- add(subscriptionDomainsRemovedMessageProcessor);
+ subscriptionDomainRemovedMessageProcessor = new SubscriptionDomainRemovedMessageProcessor();
+ add(subscriptionDomainRemovedMessageProcessor);
if (log.isDebugEnabled()) {
log.debug("Tenant message processor chain initialized");
@@ -85,9 +85,9 @@ public class TenantMessageProcessorChain extends MessageProcessorChain {
} else if (eventListener instanceof TenantUnSubscribedEventListener) {
tenantUnSubscribedMessageProcessor.addEventListener(eventListener);
} else if (eventListener instanceof SubscriptionDomainsAddedEventListener) {
- subscriptionDomainsAddedMessageProcessor.addEventListener(eventListener);
+ subscriptionDomainAddedMessageProcessor.addEventListener(eventListener);
} else if (eventListener instanceof SubscriptionDomainsRemovedEventListener) {
- subscriptionDomainsRemovedMessageProcessor.addEventListener(eventListener);
+ subscriptionDomainRemovedMessageProcessor.addEventListener(eventListener);
}
else {
throw new RuntimeException("Unknown event listener");
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantSubscribedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantSubscribedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantSubscribedMessageProcessor.java
index 147ebde..196bc22 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantSubscribedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantSubscribedMessageProcessor.java
@@ -22,6 +22,7 @@ package org.apache.stratos.messaging.message.processor.tenant;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.messaging.domain.tenant.Subscription;
+import org.apache.stratos.messaging.domain.tenant.SubscriptionDomain;
import org.apache.stratos.messaging.domain.tenant.Tenant;
import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
@@ -63,11 +64,11 @@ public class TenantSubscribedMessageProcessor extends MessageProcessor {
}
return false;
}
- Subscription subscription = new Subscription(event.getServiceName(), event.getClusterIds(), event.getDomains());
+ Subscription subscription = new Subscription(event.getServiceName(), event.getClusterIds());
tenant.addSubscription(subscription);
if(log.isInfoEnabled()) {
- log.info(String.format("Tenant subscribed to service: [tenant-id] %d [tenant-domain] %s [service] %s [domains] %s",
- tenant.getTenantId(), tenant.getTenantDomain(), event.getServiceName(), event.getDomains()));
+ log.info(String.format("Tenant subscribed to service: [tenant-id] %d [tenant-domain] %s [service] %s",
+ tenant.getTenantId(), tenant.getTenantDomain(), event.getServiceName()));
}
// Notify event listeners
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/test/TenantDomainTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/test/TenantDomainTest.java b/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/test/TenantDomainTest.java
index adb11e1..fae8b79 100644
--- a/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/test/TenantDomainTest.java
+++ b/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/test/TenantDomainTest.java
@@ -36,7 +36,7 @@ public class TenantDomainTest {
@Test
public void testSubscriptionModel() {
Tenant tenant = new Tenant(1, "domain.org");
- Subscription subscription = new Subscription("subscription1", new HashSet<String>(), new HashSet<String>());
+ Subscription subscription = new Subscription("subscription1", new HashSet<String>());
tenant.addSubscription(subscription);
Assert.assertTrue("Subscription not added", tenant.isSubscribed("subscription1"));
tenant.removeSubscription("subscription1");
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
index 48fd5ce..7452a58 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
@@ -40,10 +40,8 @@ public class CartridgeInfoBean {
private String size;
private boolean removeOnTermination;
private String serviceGroup;
- private List<String> domains;
public CartridgeInfoBean() {
- this.domains = new ArrayList<String>();
}
public String getCartridgeType() {
@@ -165,8 +163,4 @@ public class CartridgeInfoBean {
public void setServiceGroup(String serviceGroup) {
this.serviceGroup = serviceGroup;
}
-
- public List<String> getDomains() { return domains; }
-
- public void setDomains(List<String> domains) { this.domains = domains; }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java
index 9b066cb..265cefa 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java
@@ -27,13 +27,22 @@ import java.util.List;
*/
@XmlRootElement(name = "subscriptionDomainRequest")
public class SubscriptionDomainRequest {
- private List<String> domains;
+ private String domainName;
+ private String applicationAlias;
- public List<String> getDomains() {
- return domains;
+ public String getDomainName() {
+ return domainName;
}
- public void setDomains(List<String> domains) {
- this.domains = domains;
+ public String getApplicationAlias() {
+ return applicationAlias;
+ }
+
+ public void setDomainName(String domainName) {
+ this.domainName = domainName;
+ }
+
+ public void setApplicationAlias(String applicationAlias) {
+ this.applicationAlias = applicationAlias;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/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 d258e41..217ea48 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
@@ -991,7 +991,6 @@ public class ServiceUtils {
subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword());
subscriptionData.setCommitsEnabled(cartridgeInfoBean.isCommitsEnabled());
subscriptionData.setServiceGroup(cartridgeInfoBean.getServiceGroup());
- subscriptionData.addDomains(new HashSet<String>(cartridgeInfoBean.getDomains()));
if (cartridgeInfoBean.isPersistanceRequired()) {
// Add persistence related properties to PersistenceContext
@@ -1187,11 +1186,11 @@ public class ServiceUtils {
return stratosAdminResponse;
}
- public static StratosAdminResponse addSubscriptionDomains(ConfigurationContext configurationContext, String cartridgeType,
- String subscriptionAlias, List<String> domains) throws RestAPIException {
+ public static StratosAdminResponse addSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType,
+ String subscriptionAlias, String domainName, String applicationAlias) throws RestAPIException {
try {
int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- cartridgeSubsciptionManager.addSubscriptionDomains(tenantId, subscriptionAlias, domains);
+ cartridgeSubsciptionManager.addSubscriptionDomain(tenantId, subscriptionAlias, domainName, applicationAlias);
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index 43c890a..047da1e 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
@@ -1023,11 +1023,11 @@ public class StratosAdmin extends AbstractAdmin {
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public StratosAdminResponse addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
- @PathParam("subscriptionAlias") String subscriptionAlias,
- SubscriptionDomainRequest request) throws RestAPIException {
+ public StratosAdminResponse addSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+ @PathParam("subscriptionAlias") String subscriptionAlias,
+ SubscriptionDomainRequest request) throws RestAPIException {
- return ServiceUtils.addSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias, request.getDomains());
+ return ServiceUtils.addSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, request.getDomainName(), request.getApplicationAlias());
}
@GET
@@ -1035,7 +1035,7 @@ public class StratosAdmin extends AbstractAdmin {
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
public String[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
- @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
+ @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
return (String[]) ServiceUtils.getSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias).toArray();
}
@@ -1053,9 +1053,9 @@ public class StratosAdmin extends AbstractAdmin {
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public StratosAdminResponse removeSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
- @PathParam("subscriptionAlias") String subscriptionAlias,
- @PathParam("domainName") String domainName) throws RestAPIException {
+ public StratosAdminResponse removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+ @PathParam("subscriptionAlias") String subscriptionAlias,
+ @PathParam("domainName") String domainName) throws RestAPIException {
return ServiceUtils.removeSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName);
}
[2/2] git commit: Added application alias to subscription domain to
manage virtual host setup in cartridge instance
Posted by im...@apache.org.
Added application alias to subscription domain to manage virtual host setup in cartridge instance
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/70ed8571
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/70ed8571
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/70ed8571
Branch: refs/heads/master
Commit: 70ed85714e19ea8e6f4e937f720cdda26b8dd6c2
Parents: e0da580
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon May 5 20:47:23 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon May 5 20:47:23 2014 +0530
----------------------------------------------------------------------
.../stratos/cartridge/agent/CartridgeAgent.java | 36 +++++++
.../agent/util/CartridgeAgentConstants.java | 2 +
.../cartridge/agent/util/ExtensionUtils.java | 32 ++++++-
.../LoadBalancerTenantEventReceiver.java | 61 ++++++------
.../context/LoadBalancerContextUtil.java | 58 ++++++------
.../manager/CartridgeSubscriptionManager.java | 68 +++++++-------
.../publisher/TenantSynzhronizerTask.java | 7 +-
.../subscription/CartridgeSubscription.java | 32 ++++---
.../subscription/SubscriptionDomain.java | 46 +++++++++
.../utils/CartridgeSubscriptionUtils.java | 10 +-
.../messaging/domain/tenant/Subscription.java | 38 +++++---
.../domain/tenant/SubscriptionDomain.java | 41 ++++++++
.../tenant/SubscriptionDomainAddedEvent.java | 67 +++++++++++++
.../tenant/SubscriptionDomainRemovedEvent.java | 60 ++++++++++++
.../tenant/SubscriptionDomainsAddedEvent.java | 60 ------------
.../tenant/SubscriptionDomainsRemovedEvent.java | 60 ------------
.../event/tenant/TenantSubscribedEvent.java | 8 +-
...SubscriptionDomainAddedMessageProcessor.java | 98 ++++++++++++++++++++
...bscriptionDomainRemovedMessageProcessor.java | 97 +++++++++++++++++++
...ubscriptionDomainsAddedMessageProcessor.java | 96 -------------------
...scriptionDomainsRemovedMessageProcessor.java | 96 -------------------
.../tenant/TenantMessageProcessorChain.java | 16 ++--
.../TenantSubscribedMessageProcessor.java | 7 +-
.../messaging/test/TenantDomainTest.java | 2 +-
.../rest/endpoint/bean/CartridgeInfoBean.java | 6 --
.../bean/SubscriptionDomainRequest.java | 19 +++-
.../rest/endpoint/services/ServiceUtils.java | 7 +-
.../rest/endpoint/services/StratosAdmin.java | 16 ++--
28 files changed, 662 insertions(+), 484 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
index e4ddaed..cc1687e 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
@@ -38,10 +38,15 @@ import org.apache.stratos.messaging.event.Event;
import org.apache.stratos.messaging.event.instance.notifier.ArtifactUpdatedEvent;
import org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupClusterEvent;
import org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupMemberEvent;
+import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent;
+import org.apache.stratos.messaging.event.tenant.SubscriptionDomainRemovedEvent;
import org.apache.stratos.messaging.listener.instance.notifier.ArtifactUpdateEventListener;
import org.apache.stratos.messaging.listener.instance.notifier.InstanceCleanupClusterEventListener;
import org.apache.stratos.messaging.listener.instance.notifier.InstanceCleanupMemberEventListener;
+import org.apache.stratos.messaging.listener.tenant.SubscriptionDomainsAddedEventListener;
+import org.apache.stratos.messaging.listener.tenant.SubscriptionDomainsRemovedEventListener;
import org.apache.stratos.messaging.message.receiver.instance.notifier.InstanceNotifierEventReceiver;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantEventReceiver;
import java.util.List;
import java.util.concurrent.Executors;
@@ -156,6 +161,37 @@ public class CartridgeAgent implements Runnable {
});
Thread eventReceiverThread = new Thread(eventReceiver);
eventReceiverThread.start();
+ if(log.isInfoEnabled()) {
+ log.info("Instance notifier event message receiver thread started");
+ }
+
+ if(log.isDebugEnabled()) {
+ log.debug("Starting tenant event message receiver thread");
+ }
+ TenantEventReceiver tenantEventReceiver = new TenantEventReceiver();
+
+ tenantEventReceiver.addEventListener(new SubscriptionDomainsAddedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ SubscriptionDomainAddedEvent subscriptionDomainAddedEvent = (SubscriptionDomainAddedEvent)event;
+ ExtensionUtils.executeSubscriptionDomainAddedExtension(subscriptionDomainAddedEvent.getDomainName(),
+ subscriptionDomainAddedEvent.getApplicationAlias());
+ }
+ });
+
+ tenantEventReceiver.addEventListener(new SubscriptionDomainsRemovedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ SubscriptionDomainRemovedEvent subscriptionDomainRemovedEvent = (SubscriptionDomainRemovedEvent)event;
+ ExtensionUtils.executeSubscriptionDomainRemovedExtension(subscriptionDomainRemovedEvent.getDomainName());
+ }
+ });
+
+ Thread tenantEventReceiverThread = new Thread(tenantEventReceiver);
+ tenantEventReceiverThread.start();
+ if(log.isInfoEnabled()) {
+ log.info("Tenant event message receiver thread started");
+ }
// Wait until message receiver is subscribed to the topic to
// send the instance started event
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
index 8434d6d..c36eb8c 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
@@ -33,6 +33,8 @@ public class CartridgeAgentConstants implements Serializable{
public static final String ARTIFACTS_UPDATED_SH = "artifacts-updated.sh";
public static final String CLEAN_UP_SH = "clean.sh";
public static final String MOUNT_VOLUMES_SH = "mount_volumes.sh";
+ public static final String SUBSCRIPTION_DOMAIN_ADDED_SH = "subscription-domain-added.sh";
+ public static final String SUBSCRIPTION_DOMAIN_REMOVED_SH = "subscription-domain-removed.sh";
public static final String CARTRIDGE_KEY = "CARTRIDGE_KEY";
public static final String APP_PATH = "APP_PATH";
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
index 2a11103..6eef1f0 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
@@ -117,19 +117,45 @@ public class ExtensionUtils {
This will execute the volume mounting script which format and mount the
persistance volumes.
*/
- public static void executeVolumeMountExtension(String persistanceMappingsPayload) {
+ public static void executeVolumeMountExtension(String persistenceMappingsPayload) {
try {
if(log.isDebugEnabled()) {
- log.debug("Executing volume mounting extension");
+ log.debug(String.format("Executing volume mounting extension: [payload] %s", persistenceMappingsPayload));
}
String command = prepareCommand(CartridgeAgentConstants.MOUNT_VOLUMES_SH);
//String payloadPath = System.getProperty(CartridgeAgentConstants.PARAM_FILE_PATH);
// add payload file path as argument so inside the script we can source
// it to get the env variables set by the startup script
- CommandUtils.executeCommand(command + " " + persistanceMappingsPayload);
+ CommandUtils.executeCommand(command + " " + persistenceMappingsPayload);
}
catch (Exception e) {
log.error("Could not execute volume mounting extension", e);
}
}
+
+ public static void executeSubscriptionDomainAddedExtension(String domain, String applicationAlias) {
+ try {
+ if(log.isDebugEnabled()) {
+ log.debug("Executing subscription domain added extension: [domain] %s [application-alias] %s");
+ }
+ String command = prepareCommand(CartridgeAgentConstants.SUBSCRIPTION_DOMAIN_ADDED_SH + " " + domain + " " + applicationAlias);
+ CommandUtils.executeCommand(command);
+ }
+ catch (Exception e) {
+ log.error("Could not execute subscription domain added extension", e);
+ }
+ }
+
+ public static void executeSubscriptionDomainRemovedExtension(String domain) {
+ try {
+ if(log.isDebugEnabled()) {
+ log.debug("Executing subscription domain removed extension: [domain] %s");
+ }
+ String command = prepareCommand(CartridgeAgentConstants.SUBSCRIPTION_DOMAIN_ADDED_SH + " " + domain);
+ CommandUtils.executeCommand(command);
+ }
+ catch (Exception e) {
+ log.error("Could not execute subscription domain removed extension", e);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
index e25bed9..6ff4fef 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.load.balancer.context.LoadBalancerContextUtil;
import org.apache.stratos.messaging.domain.tenant.Subscription;
+import org.apache.stratos.messaging.domain.tenant.SubscriptionDomain;
import org.apache.stratos.messaging.domain.tenant.Tenant;
import org.apache.stratos.messaging.domain.topology.Service;
import org.apache.stratos.messaging.domain.topology.ServiceType;
@@ -68,10 +69,12 @@ public class LoadBalancerTenantEventReceiver implements Runnable {
subscription.getClusterIds());
}
- LoadBalancerContextUtil.addClustersAgainstDomains(
- subscription.getServiceName(),
- subscription.getClusterIds(),
- subscription.getDomains());
+ for (SubscriptionDomain subscriptionDomain : subscription.getSubscriptionDomains()) {
+ LoadBalancerContextUtil.addClustersAgainstDomain(
+ subscription.getServiceName(),
+ subscription.getClusterIds(),
+ subscriptionDomain.getDomainName());
+ }
}
}
initialized = true;
@@ -95,11 +98,6 @@ public class LoadBalancerTenantEventReceiver implements Runnable {
tenantSubscribedEvent.getTenantId(),
tenantSubscribedEvent.getClusterIds());
}
-
- LoadBalancerContextUtil.addClustersAgainstDomains(
- tenantSubscribedEvent.getServiceName(),
- tenantSubscribedEvent.getClusterIds(),
- tenantSubscribedEvent.getDomains());
}
});
tenantEventReceiver.addEventListener(new TenantUnSubscribedEventListener() {
@@ -130,37 +128,38 @@ public class LoadBalancerTenantEventReceiver implements Runnable {
tenantEventReceiver.addEventListener(new SubscriptionDomainsAddedEventListener() {
@Override
protected void onEvent(Event event) {
- SubscriptionDomainsAddedEvent subscriptionDomainsAddedEvent = (SubscriptionDomainsAddedEvent) event;
+ SubscriptionDomainAddedEvent subscriptionDomainAddedEvent = (SubscriptionDomainAddedEvent) event;
if (log.isDebugEnabled()) {
- log.debug(String.format("Tenant subscription domains added event received: [tenant-id] %d " +
- "[service] %s [cluster-ids] %s [domains] %s",
- subscriptionDomainsAddedEvent.getTenantId(),
- subscriptionDomainsAddedEvent.getServiceName(),
- subscriptionDomainsAddedEvent.getClusterIds(),
- subscriptionDomainsAddedEvent.getDomains()));
+ log.debug(String.format("Tenant subscription domain added event received: [tenant-id] %d " +
+ "[service] %s [cluster-ids] %s [domain-name] %s",
+ subscriptionDomainAddedEvent.getTenantId(),
+ subscriptionDomainAddedEvent.getServiceName(),
+ subscriptionDomainAddedEvent.getClusterIds(),
+ subscriptionDomainAddedEvent.getDomainName()));
}
- LoadBalancerContextUtil.addClustersAgainstDomains(
- subscriptionDomainsAddedEvent.getServiceName(),
- subscriptionDomainsAddedEvent.getClusterIds(),
- subscriptionDomainsAddedEvent.getDomains());
+
+ LoadBalancerContextUtil.addClustersAgainstDomain(
+ subscriptionDomainAddedEvent.getServiceName(),
+ subscriptionDomainAddedEvent.getClusterIds(),
+ subscriptionDomainAddedEvent.getDomainName());
}
});
tenantEventReceiver.addEventListener(new SubscriptionDomainsRemovedEventListener() {
@Override
protected void onEvent(Event event) {
- SubscriptionDomainsRemovedEvent subscriptionDomainsRemovedEvent = (SubscriptionDomainsRemovedEvent) event;
+ SubscriptionDomainRemovedEvent subscriptionDomainRemovedEvent = (SubscriptionDomainRemovedEvent) event;
if (log.isDebugEnabled()) {
- log.debug(String.format("Tenant subscription domains removed event received: [tenant-id] %d " +
- "[service] %s [cluster-ids] %s [domains] %s",
- subscriptionDomainsRemovedEvent.getTenantId(),
- subscriptionDomainsRemovedEvent.getServiceName(),
- subscriptionDomainsRemovedEvent.getClusterIds(),
- subscriptionDomainsRemovedEvent.getDomains()));
+ log.debug(String.format("Tenant subscription domain removed event received: [tenant-id] %d " +
+ "[service] %s [cluster-ids] %s [domain-name] %s",
+ subscriptionDomainRemovedEvent.getTenantId(),
+ subscriptionDomainRemovedEvent.getServiceName(),
+ subscriptionDomainRemovedEvent.getClusterIds(),
+ subscriptionDomainRemovedEvent.getDomainName()));
}
- LoadBalancerContextUtil.removeClustersAgainstDomains(
- subscriptionDomainsRemovedEvent.getServiceName(),
- subscriptionDomainsRemovedEvent.getClusterIds(),
- subscriptionDomainsRemovedEvent.getDomains());
+ LoadBalancerContextUtil.removeClustersAgainstDomain(
+ subscriptionDomainRemovedEvent.getServiceName(),
+ subscriptionDomainRemovedEvent.getClusterIds(),
+ subscriptionDomainRemovedEvent.getDomainName());
}
});
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContextUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContextUtil.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContextUtil.java
index c65d29e..a25d815 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContextUtil.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContextUtil.java
@@ -19,9 +19,11 @@
package org.apache.stratos.load.balancer.context;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.messaging.domain.tenant.Subscription;
+import org.apache.stratos.messaging.domain.tenant.SubscriptionDomain;
import org.apache.stratos.messaging.domain.tenant.Tenant;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Service;
@@ -171,13 +173,13 @@ public class LoadBalancerContextUtil {
}
/**
- * Add clusters against domains for the given service, cluster ids.
+ * Add clusters against domain name for the given service, cluster ids.
*
* @param serviceName
* @param clusterIds
- * @param domains
+ * @param domainName
*/
- public static void addClustersAgainstDomains(String serviceName, Set<String> clusterIds, Set<String> domains) {
+ public static void addClustersAgainstDomain(String serviceName, Set<String> clusterIds, String domainName) {
try {
TopologyManager.acquireReadLock();
Service service = TopologyManager.getTopology().getService(serviceName);
@@ -191,7 +193,7 @@ public class LoadBalancerContextUtil {
for (String clusterId : clusterIds) {
cluster = service.getCluster(clusterId);
if (cluster != null) {
- addClusterAgainstDomains(serviceName, cluster, domains);
+ addClusterAgainstDomain(serviceName, cluster, domainName);
} else {
if (log.isWarnEnabled()) {
log.warn(String.format("Cluster not found in service: [service] %s [cluster] %s", serviceName, clusterId));
@@ -204,13 +206,13 @@ public class LoadBalancerContextUtil {
}
/**
- * Remove clusters mapped against domains for the given service, cluster ids.
+ * Remove clusters mapped against domain name for the given service, cluster ids.
*
* @param serviceName
* @param clusterIds
- * @param domains
+ * @param domainName
*/
- public static void removeClustersAgainstDomains(String serviceName, Set<String> clusterIds, Set<String> domains) {
+ public static void removeClustersAgainstDomain(String serviceName, Set<String> clusterIds, String domainName) {
try {
TopologyManager.acquireReadLock();
@@ -226,7 +228,7 @@ public class LoadBalancerContextUtil {
cluster = service.getCluster(clusterId);
if (cluster != null) {
// Remove clusters mapped against domain names
- removeClusterAgainstDomains(cluster, domains);
+ removeClusterAgainstDomain(cluster, domainName);
} else {
if (log.isWarnEnabled()) {
log.warn(String.format("Cluster not found in service: [service] %s [cluster] %s", serviceName, clusterId));
@@ -309,21 +311,19 @@ public class LoadBalancerContextUtil {
*
* @param serviceName
* @param cluster
- * @param domains
+ * @param domainName
*/
- private static void addClusterAgainstDomains(String serviceName, Cluster cluster, Set<String> domains) {
+ private static void addClusterAgainstDomain(String serviceName, Cluster cluster, String domainName) {
if (log.isDebugEnabled()) {
- log.debug(String.format("Adding cluster to host/domain name -> cluster map against domain names: [service] %s " +
- "[domains] %s [cluster] %s", serviceName, domains, cluster.getClusterId()));
+ log.debug(String.format("Adding cluster to host/domain name -> cluster map against domain: [service] %s " +
+ "[domain-name] %s [cluster] %s", serviceName, domainName, cluster.getClusterId()));
}
- if ((domains != null) && (domains.size() > 0)) {
- for (String domain : domains) {
- addClusterToHostNameClusterMap(domain, cluster);
+ if (StringUtils.isNotBlank(domainName)) {
+ addClusterToHostNameClusterMap(domainName, cluster);
- if (log.isDebugEnabled()) {
- log.debug(String.format("Cluster added to host/domain name -> cluster map: [domain-name] %s [cluster] %s",
- domain, cluster.getClusterId()));
- }
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Cluster added to host/domain name -> cluster map: [domain-name] %s [cluster] %s",
+ domainName, cluster.getClusterId()));
}
}
}
@@ -354,10 +354,12 @@ public class LoadBalancerContextUtil {
for (Subscription subscription : tenant.getSubscriptions()) {
if (subscription.getServiceName().equals(serviceName)) {
if (log.isDebugEnabled()) {
- log.debug(String.format("Removing cluster from host/domain name -> cluster map against domain names: [service] %s " +
- "[tenant-id] %d [domains] %s", serviceName, tenantId, subscription.getDomains()));
+ log.debug(String.format("Removing cluster from host/domain name -> cluster map: [service] %s " +
+ "[tenant-id] %d [domains] %s", serviceName, tenantId, subscription.getSubscriptionDomains()));
+ }
+ for(SubscriptionDomain subscriptionDomain : subscription.getSubscriptionDomains()) {
+ removeClusterAgainstDomain(cluster, subscriptionDomain.getDomainName());
}
- removeClusterAgainstDomains(cluster, subscription.getDomains());
} else {
if (log.isDebugEnabled()) {
log.debug(String.format("Tenant not subscribed to service: %s", serviceName));
@@ -372,13 +374,11 @@ public class LoadBalancerContextUtil {
}
}
- private static void removeClusterAgainstDomains(Cluster cluster, Set<String> domains) {
- for (String domain : domains) {
- removeClusterFromHostNameClusterMap(domain, cluster);
- if (log.isDebugEnabled()) {
- log.debug(String.format("Cluster removed from host/domain name -> cluster map: [domain-name] %s [cluster] %s",
- domain, cluster.getClusterId()));
- }
+ private static void removeClusterAgainstDomain(Cluster cluster, String domainName) {
+ removeClusterFromHostNameClusterMap(domainName, cluster);
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Cluster removed from host/domain name -> cluster map: [domain-name] %s [cluster] %s",
+ domainName, cluster.getClusterId()));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/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 1c0b2e7..f591b82 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
@@ -38,6 +38,7 @@ import org.apache.stratos.manager.subscriber.Subscriber;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
import org.apache.stratos.manager.subscription.PersistenceContext;
import org.apache.stratos.manager.subscription.SubscriptionData;
+import org.apache.stratos.manager.subscription.SubscriptionDomain;
import org.apache.stratos.manager.subscription.factory.CartridgeSubscriptionFactory;
import org.apache.stratos.manager.subscription.tenancy.SubscriptionMultiTenantBehaviour;
import org.apache.stratos.manager.subscription.tenancy.SubscriptionSingleTenantBehaviour;
@@ -51,8 +52,8 @@ import org.apache.stratos.messaging.broker.publish.EventPublisher;
import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Member;
-import org.apache.stratos.messaging.event.tenant.SubscriptionDomainsAddedEvent;
-import org.apache.stratos.messaging.event.tenant.SubscriptionDomainsRemovedEvent;
+import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent;
+import org.apache.stratos.messaging.event.tenant.SubscriptionDomainRemovedEvent;
import org.apache.stratos.messaging.util.Constants;
import org.wso2.carbon.context.CarbonContext;
import org.apache.stratos.manager.publisher.CartridgeSubscriptionDataPublisher;
@@ -250,7 +251,7 @@ public class CartridgeSubscriptionManager {
// create subscription
cartridgeSubscription.createSubscription(subscriber, lbAlias, lbDataContext.getAutoscalePolicy(),
- lbDataContext.getDeploymentPolicy(), repository, new HashSet<String>());
+ lbDataContext.getDeploymentPolicy(), repository);
// add LB category to the payload
if (cartridgeSubscription.getPayloadData() != null) {
@@ -319,7 +320,7 @@ public class CartridgeSubscriptionManager {
//create subscription
cartridgeSubscription.createSubscription(subscriber, subscriptionData.getCartridgeAlias(), subscriptionData.getAutoscalingPolicyName(),
- subscriptionData.getDeploymentPolicyName(), repository, subscriptionData.getDomains());
+ subscriptionData.getDeploymentPolicyName(), repository);
// publishing to bam
CartridgeSubscriptionDataPublisher.publish(
@@ -380,13 +381,13 @@ public class CartridgeSubscriptionManager {
// Publish tenant subscribed event to message broker
CartridgeSubscriptionUtils.publishTenantSubscribedEvent(cartridgeSubscription.getSubscriber().getTenantId(),
- cartridgeSubscription.getCartridgeInfo().getType(), new HashSet<String>(cartridgeSubscription.getCluster().getId()), cartridgeSubscription.getDomains());
+ cartridgeSubscription.getCartridgeInfo().getType(), new HashSet<String>(cartridgeSubscription.getCluster().getId()));
return ApplicationManagementUtil.
createSubscriptionResponse(cartridgeSubscriptionInfo, cartridgeSubscription.getRepository());
}
- public void addSubscriptionDomains(int tenantId, String subscriptionAlias, List<String> domains)
+ public void addSubscriptionDomain(int tenantId, String subscriptionAlias, String domainName, String applicationAlias)
throws ADCException {
CartridgeSubscription cartridgeSubscription;
@@ -395,31 +396,31 @@ public class CartridgeSubscriptionManager {
if(cartridgeSubscription == null) {
throw new ADCException("Cartridge subscription not found");
}
- for(String domain : domains) {
- if(!isSubscriptionDomainValid(domain)) {
- throw new ADCException(String.format("Domain %s already exists", domain));
+
+ if(!isSubscriptionDomainValid(domainName)) {
+ throw new ADCException(String.format("Domain name %s already registered", domainName));
}
- }
- cartridgeSubscription.addDomains(new HashSet<String>(domains));
+
+ cartridgeSubscription.addSubscriptionDomain(new SubscriptionDomain(domainName, applicationAlias));
new DataInsertionAndRetrievalManager().cacheAndUpdateSubscription(cartridgeSubscription);
} catch (PersistenceManagerException e) {
- String errorMsg = "Could not add domains to cartridge subscription: [tenant-id] " + tenantId + " [subscription-alias] " + subscriptionAlias +
- " [domains] " + domains;
+ String errorMsg = "Could not add domain to cartridge subscription: [tenant-id] " + tenantId + " [subscription-alias] " + subscriptionAlias +
+ " [domain-name] " + domainName + " [application-alias] " + applicationAlias;
log.error(errorMsg);
throw new ADCException(errorMsg, e);
}
log.info("Successfully added domains to cartridge subscription: [tenant-id] " + tenantId + " [subscription-alias] " + subscriptionAlias +
- " [domains] " + domains);
+ " [domain-name] " + domainName + " [application-alias] " +applicationAlias);
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.TENANT_TOPIC);
- SubscriptionDomainsAddedEvent event = new SubscriptionDomainsAddedEvent(tenantId, cartridgeSubscription.getType(),
+ SubscriptionDomainAddedEvent event = new SubscriptionDomainAddedEvent(tenantId, cartridgeSubscription.getType(),
new HashSet<String>(cartridgeSubscription.getCluster().getId()),
- new HashSet<String>(domains));
+ domainName, applicationAlias);
eventPublisher.publish(event);
}
- public void removeSubscriptionDomain(int tenantId, String subscriptionAlias, String domain)
+ public void removeSubscriptionDomain(int tenantId, String subscriptionAlias, String domainName)
throws ADCException {
CartridgeSubscription cartridgeSubscription;
@@ -428,24 +429,22 @@ public class CartridgeSubscriptionManager {
if(cartridgeSubscription == null) {
throw new ADCException("Cartridge subscription not found");
}
- cartridgeSubscription.removeDomain(domain);
+ cartridgeSubscription.removeSubscriptionDomain(domainName);
new DataInsertionAndRetrievalManager().cacheAndUpdateSubscription(cartridgeSubscription);
} catch (PersistenceManagerException e) {
String errorMsg = "Could not remove domain from cartridge subscription: [tenant-id] " + tenantId + " [subscription-alias] " + subscriptionAlias +
- " [domain] " + domain;
+ " [domain-name] " + domainName;
log.error(errorMsg);
throw new ADCException(errorMsg, e);
}
log.info("Successfully removed domain from cartridge subscription: [tenant-id] " + tenantId + " [subscription-alias] " + subscriptionAlias +
- " [domain] " + domain);
+ " [domain-name] " + domainName);
- Set<String> domains = new HashSet<String>();
- domains.add(domain);
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.TENANT_TOPIC);
- SubscriptionDomainsRemovedEvent event = new SubscriptionDomainsRemovedEvent(tenantId, cartridgeSubscription.getType(),
+ SubscriptionDomainRemovedEvent event = new SubscriptionDomainRemovedEvent(tenantId, cartridgeSubscription.getType(),
new HashSet<String>(cartridgeSubscription.getCluster().getId()),
- domains);
+ domainName);
eventPublisher.publish(event);
}
@@ -457,8 +456,11 @@ public class CartridgeSubscriptionManager {
if(cartridgeSubscription == null) {
throw new ADCException("Cartridge subscription not found");
}
- Set<String> domains = cartridgeSubscription.getDomains();
- return new ArrayList<String>(domains != null ? domains : new ArrayList<String>());
+ List<String> domainNames = new ArrayList<String>();
+ for(SubscriptionDomain subscriptionDomain : cartridgeSubscription.getSubscriptionDomains()) {
+ domainNames.add(subscriptionDomain.getDomainName());
+ }
+ return domainNames;
} catch (Exception e) {
String errorMsg = "Could not get domains of cartridge subscription: [tenant-id] " + tenantId + " [subscription-alias] " + subscriptionAlias;
log.error(errorMsg);
@@ -466,10 +468,10 @@ public class CartridgeSubscriptionManager {
}
}
- public boolean isSubscriptionDomainValid(String domain) throws ADCException {
+ public boolean isSubscriptionDomainValid(String domainName) throws ADCException {
try {
if(log.isDebugEnabled()) {
- log.debug(String.format("Validating domain: %s", domain));
+ log.debug(String.format("Validating domain: %s", domainName));
}
org.wso2.carbon.user.core.tenant.TenantManager tenantManager = DataHolder.getRealmService().getTenantManager();
org.wso2.carbon.user.api.Tenant[] tenants = tenantManager.getAllTenants();
@@ -483,21 +485,21 @@ public class CartridgeSubscriptionManager {
Collection<CartridgeSubscription> subscriptions = manager.getCartridgeSubscriptions(tenant.getId());
for (CartridgeSubscription subscription : subscriptions) {
if (log.isDebugEnabled()) {
- log.debug(String.format("Reading domains in subscription: [alias] %s [domains] %s",
- subscription.getAlias(), subscription.getDomains()));
+ log.debug(String.format("Reading domain names in subscription: [alias] %s [domain-names] %s",
+ subscription.getAlias(), subscription.getSubscriptionDomains()));
}
- if (subscription.getDomains().contains(domain)) {
+ if (subscription.subscriptionDomainExists(domainName)) {
return false;
}
}
}
}
if(log.isDebugEnabled()) {
- log.debug(String.format("Domain %s is valid", domain));
+ log.debug(String.format("Domain name %s is valid", domainName));
}
return true;
} catch (Exception e) {
- String errorMsg = "Could not validate domain: " + domain;
+ String errorMsg = "Could not validate domain: " + domainName;
log.error(errorMsg);
throw new ADCException(errorMsg, e);
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/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 a8f0cf0..8b760fa 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
@@ -24,6 +24,7 @@ import org.apache.commons.logging.LogFactory;
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;
@@ -75,8 +76,10 @@ public class TenantSynzhronizerTask implements Task {
carbonTenant.getId(), carbonTenant.getDomain(), cartridgeSubscription.getType()));
}
Subscription subscription = new Subscription(cartridgeSubscription.getType(),
- new HashSet<String>(cartridgeSubscription.getCluster().getId()),
- cartridgeSubscription.getDomains());
+ new HashSet<String>(cartridgeSubscription.getCluster().getId()));
+ for(SubscriptionDomain subscriptionDomain : cartridgeSubscription.getSubscriptionDomains()) {
+ subscription.addSubscriptionDomain(subscriptionDomain.getDomainName(), subscriptionDomain.getApplicationAlias());
+ }
tenant.addSubscription(subscription);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
index f32cd2f..755b559 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
@@ -58,7 +58,7 @@ public abstract class CartridgeSubscription implements Serializable {
//private List<String> connectedSubscriptionAliases;
private String subscriptionKey;
private SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
- private Set<String> domains;
+ private Map<String, SubscriptionDomain> subscriptionDomainMap;
/**
* Constructor
@@ -79,7 +79,7 @@ public abstract class CartridgeSubscription implements Serializable {
//this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
//this.connectedSubscriptionAliases = new ArrayList<String>();
this.setSubscriptionTenancyBehaviour(subscriptionTenancyBehaviour);
- this.domains = new HashSet<String>();
+ this.subscriptionDomainMap = new HashMap<String, SubscriptionDomain>();
}
/**
@@ -103,7 +103,7 @@ public abstract class CartridgeSubscription implements Serializable {
* @throws org.apache.stratos.manager.exception.RepositoryTransportException
*/
public void createSubscription (Subscriber subscriber, String alias, String autoscalingPolicy,
- String deploymentPolicyName, Repository repository, Set<String> domains)
+ String deploymentPolicyName, Repository repository)
throws ADCException, PolicyException, UnregisteredCartridgeException, InvalidCartridgeAliasException,
DuplicateCartridgeAliasException, RepositoryRequiredException, AlreadySubscribedException,
RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException {
@@ -113,26 +113,32 @@ public abstract class CartridgeSubscription implements Serializable {
setAutoscalingPolicyName(autoscalingPolicy);
setDeploymentPolicyName(deploymentPolicyName);
setRepository(repository);
- addDomains(domains);
setPayloadData(getSubscriptionTenancyBehaviour().create(getAlias(), getCluster(), getSubscriber(), getRepository(), getCartridgeInfo(),
getSubscriptionKey(), getCustomPayloadEntries()));
}
- public void addDomains(Set<String> domains) {
- domains.addAll(domains);
+ public void addSubscriptionDomain(SubscriptionDomain subscriptionDomain) {
+ subscriptionDomainMap.put(subscriptionDomain.getDomainName(), subscriptionDomain);
}
- public void removeDomain(String domain) {
- domains.remove(domain);
+ public void removeSubscriptionDomain(String domainName) {
+ if(subscriptionDomainExists(domainName)) {
+ subscriptionDomainMap.remove(domainName);
+ }
+ else {
+ if(log.isWarnEnabled()) {
+ log.warn("Subscription domain does not exist: " + domainName);
+ }
+ }
}
- public void removeDomains(Set<String> domains) {
- domains.removeAll(domains);
+ public boolean subscriptionDomainExists(String domainName) {
+ return subscriptionDomainMap.containsKey(domainName);
}
- public Set<String> getDomains() {
- return Collections.unmodifiableSet(domains);
+ public Collection<SubscriptionDomain> getSubscriptionDomains() {
+ return Collections.unmodifiableCollection(subscriptionDomainMap.values());
}
/**
@@ -405,7 +411,7 @@ public abstract class CartridgeSubscription implements Serializable {
", alias=" + alias + ", autoscalingPolicyName=" + autoscalingPolicyName +
", deploymentPolicyName=" + deploymentPolicyName + ", subscriber=" + subscriber +
", repository=" + repository + ", cartridgeInfo=" + cartridgeInfo + ", payload=" +
- payloadData + ", cluster=" + cluster + "]" + ", domains=" + domains.toString();
+ payloadData + ", cluster=" + cluster + "]" + ", subscriptionDomainMap=" + subscriptionDomainMap.toString();
}
public String getLbClusterId() {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/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..c258e38
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java
@@ -0,0 +1,46 @@
+/*
+ * 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;
+
+/**
+ * Subscription domain definition.
+ */
+public class SubscriptionDomain {
+ private final String domainName;
+ private final String applicationAlias;
+
+ public SubscriptionDomain(String domainName, String applicationAlias) {
+ this.domainName = domainName;
+ this.applicationAlias = applicationAlias;
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+
+ public String getApplicationAlias() {
+ return applicationAlias;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[domain-name] %s [application-alias] %s", getDomainName(), getApplicationAlias());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
index 20e23e1..bd575ce 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
@@ -158,13 +158,11 @@ public class CartridgeSubscriptionUtils {
private int tenantId;
private String serviceName;
private Set<String> clusterIds;
- private Set<String> domains;
- public TenantSubscribedEventPublisher(int tenantId, String service, Set<String> clusterIds, Set<String> domains) {
+ public TenantSubscribedEventPublisher(int tenantId, String service, Set<String> clusterIds) {
this.tenantId = tenantId;
this.serviceName = service;
this.clusterIds = clusterIds;
- this.domains = domains;
}
@Override
public void run() {
@@ -172,7 +170,7 @@ public class CartridgeSubscriptionUtils {
if(log.isInfoEnabled()) {
log.info(String.format("Publishing tenant subscribed event: [tenant-id] %d [service] %s", tenantId, serviceName));
}
- TenantSubscribedEvent subscribedEvent = new TenantSubscribedEvent(tenantId, serviceName, clusterIds, domains);
+ TenantSubscribedEvent subscribedEvent = new TenantSubscribedEvent(tenantId, serviceName, clusterIds);
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.TENANT_TOPIC);
eventPublisher.publish(subscribedEvent);
} catch (Exception e) {
@@ -184,7 +182,7 @@ public class CartridgeSubscriptionUtils {
}
}
- public static void publishTenantSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds, Set<String> domains) {
+ public static void publishTenantSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
Executor exec = new Executor() {
@@ -194,7 +192,7 @@ public class CartridgeSubscriptionUtils {
}
};
- exec.execute(new TenantSubscribedEventPublisher(tenantId, serviceName, clusterIds, domains));
+ exec.execute(new TenantSubscribedEventPublisher(tenantId, serviceName, clusterIds));
}
public static void publishTenantUnSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java
index 36fca2b..911692c 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java
@@ -19,20 +19,25 @@
package org.apache.stratos.messaging.domain.tenant;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import java.util.*;
/**
* Tenant's service subscription.
*/
public class Subscription {
+ private static final Log log = LogFactory.getLog(Subscription.class);
+
private final String serviceName;
private final Set<String> clusterIds;
- private final Set<String> domains;
+ private final Map<String, SubscriptionDomain> subscriptionDomainMap;
- public Subscription(String serviceName, Set<String> clusterIds, Set<String> domains) {
+ public Subscription(String serviceName, Set<String> clusterIds) {
this.serviceName = serviceName;
this.clusterIds = clusterIds;
- this.domains = (domains != null) ? domains : new HashSet<String>();
+ this.subscriptionDomainMap = new HashMap<String, SubscriptionDomain>();
}
public String getServiceName() {
@@ -43,23 +48,30 @@ public class Subscription {
return Collections.unmodifiableSet(clusterIds);
}
- public void addDomain(String domain) {
- domains.add(domain);
+ public void addSubscriptionDomain(SubscriptionDomain subscriptionDomain) {
+ subscriptionDomainMap.put(subscriptionDomain.getDomainName(), subscriptionDomain);
}
- public void addDomains(Set<String> domains) {
- domains.addAll(domains);
+ public void addSubscriptionDomain(String domainName, String applicationAlias) {
+ addSubscriptionDomain(new SubscriptionDomain(domainName, applicationAlias));
}
- public void removeDomain(String domain) {
- domains.remove(domain);
+ public void removeSubscriptionDomain(String domainName) {
+ if(subscriptionDomainExists(domainName)) {
+ subscriptionDomainMap.remove(domainName);
+ }
+ else {
+ if(log.isWarnEnabled()) {
+ log.warn("Subscription domain does not exist: " + domainName);
+ }
+ }
}
- public void removeDomains(Set<String> domains) {
- domains.removeAll(domains);
+ public boolean subscriptionDomainExists(String domainName) {
+ return subscriptionDomainMap.containsKey(domainName);
}
- public Set<String> getDomains() {
- return Collections.unmodifiableSet(domains);
+ public Collection<SubscriptionDomain> getSubscriptionDomains() {
+ return Collections.unmodifiableCollection(subscriptionDomainMap.values());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java
new file mode 100644
index 0000000..38448ae
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java
@@ -0,0 +1,41 @@
+/*
+ * 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.messaging.domain.tenant;
+
+/**
+ * Subscription domain definition.
+ */
+public class SubscriptionDomain {
+ private final String domainName;
+ private final String applicationAlias;
+
+ public SubscriptionDomain(String domainName, String applicationAlias) {
+ this.domainName = domainName;
+ this.applicationAlias = applicationAlias;
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+
+ public String getApplicationAlias() {
+ return applicationAlias;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java
new file mode 100644
index 0000000..baebb82
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java
@@ -0,0 +1,67 @@
+/*
+ * 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.messaging.event.tenant;
+
+import org.apache.stratos.messaging.event.Event;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * This event is fired when domains are added to a tenant subscription.
+ */
+public class SubscriptionDomainAddedEvent extends Event implements Serializable {
+ private static final long serialVersionUID = 3457484382856403382L;
+
+ private final int tenantId;
+ private final String serviceName;
+ private final Set<String> clusterIds;
+ private final String domainName;
+ private final String applicationAlias;
+
+ public SubscriptionDomainAddedEvent(int tenantId, String serviceName, Set<String> clusterIds, String domainName,
+ String applicationAlias) {
+ this.tenantId = tenantId;
+ this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
+ this.domainName = domainName;
+ this.applicationAlias = applicationAlias;
+ }
+
+ public int getTenantId() {
+ return tenantId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+
+ public String getApplicationAlias() {
+ return applicationAlias;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java
new file mode 100644
index 0000000..b3d9578
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java
@@ -0,0 +1,60 @@
+/*
+ * 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.messaging.event.tenant;
+
+import org.apache.stratos.messaging.event.Event;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * This event is fired when domains are removed from a tenant subscription.
+ */
+public class SubscriptionDomainRemovedEvent extends Event implements Serializable {
+ private static final long serialVersionUID = -8837521344795740210L;
+
+ private final int tenantId;
+ private final String serviceName;
+ private final Set<String> clusterIds;
+ private final String domainName;
+
+ public SubscriptionDomainRemovedEvent(int tenantId, String serviceName, Set<String> clusterIds, String domainName) {
+ this.tenantId = tenantId;
+ this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
+ this.domainName = domainName;
+ }
+
+ public int getTenantId() {
+ return tenantId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java
deleted file mode 100644
index 312571a..0000000
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java
+++ /dev/null
@@ -1,60 +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.messaging.event.tenant;
-
-import org.apache.stratos.messaging.event.Event;
-
-import java.io.Serializable;
-import java.util.*;
-
-/**
- * This event is fired when domains are added to a tenant subscription.
- */
-public class SubscriptionDomainsAddedEvent extends Event implements Serializable {
- private static final long serialVersionUID = 3457484382856403382L;
-
- private final int tenantId;
- private final String serviceName;
- private final Set<String> clusterIds;
- private final Set<String> domains;
-
- public SubscriptionDomainsAddedEvent(int tenantId, String serviceName, Set<String> clusterIds, Set<String> domains) {
- this.tenantId = tenantId;
- this.serviceName = serviceName;
- this.clusterIds = clusterIds;
- this.domains = (domains != null) ? domains : new HashSet<String>();
- }
-
- public int getTenantId() {
- return tenantId;
- }
-
- public String getServiceName() {
- return serviceName;
- }
-
- public Set<String> getClusterIds() {
- return Collections.unmodifiableSet(clusterIds);
- }
-
- public Set<String> getDomains() {
- return Collections.unmodifiableSet(domains);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java
deleted file mode 100644
index 3cc5664..0000000
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java
+++ /dev/null
@@ -1,60 +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.messaging.event.tenant;
-
-import org.apache.stratos.messaging.event.Event;
-
-import java.io.Serializable;
-import java.util.*;
-
-/**
- * This event is fired when domains are removed from a tenant subscription.
- */
-public class SubscriptionDomainsRemovedEvent extends Event implements Serializable {
- private static final long serialVersionUID = -8837521344795740210L;
-
- private final int tenantId;
- private final String serviceName;
- private final Set<String> clusterIds;
- private Set<String> domains;
-
- public SubscriptionDomainsRemovedEvent(int tenantId, String serviceName, Set<String> clusterIds, Set<String> domains) {
- this.tenantId = tenantId;
- this.serviceName = serviceName;
- this.clusterIds = clusterIds;
- this.domains = (domains != null) ? domains : new HashSet<String>();
- }
-
- public int getTenantId() {
- return tenantId;
- }
-
- public String getServiceName() {
- return serviceName;
- }
-
- public Set<String> getClusterIds() {
- return Collections.unmodifiableSet(clusterIds);
- }
-
- public Set<String> getDomains() {
- return Collections.unmodifiableSet(domains);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
index bf0e288..d89de12 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
@@ -31,13 +31,11 @@ public class TenantSubscribedEvent extends TenantEvent implements Serializable {
private final int tenantId;
private final String serviceName;
private final Set<String> clusterIds;
- private final Set<String> domains;
- public TenantSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds, Set<String> domains) {
+ public TenantSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
this.tenantId = tenantId;
this.serviceName = serviceName;
this.clusterIds = clusterIds;
- this.domains = (domains != null) ? domains : new HashSet<String>();
}
public int getTenantId() {
@@ -51,8 +49,4 @@ public class TenantSubscribedEvent extends TenantEvent implements Serializable {
public Set<String> getClusterIds() {
return Collections.unmodifiableSet(clusterIds);
}
-
- public Set<String> getDomains() {
- return Collections.unmodifiableSet(domains);
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java
new file mode 100644
index 0000000..fa85e30
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainAddedMessageProcessor.java
@@ -0,0 +1,98 @@
+/*
+ * 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.messaging.message.processor.tenant;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.domain.tenant.Subscription;
+import org.apache.stratos.messaging.domain.tenant.SubscriptionDomain;
+import org.apache.stratos.messaging.domain.tenant.Tenant;
+import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent;
+import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
+import org.apache.stratos.messaging.message.processor.MessageProcessor;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
+import org.apache.stratos.messaging.util.Util;
+
+/**
+ * Tenant subscribed message processor for adding domains to tenant subscriptions.
+ */
+public class SubscriptionDomainAddedMessageProcessor extends MessageProcessor {
+
+ private static final Log log = LogFactory.getLog(SubscriptionDomainAddedMessageProcessor.class);
+
+ private MessageProcessor nextProcessor;
+
+ @Override
+ public void setNext(MessageProcessor nextProcessor) {
+ this.nextProcessor = nextProcessor;
+ }
+
+ @Override
+ public boolean process(String type, String message, Object object) {
+ if (SubscriptionDomainAddedEvent.class.getName().equals(type)) {
+ // Return if tenant manager has not initialized
+ if(!TenantManager.getInstance().isInitialized()) {
+ return false;
+ }
+
+ // Parse complete message and build event
+ SubscriptionDomainAddedEvent event = (SubscriptionDomainAddedEvent) Util.jsonToObject(message, TenantSubscribedEvent.class);
+
+ try {
+ TenantManager.acquireWriteLock();
+ Tenant tenant = TenantManager.getInstance().getTenant(event.getTenantId());
+ if(tenant == null) {
+ if(log.isWarnEnabled()) {
+ log.warn(String.format("Tenant not found: [tenant-id] %d", event.getTenantId()));
+ }
+ return false;
+ }
+ Subscription subscription = tenant.getSubscription(event.getServiceName());
+ if(subscription == null) {
+ if(log.isWarnEnabled()) {
+ log.warn(String.format("Subscription not found: [tenant-id] %d", event.getTenantId()));
+ }
+ return false;
+ }
+ subscription.addSubscriptionDomain(new SubscriptionDomain(event.getDomainName(), event.getApplicationAlias()));
+ if(log.isInfoEnabled()) {
+ log.info(String.format("Domain added to tenant subscription: [tenant-id] %d [tenant-domain] %s " +
+ "[service] %s [domain-name] %s [application-alias] %s", tenant.getTenantId(),
+ tenant.getTenantDomain(), event.getServiceName(), event.getDomainName(), event.getApplicationAlias()));
+ }
+
+ // Notify event listeners
+ notifyEventListeners(event);
+ return true;
+ }
+ finally {
+ TenantManager.releaseWriteLock();
+ }
+ }
+ else {
+ if(nextProcessor != null) {
+ return nextProcessor.process(type, message, object);
+ }
+ else {
+ throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java
new file mode 100644
index 0000000..9ec41a1
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainRemovedMessageProcessor.java
@@ -0,0 +1,97 @@
+/*
+ * 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.messaging.message.processor.tenant;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.domain.tenant.Subscription;
+import org.apache.stratos.messaging.domain.tenant.Tenant;
+import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent;
+import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
+import org.apache.stratos.messaging.message.processor.MessageProcessor;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
+import org.apache.stratos.messaging.util.Util;
+
+/**
+ * Tenant subscribed message processor for removing domains from tenant subscriptions.
+ */
+public class SubscriptionDomainRemovedMessageProcessor extends MessageProcessor {
+
+ private static final Log log = LogFactory.getLog(SubscriptionDomainRemovedMessageProcessor.class);
+
+ private MessageProcessor nextProcessor;
+
+ @Override
+ public void setNext(MessageProcessor nextProcessor) {
+ this.nextProcessor = nextProcessor;
+ }
+
+ @Override
+ public boolean process(String type, String message, Object object) {
+ if (SubscriptionDomainAddedEvent.class.getName().equals(type)) {
+ // Return if tenant manager has not initialized
+ if(!TenantManager.getInstance().isInitialized()) {
+ return false;
+ }
+
+ // Parse complete message and build event
+ SubscriptionDomainAddedEvent event = (SubscriptionDomainAddedEvent) Util.jsonToObject(message, TenantSubscribedEvent.class);
+
+ try {
+ TenantManager.acquireWriteLock();
+ Tenant tenant = TenantManager.getInstance().getTenant(event.getTenantId());
+ if(tenant == null) {
+ if(log.isWarnEnabled()) {
+ log.warn(String.format("Tenant not found: [tenant-id] %d", event.getTenantId()));
+ }
+ return false;
+ }
+ Subscription subscription = tenant.getSubscription(event.getServiceName());
+ if(subscription == null) {
+ if(log.isWarnEnabled()) {
+ log.warn(String.format("Subscription not found: [tenant-id] %d", event.getTenantId()));
+ }
+ return false;
+ }
+ subscription.removeSubscriptionDomain(event.getDomainName());
+ if(log.isInfoEnabled()) {
+ log.info(String.format("Domain removed from tenant subscription: [tenant-id] %d [tenant-domain] %s " +
+ "[service] %s [domain-name] %s", tenant.getTenantId(), tenant.getTenantDomain(),
+ event.getServiceName(), event.getDomainName()));
+ }
+
+ // Notify event listeners
+ notifyEventListeners(event);
+ return true;
+ }
+ finally {
+ TenantManager.releaseWriteLock();
+ }
+ }
+ else {
+ if(nextProcessor != null) {
+ return nextProcessor.process(type, message, object);
+ }
+ else {
+ throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsAddedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsAddedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsAddedMessageProcessor.java
deleted file mode 100644
index aeea6bf..0000000
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsAddedMessageProcessor.java
+++ /dev/null
@@ -1,96 +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.messaging.message.processor.tenant;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.domain.tenant.Subscription;
-import org.apache.stratos.messaging.domain.tenant.Tenant;
-import org.apache.stratos.messaging.event.tenant.SubscriptionDomainsAddedEvent;
-import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
-import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
-import org.apache.stratos.messaging.util.Util;
-
-/**
- * Tenant subscribed message processor for adding domains to tenant subscriptions.
- */
-public class SubscriptionDomainsAddedMessageProcessor extends MessageProcessor {
-
- private static final Log log = LogFactory.getLog(SubscriptionDomainsAddedMessageProcessor.class);
-
- private MessageProcessor nextProcessor;
-
- @Override
- public void setNext(MessageProcessor nextProcessor) {
- this.nextProcessor = nextProcessor;
- }
-
- @Override
- public boolean process(String type, String message, Object object) {
- if (SubscriptionDomainsAddedEvent.class.getName().equals(type)) {
- // Return if tenant manager has not initialized
- if(!TenantManager.getInstance().isInitialized()) {
- return false;
- }
-
- // Parse complete message and build event
- SubscriptionDomainsAddedEvent event = (SubscriptionDomainsAddedEvent) Util.jsonToObject(message, TenantSubscribedEvent.class);
-
- try {
- TenantManager.acquireWriteLock();
- Tenant tenant = TenantManager.getInstance().getTenant(event.getTenantId());
- if(tenant == null) {
- if(log.isWarnEnabled()) {
- log.warn(String.format("Tenant not found: [tenant-id] %d", event.getTenantId()));
- }
- return false;
- }
- Subscription subscription = tenant.getSubscription(event.getServiceName());
- if(subscription == null) {
- if(log.isWarnEnabled()) {
- log.warn(String.format("Subscription not found: [tenant-id] %d", event.getTenantId()));
- }
- return false;
- }
- subscription.addDomains(event.getDomains());
- if(log.isInfoEnabled()) {
- log.info(String.format("Domains added to tenant subscription: [tenant-id] %d [tenant-domain] %s [service] %s [domains] %s",
- tenant.getTenantId(), tenant.getTenantDomain(), event.getServiceName(), event.getDomains()));
- }
-
- // Notify event listeners
- notifyEventListeners(event);
- return true;
- }
- finally {
- TenantManager.releaseWriteLock();
- }
- }
- else {
- if(nextProcessor != null) {
- return nextProcessor.process(type, message, object);
- }
- else {
- throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/70ed8571/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsRemovedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsRemovedMessageProcessor.java
deleted file mode 100644
index fc08357..0000000
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/SubscriptionDomainsRemovedMessageProcessor.java
+++ /dev/null
@@ -1,96 +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.messaging.message.processor.tenant;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.domain.tenant.Subscription;
-import org.apache.stratos.messaging.domain.tenant.Tenant;
-import org.apache.stratos.messaging.event.tenant.SubscriptionDomainsAddedEvent;
-import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
-import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
-import org.apache.stratos.messaging.util.Util;
-
-/**
- * Tenant subscribed message processor for removing domains from tenant subscriptions.
- */
-public class SubscriptionDomainsRemovedMessageProcessor extends MessageProcessor {
-
- private static final Log log = LogFactory.getLog(SubscriptionDomainsRemovedMessageProcessor.class);
-
- private MessageProcessor nextProcessor;
-
- @Override
- public void setNext(MessageProcessor nextProcessor) {
- this.nextProcessor = nextProcessor;
- }
-
- @Override
- public boolean process(String type, String message, Object object) {
- if (SubscriptionDomainsAddedEvent.class.getName().equals(type)) {
- // Return if tenant manager has not initialized
- if(!TenantManager.getInstance().isInitialized()) {
- return false;
- }
-
- // Parse complete message and build event
- SubscriptionDomainsAddedEvent event = (SubscriptionDomainsAddedEvent) Util.jsonToObject(message, TenantSubscribedEvent.class);
-
- try {
- TenantManager.acquireWriteLock();
- Tenant tenant = TenantManager.getInstance().getTenant(event.getTenantId());
- if(tenant == null) {
- if(log.isWarnEnabled()) {
- log.warn(String.format("Tenant not found: [tenant-id] %d", event.getTenantId()));
- }
- return false;
- }
- Subscription subscription = tenant.getSubscription(event.getServiceName());
- if(subscription == null) {
- if(log.isWarnEnabled()) {
- log.warn(String.format("Subscription not found: [tenant-id] %d", event.getTenantId()));
- }
- return false;
- }
- subscription.removeDomains(event.getDomains());
- if(log.isInfoEnabled()) {
- log.info(String.format("Domains removed from tenant subscription: [tenant-id] %d [tenant-domain] %s [service] %s [domains] %s",
- tenant.getTenantId(), tenant.getTenantDomain(), event.getServiceName(), event.getDomains()));
- }
-
- // Notify event listeners
- notifyEventListeners(event);
- return true;
- }
- finally {
- TenantManager.releaseWriteLock();
- }
- }
- else {
- if(nextProcessor != null) {
- return nextProcessor.process(type, message, object);
- }
- else {
- throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
- }
- }
- }
-}