package com.dgrid.handlers;
import com.dgrid.api.BaseJobletTypeHandler;
import com.dgrid.api.JobletTypeHandler;
import com.dgrid.api.SimpleJoblet;
import com.dgrid.api.SimpleJobletResult;
import com.dgrid.gen.Joblet;
import com.dgrid.gen.JobletResult;
import com.dgrid.service.DGridClient;
public class JavaJobletTypeHandler extends BaseJobletTypeHandler implements
JobletTypeHandler {
public static final String CLASS_NAME_PARAM = "class";
public JobletResult execute(Joblet joblet, DGridClient gridClient)
throws Exception {
log.trace("execute()");
long start = System.currentTimeMillis();
Class cls = Class.forName(joblet.getParameters().get(CLASS_NAME_PARAM));
Object impl = cls.newInstance();
SimpleJoblet sj = (SimpleJoblet) impl;
SimpleJobletResult sjr = sj.execute(joblet, gridClient);
JobletResult result = new JobletResult(0, 0l, sjr.getReturnCode(),
(System.currentTimeMillis() - start), sjr.getStatus(), sjr
.getDetails(), joblet);
return result;
}
}