@@ -38,6 +38,7 @@ |
@Description("OMS based AGES model service") |
@VersionInfo("1.0") |
@Path("m/ages/0.3.0") |
+@Polling(first = 5000, next = 4000) |
@Resource(file = "/bin/ages/ages.jar", type = JAR, id = Utils.ID_AGES_JAR) |
@Resource(file = "/bin/ages/ages-lib.zip", type = ARCHIVE) |
@Resource(file = "/bin/ages/ages-static.zip", type = ARCHIVE) |
@@ -211,7 +212,7 @@ |
Utils.passOptQuotedParam(agesParam, parameter(), flags); |
|
// create parameter include file |
- Utils.createParamInclude(agesParam, getWorkspaceFile(RUN_INC)); |
+ Utils.createParamInclude(agesParam, workspace().getFile(RUN_INC)); |
|
String start = parameter().getString(PAR_STARTTIME); |
String end = parameter().getString(PAR_ENDTIME); |
@@ -222,13 +223,13 @@ |
|
File d = new File(dsl); |
if (!(d.isAbsolute() && d.exists())) { |
- d = getWorkspaceFile(dsl); |
+ d = workspace().getFile(dsl); |
} |
|
- getWorkspaceFile("output").mkdirs(); |
- getWorkspaceFile("logs").mkdirs(); |
+ workspace().getFile("output").mkdirs(); |
+ workspace().getFile("logs").mkdirs(); |
|
- Utils.runAges(d, getWorkspaceDir(), parameter(), resources(), LOG); |
+ Utils.runAges(d, workspace().getDir(), parameter(), resources(), LOG); |
|
for (String ofName : getRequestedObjfunc(OF.keySet())) { |
String[] data = parameter().getStringArray(ofName); |
@@ -253,9 +254,9 @@ |
private double calc_of(ObjectiveFunction of, String obs, |
String sim, String start, String end) throws IOException, ServiceException { |
// e.g. obs_data02_14.csv/obs/orun[1] |
- double[] obsData = Utils.getData(obs, getWorkspaceDir(), start, end); |
+ double[] obsData = Utils.getData(obs, workspace().getDir(), start, end); |
// e.g. output/csip_run/out/Outlet.csv/output/catchmentSimRunoff |
- double[] simData = Utils.getData(sim, getWorkspaceDir(), start, end); |
+ double[] simData = Utils.getData(sim, workspace().getDir(), start, end); |
return of.calculate(obsData, simData, parameter().getDouble("missing", -9999d)); |
} |
|
@@ -226,12 +226,11 @@ |
Executable p = createProcess(dsl, ws, param, res, LOG); |
int result = p.exec(); |
if (result != 0) { |
- FilenameFilter ff = new WildcardFileFilter("java*stderr.txt", IOCase.INSENSITIVE); |
- File[] f = ws.listFiles(ff); |
- if (f != null && f.length > 0) { |
- String err = FileUtils.readFileToString(f[0]); |
- LOG.info("Ages execution error. " + f[0] + ":\n" + err); |
- throw new ServiceException("Ages execution error. " + f[0] + ":\n" + err); |
+ File f = p.stderr(); |
+ if (f.exists() && f.length() > 0) { |
+ String err = FileUtils.readFileToString(f, "UTF-8"); |
+ LOG.info("Ages execution error. " + f + ":\n" + err); |
+ throw new ServiceException("Ages execution error. " + f + ":\n" + err); |
} |
throw new ServiceException("Ages execution error." + result); |
} |