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