Class ClasspathWorkflowRepository

  • All Implemented Interfaces:
    org.copperengine.core.common.WorkflowRepository, org.copperengine.management.FileBasedWorkflowRepositoryMXBean, org.copperengine.management.WorkflowRepositoryMXBean

    public class ClasspathWorkflowRepository
    extends org.copperengine.core.wfrepo.AbstractWorkflowRepository
    implements org.copperengine.core.common.WorkflowRepository, org.copperengine.management.FileBasedWorkflowRepositoryMXBean
    Easy to use implementation of the WorkflowRepository interface. This workflow repository looks for its workflows in the normal classpath, just one or more package names of those packages containing the workflow classes need to be configured.

    Compared to the FileBasedWorkflowRepository this is quite easy to use, because workflows do not need to reside in a dedicated source folder, they don't need to be deployed as java source files and no java compiler (JDK) is needed to run the application.

    On the other hand there is no hot deployment feature and the JMX interface does not show the java source code of the deployed workflows. Anyhow, this workflow repo is probably suitable for most simple COPPER applications.

    See ClasspathWorkflowRepositoryTest.java testExec() for sample usage.

     {
         final ClasspathWorkflowRepository wfRepo = new ClasspathWorkflowRepository("org.copperengine.ext.wfrepo.classpath.testworkflows");
         final TransientEngineFactory factory = new TransientEngineFactory() {
             protected WorkflowRepository createWorkflowRepository() {
                 return wfRepo;
             }
     
             protected File getWorkflowSourceDirectory() {
                 return null;
             }
         };
         TransientScottyEngine engine = factory.create();
         engine.run("org.copperengine.ext.wfrepo.classpath.testworkflows.TestWorkflowThree", "foo");
     }
     
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.copperengine.core.wfrepo.AbstractWorkflowRepository

        org.copperengine.core.wfrepo.AbstractWorkflowRepository.VolatileState
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getDescription()  
      java.lang.String getLastBuildResults()  
      java.util.List<java.lang.String> getSourceArchiveUrls()  
      java.util.List<java.lang.String> getSourceDirs()  
      protected org.copperengine.core.wfrepo.AbstractWorkflowRepository.VolatileState getVolatileState()  
      void shutdown()  
      void start()  
      • Methods inherited from class org.copperengine.core.wfrepo.AbstractWorkflowRepository

        checkConstraints, createAliasName, createClassLoader, createWorkflowClassInfoMap, createWorkflowFactory, createWorkflowFactory, findLatestMajorVersion, findLatestMinorVersion, getClassInfo, getWorkflowInfo, getWorkflowRepoSize, getWorkflows, instrumentWorkflows, queryWorkflowsSubset, resolveClass
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.copperengine.core.common.WorkflowRepository

        createWorkflowFactory, createWorkflowFactory, findLatestMajorVersion, findLatestMinorVersion, getClassInfo, resolveClass
      • Methods inherited from interface org.copperengine.management.WorkflowRepositoryMXBean

        getWorkflowInfo, getWorkflowRepoSize, getWorkflows, queryWorkflowsSubset
    • Constructor Detail

      • ClasspathWorkflowRepository

        public ClasspathWorkflowRepository​(java.lang.String wfPackage)
      • ClasspathWorkflowRepository

        public ClasspathWorkflowRepository​(java.util.List<java.lang.String> wfPackages)
    • Method Detail

      • start

        public void start()
        Specified by:
        start in interface org.copperengine.core.common.WorkflowRepository
      • shutdown

        public void shutdown()
        Specified by:
        shutdown in interface org.copperengine.core.common.WorkflowRepository
      • getDescription

        public java.lang.String getDescription()
        Specified by:
        getDescription in interface org.copperengine.management.WorkflowRepositoryMXBean
      • getSourceDirs

        public java.util.List<java.lang.String> getSourceDirs()
        Specified by:
        getSourceDirs in interface org.copperengine.management.FileBasedWorkflowRepositoryMXBean
      • getSourceArchiveUrls

        public java.util.List<java.lang.String> getSourceArchiveUrls()
        Specified by:
        getSourceArchiveUrls in interface org.copperengine.management.FileBasedWorkflowRepositoryMXBean
      • getLastBuildResults

        public java.lang.String getLastBuildResults()
        Specified by:
        getLastBuildResults in interface org.copperengine.management.FileBasedWorkflowRepositoryMXBean
      • getVolatileState

        protected org.copperengine.core.wfrepo.AbstractWorkflowRepository.VolatileState getVolatileState()
        Specified by:
        getVolatileState in class org.copperengine.core.wfrepo.AbstractWorkflowRepository