package Utils;
import be.ibridge.kettle.core.Const;
import be.ibridge.kettle.core.KettleVariables;
import be.ibridge.kettle.core.LocalVariables;
import be.ibridge.kettle.core.LogWriter;
import be.ibridge.kettle.core.util.EnvUtil;
import be.ibridge.kettle.trans.StepLoader;
import be.ibridge.kettle.trans.Trans;
import be.ibridge.kettle.trans.TransMeta;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class TransformationUtils {
private static TransformationUtils instance;
/**
*
* Appel la transfo Kettle avec variables
*
* @param kettleFile
* @param inputFile
* @param outputFiles
*/
public void transform(String kettleFile, String inputFile,
String[] outputFiles, String[] param) {
try {
LogWriter log = LogWriter.getInstance("kettle.log", true,
LogWriter.LOG_LEVEL_DETAILED);
EnvUtil.environmentInit();
StepLoader steploader = StepLoader.getInstance();
/*if (!steploader.read()) {
System.exit(8);
}*/
steploader.read();
System.out.println(kettleFile);
TransMeta transMeta = new TransMeta(kettleFile);
if (inputFile != null) {
LocalVariables.getKettleVariables().setVariable("serverhostname","*****");
LocalVariables.getKettleVariables().setVariable("databasename1","***");
LocalVariables.getKettleVariables().setVariable("databasename2","****");
LocalVariables.getKettleVariables().setVariable("password","****");
LocalVariables.getKettleVariables().setVariable("portnumber","***");
LocalVariables.getKettleVariables().setVariable("username","root");
}
/*for (int ii = 0; ii < outputFiles.length; ii++) {
LocalVariables.getKettleVariables().setVariable("outputfile." + ii, outputFiles[ii]);
}*/
if(param != null){
for (int j = 0; j < param.length; j++) {
LocalVariables.getKettleVariables().setVariable("param." + j, param[j]);
}
}
Trans trans = new Trans(log, transMeta);
trans.execute(null);
trans.waitUntilFinished();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.toString());
//BusHelper.sendError(e);
}
}
public static TransformationUtils getInstance() {
if (instance == null) {
try {
return new TransformationUtils();
} catch (Exception e) {
e.printStackTrace();
//BusHelper.sendError(e);
return null;
}
} else
return instance;
}
}
Partager