Package org.kie.api.runtime.manager

## Interface RuntimeManagerFactory

-     public interface RuntimeManagerFactory

  Factory that produces instances of `RuntimeManager`. It allows to produce runtime managers based on predefined strategies:
  - Singleton
  - PerRequest
  - PerProcessInstance
  By default uses `org.jbpm.runtime.manager.impl.RuntimeManagerFactoryImpl` as implementation of the factory but can be overridden using system property `org.jbpm.runtime.manager.class` that should provide fully qualified class name of the class that implements this factory.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `RuntimeManagerFactory.Factory` | A Factory for this RuntimeManagerFactory

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `RuntimeManager` | `newPerCaseRuntimeManager​(RuntimeEnvironment environment)` | Produces new instance of per case `RuntimeManager` with default identifier.
    `RuntimeManager` | `newPerCaseRuntimeManager​(RuntimeEnvironment environment, String identifier)` | Produces new instance of per case `RuntimeManager` with custom identifier.
    `RuntimeManager` | `newPerProcessInstanceRuntimeManager​(RuntimeEnvironment environment)` | Produces new instance of per process instance `RuntimeManager` with default identifier.
    `RuntimeManager` | `newPerProcessInstanceRuntimeManager​(RuntimeEnvironment environment, String identifier)` | Produces new instance of per process instance `RuntimeManager` with custom identifier.
    `RuntimeManager` | `newPerRequestRuntimeManager​(RuntimeEnvironment environment)` | Produces new instance of per request `RuntimeManager` with default identifier.
    `RuntimeManager` | `newPerRequestRuntimeManager​(RuntimeEnvironment environment, String identifier)` | Produces new instance of per request `RuntimeManager` with custom identifier.
    `RuntimeManager` | `newSingletonRuntimeManager​(RuntimeEnvironment environment)` | Produces new instance of singleton `RuntimeManager` with default identifier.
    `RuntimeManager` | `newSingletonRuntimeManager​(RuntimeEnvironment environment, String identifier)` | Produces new instance of singleton `RuntimeManager` with custom identifier.

- - ### Method Detail

    - #### newSingletonRuntimeManager

          RuntimeManager newSingletonRuntimeManager​(RuntimeEnvironment environment)

      Produces new instance of singleton `RuntimeManager` with default identifier. Since it relies on default identifier it can only be invoked once unless previously produced manager is closed. Otherwise error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
      Returns:
        new instance of `RuntimeManager`

    - #### newSingletonRuntimeManager

          RuntimeManager newSingletonRuntimeManager​(RuntimeEnvironment environment,
                                                    String identifier)

      Produces new instance of singleton `RuntimeManager` with custom identifier. In case the given identifier is already in use error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
        `identifier` - custom identifier for the manager
      Returns:
        new instance of `RuntimeManager`

    - #### newPerRequestRuntimeManager

          RuntimeManager newPerRequestRuntimeManager​(RuntimeEnvironment environment)

      Produces new instance of per request `RuntimeManager` with default identifier. Since it relies on default identifier it can only be invoked once unless previously produced manager is closed. Otherwise error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
      Returns:
        new instance of `RuntimeManager`

    - #### newPerRequestRuntimeManager

          RuntimeManager newPerRequestRuntimeManager​(RuntimeEnvironment environment,
                                                     String identifier)

      Produces new instance of per request `RuntimeManager` with custom identifier. In case the given identifier is already in use error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
        `identifier` - custom identifier for the manager
      Returns:
        new instance of `RuntimeManager`

    - #### newPerProcessInstanceRuntimeManager

          RuntimeManager newPerProcessInstanceRuntimeManager​(RuntimeEnvironment environment)

      Produces new instance of per process instance `RuntimeManager` with default identifier. Since it relies on default identifier it can only be invoked once unless previously produced manager is closed. Otherwise error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
      Returns:
        new instance of `RuntimeManager`

    - #### newPerProcessInstanceRuntimeManager

          RuntimeManager newPerProcessInstanceRuntimeManager​(RuntimeEnvironment environment,
                                                             String identifier)

      Produces new instance of per process instance `RuntimeManager` with custom identifier. In case the given identifier is already in use error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
        `identifier` - custom identifier for the manager
      Returns:
        new instance of `RuntimeManager`

    - #### newPerCaseRuntimeManager

          RuntimeManager newPerCaseRuntimeManager​(RuntimeEnvironment environment)

      Produces new instance of per case `RuntimeManager` with default identifier. Since it relies on default identifier it can only be invoked once unless previously produced manager is closed. Otherwise error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
      Returns:
        new instance of `RuntimeManager`

    - #### newPerCaseRuntimeManager

          RuntimeManager newPerCaseRuntimeManager​(RuntimeEnvironment environment,
                                                  String identifier)

      Produces new instance of per case `RuntimeManager` with custom identifier. In case the given identifier is already in use error will be thrown indicating that managers must be identifier uniquely.
      Parameters:
        `environment` - environment instance for the new runtime manager
        `identifier` - custom identifier for the manager
      Returns:
        new instance of `RuntimeManager`