Class ProcessEngines


  • public abstract class ProcessEngines
    extends Object
    Helper for initializing and closing process engines in server environments.
    All created ProcessEngines will be registered with this class.
    The flowable-webapp-init webapp will call the init() method when the webapp is deployed and it will call the destroy() method when the webapp is destroyed, using a context-listener ( org.flowable.impl.servlet.listener.ProcessEnginesServletContextListener ). That way, all applications can just use the getProcessEngines() to obtain pre-initialized and cached process engines.

    Please note that there is no lazy initialization of process engines, so make sure the context-listener is configured or ProcessEngines are already created so they were registered on this class.

    The init() method will try to build one ProcessEngine for each flowable.cfg.xml file found on the classpath. If you have more then one, make sure you specify different process.engine.name values.
    Author:
    Tom Baeyens, Joram Barrez
    • Field Detail

      • isInitialized

        protected static boolean isInitialized
      • processEngineInfosByName

        protected static Map<String,​org.flowable.common.engine.impl.EngineInfo> processEngineInfosByName
      • processEngineInfosByResourceUrl

        protected static Map<String,​org.flowable.common.engine.impl.EngineInfo> processEngineInfosByResourceUrl
      • processEngineInfos

        protected static List<org.flowable.common.engine.impl.EngineInfo> processEngineInfos
    • Constructor Detail

      • ProcessEngines

        public ProcessEngines()
    • Method Detail

      • init

        public static void init()
        Initializes all process engines that can be found on the classpath for resources flowable.cfg.xml (plain Flowable style configuration) and for resources flowable-context.xml (Spring style configuration).
      • initProcessEngineFromSpringResource

        protected static void initProcessEngineFromSpringResource​(URL resource)
      • registerProcessEngine

        public static void registerProcessEngine​(ProcessEngine processEngine)
        Registers the given process engine. No EngineInfo will be available for this process engine. An engine that is registered will be closed when the destroy() is called.
      • unregister

        public static void unregister​(ProcessEngine processEngine)
        Unregisters the given process engine.
      • getProcessEngineInfos

        public static List<org.flowable.common.engine.impl.EngineInfo> getProcessEngineInfos()
        Get initialization results.
      • getProcessEngineInfo

        public static org.flowable.common.engine.impl.EngineInfo getProcessEngineInfo​(String processEngineName)
        Get initialization results. Only info will we available for process engines which were added in the init(). No EngineInfo is available for engines which were registered programmatically.
      • getDefaultProcessEngine

        public static ProcessEngine getDefaultProcessEngine()
      • getProcessEngine

        public static ProcessEngine getProcessEngine​(String processEngineName)
        obtain a process engine by name.
        Parameters:
        processEngineName - is the name of the process engine or null for the default process engine.
      • retry

        public static org.flowable.common.engine.impl.EngineInfo retry​(String resourceUrl)
        retries to initialize a process engine that previously failed.
      • getProcessEngines

        public static Map<String,​ProcessEngine> getProcessEngines()
        provides access to process engine to application clients in a managed server environment.
      • destroy

        public static void destroy()
        closes all process engines. This method should be called when the server shuts down.
      • isInitialized

        public static boolean isInitialized()
      • setInitialized

        public static void setInitialized​(boolean isInitialized)