jBPM distribution 6.0.0.CR1

org.jbpm.runtime.manager.impl
Class SingletonRuntimeManager

java.lang.Object
  extended by org.jbpm.runtime.manager.impl.AbstractRuntimeManager
      extended by org.jbpm.runtime.manager.impl.SingletonRuntimeManager
All Implemented Interfaces:
RuntimeManager, org.kie.internal.runtime.manager.InternalRuntimeManager

public class SingletonRuntimeManager
extends AbstractRuntimeManager

RuntimeManager that is backed by "Singleton" strategy meaning only one RuntimeEngine instance will exist for for given RuntimeManager instance. The RuntimeEngine will be synchronized to make sure it will work properly in multi-thread environments but might cause some performance issues due to sequential execution.
Important aspect of this manager is that it will persists it's identifier as temporary file to keep track of the KieSession it was using to maintain its state - for example session state such as facts, etc. the mentioned file is named as follows:
manager.getIdentifier()-jbpmSessionId.ser for example for default named manager it will be:
default-singleton-jbpmSessionId.ser
The location of the file can be one of the following, it is resolved in below order:

In case there is a need to reset the state, simply removing of the *-jbpm.SessionId.ser from the mentioned location will do the trick.


Field Summary
 
Fields inherited from class org.jbpm.runtime.manager.impl.AbstractRuntimeManager
activeManagers, environment, identifier
 
Constructor Summary
SingletonRuntimeManager()
           
SingletonRuntimeManager(org.kie.internal.runtime.manager.RuntimeEnvironment environment, org.kie.internal.runtime.manager.SessionFactory factory, org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory, String identifier)
           
 
Method Summary
 void close()
           
 void disposeRuntimeEngine(RuntimeEngine runtime)
           
 org.kie.internal.runtime.manager.SessionFactory getFactory()
           
protected  String getLocation()
           
protected  int getPersistedSessionId(String location, String identifier)
          Retrieves session id from serialized file named jbpmSessionId.ser from given location.
 RuntimeEngine getRuntimeEngine(Context context)
           
 org.kie.internal.runtime.manager.TaskServiceFactory getTaskServiceFactory()
           
 void init()
           
protected  void persistSessionId(String location, String identifier, int ksessionId)
          Stores gives ksessionId in a serialized file in given location under jbpmSessionId.ser file name
 void setFactory(org.kie.internal.runtime.manager.SessionFactory factory)
           
 void setTaskServiceFactory(org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory)
           
 void validate(KieSession ksession, Context<?> context)
           
 
Methods inherited from class org.jbpm.runtime.manager.impl.AbstractRuntimeManager
attachManager, configureRuntimeOnTaskService, getEnvironment, getIdentifier, registerDisposeCallback, registerItems, removeRuntimeFromTaskService, setEnvironment, setIdentifier
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SingletonRuntimeManager

public SingletonRuntimeManager()

SingletonRuntimeManager

public SingletonRuntimeManager(org.kie.internal.runtime.manager.RuntimeEnvironment environment,
                               org.kie.internal.runtime.manager.SessionFactory factory,
                               org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory,
                               String identifier)
Method Detail

init

public void init()
Specified by:
init in class AbstractRuntimeManager

getRuntimeEngine

public RuntimeEngine getRuntimeEngine(Context context)

validate

public void validate(KieSession ksession,
                     Context<?> context)
              throws IllegalStateException
Throws:
IllegalStateException

disposeRuntimeEngine

public void disposeRuntimeEngine(RuntimeEngine runtime)

close

public void close()
Specified by:
close in interface RuntimeManager
Overrides:
close in class AbstractRuntimeManager

getPersistedSessionId

protected int getPersistedSessionId(String location,
                                    String identifier)
Retrieves session id from serialized file named jbpmSessionId.ser from given location.

Parameters:
location - directory where jbpmSessionId.ser file should be
identifier - of the manager owning this ksessionId
Returns:
sessionId if file was found otherwise 0

persistSessionId

protected void persistSessionId(String location,
                                String identifier,
                                int ksessionId)
Stores gives ksessionId in a serialized file in given location under jbpmSessionId.ser file name

Parameters:
location - directory where serialized file should be stored
identifier - of the manager owning this ksessionId
ksessionId - value of ksessionId to be stored

getLocation

protected String getLocation()

getFactory

public org.kie.internal.runtime.manager.SessionFactory getFactory()

setFactory

public void setFactory(org.kie.internal.runtime.manager.SessionFactory factory)

getTaskServiceFactory

public org.kie.internal.runtime.manager.TaskServiceFactory getTaskServiceFactory()

setTaskServiceFactory

public void setTaskServiceFactory(org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory)

jBPM distribution 6.0.0.CR1

Copyright © 2001-2013 JBoss by Red Hat. All Rights Reserved.