use of org.jbpm.runtime.manager.impl.SimpleRegisterableItemsFactory in project jbpm by kiegroup.
the class JbpmJUnitBaseTestCase method createRuntimeManager.
/**
* Creates default configuration of <code>RuntimeManager</code> with given <code>strategy</code> and all
* <code>resources</code> being added to knowledge base.
* <br/>
* There should be only one <code>RuntimeManager</code> created during single test.
* @param strategy - selected strategy of those that are supported
* @param resources - resources that shall be added to knowledge base
* @param identifier - identifies the runtime manager
* @return new instance of RuntimeManager
*/
protected RuntimeManager createRuntimeManager(Strategy strategy, Map<String, ResourceType> resources, String identifier) {
if (manager != null) {
throw new IllegalStateException("There is already one RuntimeManager active");
}
RuntimeEnvironmentBuilder builder = null;
if (!setupDataSource) {
builder = RuntimeEnvironmentBuilder.Factory.get().newEmptyBuilder().addConfiguration("drools.processSignalManagerFactory", DefaultSignalManagerFactory.class.getName()).addConfiguration("drools.processInstanceManagerFactory", DefaultProcessInstanceManagerFactory.class.getName()).registerableItemsFactory(new SimpleRegisterableItemsFactory() {
@Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = new HashMap<String, WorkItemHandler>();
handlers.putAll(super.getWorkItemHandlers(runtime));
handlers.putAll(customHandlers);
return handlers;
}
@Override
public List<ProcessEventListener> getProcessEventListeners(RuntimeEngine runtime) {
List<ProcessEventListener> listeners = super.getProcessEventListeners(runtime);
listeners.addAll(customProcessListeners);
return listeners;
}
@Override
public List<AgendaEventListener> getAgendaEventListeners(RuntimeEngine runtime) {
List<AgendaEventListener> listeners = super.getAgendaEventListeners(runtime);
listeners.addAll(customAgendaListeners);
return listeners;
}
@Override
public List<TaskLifeCycleEventListener> getTaskListeners() {
List<TaskLifeCycleEventListener> listeners = super.getTaskListeners();
listeners.addAll(customTaskListeners);
return listeners;
}
});
} else if (sessionPersistence) {
builder = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder().entityManagerFactory(emf).registerableItemsFactory(new DefaultRegisterableItemsFactory() {
@Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = new HashMap<String, WorkItemHandler>();
handlers.putAll(super.getWorkItemHandlers(runtime));
handlers.putAll(customHandlers);
return handlers;
}
@Override
public List<ProcessEventListener> getProcessEventListeners(RuntimeEngine runtime) {
List<ProcessEventListener> listeners = super.getProcessEventListeners(runtime);
listeners.addAll(customProcessListeners);
return listeners;
}
@Override
public List<AgendaEventListener> getAgendaEventListeners(RuntimeEngine runtime) {
List<AgendaEventListener> listeners = super.getAgendaEventListeners(runtime);
listeners.addAll(customAgendaListeners);
return listeners;
}
@Override
public List<TaskLifeCycleEventListener> getTaskListeners() {
List<TaskLifeCycleEventListener> listeners = super.getTaskListeners();
listeners.addAll(customTaskListeners);
return listeners;
}
});
} else {
builder = RuntimeEnvironmentBuilder.Factory.get().newDefaultInMemoryBuilder().entityManagerFactory(emf).registerableItemsFactory(new DefaultRegisterableItemsFactory() {
@Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = new HashMap<String, WorkItemHandler>();
handlers.putAll(super.getWorkItemHandlers(runtime));
handlers.putAll(customHandlers);
return handlers;
}
@Override
public List<ProcessEventListener> getProcessEventListeners(RuntimeEngine runtime) {
List<ProcessEventListener> listeners = super.getProcessEventListeners(runtime);
listeners.addAll(customProcessListeners);
return listeners;
}
@Override
public List<AgendaEventListener> getAgendaEventListeners(RuntimeEngine runtime) {
List<AgendaEventListener> listeners = super.getAgendaEventListeners(runtime);
listeners.addAll(customAgendaListeners);
return listeners;
}
@Override
public List<TaskLifeCycleEventListener> getTaskListeners() {
List<TaskLifeCycleEventListener> listeners = super.getTaskListeners();
listeners.addAll(customTaskListeners);
return listeners;
}
});
}
builder.userGroupCallback(userGroupCallback);
for (Entry<String, Object> envEntry : customEnvironmentEntries.entrySet()) {
builder.addEnvironmentEntry(envEntry.getKey(), envEntry.getValue());
}
for (Map.Entry<String, ResourceType> entry : resources.entrySet()) {
builder.addAsset(ResourceFactory.newClassPathResource(entry.getKey()), entry.getValue());
}
return createRuntimeManager(strategy, resources, builder.get(), identifier);
}
Aggregations