You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2015/12/24 15:56:09 UTC
[06/14] stratos git commit: making DomainMappingEventReceiver
singleton and fixing references in components
making DomainMappingEventReceiver singleton and fixing references in components
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/c627ff18
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c627ff18
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c627ff18
Branch: refs/heads/master
Commit: c627ff18f6c4d84c3cd42762e580e55128d80e07
Parents: 6ac3b87
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:22:37 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 20:04:39 2015 +0530
----------------------------------------------------------------------
...alancerCommonDomainMappingEventReceiver.java | 8 ++++---
.../extension/api/LoadBalancerExtension.java | 9 ++++----
.../internal/LoadBalancerServiceComponent.java | 24 ++++++++++----------
.../mapping/DomainMappingEventReceiver.java | 21 ++++++++++++++---
4 files changed, 40 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/c627ff18/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
index a51ed22..c0d9f81 100644
--- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
@@ -34,13 +34,15 @@ import org.apache.stratos.messaging.message.receiver.domain.mapping.DomainMappin
* Load balancer common domain mapping event receiver updates the topology in the given topology provider
* with the domains found in domain mapping events.
*/
-public class LoadBalancerCommonDomainMappingEventReceiver extends DomainMappingEventReceiver {
+public class LoadBalancerCommonDomainMappingEventReceiver {
private static final Log log = LogFactory.getLog(LoadBalancerCommonDomainMappingEventReceiver.class);
private TopologyProvider topologyProvider;
+ private DomainMappingEventReceiver domainMappingEventReceiver;
public LoadBalancerCommonDomainMappingEventReceiver(TopologyProvider topologyProvider) {
+ this.domainMappingEventReceiver = DomainMappingEventReceiver.getInstance();
this.topologyProvider = topologyProvider;
addEventListeners();
}
@@ -57,7 +59,7 @@ public class LoadBalancerCommonDomainMappingEventReceiver extends DomainMappingE
* domain mapping events.
*/
public void addEventListeners() {
- addEventListener(new DomainMappingAddedEventListener() {
+ domainMappingEventReceiver.addEventListener(new DomainMappingAddedEventListener() {
@Override
protected void onEvent(Event event) {
DomainMappingAddedEvent domainMappingAddedEvent = (DomainMappingAddedEvent) event;
@@ -75,7 +77,7 @@ public class LoadBalancerCommonDomainMappingEventReceiver extends DomainMappingE
}
});
- addEventListener(new DomainMappingRemovedEventListener() {
+ domainMappingEventReceiver.addEventListener(new DomainMappingRemovedEventListener() {
@Override
protected void onEvent(Event event) {
DomainMappingRemovedEvent domainMappingRemovedEvent = (DomainMappingRemovedEvent) event;
http://git-wip-us.apache.org/repos/asf/stratos/blob/c627ff18/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
index d2a8cb3..c2ee077 100644
--- a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
+++ b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
@@ -39,6 +39,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
+import org.apache.stratos.messaging.message.receiver.domain.mapping.DomainMappingEventReceiver;
import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
import java.util.concurrent.ExecutorService;
@@ -170,8 +171,8 @@ public class LoadBalancerExtension {
addDomainMappingsEventListeners(domainMappingEventReceiver);
// Add default domain mapping event listeners
domainMappingEventReceiver.addEventListeners();
- domainMappingEventReceiver.setExecutorService(executorService);
- domainMappingEventReceiver.execute();
+// domainMappingEventReceiver.setExecutorService(executorService);
+// domainMappingEventReceiver.execute();
if (log.isInfoEnabled()) {
log.info("Domain mapping event receiver thread started");
}
@@ -179,14 +180,14 @@ public class LoadBalancerExtension {
private void addDomainMappingsEventListeners(final LoadBalancerCommonDomainMappingEventReceiver
domainMappingEventReceiver) {
- domainMappingEventReceiver.addEventListener(new DomainMappingAddedEventListener() {
+ DomainMappingEventReceiver.getInstance().addEventListener(new DomainMappingAddedEventListener() {
@Override
protected void onEvent(Event event) {
reloadConfiguration();
}
});
- domainMappingEventReceiver.addEventListener(new DomainMappingRemovedEventListener() {
+ DomainMappingEventReceiver.getInstance().addEventListener(new DomainMappingRemovedEventListener() {
@Override
protected void onEvent(Event event) {
reloadConfiguration();
http://git-wip-us.apache.org/repos/asf/stratos/blob/c627ff18/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index e772322..3786af8 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -173,11 +173,11 @@ public class LoadBalancerServiceComponent {
}
domainMappingEventReceiver = new LoadBalancerDomainMappingEventReceiver(topologyProvider);
- domainMappingEventReceiver.setExecutorService(executorService);
- domainMappingEventReceiver.execute();
- if (log.isInfoEnabled()) {
- log.info("Domain mapping event receiver thread started");
- }
+// domainMappingEventReceiver.setExecutorService(executorService);
+// domainMappingEventReceiver.execute();
+// if (log.isInfoEnabled()) {
+// log.info("Domain mapping event receiver thread started");
+// }
}
private void startApplicationSignUpEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
@@ -275,13 +275,13 @@ public class LoadBalancerServiceComponent {
// }
// Terminate domain mapping event receiver
- if (domainMappingEventReceiver != null) {
- try {
- domainMappingEventReceiver.terminate();
- } catch (Exception e) {
- log.warn("An error occurred while terminating domain mapping event receiver", e);
- }
- }
+// if (domainMappingEventReceiver != null) {
+// try {
+// domainMappingEventReceiver.terminate();
+// } catch (Exception e) {
+// log.warn("An error occurred while terminating domain mapping event receiver", e);
+// }
+// }
// Terminate statistics notifier
if (statisticsNotifier != null) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/c627ff18/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index 1d582b5..3c723a3 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -21,8 +21,10 @@ package org.apache.stratos.messaging.message.receiver.domain.mapping;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
import org.apache.stratos.messaging.util.MessagingUtil;
import java.util.concurrent.ExecutorService;
@@ -30,16 +32,18 @@ import java.util.concurrent.ExecutorService;
/**
* Domain mapping event receiver.
*/
-public class DomainMappingEventReceiver {
+public class DomainMappingEventReceiver extends StratosEventReceiver {
private static final Log log = LogFactory.getLog(DomainMappingEventReceiver.class);
private DomainMappingEventMessageDelegator messageDelegator;
private DomainMappingEventMessageListener messageListener;
private EventSubscriber eventSubscriber;
- private ExecutorService executorService;
+ private static volatile DomainMappingEventReceiver instance;
- public DomainMappingEventReceiver() {
+ private DomainMappingEventReceiver() {
+ // TODO: make pool size configurable
+ this.executorService = StratosThreadPool.getExecutorService("domainmapping-event-receiver", 100);
DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
this.messageListener = new DomainMappingEventMessageListener(messageQueue);
@@ -49,6 +53,17 @@ public class DomainMappingEventReceiver {
messageDelegator.addEventListener(eventListener);
}
+ public static DomainMappingEventReceiver getInstance () {
+ if (instance == null) {
+ synchronized (DomainMappingEventReceiver.class) {
+ if (instance == null) {
+ instance = new DomainMappingEventReceiver();
+ }
+ }
+ }
+
+ return instance;
+ }
public void execute() {
try {