Class ProcessEngines


  • public abstract class ProcessEngines
    extends java.lang.Object
    Helper for initializing and closing process engines in server environments.
    All created ProcessEngines will be registered with this class.
    The activiti-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.camunda.bpm.engine.test.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 camunda.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
      • processEngines

        protected static java.util.Map<java.lang.String,​ProcessEngine> processEngines
      • processEngineInfosByName

        protected static java.util.Map<java.lang.String,​ProcessEngineInfo> processEngineInfosByName
      • processEngineInfosByResourceUrl

        protected static java.util.Map<java.lang.String,​ProcessEngineInfo> processEngineInfosByResourceUrl
      • processEngineInfos

        protected static java.util.List<ProcessEngineInfo> processEngineInfos
    • Constructor Detail

      • ProcessEngines

        public ProcessEngines()
    • Method Detail

      • init

        public static void init()
      • init

        public static void init​(boolean forceCreate)
        Initializes all process engines that can be found on the classpath for resources camunda.cfg.xml (plain Activiti style configuration) and for resources activiti-context.xml (Spring style configuration).
      • initProcessEngineFromSpringResource

        protected static void initProcessEngineFromSpringResource​(java.net.URL resource)
      • registerProcessEngine

        public static void registerProcessEngine​(ProcessEngine processEngine)
        Registers the given process engine. No ProcessEngineInfo 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 java.util.List<ProcessEngineInfo> getProcessEngineInfos()
        Get initialization results.
      • getProcessEngineInfo

        public static ProcessEngineInfo getProcessEngineInfo​(java.lang.String processEngineName)
        Get initialization results. Only info will we available for process engines which were added in the init(). No ProcessEngineInfo is available for engines which were registered programatically.
      • getDefaultProcessEngine

        public static ProcessEngine getDefaultProcessEngine()
      • getDefaultProcessEngine

        public static ProcessEngine getDefaultProcessEngine​(boolean forceCreate)
      • getProcessEngine

        public static ProcessEngine getProcessEngine​(java.lang.String processEngineName)
      • getProcessEngine

        public static ProcessEngine getProcessEngine​(java.lang.String processEngineName,
                                                     boolean forceCreate)
        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 ProcessEngineInfo retry​(java.lang.String resourceUrl)
        retries to initialize a process engine that previously failed.
      • getProcessEngines

        public static java.util.Map<java.lang.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.