V1_0.java [src/java/m/dssat/substor] Revision: default Date:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package m.dssat.substor;
import csip.api.server.Executable;
import csip.ModelDataService;
import csip.api.server.ServiceException;
import csip.annotations.Resource;
import javax.ws.rs.Path;
import csip.annotations.*;
import static csip.annotations.ResourceType.EXECUTABLE;
import csip.utils.ZipFiles;
import java.io.File;
/**
* Fahrenheit conversion.
*
* @author od
*/
@Name("DSSAT simulation execution")
@Description("DSSAT SUBSTOR csip service")
@VersionInfo("1.0")
@Path("m/substor/1.0")
@Options(timeout = "P2H")
@Resource(type = EXECUTABLE, file = "/DSSAT_4.7.0.0/dscsm047", id = "DSSAT")
@Resource(file = "/DSSAT_4.7.0.0/data.zip", type = ResourceType.ARCHIVE)
public class V1_0 extends ModelDataService {
static final String KEY_FILE = "param";
static final String KEY_LOGLEVEL = "loglevel";
@Override
protected void doProcess() throws Exception {
String paramFile = parameter().getString(KEY_FILE);
String loglevel = parameter().getString(KEY_LOGLEVEL, "INFO");
Executable p = resources().getExe("DSSAT");
p.addArguments(
"A",
paramFile
);
int ret = p.exec();
if (ret != 0) {
throw new ServiceException("Error running DSSAT 4.7.0: " + ret);
}
}
@Override
protected void postProcess() throws Exception {
File zip = ZipFiles.zip(new File(workspace().getDir().getAbsolutePath()));
results().put(zip);
}
public static void onContextInit() {
System.out.println("Init simple service");
}
public static void onContextDestroy() {
System.out.println("destroy simple service");
}
}