anchor.diff:  
   == Quartz-based Timer Service
   
  -jBPM provides a cluster-ready timer service via Quartz, allowing you to dispose or load your KIE session at any time.  In order to fire each timer appropriately, this service can be utilized to manage how long a kie session should be active.  
  +jBPM provides a cluster-ready timer service via Quartz, allowing you to dispose or load your KIE session at any time.  In order to fire each timer appropriately, this service can be utilized to manage how long a kie session should be active.
   
   A base Quartz configuration file in the case of a clustered environment is provided as an example below:
   
   [source,xml]
   ----
   #============================================================================
  -# Configure Main Scheduler Properties  
  +# Configure Main Scheduler Properties
   #============================================================================
   
   org.quartz.scheduler.instanceName = jBPMClusteredScheduler
   org.quartz.scheduler.instanceId = AUTO
   
   #============================================================================
  -# Configure ThreadPool  
  +# Configure ThreadPool
   #============================================================================
   
   org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
  
positive.code: [source,java]
  ----
  public interface DefinitionService {
  	
      ProcessDefinition buildProcessDefinition(String deploymentId, String bpmn2Content,
  			ClassLoader classLoader, boolean cache) throws IllegalArgumentException;
  
      ProcessDefinition getProcessDefinition(String deploymentId, String processId);
      
      Collection<String> getReusableSubProcesses(String deploymentId, String processId);
      
      Map<String, String> getProcessVariables(String deploymentId, String processId);
      
      Map<String, String> getServiceTasks(String deploymentId, String processId);
      
      Map<String, Collection<String>> getAssociatedEntities(String deploymentId, String processId);
      
      Collection<UserTaskDefinition> getTasksDefinitions(String deploymentId, String processId);
      
      Map<String, String> getTaskInputMappings(String deploymentId, String processId, String taskName);
      
      Map<String, String> getTaskOutputMappings(String deploymentId, String processId, String taskName);
  	
  }
  ----
  
  
negative.code: public interface DeploymentService {
  
      void deploy(DeploymentUnit unit);
  
      void undeploy(DeploymentUnit unit);
  
      RuntimeManager getRuntimeManager(String deploymentUnitId);
  
      DeployedUnit getDeployedUnit(String deploymentUnitId);
  
      Collection<DeployedUnit> getDeployedUnits();
  
      void activate(String deploymentId);
  
      void deactivate(String deploymentId);
  
      boolean isDeployed(String deploymentUnitId);
  }
  ----
  