package betsy.bpel.engines.bpelg; import java.nio.file.Path; import betsy.common.tasks.FileTasks; import betsy.common.timeouts.timeout.Timeout; import betsy.common.timeouts.timeout.TimeoutRepository; import betsy.common.util.FileTypes; public class BpelgDeployer { private final Path deploymentFolder; private final Path logFile; private final Timeout timeout; public BpelgDeployer(Path deploymentFolder, Path logFile, Timeout timeout) { this.deploymentFolder = deploymentFolder; this.logFile = logFile; this.timeout = timeout; } public BpelgDeployer(Path deploymentFolder, Path logFile) { this(deploymentFolder, logFile, TimeoutRepository.getTimeout("Bpelg.deploy")); } public void deploy(Path packageFilePath, String processName) { // deploy FileTasks.copyFileIntoFolder(packageFilePath, deploymentFolder); // ensure correct deployment timeout.waitFor(() -> FileTasks.hasFile(deploymentFolder.resolve("work/ae_temp_" + processName + "_zip/deploy.xml")) && ( FileTasks.hasFileSpecificSubstring(logFile, "Deployment successful") || FileTasks.hasFileSpecificSubstring(logFile, "Deployment failed") ) ); } public void undeploy(String processName) { // undeploy FileTasks.deleteFile(deploymentFolder.resolve(processName + ".zip")); // ensure correct undeployment timeout.waitForSubstringInFile(logFile, "Undeploying bpel: " + processName + FileTypes.BPEL); } public boolean isDeployed(String processName) { return FileTasks.hasFile(deploymentFolder.resolve(processName + ".zip")); } }