package org.drools.runtime.process;
import org.drools.common.AbstractWorkingMemory;
import org.drools.util.ServiceRegistryImpl;
public class ProcessRuntimeFactory {
private static ProcessRuntimeFactoryService provider;
public static InternalProcessRuntime newProcessRuntime(AbstractWorkingMemory workingMemory) {
return getProcessRuntimeFactoryService().newProcessRuntime(workingMemory);
}
public static synchronized void setProcessRuntimeFactoryService(ProcessRuntimeFactoryService provider) {
ProcessRuntimeFactory.provider = provider;
}
public static synchronized ProcessRuntimeFactoryService getProcessRuntimeFactoryService() {
if (provider == null) {
loadProvider();
}
return provider;
}
private static void loadProvider() {
ServiceRegistryImpl.getInstance().addDefault( ProcessRuntimeFactoryService.class, "org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl" );
setProcessRuntimeFactoryService(ServiceRegistryImpl.getInstance().get( ProcessRuntimeFactoryService.class ) );
}
}