Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB1EnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB1EnergyEstimationPlugin.java	(revision 1415)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB1EnergyEstimationPlugin.java	(revision 1440)
@@ -54,8 +54,8 @@
 		
 		if(powerConsumption > powerCapLevel){
-			DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.POWER_LIMIT_EXCEEDED, null);
+			DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.RESOURCE_POWER_LIMIT_EXCEEDED, null);
 		}
 		else if(powerConsumption < powerUpgradeLevel){
-			DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.POWER_LIMIT_EXCEEDED, null);
+			DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.RESOURCE_POWER_LIMIT_EXCEEDED, null);
 		}
 		return powerConsumption;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/FCFSBF_RandomPluginWithMigration.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/FCFSBF_RandomPluginWithMigration.java	(revision 1415)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/FCFSBF_RandomPluginWithMigration.java	(revision 1440)
@@ -58,5 +58,5 @@
 			}
 			break;
-		case POWER_LIMIT_EXCEEDED:
+		case RESOURCE_POWER_LIMIT_EXCEEDED:
 			String src = event.getSource();
 			optimizeEnergyUsage(jobRegistry, resourceManager , src);
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_PowerCapping_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_PowerCapping_SP.java	(revision 1415)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_PowerCapping_SP.java	(revision 1440)
@@ -88,5 +88,5 @@
 			}
 			break;
-		case POWER_LIMIT_EXCEEDED:
+		case RESOURCE_POWER_LIMIT_EXCEEDED:
 			powerCap(resManager);
 			break;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_PowerCapping_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_PowerCapping_SP.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_PowerCapping_SP.java	(revision 1440)
@@ -84,5 +84,5 @@
 			}
 			break;
-		case POWER_LIMIT_EXCEEDED:
+		case RESOURCE_POWER_LIMIT_EXCEEDED:
 			powerCap(resManager);
 			break;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_PowerCapping_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_PowerCapping_SP.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_PowerCapping_SP.java	(revision 1440)
@@ -84,5 +84,5 @@
 			}
 			break;
-		case POWER_LIMIT_EXCEEDED:
+		case RESOURCE_POWER_LIMIT_EXCEEDED:
 			powerCap(resManager);
 			break;
Index: DCWoRMS/branches/coolemall/src/gridsim/dcworms/DCWormsTags.java
===================================================================
--- DCWoRMS/branches/coolemall/src/gridsim/dcworms/DCWormsTags.java	(revision 1415)
+++ DCWoRMS/branches/coolemall/src/gridsim/dcworms/DCWormsTags.java	(revision 1440)
@@ -36,13 +36,15 @@
 	public static final int RESOURCE_STATE_CHANGED = DCWORMSBASE + 7;
 	
-	public static final int POWER_LIMIT_EXCEEDED = DCWORMSBASE + 8;
+	public static final int RESOURCE_POWER_STATE_CHANGED = DCWORMSBASE + 8;
 	
-	public static final int TASK_PAUSE = DCWORMSBASE + 9;
+	public static final int RESOURCE_POWER_LIMIT_EXCEEDED = DCWORMSBASE + 9;
 	
-	public static final int TASK_RESUME = DCWORMSBASE + 10;
+	public static final int TASK_PAUSE = DCWORMSBASE + 10;
 	
-	public static final int TASK_MIGRATE = DCWORMSBASE + 11;
+	public static final int TASK_RESUME = DCWORMSBASE + 11;
+	
+	public static final int TASK_MIGRATE = DCWORMSBASE + 12;
 
-	public static final int TASK_MOVE = DCWORMSBASE + 12;
+	public static final int TASK_MOVE = DCWORMSBASE + 13;
 	
     public static final int CREATED = 0;
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java	(revision 1432)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java	(revision 1440)
@@ -268,5 +268,4 @@
 				}
 			}
-
 		}
 		
@@ -290,4 +289,8 @@
 						break;
 					}
