package betsy.bpmn.engines.jbpm; import java.nio.file.Path; import java.util.HashMap; import java.util.Map; import betsy.common.tasks.FileTasks; import betsy.common.util.ClasspathHelper; public class JbpmResourcesGenerator { private Path jbpmSrcDir; private Path destDir; private String processName; private String groupId; private String version; public void generateProject() { Path resDir = destDir.resolve("src").resolve("main").resolve("resources"); //setup directories FileTasks.mkdirs(destDir.resolve("src").resolve("main").resolve("java")); FileTasks.mkdirs(destDir.resolve("src").resolve("test").resolve("java")); FileTasks.mkdirs(resDir); FileTasks.mkdirs(resDir.resolve("META-INF")); //copy files FileTasks.copyFilesInFolderIntoOtherFolder(jbpmSrcDir.resolve("META-INF"), resDir.resolve("META-INF")); FileTasks.copyFileIntoFolder(jbpmSrcDir.resolve("project.imports"), destDir); generatePomXml(); } private void generatePomXml() { FileTasks.copyFileIntoFolder(ClasspathHelper.getFilesystemPathFromClasspathPath("/bpmn/jbpm/pom.xml"), destDir); Map<String, String> replacements = new HashMap<>(); replacements.put("GROUP_ID", groupId); replacements.put("PROCESS_NAME", processName); replacements.put("_VERSION_", version); FileTasks.replaceTokensInFile(destDir.resolve("pom.xml"), replacements); } public void setJbpmSrcDir(Path jbpmSrcDir) { this.jbpmSrcDir = jbpmSrcDir; } public Path getDestDir() { return destDir; } public void setDestDir(Path destDir) { this.destDir = destDir; } public String getProcessName() { return processName; } public void setProcessName(String processName) { this.processName = processName; } public String getGroupId() { return groupId; } public void setGroupId(String groupId) { this.groupId = groupId; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } }