From 021b24f125d8b1e8390e99b4a835469dabdd7be1 Mon Sep 17 00:00:00 2001 From: pvtroshin Date: Mon, 18 Apr 2011 14:59:49 +0000 Subject: [PATCH] Refactor: relocate getLimit() method from Util client to Util engine as SkeletalExecutable (part of the engine depends on it) Update compile ant task to get rid of warnings. However, ant still does not complile due to cast issue. TODO later Updating version of utils and datamodel as it includes the utils git-svn-id: link to svn.lifesci.dundee.ac.uk/svn/barton/ptroshin/JABA2@3967 e3abac25-378b-4346-85de-24260fe3988d --- .classpath | 2 +- TODO.txt | 6 + WEB-INF/lib/compbio-util-1.3.jar | Bin 17632 -> 0 bytes WEB-INF/lib/compbio-util-1.4.jar | Bin 0 -> 14240 bytes build.xml | 673 ++++++++++---------- engine/compbio/engine/client/PathValidator.java | 3 + .../compbio/engine/client/SkeletalExecutable.java | 2 +- engine/compbio/engine/client/Util.java | 34 + runner/compbio/runner/Util.java | 36 +- testsrc/compbio/metadata/AllTestSuit.java | 6 +- webservices/compbio/ws/server/AAConWS.java | 2 +- webservices/compbio/ws/server/ClustalWS.java | 2 +- webservices/compbio/ws/server/DisemblWS.java | 2 +- webservices/compbio/ws/server/GlobPlotWS.java | 2 +- webservices/compbio/ws/server/JronnWS.java | 2 +- webservices/compbio/ws/server/MafftWS.java | 2 +- webservices/compbio/ws/server/MuscleWS.java | 2 +- webservices/compbio/ws/server/ProbconsWS.java | 2 +- webservices/compbio/ws/server/TcoffeeWS.java | 2 +- website/archive/datamodel-1.1.jar | Bin 0 -> 61792 bytes 20 files changed, 401 insertions(+), 379 deletions(-) delete mode 100644 WEB-INF/lib/compbio-util-1.3.jar create mode 100644 WEB-INF/lib/compbio-util-1.4.jar create mode 100644 website/archive/datamodel-1.1.jar diff --git a/.classpath b/.classpath index 59011e3..6d71866 100644 --- a/.classpath +++ b/.classpath @@ -10,8 +10,8 @@ - + diff --git a/TODO.txt b/TODO.txt index e08270c..a0a2706 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,5 +1,11 @@ TODO: +add to help text: To disable a web service remove it from WEB-INF/sun-jaxws.xml descriptor + +add to help: VirtualBox 4.0.4 works fine with JABAWS update links + +rename jaba.war to jabaws.war and make sure jabaws context path is used throughout. + Current stat collector has to rely on file dates! Test all WS as names from Executables were removed diff --git a/WEB-INF/lib/compbio-util-1.3.jar b/WEB-INF/lib/compbio-util-1.3.jar deleted file mode 100644 index 9042b5a2760afcd3af10996bc37f848df24f2c8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17632 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 I{U6`{AD~u?mH+?% diff --git a/WEB-INF/lib/compbio-util-1.4.jar b/WEB-INF/lib/compbio-util-1.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..7abd95e8680839672ec0b84801f6066672c458d3 GIT binary patch literal 14240 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 literal 0 HcmV?d00001 diff --git a/build.xml b/build.xml index 5597457..f368ec3 100644 --- a/build.xml +++ b/build.xml @@ -1,14 +1,14 @@ - + - + - + @@ -27,8 +27,8 @@ - - + + @@ -43,7 +43,7 @@ - + @@ -72,41 +72,41 @@ - - + + - - + + - - + + - - + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + + - - - + + + - - - + + + + - Jar file: Minimal WS client jar - - - - - - - - - - - - - - - - - - - - + Jar file: Minimal WS client jar + + + + + + + + + + + + + + + + + + + + + Jar file: Minimal WS client jar - + + - + @@ -191,41 +191,43 @@ - + - Jar file: AAConWS client jar - - - - - - - - - - - - - - - - - + Jar file: AAConWS client jar + + + + + + + + + + + + + + + + + + - + + - + - + - + - + @@ -236,10 +238,10 @@ - + - - + + @@ -250,26 +252,27 @@ - Jar file: Full WS client jar - - - - - - - - - - - - - - - - - - - + Jar file: Full WS client jar + + + + + + + + + + + + + + + + + + + + Packing binaries, and configuration files @@ -280,51 +283,53 @@ - + - Jar file: Full WS client jar - - - - - - - - - - - - - - - - - - - - - - - + Jar file: Full WS client jar + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - + + + - - + + @@ -336,101 +341,108 @@ - Preparing war file without JAXWS and binaries - - - - - - - - - - - - - - - - - - - - + Preparing war file without JAXWS and binaries + + + + + + + + + + + + + + + + + + + + + + - Packing data for internal web site - - - - - - - + Packing data for internal web site + + + + + + + + - Preparing war file without JAXWS - + Preparing war file without JAXWS + + - + - + - Preparing war file without JAXWS - + Preparing war file without JAXWS + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - Preparing a complete war file - - - - - + Preparing a complete war file + + + + + - Preparing a complete war file - - - - - + Preparing a complete war file + + + + + - Preparing a complete war file - - - - - - + Preparing a complete war file + + + + + + - + + @@ -455,142 +467,143 @@ --> - + - + + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - + \ No newline at end of file diff --git a/engine/compbio/engine/client/PathValidator.java b/engine/compbio/engine/client/PathValidator.java index c59c957..97b5315 100644 --- a/engine/compbio/engine/client/PathValidator.java +++ b/engine/compbio/engine/client/PathValidator.java @@ -46,6 +46,9 @@ public final class PathValidator { } } + /* + * TODO move to Utils + */ public static boolean isValidDirectory(String directory) { if (Util.isEmpty(directory)) { return false; diff --git a/engine/compbio/engine/client/SkeletalExecutable.java b/engine/compbio/engine/client/SkeletalExecutable.java index 19fde7e..744bb33 100644 --- a/engine/compbio/engine/client/SkeletalExecutable.java +++ b/engine/compbio/engine/client/SkeletalExecutable.java @@ -323,7 +323,7 @@ public abstract class SkeletalExecutable implements Executable { public LimitsManager getLimits() { synchronized (SkeletalExecutable.class) { if (limits == null) { - limits = compbio.runner.Util.getLimits(this.getType()); + limits = compbio.engine.client.Util.getLimits(this.getType()); } } return limits; diff --git a/engine/compbio/engine/client/Util.java b/engine/compbio/engine/client/Util.java index afe2b6c..63181ea 100644 --- a/engine/compbio/engine/client/Util.java +++ b/engine/compbio/engine/client/Util.java @@ -32,6 +32,7 @@ import compbio.engine.client.Executable.ExecProvider; import compbio.engine.conf.DirectoryManager; import compbio.engine.conf.PropertyHelperManager; import compbio.metadata.JobStatus; +import compbio.metadata.LimitsManager; import compbio.metadata.ResultNotAvailableException; import compbio.util.FileUtil; import compbio.util.PropertyHelper; @@ -303,4 +304,37 @@ public final class Util { return exec; } + /** + * For now just assume that all parameters which came in needs setting it + * will be a client responsibility to prepare RunnerConfig object then + * + * @param rconfig + * @return + * + * public static List toOptionString(RunnerConfig + * rconfig) { String option = ""; List options = new + * ArrayList(); for (Parameter par : + * rconfig.getParameters()) { if (par.getPossibleValues().isEmpty()) + * { option = par.getOptionName(); } else { option = + * par.getOptionName() + "=" + par.getPossibleValues().get(0); } // + * separate options options.add(option); } return options; } + */ + + public static LimitsManager getLimits(Class> clazz) { + LimitsManager limits = null; + try { + limits = ConfExecutable.getRunnerLimits(clazz); + } catch (FileNotFoundException e) { + Util.log.warn( + "No limits are found for " + clazz + " executable! " + + e.getLocalizedMessage(), e.getCause()); + // its ok, limit may not be initialized + } catch (IOException e) { + Util.log.warn("IO exception while attempting to read limits for " + + clazz + " executable! " + e.getLocalizedMessage(), + e.getCause()); + } + return limits; + } + } diff --git a/runner/compbio/runner/Util.java b/runner/compbio/runner/Util.java index bfced2a..47f169b 100644 --- a/runner/compbio/runner/Util.java +++ b/runner/compbio/runner/Util.java @@ -37,53 +37,19 @@ import compbio.engine.client.ConfExecutable; import compbio.engine.client.ConfiguredExecutable; import compbio.engine.client.Executable; import compbio.engine.conf.PropertyHelperManager; -import compbio.metadata.LimitsManager; import compbio.metadata.PresetManager; import compbio.metadata.RunnerConfig; import compbio.util.PropertyHelper; public final class Util { - private static Logger log = Logger.getLogger(Util.class); + public static Logger log = Logger.getLogger(Util.class); private static final PropertyHelper ph = PropertyHelperManager .getPropertyHelper(); public static final String SPACE = " "; - /** - * For now just assume that all parameters which came in needs setting it - * will be a client responsibility to prepare RunnerConfig object then - * - * @param rconfig - * @return - * - * public static List toOptionString(RunnerConfig - * rconfig) { String option = ""; List options = new - * ArrayList(); for (Parameter par : - * rconfig.getParameters()) { if (par.getPossibleValues().isEmpty()) - * { option = par.getOptionName(); } else { option = - * par.getOptionName() + "=" + par.getPossibleValues().get(0); } // - * separate options options.add(option); } return options; } - */ - - public static LimitsManager getLimits(Class> clazz) { - LimitsManager limits = null; - try { - limits = ConfExecutable.getRunnerLimits(clazz); - } catch (FileNotFoundException e) { - log.warn( - "No limits are found for " + clazz + " executable! " - + e.getLocalizedMessage(), e.getCause()); - // its ok, limit may not be initialized - } catch (IOException e) { - log.warn("IO exception while attempting to read limits for " - + clazz + " executable! " + e.getLocalizedMessage(), - e.getCause()); - } - return limits; - } - public static synchronized RunnerConfig getSupportedOptions( Class> clazz) { try { diff --git a/testsrc/compbio/metadata/AllTestSuit.java b/testsrc/compbio/metadata/AllTestSuit.java index 794565a..24ca11d 100644 --- a/testsrc/compbio/metadata/AllTestSuit.java +++ b/testsrc/compbio/metadata/AllTestSuit.java @@ -32,21 +32,21 @@ public class AllTestSuit { .getPresets(ClustalW.class); public static final RunnerConfig CLUSTAL_PARAMETERS = Util .getSupportedOptions(ClustalW.class); - public static final LimitsManager CLUSTAL_LIMITS = Util + public static final LimitsManager CLUSTAL_LIMITS = compbio.engine.client.Util .getLimits(new ClustalW().getType()); public static final PresetManager TCOFFEE_PRESETS = Util .getPresets(Tcoffee.class); public static final RunnerConfig TCOFFEE_PARAMETERS = Util .getSupportedOptions(Tcoffee.class); - public static final LimitsManager TCOFFEE_LIMITS = Util + public static final LimitsManager TCOFFEE_LIMITS = compbio.engine.client.Util .getLimits(new Tcoffee().getType()); public static final PresetManager MUSCLE_PRESETS = Util .getPresets(Muscle.class); public static final RunnerConfig MUSCLE_PARAMETERS = Util .getSupportedOptions(Muscle.class); - public static final LimitsManager MUSCLE_LIMITS = Util + public static final LimitsManager MUSCLE_LIMITS = compbio.engine.client.Util .getLimits(new Muscle().getType()); public final static String test_group_cluster = "cluster"; diff --git a/webservices/compbio/ws/server/AAConWS.java b/webservices/compbio/ws/server/AAConWS.java index e6f8122..1ffbbf3 100644 --- a/webservices/compbio/ws/server/AAConWS.java +++ b/webservices/compbio/ws/server/AAConWS.java @@ -51,7 +51,7 @@ public class AAConWS implements SequenceAnnotation { private static final PresetManager aaconPresets = Util .getPresets(AACon.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new AACon().getType()); ConfiguredExecutable init(List sequences) diff --git a/webservices/compbio/ws/server/ClustalWS.java b/webservices/compbio/ws/server/ClustalWS.java index a5fc701..93d0c7f 100644 --- a/webservices/compbio/ws/server/ClustalWS.java +++ b/webservices/compbio/ws/server/ClustalWS.java @@ -66,7 +66,7 @@ public class ClustalWS implements MsaWS { private static final PresetManager clustalPresets = Util .getPresets(ClustalW.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new ClustalW().getType()); /* diff --git a/webservices/compbio/ws/server/DisemblWS.java b/webservices/compbio/ws/server/DisemblWS.java index 62f70d3..213711c 100644 --- a/webservices/compbio/ws/server/DisemblWS.java +++ b/webservices/compbio/ws/server/DisemblWS.java @@ -47,7 +47,7 @@ public class DisemblWS implements SequenceAnnotation { private static final PresetManager disemblPresets = Util .getPresets(Disembl.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new Disembl().getType()); ConfiguredExecutable init(List sequences) diff --git a/webservices/compbio/ws/server/GlobPlotWS.java b/webservices/compbio/ws/server/GlobPlotWS.java index 603c7dd..affe48e 100644 --- a/webservices/compbio/ws/server/GlobPlotWS.java +++ b/webservices/compbio/ws/server/GlobPlotWS.java @@ -47,7 +47,7 @@ public class GlobPlotWS implements SequenceAnnotation { private static final PresetManager globPlotPresets = Util .getPresets(GlobPlot.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new GlobPlot().getType()); ConfiguredExecutable init(List sequences) diff --git a/webservices/compbio/ws/server/JronnWS.java b/webservices/compbio/ws/server/JronnWS.java index 202cad1..97d4ceb 100644 --- a/webservices/compbio/ws/server/JronnWS.java +++ b/webservices/compbio/ws/server/JronnWS.java @@ -49,7 +49,7 @@ public class JronnWS implements SequenceAnnotation { private static final PresetManager jronnPresets = Util .getPresets(Jronn.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new Jronn().getType()); ConfiguredExecutable init(List sequences) diff --git a/webservices/compbio/ws/server/MafftWS.java b/webservices/compbio/ws/server/MafftWS.java index d2de592..9b74ce6 100644 --- a/webservices/compbio/ws/server/MafftWS.java +++ b/webservices/compbio/ws/server/MafftWS.java @@ -64,7 +64,7 @@ public class MafftWS implements MsaWS { private static final PresetManager mafftPresets = Util .getPresets(Mafft.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new Mafft().getType()); @Override diff --git a/webservices/compbio/ws/server/MuscleWS.java b/webservices/compbio/ws/server/MuscleWS.java index d6a9ba1..80f67b2 100644 --- a/webservices/compbio/ws/server/MuscleWS.java +++ b/webservices/compbio/ws/server/MuscleWS.java @@ -64,7 +64,7 @@ public class MuscleWS implements MsaWS { private static final PresetManager musclePresets = Util .getPresets(Muscle.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new Muscle().getType()); @Override diff --git a/webservices/compbio/ws/server/ProbconsWS.java b/webservices/compbio/ws/server/ProbconsWS.java index 3600c46..586352b 100644 --- a/webservices/compbio/ws/server/ProbconsWS.java +++ b/webservices/compbio/ws/server/ProbconsWS.java @@ -61,7 +61,7 @@ public class ProbconsWS implements MsaWS { private static final RunnerConfig probconsOptions = Util .getSupportedOptions(Probcons.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new Probcons().getType()); @Override diff --git a/webservices/compbio/ws/server/TcoffeeWS.java b/webservices/compbio/ws/server/TcoffeeWS.java index 5608a53..feb35f0 100644 --- a/webservices/compbio/ws/server/TcoffeeWS.java +++ b/webservices/compbio/ws/server/TcoffeeWS.java @@ -66,7 +66,7 @@ public class TcoffeeWS implements MsaWS { private static final PresetManager tcoffeePresets = Util .getPresets(Tcoffee.class); - private static final LimitsManager limitMan = compbio.runner.Util + private static final LimitsManager limitMan = compbio.engine.client.Util .getLimits(new Tcoffee().getType()); @Override diff --git a/website/archive/datamodel-1.1.jar b/website/archive/datamodel-1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..36dfa7fe26b7d5fd2e91f70a69cbc51ace972943 GIT binary patch literal 61792 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 B0LK6T literal 0 HcmV?d00001 -- 1.7.10.2