+					case POWER_STATE_CHANGED: {
+						scheduler.sendInternal(GridSimTags.SCHEDULE_NOW, DCWormsTags.RESOURCE_POWER_STATE_CHANGED, src);
+						break;
+					}
 				}
 
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java	(revision 1423)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java	(revision 1440)
@@ -15,4 +15,6 @@
 import schedframe.resources.computing.profiles.energy.power.PowerUsage;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
+import schedframe.resources.computing.profiles.energy.power.Transition;
+import simulator.DataCenterWorkloadSimulator;
 
 public class ComputingResourcePowerInterface implements PowerInterface{
@@ -28,21 +30,32 @@
 	}
 	
-	public boolean setPowerState(PowerStateName state) {
-		if(!supportPowerState(state))
+	public boolean setPowerState(PowerStateName newState) {
+		if(!supportPowerState(newState))
 			return false;
 			
-		if(state != currentPowerState){
-			currentPowerState = state;
+		if(newState != currentPowerState){
 
-			for(ComputingResource child:resource.getChildren()){
-				if(child.getPowerInterface().supportPowerState(state)){
-					child.getPowerInterface().setPowerState(state);
+			Transition t = getTransition(currentPowerState, newState);
+			if(t == null){
+				currentPowerState = newState;
+			} else{
+				if(t.getTime() <= 0 ){
+					currentPowerState = newState;
+				} else {
+					currentPowerState = t.getName();
+					DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), t.getTime(), new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, newState, resource.getFullName()));
 				}
 			}
 
-			if(state == StandardPowerStateName.OFF){
+			for(ComputingResource child:resource.getChildren()){
+				if(child.getPowerInterface() != null){
+					child.getPowerInterface().setPowerState(currentPowerState);
+				}
+			}
+
+			if(currentPowerState == StandardPowerStateName.OFF || currentPowerState == StandardPowerStateName.POWEROFF || currentPowerState == StandardPowerStateName.BOOT){
 				resource.setStatus(ResourceStatus.UNAVAILABLE);
 			}
-			else if(state == StandardPowerStateName.ON){
+			else if(currentPowerState == StandardPowerStateName.ON){
 				resource.setStatus(ResourceStatus.FREE);
 			}
@@ -74,5 +87,4 @@
 		}
 		return false;
-		
 	}
 	
@@ -114,3 +126,19 @@
 	}
 
+	protected Transition getTransition(PowerStateName from, PowerStateName to){
+		List<PowerState> availablePowerStates = getSupportedPowerStates();
+		Transition transition = null;
+		for(PowerState ps : availablePowerStates){
+			if(ps.getName().getLabel().equals(from.getLabel())){
+				List<Transition> transitions = ps.getTransitions();
+				for(Transition t: transitions){
+					if(t.getTo().getLabel().equals(to.getLabel())){
+						transition = t;
+						break;
+					}
+				}
+			}
+		}
+		return transition;
+	}
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/NodePowerInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/NodePowerInterface.java	(revision 1431)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/NodePowerInterface.java	(revision 1440)
@@ -2,18 +2,7 @@
 
 
-import java.util.List;
-
-
-import schedframe.resources.ResourceStatus;
 import schedframe.resources.computing.ComputingResource;
-import schedframe.resources.computing.Node;
-import schedframe.resources.computing.profiles.energy.ResourceEvent;
-import schedframe.resources.computing.profiles.energy.ResourceEventType;
 import schedframe.resources.computing.profiles.energy.power.PowerProfile;
-import schedframe.resources.computing.profiles.energy.power.PowerState;
-import schedframe.resources.computing.profiles.energy.power.PowerStateName;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
-import schedframe.resources.computing.profiles.energy.power.Transition;
-import simulator.DataCenterWorkloadSimulator;
 
 public class NodePowerInterface extends ComputingResourcePowerInterface{
@@ -24,63 +13,11 @@
 	}
 
-	public boolean setPowerState(PowerStateName state){
-		if(!supportPowerState(state))
-			return false;
-		if(state != currentPowerState){
-			currentPowerState = state;
-			
-			Node node = (Node) resource;
-			for(ComputingResource child: node.getProcessors()){
-				if(child.getPowerInterface() != null){
-					child.getPowerInterface().setPowerState(state);	
-				}
-			}
-
-			if(state == StandardPowerStateName.OFF || state == StandardPowerStateName.POWEROFF || state == StandardPowerStateName.BOOT){
-				node.setStatus(ResourceStatus.UNAVAILABLE);
-			}
-			else if(state == StandardPowerStateName.ON ){
-				node.setStatus(ResourceStatus.FREE);
-			}
-	
-			node.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, node.getFullName()));
-
-			//node.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, computingNode.getName()));
-			//ResourceController.traceResource(new DateTime().getMillis(), resource.getFullName(), "POWER_STATE_CHANGED", state.getName());	
-		}
-		return true;
-	}
-
 	public void turnOn(){
-		/*double timePenalty = getTransitionTime(currentPowerState, StandardPowerStateName.ON);
-		setPowerState(StandardPowerStateName.BOOT);
-		DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), timePenalty, new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, StandardPowerStateName.ON, resource.getFullName()));
-		 */		
 		setPowerState(StandardPowerStateName.ON);
 	}
 	
 	public void turnOff(){
-		/*double timePenalty = getTransitionTime(currentPowerState, StandardPowerStateName.OFF);
-		setPowerState(StandardPowerStateName.POWEROFF);
-		DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), timePenalty, new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, StandardPowerStateName.OFF, resource.getFullName()));*/
 		setPowerState(StandardPowerStateName.OFF);
 	}
 
