Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| jBPM distribution 6.2.0.CR2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jbpm.runtime.manager.impl
Class PerRequestRuntimeManager

    java.lang.Object
      org.jbpm.runtime.manager.impl.AbstractRuntimeManager
          org.jbpm.runtime.manager.impl.PerRequestRuntimeManager

All Implemented Interfaces:
  RuntimeManager, org.kie.internal.runtime.manager.InternalRuntimeManager

    public class PerRequestRuntimeManager

extends AbstractRuntimeManager

A RuntimeManager implementation that is backed by the "Per Request" strategy. This means that for every call to `getRuntimeEngine`, a new instance will be delivered with brand new KieSession and TaskService. The only exception to this is when this is invoked within the same transaction from different places. In that case, the manager caches the currently active instance in a ThreadLocal instane to avoid concurrent modifications or "loss" of data. Disposing of the runtime engine manager will ensure that it is destroyed as well, so that it will get removed from the database to avoid outdated data.
This implementation does not require any special `Context` to proceed.

Field Summary

Fields inherited from class org.jbpm.runtime.manager.impl.AbstractRuntimeManager
`cacheManager, closed, deploymentDescriptor, engineInitEager, environment, identifier, registry, securityManager`

Constructor Summary
`PerRequestRuntimeManager(RuntimeEnvironment environment, org.kie.internal.runtime.manager.SessionFactory factory, org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory, String identifier)`

Method Summary
`void` | `close()` Closes `RuntimeManager` and releases it's resources.
`void` | `disposeRuntimeEngine(RuntimeEngine runtime)` Disposes `RuntimeEngine` and notifies all listeners about that fact.
`org.kie.internal.runtime.manager.SessionFactory` | `getFactory()`
`RuntimeEngine` | `getRuntimeEngine(Context<?> context)` Returns `RuntimeEngine` instance that is fully initialized: KiseSession is created or loaded depending on the strategy TaskService is initialized and attached to ksession (via listener) WorkItemHandlers are initialized and registered on ksession EventListeners (process, agenda, working memory) are initialized and added to ksession
`org.kie.internal.runtime.manager.TaskServiceFactory` | `getTaskServiceFactory()`
`void` | `init()`
`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, canDestroy, checkPermission, close, configureRuntimeOnTaskService, getCacheManager, getDeploymentDescriptor, getEnvironment, getIdentifier, getTransactionManager, hasEnvironmentEntry, isClosed, registerDisposeCallback, registerItems, removeRuntimeFromTaskService, setCacheManager, setDeploymentDescriptor, setEnvironment, setIdentifier, setSecurityManager`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PerRequestRuntimeManager

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

Method Detail

### getRuntimeEngine

    public RuntimeEngine getRuntimeEngine(Context<?> context)

  Description copied from interface: `RuntimeManager`
  Returns `RuntimeEngine` instance that is fully initialized:
  - KiseSession is created or loaded depending on the strategy
  - TaskService is initialized and attached to ksession (via listener)
  - WorkItemHandlers are initialized and registered on ksession
  - EventListeners (process, agenda, working memory) are initialized and added to ksession

  Parameters:
    `context` - the concrete implementation of the context that is supported by given `RuntimeManager`
  Returns:
    instance of the `RuntimeEngine`

### validate

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

  Throws:
    `IllegalStateException`

### disposeRuntimeEngine

    public void disposeRuntimeEngine(RuntimeEngine runtime)

  Description copied from interface: `RuntimeManager`
  Disposes `RuntimeEngine` and notifies all listeners about that fact. This method should always be used to dispose `RuntimeEngine` that is not needed anymore.
  ksession.dispose() shall never be used with RuntimeManager as it will break the internal mechanisms of the manager responsible for clear and efficient disposal.
  Dispose is not needed if `RuntimeEngine` was obtained within active JTA transaction, this means that when getRuntimeEngine method was invoked during active JTA transaction then dispose of the runtime engine will happen automatically on transaction completion.

### close

    public void close()

  Description copied from interface: `RuntimeManager`
  Closes `RuntimeManager` and releases it's resources. Shall always be called when runtime manager is not needed any more. Otherwise it will still be active and operational.

  Specified by:
    `close` in interface `RuntimeManager`
  Overrides:
    `close` in class `AbstractRuntimeManager`

### 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)

### init

    public void init()

  Specified by:
    `init` in class `AbstractRuntimeManager`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| jBPM distribution 6.2.0.CR2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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