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 2013/11/11 17:12:50 UTC
git commit: Removed local copy of the topology event message
delegator from autoscaler, updated log4j properties,
optimized service component activate method
Updated Branches:
refs/heads/master d978cc405 -> 23c88cdb4
Removed local copy of the topology event message delegator from autoscaler, updated log4j properties, optimized service component activate method
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/23c88cdb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/23c88cdb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/23c88cdb
Branch: refs/heads/master
Commit: 23c88cdb47edf83c7ee3f7dc37821f0509fc892c
Parents: d978cc4
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon Nov 11 21:42:39 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon Nov 11 21:42:39 2013 +0530
----------------------------------------------------------------------
.../internal/AutoscalerServerComponent.java | 88 ++++++++-------
.../message/receiver/TopologyManager.java | 71 ------------
.../health/HealthEventMessageDelegator.java | 2 +-
.../topology/TopologyEventMessageDelegator.java | 110 -------------------
.../topology/TopologyEventMessageReceiver.java | 56 ----------
.../receiver/topology/TopologyEventQueue.java | 44 --------
.../rule/AutoscalerRuleEvaluator.java | 2 +-
.../autoscaler/rule/ExecutorTaskScheduler.java | 36 +++---
.../distribution/src/main/conf/log4j.properties | 2 +
9 files changed, 69 insertions(+), 342 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
index 45434d7..35e79c5 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
@@ -20,62 +20,70 @@ package org.apache.stratos.autoscaler.internal;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.message.receiver.TopologyManager;
import org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageDelegator;
-import org.apache.stratos.autoscaler.message.receiver.topology.TopologyEventMessageDelegator;
+import org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageReceiver;
import org.apache.stratos.autoscaler.rule.ExecutorTaskScheduler;
+import org.apache.stratos.messaging.broker.subscribe.TopicSubscriber;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageReceiver;
+import org.apache.stratos.messaging.util.Constants;
import org.osgi.service.component.ComponentContext;
/**
- *
* @scr.component name=
- * "org.apache.stratos.autoscaler.internal.AutoscalerServerComponent"
- * immediate="true"
+ * "org.apache.stratos.autoscaler.internal.AutoscalerServerComponent"
+ * immediate="true"
*/
public class AutoscalerServerComponent {
-
+
private static final Log log = LogFactory.getLog(AutoscalerServerComponent.class);
- protected void activate(ComponentContext componentContext) throws Exception {
+ protected void activate(ComponentContext componentContext) throws Exception {
+
+ // Subscribe to all topics
+ TopicSubscriber topologyTopicSubscriber = new TopicSubscriber(Constants.TOPOLOGY_TOPIC);
+ topologyTopicSubscriber.setMessageListener(new TopologyEventMessageReceiver());
+ Thread topologyTopicSubscriberThread = new Thread(topologyTopicSubscriber);
+ topologyTopicSubscriberThread.start();
+ if (log.isDebugEnabled()) {
+ log.debug("Topology event message receiver thread started");
+ }
- log.info("Autoscaler Server Component activated");
+ TopologyEventMessageDelegator tropologyEventMessageDelegator = new TopologyEventMessageDelegator();
+ Thread tropologyDelegatorThread = new Thread(tropologyEventMessageDelegator);
+ tropologyDelegatorThread.start();
- Thread executorThread = new Thread() {
- public void run() {
+ if (log.isDebugEnabled()) {
+ log.debug("Topology message processor thread started");
+ }
- // Subscribe to all topics
- TopologyManager topologyManager = new TopologyManager();
- topologyManager.subscribeAllTopics();
- if (log.isDebugEnabled()) {
- log.debug("Topology event message receiver thread started");
- }
- TopologyEventMessageDelegator tropologyEventMessageDelegator = new TopologyEventMessageDelegator();
- Thread tropologyDelegatorThread = new Thread(tropologyEventMessageDelegator);
- tropologyDelegatorThread.start();
-
- if (log.isDebugEnabled()) {
- log.debug("Topology message processor thread started");
- }
-
- HealthEventMessageDelegator healthEventMessageDelegator = new HealthEventMessageDelegator();
- Thread healthDelegatorThread = new Thread(healthEventMessageDelegator);
- healthDelegatorThread.start();
-
- if (log.isDebugEnabled()) {
- log.debug("Health message processor thread started");
- }
+ TopicSubscriber healthStatTopicSubscriber = new TopicSubscriber(Constants.HEALTH_STAT_TOPIC);
+ healthStatTopicSubscriber.setMessageListener(new HealthEventMessageReceiver());
+ Thread healthStatTopicSubscriberThread = new Thread(healthStatTopicSubscriber);
+ healthStatTopicSubscriberThread.start();
+ if (log.isDebugEnabled()) {
+ log.debug("Health Stat event message receiver thread started");
+ }
- // Start scheduler for running rules
- ExecutorTaskScheduler executor = new ExecutorTaskScheduler();
- executor.start();
- log.info("Rules executor started");
+ HealthEventMessageDelegator healthEventMessageDelegator = new HealthEventMessageDelegator();
+ Thread healthDelegatorThread = new Thread(healthEventMessageDelegator);
+ healthDelegatorThread.start();
- };
- };
- executorThread.start();
-
- }
+ if (log.isDebugEnabled()) {
+ log.debug("Health message processor thread started");
+ }
+ // Start scheduler for running rules
+ ExecutorTaskScheduler executor = new ExecutorTaskScheduler();
+ Thread executorThread = new Thread(executor);
+ executorThread.start();
+ if(log.isDebugEnabled()) {
+ log.debug("Rules executor thread started");
+ }
+ if(log.isInfoEnabled()) {
+ log.info("Autoscaler Server Component activated");
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/TopologyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/TopologyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/TopologyManager.java
deleted file mode 100644
index 93d1f24..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/TopologyManager.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.apache.stratos.autoscaler.message.receiver;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageReceiver;
-import org.apache.stratos.autoscaler.message.receiver.topology.TopologyEventMessageReceiver;
-import org.apache.stratos.messaging.broker.subscribe.TopicSubscriber;
-import org.apache.stratos.messaging.domain.topology.Topology;
-import org.apache.stratos.messaging.util.Constants;
-
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-/**
- * This class will initiate all the subscriber to topics
- */
-public class TopologyManager {
- private static final Log log = LogFactory.getLog(TopologyManager.class);
- private static volatile Topology topology;
- private static volatile ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
- private static volatile ReentrantReadWriteLock.ReadLock readLock = lock.readLock();
- private static volatile ReentrantReadWriteLock.WriteLock writeLock = lock.writeLock();
-
- public static void acquireReadLock() {
- readLock.lock();
- }
-
- public static void releaseReadLock() {
- readLock.unlock();
- }
-
- public static void acquireWriteLock() {
- writeLock.lock();
- }
-
- public static void releaseWriteLock() {
- writeLock.unlock();
- }
-
- public static synchronized Topology getTopology() {
- if (topology == null) {
- synchronized (TopologyManager.class){
- if (topology == null) {
- topology = new Topology();
- }
- }
- }
- return topology;
- }
-
- public void subscribeAllTopics(){
-
- TopicSubscriber topologyTopicSubscriber = new TopicSubscriber(Constants.TOPOLOGY_TOPIC);
- topologyTopicSubscriber.setMessageListener(new TopologyEventMessageReceiver());
- Thread topologyTopicSubscriberThread = new Thread(topologyTopicSubscriber);
- topologyTopicSubscriberThread.start();
-
- if (log.isDebugEnabled()) {
- log.debug("Topology event message receiver thread started");
- }
-
- TopicSubscriber healthStatTopicSubscriber = new TopicSubscriber(Constants.HEALTH_STAT_TOPIC);
- healthStatTopicSubscriber.setMessageListener(new HealthEventMessageReceiver());
- Thread healthStatTopicSubscriberThread = new Thread(healthStatTopicSubscriber);
- healthStatTopicSubscriberThread.start();
-
- if (log.isDebugEnabled()) {
- log.debug("Health Stat event message receiver thread started");
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
index ef44058..ad3f93b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
@@ -24,12 +24,12 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.AutoscalerContext;
import org.apache.stratos.autoscaler.ClusterContext;
import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.autoscaler.message.receiver.TopologyManager;
import org.apache.stratos.autoscaler.policy.PolicyManager;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
import org.apache.stratos.autoscaler.policy.model.LoadThresholds;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Service;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
import javax.jms.TextMessage;
import java.io.BufferedReader;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageDelegator.java
deleted file mode 100644
index 82e24d9..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageDelegator.java
+++ /dev/null
@@ -1,110 +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.autoscaler.message.receiver.topology;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.message.receiver.TopologyManager;
-import org.apache.stratos.messaging.message.processor.topology.*;
-import org.apache.stratos.messaging.util.Constants;
-
-import javax.jms.TextMessage;
-
-
-/**
- * A thread for processing topology messages and updating the topology data structure.
- */
-public class TopologyEventMessageDelegator implements Runnable {
-
- private static final Log log = LogFactory.getLog(TopologyEventMessageDelegator.class);
-
- @Override
- public void run() {
- log.info("Topology event message processor started");
- log.info("Waiting for the complete topology event message...");
- while (true) {
- try {
- // First take the complete topology event
- TextMessage message = TopologyEventQueue.getInstance().take();
-
- // retrieve the header
- String type = message.getStringProperty(Constants.EVENT_CLASS_NAME);
- // retrieve the actual message
- String json = message.getText();
-
- CompleteTopologyEventProcessor completeTopologyEventProcessor = new CompleteTopologyEventProcessor();
- if(completeTopologyEventProcessor.process(type, json, TopologyManager.getTopology())) {
- break;
- }
-
- } catch (Exception e) {
- log.error("Failed to retrieve the full topology.", e);
- throw new RuntimeException("Failed to retrieve the full topology.", e);
- }
- }
-
- // instantiate all the relevant processors
- ServiceCreatedEventProcessor processor1 = new ServiceCreatedEventProcessor();
- ServiceRemovedEventProcessor processor2 = new ServiceRemovedEventProcessor();
- ClusterCreatedEventProcessor processor3 = new ClusterCreatedEventProcessor();
- ClusterRemovedEventProcessor processor4 = new ClusterRemovedEventProcessor();
- InstanceSpawnedEventProcessor processor5 = new InstanceSpawnedEventProcessor();
- MemberStartedEventProcessor processor6 = new MemberStartedEventProcessor();
- MemberActivatedEventProcessor processor7 = new MemberActivatedEventProcessor();
- MemberSuspendedEventProcessor processor8 = new MemberSuspendedEventProcessor();
- MemberTerminatedEventProcessor processor9 = new MemberTerminatedEventProcessor();
-
- // link all the relevant processors in the required order
- processor1.setNext(processor2);
- processor2.setNext(processor3);
- processor3.setNext(processor4);
- processor4.setNext(processor5);
- processor5.setNext(processor6);
- processor6.setNext(processor7);
- processor7.setNext(processor8);
- processor8.setNext(processor9);
-
- while (true) {
- try {
- TextMessage message = TopologyEventQueue.getInstance().take();
-
- // retrieve the header
- String type = message.getStringProperty(Constants.EVENT_CLASS_NAME);
- // retrieve the actual message
- String json = message.getText();
-
- if (log.isDebugEnabled()) {
- log.debug(String.format("Event message received from queue: %s", type));
- }
-
- try {
- TopologyManager.acquireWriteLock();
- processor1.process(type, json, TopologyManager.getTopology());
- } finally {
- TopologyManager.releaseWriteLock();
- }
-
- } catch (Exception e) {
- String error = "Failed to retrieve the topology event message.";
- log.error(error, e);
- throw new RuntimeException(error, e);
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageReceiver.java
deleted file mode 100644
index 2b1f4c9..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventMessageReceiver.java
+++ /dev/null
@@ -1,56 +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.autoscaler.message.receiver.topology;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.util.Constants;
-
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import javax.jms.TextMessage;
-
-public class TopologyEventMessageReceiver implements MessageListener {
-
- private static final Log log = LogFactory.getLog(TopologyEventMessageReceiver.class);
-
- @Override
- public void onMessage(Message message) {
- if (message instanceof TextMessage) {
- TextMessage receivedMessage = (TextMessage) message;
- String header = null;
- try {
- header = receivedMessage.getStringProperty(Constants.EVENT_CLASS_NAME);
- } catch (JMSException e) {
- log.info(e.getMessage());
- }
- try {
- if (log.isDebugEnabled()) {
- log.debug("Message received: " + ((TextMessage) message).getText());
- }
- // Add received message to the queue
- TopologyEventQueue.getInstance().add(receivedMessage);
-
- } catch (JMSException e) {
- log.error(e.getMessage(), e);
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventQueue.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventQueue.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventQueue.java
deleted file mode 100644
index 2c0d022..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/TopologyEventQueue.java
+++ /dev/null
@@ -1,44 +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.autoscaler.message.receiver.topology;
-
-import javax.jms.TextMessage;
-import java.util.concurrent.LinkedBlockingQueue;
-
-/**
- * Implements topology event queue.
- */
-public class TopologyEventQueue extends LinkedBlockingQueue<TextMessage>{
- private static volatile TopologyEventQueue instance;
-
- private TopologyEventQueue(){
- }
-
- public static synchronized TopologyEventQueue getInstance() {
- if (instance == null) {
- synchronized (TopologyEventQueue.class){
- if (instance == null) {
- instance = new TopologyEventQueue ();
- }
- }
- }
- return instance;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 209db3b..bdb4e86 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -23,10 +23,10 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.AutoscalerContext;
import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
-import org.apache.stratos.autoscaler.message.receiver.TopologyManager;
import org.apache.stratos.autoscaler.policy.PolicyManager;
import org.apache.stratos.autoscaler.policy.model.Partition;
import org.apache.stratos.messaging.domain.topology.Service;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.*;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
index 9d78de4..c92996c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
@@ -24,10 +24,10 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.AutoscalerContext;
import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.autoscaler.message.receiver.TopologyManager;
import org.apache.stratos.autoscaler.util.ConfUtil;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Service;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -37,8 +37,8 @@ import java.util.concurrent.TimeUnit;
* This class is responsible for scheduling the task of evaluating the current details of topology, statistics, and health
* status against the rules set(written in Drools)
*/
-public class ExecutorTaskScheduler {
- private static final Log log = LogFactory.getLog(ExecutorTaskScheduler.class);
+public class ExecutorTaskScheduler implements Runnable {
+ private static final Log log = LogFactory.getLog(ExecutorTaskScheduler.class);
private static int initialDelay;
private static int period;
@@ -49,41 +49,39 @@ public class ExecutorTaskScheduler {
period = conf.getInt("autoscaler.rulesEvaluator.schedule.period", Constants.SCHEDULE_DEFAULT_PERIOD);
}
- public void start(){
+ @Override
+ public void run() {
final Runnable rulesEvaluator = new Runnable() {
- public void run() {
+ public void run() {
- try {
+ try {
for (Service service : TopologyManager.getTopology().getServices()) {
AutoscalerRuleEvaluator.getInstance().evaluate(service);
}
- //Remove cluster context if its already removed from Topology
- for(String clusterContextId : AutoscalerContext.getInstance().getClusterContexes().keySet()){
-
+ // Remove cluster context if its already removed from Topology
+ for (String clusterContextId : AutoscalerContext.getInstance().getClusterContexes().keySet()) {
boolean clusterAvailable = false;
for (Service service : TopologyManager.getTopology().getServices()) {
-
- for (Cluster cluster: service.getClusters()) {
-
- if(cluster.getClusterId().equals(clusterContextId)){
+ for (Cluster cluster : service.getClusters()) {
+ if (cluster.getClusterId().equals(clusterContextId)) {
clusterAvailable = true;
}
}
}
- if(!clusterAvailable){
+ if (!clusterAvailable) {
AutoscalerContext.getInstance().removeClusterContext(clusterContextId);
}
}
- } catch (Exception e) {
- log.error("Error ", e);
- }
- }
- };
+ } catch (Exception e) {
+ log.error("Error ", e);
+ }
+ }
+ };
ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
ex.scheduleWithFixedDelay(rulesEvaluator, initialDelay, period, TimeUnit.SECONDS);
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/23c88cdb/products/autoscaler/modules/distribution/src/main/conf/log4j.properties
----------------------------------------------------------------------
diff --git a/products/autoscaler/modules/distribution/src/main/conf/log4j.properties b/products/autoscaler/modules/distribution/src/main/conf/log4j.properties
index 258b9ba..b1b0d70 100644
--- a/products/autoscaler/modules/distribution/src/main/conf/log4j.properties
+++ b/products/autoscaler/modules/distribution/src/main/conf/log4j.properties
@@ -55,6 +55,8 @@ log4j.logger.org.infinispan=WARN
log4j.logger.org.jgroups=ERROR
log4j.logger.me.prettyprint.cassandra.hector.TimingLogger=ERROR
log4j.logger.org.wso2=INFO
+log4j.logger.org.apache.stratos.autoscaler=INFO
+log4j.logger.org.apache.stratos.messaging=INFO
log4j.logger.org.apache.axis2.enterprise=FATAL, CARBON_LOGFILE, CARBON_MEMORY
log4j.logger.org.opensaml.xml=WARN, CARBON_LOGFILE, CARBON_MEMORY
log4j.logger.org.apache.directory.shared.ldap=WARN, CARBON_LOGFILE, CARBON_MEMORY