Package org.jbpm.persistence.processinstance

## Class JPAProcessInstanceManager

- java.lang.Object
- - org.jbpm.persistence.processinstance.JPAProcessInstanceManager

- All Implemented Interfaces:
    `ProcessInstanceManager`

      public class JPAProcessInstanceManager
      extends Object
      implements ProcessInstanceManager

  This is an implementation of the `ProcessInstanceManager` that uses JPA. What's important to remember here is that we have a jbpm-console which has 1 static (stateful) knowledge session which is used by multiple threads: each request sent to the jbpm-console is picked up in it's own thread. This means that multiple threads can be using the same instance of this class.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JPAProcessInstanceManager()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance, org.kie.internal.process.CorrelationKey correlationKey)` |
    `void` | `clearProcessInstances()` |
    `void` | `clearProcessInstancesState()` |
    `protected org.jbpm.persistence.api.integration.InstanceView<org.kie.api.runtime.process.ProcessInstance>` | `getInstanceViewFor​(org.kie.api.runtime.process.ProcessInstance pi)` |
    `org.kie.api.runtime.process.ProcessInstance` | `getProcessInstance​(long id)` |
    `org.kie.api.runtime.process.ProcessInstance` | `getProcessInstance​(long id, boolean readOnly)` |
    `org.kie.api.runtime.process.ProcessInstance` | `getProcessInstance​(org.kie.internal.process.CorrelationKey correlationKey)` |
    `Collection<org.kie.api.runtime.process.ProcessInstance>` | `getProcessInstances()` |
    `void` | `internalAddProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance)` |
    `void` | `internalRemoveProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance)` |
    `void` | `removeProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance)` |
    `void` | `setKnowledgeRuntime​(org.drools.core.common.InternalKnowledgeRuntime kruntime)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### JPAProcessInstanceManager

          public JPAProcessInstanceManager()

  - ### Method Detail

    - #### setKnowledgeRuntime

          public void setKnowledgeRuntime​(org.drools.core.common.InternalKnowledgeRuntime kruntime)

    - #### addProcessInstance

          public void addProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance,
                                         org.kie.internal.process.CorrelationKey correlationKey)

      Specified by:
        `addProcessInstance` in interface `ProcessInstanceManager`

    - #### internalAddProcessInstance

          public void internalAddProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance)

      Specified by:
        `internalAddProcessInstance` in interface `ProcessInstanceManager`

    - #### getProcessInstance

          public org.kie.api.runtime.process.ProcessInstance getProcessInstance​(long id)

      Specified by:
        `getProcessInstance` in interface `ProcessInstanceManager`

    - #### getProcessInstance

          public org.kie.api.runtime.process.ProcessInstance getProcessInstance​(long id,
                                                                                boolean readOnly)

      Specified by:
        `getProcessInstance` in interface `ProcessInstanceManager`

    - #### getProcessInstances

          public Collection<org.kie.api.runtime.process.ProcessInstance> getProcessInstances()

      Specified by:
        `getProcessInstances` in interface `ProcessInstanceManager`

    - #### removeProcessInstance

          public void removeProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance)

      Specified by:
        `removeProcessInstance` in interface `ProcessInstanceManager`

    - #### internalRemoveProcessInstance

          public void internalRemoveProcessInstance​(org.kie.api.runtime.process.ProcessInstance processInstance)

      Specified by:
        `internalRemoveProcessInstance` in interface `ProcessInstanceManager`

    - #### clearProcessInstances

          public void clearProcessInstances()

      Specified by:
        `clearProcessInstances` in interface `ProcessInstanceManager`

    - #### clearProcessInstancesState

          public void clearProcessInstancesState()

      Specified by:
        `clearProcessInstancesState` in interface `ProcessInstanceManager`

    - #### getProcessInstance

          public org.kie.api.runtime.process.ProcessInstance getProcessInstance​(org.kie.internal.process.CorrelationKey correlationKey)

      Specified by:
        `getProcessInstance` in interface `ProcessInstanceManager`

    - #### getInstanceViewFor

          protected org.jbpm.persistence.api.integration.InstanceView<org.kie.api.runtime.process.ProcessInstance> getInstanceViewFor​(org.kie.api.runtime.process.ProcessInstance pi)