openesb-components/ojc-core/httpsoapbc/httpsoapbcimpl/test/test/jbi/integration/test/framework/impl/HTTPBCSUAssembler.java

91 lines
2.1 KiB
Java

package test.jbi.integration.test.framework.impl;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import test.jbi.integration.test.framework.SUAssembler;
import test.jbi.integration.testse.installer.TestHelper;
public class HTTPBCSUAssembler implements SUAssembler {
private String name;
private String desc;
private List<String> wsdls;
private String jbiFile;
private static final String XML = "<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n";
public HTTPBCSUAssembler(String name, String desc) {
this.name = name.replace(' ', '_');
this.desc = desc;
wsdls = new ArrayList<String>();
}
public void addWsdl(String wsdl) {
wsdls.add(wsdl);
}
public boolean removeWsdl(String wsdl) {
return wsdls.remove(wsdl);
}
public String getJbiFile() {
return jbiFile;
}
public void setJbiFile(String jbiFile) {
this.jbiFile = jbiFile;
}
public String assemble(String workingDir, String destDir) throws IOException {
String base = workingDir + File.separator + name;
//Create base directory
File baseDir = new File(base);
if (baseDir.exists()) {
TestHelper.deleteDirectory(baseDir);
}
baseDir.mkdirs();
String meta = base + File.separator + "META-INF";
File metaDir = new File(meta);
metaDir.mkdir();
//Copy all WSDL files to META-INF folder
for (Iterator<String> iter = wsdls.iterator(); iter.hasNext();) {
String file = iter.next();
if(file.endsWith(".xml")){
TestHelper.copyFile(metaDir.getParent(),file );
}else{
TestHelper.copyFile(meta,file );
}
}
//copy jbi.xml into META-INF
TestHelper.copyFile(meta, getJbiFile(), "jbi.xml");
String jarFileName = name + ".jar";
String destJar = destDir + File.separator + jarFileName;
TestHelper.jarAllFiles(base, destJar);
return jarFileName;
}
public String getComponentName() {
return "sun-http-binding";
}
public String getDescription() {
return desc;
}
public String getName() {
return name;
}
}