-	private double getTransitionTime(PowerStateName from, PowerStateName to){
-		List<PowerState> availablePowerStates = getSupportedPowerStates();
-		double time = 0;
-		for(PowerState ps : availablePowerStates){
-			if(ps.getName().getLabel().equals(from.getLabel())){
-				List<Transition> transitions = ps.getTransitions();
-				for(Transition t: transitions){
-					if(t.getTo().getLabel().equals(to)){
-						time = t.getTime();
-					}
-				}
-			}
-		}
-		return time;
-	}
-
-
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/events/scheduling/SchedulingEventType.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/events/scheduling/SchedulingEventType.java	(revision 1415)
+++ DCWoRMS/branches/coolemall/src/schedframe/events/scheduling/SchedulingEventType.java	(revision 1440)
@@ -32,6 +32,7 @@
 
 	RESOURCE_STATE_CHANGED,
+	RESOURCE_POWER_STATE_CHANGED,
 	
-	POWER_LIMIT_EXCEEDED;
+	RESOURCE_POWER_LIMIT_EXCEEDED;
 
 	
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java	(revision 1430)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java	(revision 1440)
@@ -95,13 +95,14 @@
 
 		int tag = ev.get_tag();
+		SchedulingEvent event;
+		SchedulingPlanInterface<?> decision;
 		switch (tag) {
-
 		case DCWormsTags.TIMER:
-			if (pluginSupportsEvent(tag)) {
-				SchedulingEvent event = new SchedulingEvent(SchedulingEventType.TIMER);
-				SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event, 
-						queues, jobRegistry, getResourceManager(), moduleList);
-				executeSchedulingPlan(decision);
-			}
+
+			event = new SchedulingEvent(SchedulingEventType.TIMER);
+			decision =  schedulingPlugin.schedule(event, 
+					queues, jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
+
 			sendTimerEvent();
 			break;
@@ -111,10 +112,10 @@
 			try {
 				execTask.setStatus(DCWormsTags.READY);
-				if (pluginSupportsEvent(tag)) {
-					SchedulingEvent event = new StartTaskExecutionEvent(execTask.getJobId(), execTask.getId());
-					SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event,
-							queues, jobRegistry, getResourceManager(), moduleList);
-					executeSchedulingPlan(decision);
-				}
+
+				event = new StartTaskExecutionEvent(execTask.getJobId(), execTask.getId());
+				decision =  schedulingPlugin.schedule(event,
+						queues, jobRegistry, getResourceManager(), moduleList);
+				executeSchedulingPlan(decision);
+
 			} catch (Exception e) {
 				e.printStackTrace();
@@ -128,10 +129,8 @@
 				finalizeExecutable(execTask);
 				sendFinishedWorkloadUnit(execTask);
-				if (pluginSupportsEvent(tag)) {
-					SchedulingEvent event = new TaskFinishedEvent(execTask.getJobId(), execTask.getId());
-					SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event,
-							queues, jobRegistry, getResourceManager(), moduleList);
-					executeSchedulingPlan(decision);
-				}
+				event = new TaskFinishedEvent(execTask.getJobId(), execTask.getId());
+				decision = schedulingPlugin.schedule(event,
+						queues, jobRegistry, getResourceManager(), moduleList);
+				executeSchedulingPlan(decision);
 			}
 
