package betsy.bpel.engines.ode;
import java.nio.file.Path;
import java.util.Objects;
import betsy.common.config.Configuration;
import betsy.common.engines.tomcat.TomcatInstaller;
import betsy.common.tasks.FileTasks;
import betsy.common.tasks.NetworkTasks;
import betsy.common.tasks.ZipTasks;
import betsy.common.util.ClasspathHelper;
public class OdeInstaller {
private final String fileName;
private final Path serverDir;
public OdeInstaller(Path serverDir, String fileName) {
this.serverDir = Objects.requireNonNull(serverDir);
this.fileName = Objects.requireNonNull(fileName);
}
public String getOdeName() {
return FileTasks.getFilenameWithoutExtension(fileName);
}
public void install() {
// setup engine folder
FileTasks.mkdirs(serverDir);
TomcatInstaller installer = TomcatInstaller.v7(serverDir);
installer.install();
Path downloadDir = Configuration.getDownloadsDir();
NetworkTasks.downloadFileFromBetsyRepo(fileName);
ZipTasks.unzip(downloadDir.resolve(fileName), serverDir);
ZipTasks.unzip(getOdeWar(), serverDir.resolve(installer.getTomcatName()).resolve("webapps/ode"));
FileTasks.copyFileIntoFolderAndOverwrite(ClasspathHelper.getFilesystemPathFromClasspathPath("/bpel/ode/log4j.properties"),
serverDir.resolve(installer.getTomcatName()).resolve("webapps/ode/WEB-INF/classes"));
}
public Path getOdeWar() {
return serverDir.resolve(getOdeName()).resolve("ode.war");
}
}