package org.jblooming.scheduler;
import org.jblooming.utilities.StringUtilities;
import org.jblooming.utilities.DateUtilities;
import org.jblooming.tracer.Tracer;
import java.lang.reflect.Method;
import java.util.Date;
/**
* @author Pietro Polsinelli ppolsinelli@open-lab.com
* @author Roberto Bicchierai rbicchierai@open-lab.com
*/
public class ExecuteJavaMain extends ExecutableSupport{
@Parameter("[insert here complete classpath of class]")
public String classToLaunch;
@Parameter("[insert here parameters separated by spaces]")
public String spaceSeparatedParameters;
public JobLogData run(JobLogData jobLogData) {
try {
Class clazz = Class.forName(classToLaunch);
Method main = clazz.getDeclaredMethod("main",String[].class);
main.invoke(null, new Object[]{StringUtilities.splitToArray(spaceSeparatedParameters," ")});
jobLogData.notes = jobLogData.notes + "Executed on "+DateUtilities.dateAndHourToString(new Date());
} catch (Throwable e) {
Tracer.platformLogger.error("ExecuteJavaMain error",e);
jobLogData.successfull = false;
}
return jobLogData;
}
}