@@ -155,10 +154,8 @@
 		case DCWormsTags.TASK_REQUESTED_TIME_EXPIRED:
 			execTask = (Executable) ev.get_data();
-			if (pluginSupportsEvent(tag)) {
-				SchedulingEvent event = new TaskRequestedTimeExpiredEvent(execTask.getJobId(), execTask.getId());
-				SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event,
-						queues, jobRegistry, getResourceManager(), moduleList);
-				executeSchedulingPlan(decision);
-			}
+			event = new TaskRequestedTimeExpiredEvent(execTask.getJobId(), execTask.getId());
+			decision = schedulingPlugin.schedule(event,
+					queues, jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
 			break;
 			
@@ -167,12 +164,11 @@
 			execTask = jobRegistry.getTask(ids[0], ids[1]);
 			pauseTask(execTask);
-			if (pluginSupportsEvent(tag)) {
-				SchedulingEvent event = new TaskPausedEvent(ids[0], ids[1]);
-				SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event,
-						queues, jobRegistry, getResourceManager(), moduleList);
-				executeSchedulingPlan(decision);
-			}
-		}
-		break;
+	
+			event = new TaskPausedEvent(ids[0], ids[1]);
+			decision = schedulingPlugin.schedule(event,
+					queues, jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
+			}
+			break;
 		
 		case DCWormsTags.TASK_RESUME:{
@@ -180,12 +176,10 @@
 			execTask = jobRegistry.getTask(ids[0], ids[1]);
 			resumeTask(execTask, execTask.getAllocatedResources().getLast().getResourceUnits(), true);
-			if (pluginSupportsEvent(tag)) {
-				SchedulingEvent event = new TaskResumedEvent(ids[0], ids[1]);
-				SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event,
-						queues, jobRegistry, getResourceManager(), moduleList);
-				executeSchedulingPlan(decision);
-			}
-		}
-		break;
+			event = new TaskResumedEvent(ids[0], ids[1]);
+			decision = schedulingPlugin.schedule(event,
+					queues, jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
+			}
+			break;
 		
 		case DCWormsTags.TASK_MIGRATE:{
@@ -195,6 +189,6 @@
 					(String)data[1]), execTask, execTask.getAllocatedResources().getLast().getResourceUnits(), (Map<ResourceUnitName, ResourceUnit>)data[2]);
 			scheduler.sendInternal(migrationTime, DCWormsTags.TASK_MOVE, data);
