anchor.diff:  * QueryDefinition - represents definion of the data set which consists of unique name, sql expression (the query) and source - JNDI name of the data source to use when performing queries
   * QueryParam - basic structure that represents individual query parameter - condition - that consists of: column name, operator, expected value(s)
   * QueryResultMapper - responsible for mapping raw data set data (rows and columns) into object representation
  -* QueryParamBuilder - responsible for building query filters that will be applied on the query definition for given query invocation 
  -
  -While QueryDefinition and QueryParam is rather straight forward, QueryParamBuilder and QueryResultMapper is bit more advanced and require slightly more attention to make use of it in right way, and by that take advantage of their capabilities. 
  +* QueryParamBuilder - responsible for building query filters that will be applied on the query definition for given query invocation
  +
  +While QueryDefinition and QueryParam is rather straight forward, QueryParamBuilder and QueryResultMapper is bit more advanced and require slightly more attention to make use of it in right way, and by that take advantage of their capabilities.
   
   
   
  
positive.code: [source,java]
  ----
  public interface RuntimeDataService {
    
      // Process instance information
      
      Collection<ProcessInstanceDesc> getProcessInstances(QueryContext queryContext);
     
      Collection<ProcessInstanceDesc> getProcessInstances(List<Integer> states, String initiator, QueryContext queryContext);
     
      Collection<ProcessInstanceDesc> getProcessInstancesByProcessId(List<Integer> states, String processId, String initiator, QueryContext queryContext);
     
      Collection<ProcessInstanceDesc> getProcessInstancesByProcessName(List<Integer> states, String processName, String initiator, QueryContext queryContext);
      
      Collection<ProcessInstanceDesc> getProcessInstancesByDeploymentId(String deploymentId, List<Integer> states, QueryContext queryContext);
      
      ProcessInstanceDesc getProcessInstanceById(long processInstanceId);
      
      Collection<ProcessInstanceDesc> getProcessInstancesByProcessDefinition(String processDefId, QueryContext queryContext);
      
      Collection<ProcessInstanceDesc> getProcessInstancesByProcessDefinition(String processDefId, List<Integer> states, QueryContext queryContext);
  
      
      // Node and Variable instance information
     
      NodeInstanceDesc getNodeInstanceForWorkItem(Long workItemId);
  
      Collection<NodeInstanceDesc> getProcessInstanceHistoryActive(long processInstanceId, QueryContext queryContext);
  
negative.code: ----
  // create deployment unit by giving GAV
  DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
  // deploy
  deploymentService.deploy(deploymentUnit);
  // retrieve deployed unit
  DeployedUnit deployed = deploymentService.getDeployedUnit(deploymentUnit.getIdentifier());
  // get runtime manager
  RuntimeManager manager = deployed.getRuntimeManager();
  