asynchronously publishing tenant subscribed event
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/85d8ab9c Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/85d8ab9c Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/85d8ab9c Branch: refs/heads/master Commit: 85d8ab9c263f7475354082b07fcb82be066bfec9 Parents: be24be7 Author: Nirmal Fernando <[email protected]> Authored: Wed Mar 26 15:20:28 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Wed Mar 26 15:20:28 2014 +0530 ---------------------------------------------------------------------- .../utils/CartridgeSubscriptionUtils.java | 50 +++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/85d8ab9c/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 130a727..cd50fd8 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 @@ -43,6 +43,7 @@ import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent; import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent; import org.apache.stratos.messaging.util.Constants; +import java.util.concurrent.Executor; import java.util.regex.Pattern; public class CartridgeSubscriptionUtils { @@ -149,19 +150,44 @@ public class CartridgeSubscriptionUtils { return key; } + static class TenantSubscribedEventPublisher implements Runnable { + + int tenantId; + String serviceName; + + public TenantSubscribedEventPublisher(int tenantId, String service) { + this.tenantId = tenantId; + this.serviceName = service; + } + @Override + public void run() { + try { + if(log.isInfoEnabled()) { + log.info(String.format("Publishing tenant subscribed event: [tenant-id] %d [service] %s", tenantId, serviceName)); + } + TenantSubscribedEvent subscribedEvent = new TenantSubscribedEvent(tenantId, serviceName); + EventPublisher eventPublisher = new EventPublisher(Constants.TENANT_TOPIC); + eventPublisher.publish(subscribedEvent); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error(String.format("Could not publish tenant subscribed event: [tenant-id] %d [service] %s", tenantId, serviceName), e); + } + } + + } + + } public static void publishTenantSubscribedEvent(int tenantId, String serviceName) { - try { - if(log.isInfoEnabled()) { - log.info(String.format("Publishing tenant subscribed event: [tenant-id] %d [service] %s", tenantId, serviceName)); - } - TenantSubscribedEvent subscribedEvent = new TenantSubscribedEvent(tenantId, serviceName); - EventPublisher eventPublisher = new EventPublisher(Constants.TENANT_TOPIC); - eventPublisher.publish(subscribedEvent); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error(String.format("Could not publish tenant subscribed event: [tenant-id] %d [service] %s", tenantId, serviceName), e); - } - } + + + Executor exec = new Executor() { + @Override + public void execute(Runnable command) { + command.run(); + } + }; + + exec.execute(new TenantSubscribedEventPublisher(tenantId, serviceName)); } public static void publishTenantUnSubscribedEvent(int tenantId, String serviceName) {
