Fix for testcases
[jabaws.git] / engine / compbio / engine / client / Util.java
index 4d0b8a1..9d0727b 100644 (file)
@@ -32,6 +32,7 @@ import compbio.engine.client.Executable.ExecProvider;
 import compbio.engine.conf.DirectoryManager;\r
 import compbio.engine.conf.PropertyHelperManager;\r
 import compbio.metadata.JobStatus;\r
+import compbio.metadata.LimitsManager;\r
 import compbio.metadata.ResultNotAvailableException;\r
 import compbio.util.FileUtil;\r
 import compbio.util.PropertyHelper;\r
@@ -68,8 +69,8 @@ public final class Util {
                // Work directory could be null for cancelled or incomplete jobs, just\r
                // ignore\r
                if (!compbio.util.Util.isEmpty(workDirectory)) {\r
-                       writeFile(workDirectory, fileAndEventName, new Long(System\r
-                                       .nanoTime()).toString(), false);\r
+                       writeFile(workDirectory, fileAndEventName,\r
+                                       new Long(System.currentTimeMillis()).toString(), false);\r
                }\r
        }\r
 \r
@@ -77,9 +78,8 @@ public final class Util {
                        String content, boolean override) {\r
                File file = null;\r
                if (compbio.util.Util.isEmpty(workDirectory)) {\r
-                       log\r
-                                       .debug("Calling compbio.engine.Util.writeFile() with not work directory."\r
-                                                       + " Skipping writing statistics!");\r
+                       log.debug("Calling compbio.engine.Util.writeFile() with not work directory."\r
+                                       + " Skipping writing statistics!");\r
                        return;\r
                }\r
                assert !compbio.util.Util.isEmpty(content) : "Content expected!";\r
@@ -127,9 +127,10 @@ public final class Util {
                                return sfile.createNewFile();\r
                        }\r
                } catch (IOException e) {\r
-                       log.error("Could not record stat marker file " + fileType\r
-                                       + " into the directory " + workDirectory + " ! "\r
-                                       + e.getMessage(), e.getCause());\r
+                       log.error(\r
+                                       "Could not record stat marker file " + fileType\r
+                                                       + " into the directory " + workDirectory + " ! "\r
+                                                       + e.getMessage(), e.getCause());\r
                }\r
                return false;\r
        }\r
@@ -183,9 +184,8 @@ public final class Util {
                String absolute = relativePath;\r
                if (!PathValidator.isAbsolutePath(relativePath)) {\r
                        absolute = PropertyHelperManager.getLocalPath() + relativePath;\r
-                       Util.log\r
-                                       .trace("Changing local path in enviromental variable to absolute: FROM "\r
-                                                       + relativePath + " TO " + absolute);\r
+                       Util.log.trace("Changing local path in enviromental variable to absolute: FROM "\r
+                                       + relativePath + " TO " + absolute);\r
                }\r
                return absolute;\r
        }\r
@@ -286,21 +286,55 @@ public final class Util {
                        exec = ConfExecutable.newConfExecutable(rconf);\r
                        fileInStream.close();\r
                } catch (FileNotFoundException e) {\r
-                       log.error("Could not find run configuration to load!"\r
-                                       + e.getLocalizedMessage(), e.getCause());\r
+                       log.error(\r
+                                       "Could not find run configuration to load!"\r
+                                                       + e.getLocalizedMessage(), e.getCause());\r
                        throw new ResultNotAvailableException(\r
                                        "Could not find run configuration to load!"\r
                                                        + e.getMessage(), e.getCause());\r
                } catch (IOException e) {\r
-                       log.error("IO Exception while reading run configuration file!"\r
-                                       + e.getLocalizedMessage(), e.getCause());\r
+                       log.error(\r
+                                       "IO Exception while reading run configuration file!"\r
+                                                       + e.getLocalizedMessage(), e.getCause());\r
                        throw new ResultNotAvailableException(\r
-                                       "Could not load run configuration!" + e.getMessage(), e\r
-                                                       .getCause());\r
+                                       "Could not load run configuration!" + e.getMessage(),\r
+                                       e.getCause());\r
                } finally {\r
                        FileUtil.closeSilently(log, fileInStream);\r
                }\r
                return exec;\r
        }\r
 \r
+       /**\r
+        * For now just assume that all parameters which came in needs setting it\r
+        * will be a client responsibility to prepare RunnerConfig object then\r
+        * \r
+        * @param rconfig\r
+        * @return\r
+        * \r
+        *         public static List<String> toOptionString(RunnerConfig<?>\r
+        *         rconfig) { String option = ""; List<String> options = new\r
+        *         ArrayList<String>(); for (Parameter<?> par :\r
+        *         rconfig.getParameters()) { if (par.getPossibleValues().isEmpty())\r
+        *         { option = par.getOptionName(); } else { option =\r
+        *         par.getOptionName() + "=" + par.getPossibleValues().get(0); } //\r
+        *         separate options options.add(option); } return options; }\r
+        */\r
+\r
+       public static <T> LimitsManager<T> getLimits(Class<T> clazz) {\r
+               LimitsManager<T> limits = null;\r
+               try {\r
+                       limits = ConfExecutable.getRunnerLimits(clazz);\r
+               } catch (FileNotFoundException e) {\r
+                       Util.log.warn("No limits are found for " + clazz + " executable! "\r
+                                       + e.getLocalizedMessage(), e.getCause());\r
+                       // its ok, limit may not be initialized\r
+               } catch (IOException e) {\r
+                       Util.log.warn("IO exception while attempting to read limits for "\r
+                                       + clazz + " executable! " + e.getLocalizedMessage(),\r
+                                       e.getCause());\r
+               }\r
+               return limits;\r
+       }\r
+\r
 }\r