Class ProcessInstanceResolverStrategy

  • All Implemented Interfaces:
    org.kie.api.marshalling.ObjectMarshallingStrategy

    public class ProcessInstanceResolverStrategy
    extends Object
    implements org.kie.api.marshalling.ObjectMarshallingStrategy
    When using this strategy, knowledge session de/marshalling process will make sure that the processInstance is not serialized as a part of the the session/network.

    Instead, this strategy, which may only be used for ProcessInstance objects, saves the process instance in the ProcessInstanceManager, and later retrieves it from there.

    Should a process instance be completed or aborted, it will be restored as an empty RuleFlowProcessInstance with correct id and state completed, yet no internal details.

    If you're doing tricky things with serialization and persistence, please make sure to remember that the ProcessInstanceManager cache of process instances is emptied at the end of every transaction (commit).
    • Constructor Detail

      • ProcessInstanceResolverStrategy

        public ProcessInstanceResolverStrategy()
    • Method Detail

      • accept

        public boolean accept​(Object object)
        Specified by:
        accept in interface org.kie.api.marshalling.ObjectMarshallingStrategy
      • retrieveProcessInstanceManager

        public static ProcessInstanceManager retrieveProcessInstanceManager​(Object streamContext)
        Retrieve the ProcessInstanceManager object from the ObjectOutput- or ObjectInputStream. The stream object will secretly also either be a MarshallerReaderContext or a MarshallerWriteContext.
        Parameters:
        streamContext - The marshaller stream/context.
        Returns:
        A ProcessInstanceManager object.
      • retrieveKnowledgeRuntime

        public static org.drools.core.common.InternalKnowledgeRuntime retrieveKnowledgeRuntime​(Object streamContext)
        Retrieve the ProcessInstanceManager object from the ObjectOutput- or ObjectInputStream. The stream object will secretly also either be a MarshallerReaderContext or a MarshallerWriteContext.

        The knowledge runtime object is useful in order to reconnect the process instance to the process and the knowledge runtime object.
        Parameters:
        streamContext - The marshaller stream/context.
        Returns:
        A InternalKnowledgeRuntime object.
      • marshal

        public byte[] marshal​(org.kie.api.marshalling.ObjectMarshallingStrategy.Context context,
                              ObjectOutputStream os,
                              Object object)
                       throws IOException
        Specified by:
        marshal in interface org.kie.api.marshalling.ObjectMarshallingStrategy
        Throws:
        IOException
      • createContext

        public org.kie.api.marshalling.ObjectMarshallingStrategy.Context createContext()
        Specified by:
        createContext in interface org.kie.api.marshalling.ObjectMarshallingStrategy