-		}
-		break;
+			}
+			break;
 		
 		case DCWormsTags.TASK_MOVE:{
@@ -202,39 +196,41 @@
 			execTask = jobRegistry.getTask((String)data[0], (String)data[1]);
 			moveTask(execTask, (Map<ResourceUnitName, ResourceUnit>)data[2]);
-			if (pluginSupportsEvent(tag)) {
-				SchedulingEvent event = new StartTaskExecutionEvent((String)data[0], (String)data[1]);
-				SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event,
-						queues, jobRegistry, getResourceManager(), moduleList);
-				executeSchedulingPlan(decision);
-			}
-		}
-		break;
-			
+
+			event = new StartTaskExecutionEvent((String)data[0], (String)data[1]);
+			decision = schedulingPlugin.schedule(event,
+					queues, jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
+			}
+			break;
+			
+		case DCWormsTags.RESOURCE_POWER_STATE_CHANGED:
+			event = new SchedulingEvent(SchedulingEventType.RESOURCE_POWER_STATE_CHANGED);
+			decision =  schedulingPlugin.schedule(event, 
+					queues, jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
+			break;
+
+		case DCWormsTags.RESOURCE_POWER_LIMIT_EXCEEDED:
+			event = new SchedulingEvent(SchedulingEventType.RESOURCE_POWER_LIMIT_EXCEEDED);
+			String source;
+			try{
+				source = ev.get_data().toString();
+			} catch(Exception e){
+				source = null;
+			}
+			event.setSource(source);
+			decision = schedulingPlugin.schedule(event,
+					queues, jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
+			break;
 		case DCWormsTags.TASK_EXECUTION_CHANGED:
 			execTask = (ExecTask) ev.get_data();
 			updateTaskExecutionPhase(execTask);
 			break;
-
 		case DCWormsTags.UPDATE_PROCESSING:
 			updateProcessingTimes();
 			break;
 			
-		case DCWormsTags.POWER_LIMIT_EXCEEDED:
-			if (pluginSupportsEvent(tag)) {
-				SchedulingEvent event = new SchedulingEvent(SchedulingEventType.POWER_LIMIT_EXCEEDED);
-				String source;
-				try{
-					source = ev.get_data().toString();
-				} catch(Exception e){
-					source = null;
-				}
-				event.setSource(source);
-				SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event,
-						queues, jobRegistry, getResourceManager(), moduleList);
-				executeSchedulingPlan(decision);
-			}
-			break;
 		default: 		
-			
 			break;
 		}
@@ -301,13 +297,13 @@
 	
 	public void notifyReturnedWorkloadUnit(WorkloadUnit wu) {
-		if (pluginSupportsEvent(DCWormsTags.TASK_EXECUTION_FINISHED)) {
-			SchedulingEvent event = new SchedulingEvent(SchedulingEventType.TASK_FINISHED);
-			SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event,
-					queues, jobRegistry, getResourceManager(), moduleList);
-			executeSchedulingPlan(decision);
-		}
-		//if(scheduler.getParent() != null){
-			sendFinishedWorkloadUnit(wu);
-		//}
+
+		SchedulingEvent event = new SchedulingEvent(SchedulingEventType.TASK_FINISHED);
+		SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event,
+				queues, jobRegistry, getResourceManager(), moduleList);
+		executeSchedulingPlan(decision);
+
+	//if(scheduler.getParent() != null){
+		sendFinishedWorkloadUnit(wu);
+	//}
 	}
 	
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/global/GlobalManagementSystem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/global/GlobalManagementSystem.java	(revision 1415)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/global/GlobalManagementSystem.java	(revision 1440)
@@ -60,10 +60,9 @@
 
 		case DCWormsTags.TIMER:
-			if (pluginSupportsEvent(DCWormsTags.TIMER)) {
-				TimerEvent event = new  TimerEvent();
-				SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event, 
-						queues,  jobRegistry, getResourceManager(), moduleList);
-				executeSchedulingPlan(decision);
-			}
+			TimerEvent event = new  TimerEvent();
+			SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event, 
+					queues,  jobRegistry, getResourceManager(), moduleList);
+			executeSchedulingPlan(decision);
+
 			sendTimerEvent();
 			break;
@@ -72,12 +71,5 @@
 	
 	public void notifySubmittedWorkloadUnit(WorkloadUnit wu) {
-		if (!pluginSupportsEvent(GridSimTags.GRIDLET_SUBMIT)) {
-			log.error("Plugin " + schedulingPlugin.getClass()
-					+ " does not provide support for TASK_ARRIVED event.\n"
-					+ "Check plugin configuration or use default one.");
-			return;
-		}
 		registerWorkloadUnit(wu);
-
 	}
 	
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/AbstractManagementSystem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/AbstractManagementSystem.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/AbstractManagementSystem.java	(revision 1440)
@@ -124,8 +124,4 @@
 	}
 
-	public boolean pluginSupportsEvent(int eventType){
-		return true;
-	}
-
 	public TaskQueueList getQueues(){
 		return queues;
