Displaying differences for changeset
 
display as  

src/java/m/oms/ages/V1_0.java

@@ -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));
   }
 

src/java/oms/utils/Utils.java

@@ -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);
     }