package betsy.bpel.engines.orchestra;
import java.nio.file.Path;
import java.time.LocalDate;
import java.util.LinkedList;
import java.util.List;
import javax.xml.namespace.QName;
import betsy.bpel.engines.AbstractLocalBPELEngine;
import betsy.bpel.model.BPELProcess;
import betsy.common.engines.tomcat.Tomcat;
import betsy.common.model.engine.EngineExtended;
import betsy.common.tasks.FileTasks;
import pebl.ProcessLanguage;
public class OrchestraEngine extends AbstractLocalBPELEngine {
public Path getXsltPath() {
throw new IllegalStateException("unused");
}
@Override
public EngineExtended getEngineObject() {
return new EngineExtended(ProcessLanguage.BPEL, "orchestra", "4.9", LocalDate.of(2012,1,23), "LGPL-2.1+");
}
public Tomcat getTomcat() {
return Tomcat.v7(getServerPath());
}
@Override
public void install() {
new OrchestraInstaller(getServerPath()).install();
}
@Override
public void startup() {
getTomcat().startup();
}
@Override
public void shutdown() {
getTomcat().shutdown();
}
@Override
public boolean isRunning() {
return getTomcat().checkIfIsRunning();
}
@Override
public String getEndpointUrl(String name) {
return getTomcat().getTomcatUrl() + "/orchestra/" + name + "TestInterface";
}
@Override
public List<Path> getLogs() {
List<Path> result = new LinkedList<>();
result.addAll(FileTasks.findAllInFolder(getTomcat().getTomcatLogsDir()));
return result;
}
@Override
public void deploy(String name, Path path) {
OrchestraDeployer deployer = new OrchestraDeployer(getServerPath().resolve("orchestra-cxf-tomcat-4.9.0"));
deployer.deploy(path, name);
}
@Override public boolean isDeployed(QName process) {
OrchestraDeployer deployer = new OrchestraDeployer(getServerPath().resolve("orchestra-cxf-tomcat-4.9.0"));
return deployer.isDeployed(process.getLocalPart());
}
@Override public void undeploy(QName process) {
OrchestraDeployer deployer = new OrchestraDeployer(getServerPath().resolve("orchestra-cxf-tomcat-4.9.0"));
deployer.undeploy(process);
}
public Path buildArchives(BPELProcess process) {
getPackageBuilder().createFolderAndCopyProcessFilesToTarget(process);
// engine specific steps
getPackageBuilder().replaceEndpointTokenWithValue(process);
getPackageBuilder().replacePartnerTokenWithValue(process);
getPackageBuilder().bpelFolderToZipFile(process);
return process.getTargetPackageFilePath();
}
}