ClasspathWorkflowRepository extends AbstractWorkflowRepository implements WorkflowRepository, FileBasedWorkflowRepositoryMXBean { @Override public synchronized void shutdown() { try { if (adaptedTargetDir != null) { FileUtils.deleteDirectory(adaptedTargetDir); adaptedTargetDir = null; } } catch (IOException e) { logger.warn("Unable to delete directory {}", adaptedTargetDir); } } ClasspathWorkflowRepository(final String wfPackage);  ClasspathWorkflowRepository(final List<String> wfPackages); @Override synchronized void start(); @Override synchronized void shutdown(); @Override String getDescription(); @Override List<String> getSourceDirs(); @Override List<String> getSourceArchiveUrls(); @Override String getLastBuildResults();  }
@Test public void testExec() throws Exception { assumeTrue(System.getProperty("jdk.module.path", "").isBlank()); final ClasspathWorkflowRepository wfRepo = new ClasspathWorkflowRepository(TESTWORKFLOWS_PACKAGE); try { final TransientEngineFactory factory = new TransientEngineFactory() { @Override protected WorkflowRepository createWorkflowRepository() { return wfRepo; } @Override protected File getWorkflowSourceDirectory() { return null; } }; TransientScottyEngine engine = factory.create(); engine.run("org.copperengine.ext.wfrepo.classpath.testworkflows.TestWorkflowThree", "foo"); Thread.sleep(1000); } finally { wfRepo.shutdown(); } }