Class ClasspathWorkflowRepository

java.lang.Object
org.copperengine.core.wfrepo.AbstractWorkflowRepository
org.copperengine.ext.wfrepo.classpath.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
  • Constructor Summary

    Constructors 
    Constructor Description
    ClasspathWorkflowRepository​(java.lang.String wfPackage)  
    ClasspathWorkflowRepository​(java.util.List<java.lang.String> wfPackages)  
  • Method Summary

    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 Details

  • Method Details

    • 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