code: @Override
  	public boolean isMachineRunning( TargetHandlerParameters parameters, String machineId )
  	throws TargetException {
  
  		this.logger.fine( "Verifying the in-memory agent for " + machineId + " is running." );
  		Map<String,String> targetProperties = preventNull( parameters.getTargetProperties());
  
  		// No agent factory => no iPojo instance => not running
  		boolean result = false;
  		if( this.standardAgentFactory != null )
  			result = this.standardAgentFactory.getInstancesNames().contains( machineId );
  
  		// On restoration, in-memory agents will ALL have disappeared.
  		// So, it makes sense to recreate them if they do not exist anymore.
  		// To determine whether we should restore them or no, we look for the model in the manager.
  		if( ! result && ! simulatePlugins( targetProperties )) {
  
  			Map.Entry<String,String> ctx = parseMachineId( machineId );
  			ManagedApplication ma = this.manager.applicationMngr().findManagedApplicationByName( ctx.getValue());
  			Instance scopedInstance = InstanceHelpers.findInstanceByPath( ma.getApplication(), ctx.getKey());
  
  			// Is it supposed to be running?
  			if( scopedInstance.getStatus() != InstanceStatus.NOT_DEPLOYED ) {
  				this.logger.fine( "In-memory agent for " + machineId + " is supposed to be running but is not. It will be restored." );
  				Map<String,String> messagingConfiguration = this.manager.messagingMngr().getMessagingClient().getConfiguration();
  				Factory factory = findIPojoFactory( parameters );
  				createIPojo( targetProperties, messagingConfiguration, machineId, ctx.getKey(), ctx.getValue(), this.manager.getDomain(), factory );
  				result = true;
  				// The agent will restore its model by asking it to the DM.
  			}
  		}
  
  		return result;
  	}
docs: /*
  (non-Javadoc)
  @see net.roboconf.target.api.TargetHandler
  #isMachineRunning(net.roboconf.target.api.TargetHandlerParameters, java.lang.String)