Remove unnessary threads in messaging model
Conflicts:
components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/959c435d
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/959c435d
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/959c435d
Branch: refs/heads/master
Commit: 959c435de97fe0d07040c89d7b28a78b065a3ce4
Parents: 038b72e
Author: gayan <[email protected]>
Authored: Mon Dec 1 16:52:15 2014 +0530
Committer: gayan <[email protected]>
Committed: Tue Dec 2 16:40:14 2014 +0530
----------------------------------------------------------------------
.../CloudControllerServiceComponent.java | 19 +-
.../extension/api/LoadBalancerExtension.java | 254 +++++++++----------
2 files changed, 141 insertions(+), 132 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/959c435d/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index dfbf1ec..6773b4a 100644
---
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -21,11 +21,15 @@ package org.apache.stratos.cloud.controller.internal;
*/
<<<<<<< HEAD
+<<<<<<< HEAD
import com.hazelcast.core.HazelcastInstance;
=======
>>>>>>> ddf277b... Remove unnessary threads in messaging model
+=======
+
+>>>>>>> ad3e45c... Remove unnessary threads in messaging model
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.context.CloudControllerContext;
@@ -63,17 +67,22 @@ import org.wso2.carbon.utils.ConfigurationContextService;
* cardinality="1..1" policy="dynamic"
bind="setConfigurationContextService" unbind="unsetConfigurationContextService"
=======
* @scr.reference name="distributedMapProvider"
interface="org.wso2.carbon.caching.impl.DistributedMapProvider"
- * cardinality="1..1" policy="dynamic" bind="setDistributedMapProvider"
unbind="unsetDistributedMapProvider"
+ * cardinality="1..1" policy="dynamic"
bind="setDistributedMapProvider" unbind="unsetDistributedMapProvider"
* @scr.reference name="ntask.component"
- * interface="org.wso2.carbon.ntask.core.service.TaskService"
- * cardinality="1..1" policy="dynamic" bind="setTaskService"
unbind="unsetTaskService"
+ * interface="org.wso2.carbon.ntask.core.service.TaskService"
+ * cardinality="1..1" policy="dynamic" bind="setTaskService"
unbind="unsetTaskService"
* @scr.reference name="registry.service"
- * interface="org.wso2.carbon.registry.core.service.RegistryService"
- * cardinality="1..1" policy="dynamic" bind="setRegistryService"
unbind="unsetRegistryService"
+ *
interface="org.wso2.carbon.registry.core.service.RegistryService"
+ * cardinality="1..1" policy="dynamic"
bind="setRegistryService" unbind="unsetRegistryService"
* @scr.reference name="config.context.service"
+<<<<<<< HEAD
* interface="org.wso2.carbon.utils.ConfigurationContextService"
* cardinality="1..1" policy="dynamic" bind="setConfigurationContextService"
unbind="unsetConfigurationContextService"
>>>>>>> ddf277b... Remove unnessary threads in messaging model
+=======
+ * interface="org.wso2.carbon.utils.ConfigurationContextService"
+ * cardinality="1..1" policy="dynamic"
bind="setConfigurationContextService" unbind="unsetConfigurationContextService"
+>>>>>>> ad3e45c... Remove unnessary threads in messaging model
*/
public class CloudControllerServiceComponent {
http://git-wip-us.apache.org/repos/asf/stratos/blob/959c435d/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 24fecf3..188b2ac 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
@@ -35,134 +35,134 @@ import java.util.concurrent.ExecutorService;
* received from the message broker.
*/
public class LoadBalancerExtension implements Runnable {
- private static final Log log =
LogFactory.getLog(LoadBalancerExtension.class);
-
- private LoadBalancer loadBalancer;
- private LoadBalancerStatisticsReader statsReader;
- private boolean loadBalancerStarted;
- private TopologyEventReceiver topologyEventReceiver;
- private LoadBalancerStatisticsNotifier statisticsNotifier;
- private boolean terminated;
+ private static final Log log =
LogFactory.getLog(LoadBalancerExtension.class);
+
+ private LoadBalancer loadBalancer;
+ private LoadBalancerStatisticsReader statsReader;
+ private boolean loadBalancerStarted;
+ private TopologyEventReceiver topologyEventReceiver;
+ private LoadBalancerStatisticsNotifier statisticsNotifier;
+ private boolean terminated;
private ExecutorService executorService;
- /**
- * Load balancer extension constructor.
- * @param loadBalancer Load balancer instance: Mandatory.
- * @param statsReader Statistics reader: If null statistics notifier
thread will not be started.
- */
- public LoadBalancerExtension(LoadBalancer loadBalancer,
LoadBalancerStatisticsReader statsReader) {
- this.loadBalancer = loadBalancer;
- this.statsReader = statsReader;
- }
-
- @Override
- public void run() {
- try {
- if(log.isInfoEnabled()) {
- log.info("Load balancer extension started");
- }
-
- // Start topology receiver thread
- topologyEventReceiver = new TopologyEventReceiver();
- addEventListeners();
- topologyEventReceiver.setExecutorService(executorService);
- topologyEventReceiver.execute();
-
-
- if(statsReader != null) {
- // Start stats notifier thread
- statisticsNotifier = new
LoadBalancerStatisticsNotifier(statsReader);
- Thread statsNotifierThread = new Thread(statisticsNotifier);
- statsNotifierThread.start();
- }
- else {
- if(log.isWarnEnabled()) {
- log.warn("Load balancer statistics reader not found");
- }
- }
-
- } catch (Exception e) {
- if (log.isErrorEnabled()) {
- log.error("Could not start load balancer extension", e);
- }
- }
- }
-
- private void addEventListeners() {
- topologyEventReceiver.addEventListener(new
CompleteTopologyEventListener() {
-
- @Override
- protected void onEvent(Event event) {
- try {
-
- if (!loadBalancerStarted) {
- // Configure load balancer
- loadBalancer.configure(TopologyManager.getTopology());
-
- // Start load balancer
- loadBalancer.start();
- loadBalancerStarted = true;
- }
- } catch (Exception e) {
- if (log.isErrorEnabled()) {
- log.error("Could not start load balancer", e);
- }
- terminate();
- }
- }
- });
- topologyEventReceiver.addEventListener(new
MemberActivatedEventListener() {
- @Override
- protected void onEvent(Event event) {
- reloadConfiguration();
- }
- });
- topologyEventReceiver.addEventListener(new
MemberSuspendedEventListener() {
- @Override
- protected void onEvent(Event event) {
- reloadConfiguration();
- }
- });
- topologyEventReceiver.addEventListener(new
MemberTerminatedEventListener() {
- @Override
- protected void onEvent(Event event) {
- reloadConfiguration();
- }
- });
- topologyEventReceiver.addEventListener(new
ClusterRemovedEventListener() {
- @Override
- protected void onEvent(Event event) {
- reloadConfiguration();
- }
- });
- topologyEventReceiver.addEventListener(new
ServiceRemovedEventListener() {
- @Override
- protected void onEvent(Event event) {
- reloadConfiguration();
- }
- });
- }
-
- private void reloadConfiguration() {
- try {
- if (loadBalancerStarted) {
- loadBalancer.reload(TopologyManager.getTopology());
- }
- } catch (Exception e) {
- if (log.isErrorEnabled()) {
- log.error("Could not reload load balancer configuration", e);
- }
- }
- }
-
- public void terminate() {
- if(topologyEventReceiver != null) {
- topologyEventReceiver.terminate();
- }
- if(statisticsNotifier != null) {
- statisticsNotifier.terminate();
- }
- terminated = true;
- }
+
+ /**
+ * Load balancer extension constructor.
+ *
+ * @param loadBalancer Load balancer instance: Mandatory.
+ * @param statsReader Statistics reader: If null statistics notifier
thread will not be started.
+ */
+ public LoadBalancerExtension(LoadBalancer loadBalancer,
LoadBalancerStatisticsReader statsReader) {
+ this.loadBalancer = loadBalancer;
+ this.statsReader = statsReader;
+ }
+
+ @Override
+ public void run() {
+ try {
+ if (log.isInfoEnabled()) {
+ log.info("Load balancer extension started");
+ }
+
+ // Start topology receiver thread
+ topologyEventReceiver = new TopologyEventReceiver();
+ addEventListeners();
+
topologyEventReceiver.setExecutorService(executorService);
+ topologyEventReceiver.execute();
+
+ if (statsReader != null) {
+ // Start stats notifier thread
+ statisticsNotifier = new
LoadBalancerStatisticsNotifier(statsReader);
+ Thread statsNotifierThread = new
Thread(statisticsNotifier);
+ statsNotifierThread.start();
+ } else {
+ if (log.isWarnEnabled()) {
+ log.warn("Load balancer statistics
reader not found");
+ }
+ }
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not start load balancer
extension", e);
+ }
+ }
+ }
+
+ private void addEventListeners() {
+ topologyEventReceiver.addEventListener(new
CompleteTopologyEventListener() {
+
+ @Override
+ protected void onEvent(Event event) {
+ try {
+
+ if (!loadBalancerStarted) {
+ // Configure load balancer
+
loadBalancer.configure(TopologyManager.getTopology());
+
+ // Start load balancer
+ loadBalancer.start();
+ loadBalancerStarted = true;
+ }
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not start load
balancer", e);
+ }
+ terminate();
+ }
+ }
+ });
+ topologyEventReceiver.addEventListener(new
MemberActivatedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ reloadConfiguration();
+ }
+ });
+ topologyEventReceiver.addEventListener(new
MemberSuspendedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ reloadConfiguration();
+ }
+ });
+ topologyEventReceiver.addEventListener(new
MemberTerminatedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ reloadConfiguration();
+ }
+ });
+ topologyEventReceiver.addEventListener(new
ClusterRemovedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ reloadConfiguration();
+ }
+ });
+ topologyEventReceiver.addEventListener(new
ServiceRemovedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ reloadConfiguration();
+ }
+ });
+ }
+
+ private void reloadConfiguration() {
+ try {
+ if (loadBalancerStarted) {
+
loadBalancer.reload(TopologyManager.getTopology());
+ }
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not reload load balancer
configuration", e);
+ }
+ }
+ }
+
+ public void terminate() {
+ if (topologyEventReceiver != null) {
+ topologyEventReceiver.terminate();
+ }
+ if (statisticsNotifier != null) {
+ statisticsNotifier.terminate();
+ }
+ terminated = true;
+ }
public ExecutorService getExecutorService() {
return executorService;