Add servlet for public usage stats display.
[jabaws.git] / TODO.txt
1 JABA 1 is to keep working, later when 2 is ready replace jabaws mapping to point to \r
2 JABA 2 but provide a link to JABA 1.  \r
3 \r
4 +install JABA 1 stat server \r
5 \r
6 +Get path to Java executable from JAVA_HOME ? (for Jronn AACon) \r
7 +Describe requirements \r
8 \r
9 Python > 2.2\r
10 Perl > 5.0\r
11 Java > 6\r
12 \r
13 For compilation \r
14 C++\r
15 C\r
16 Gnu make\r
17 \r
18 Webpage for testing web services?\r
19 \r
20 Crawler is to update DB records if the directory is not found to prevent link \r
21 generation for stats. \r
22 \r
23  \r
24 \r
25 + Help information? - relative - client to add host and context info\r
26 + statistics - result files \r
27 + Check progress tracking on large sequence. \r
28 \r
29 Add more detailed tests for webservices? \r
30 \r
31 ? ideally should introduce native Mac support (and maybe abandon native windows support in \r
32 favour of VM)   \r
33 \r
34 TODO write some help on the executable.properties within this file! \r
35 check that after binaries relocation build tasks point to correct locations!\r
36 \r
37 Cluster stats: \r
38  -Remove hyperlinks from tasks which workdirs were removed \r
39  -graph generation \r
40  -user documentation (do not forget how to enable follow symlinks!)\r
41 \r
42 add to help text: To disable a web service remove it from WEB-INF/sun-jaxws.xml descriptor\r
43 \r
44 rename jaba.war to jabaws.war and make sure jabaws context path is used throughout. \r
45 \r
46 + Current stat collector has to rely on file dates! \r
47 \r
48 \r
49 ? Replace conservation.Method with server.ws.Method and try building WS. If this does not work - get rid of Method\r
50 \r
51 integrate the above to tweak the size of the local job\r
52 \r
53 + Good toString method for Limits (test with command line client -limits)\r
54 Document the Limits for presets\r
55 JABA DOCS\r
56 \r
57 (later) Add documentation on Presets, Parameters and Limits\r
58 (later) Explain how to define a limit\r
59 \r
60 Add test for repeated result collection from cluster engine\r
61 \r
62 (low) Pack the test cases and build file to run them in one of the distributives \r
63 \r
64 \r
65 DONE\r
66 \r
67 version 2\r
68 \r
69 DONE:  GET rid of binaries/help directory!\r
70 DONE:  update binaries\r
71  DONE:  muscle binary version 3.8.31 for win/lin32/lin64 and sources, docs in website/prog_docs\r
72  DONE:  test Muscle on the cluster\r
73  DONE:  test Muscle compilation\r
74  DONE:  probcons up-to-date\r
75  DONE:  clustal up-to-date \r
76  DONE:  update tcoffee (8.99 latest) source code updated  docs updated \r
77  DONE:  tcoffee compilation for IA32 \r
78  DONE:  update Mafft (6.857 latest) for win/lin32/lin64 and sources, no docs updates\r
79 DONE:  make sure conf files are optional!\r
80 \r
81 Cluster stats: \r
82  DONE: cancelled should not be reported as incomplete!\r
83  DONE: ant task to clean up clean stat db task before packing web app\r
84  DONE: pack web apps with stat db (NOT TESTED!)\r
85  DONE: change input size bites\r
86  DONE: add help info for each column in the detailed job list table\r
87  DONE: replace default -1 with ? \r
88  DONE: delete and re-import the database to fix clustal input staff    \r
89 \r
90 DONE:  Test all WS as names from Executables were removed\r
91 DONE:  Add default names for input and output in every executable and use them consistently\r
92   throughts (e.g. in all WS). Best of all use the same name from SceletalExectuable \r
93   For statistics. \r
94 \r
95 DONE:  FIXED Conecting to JABAWS version 2 service\r
96   09-Feb-2011 15:27:53 compbio.ws.client.Jws2Client connect\r
97   INFO: Connected successfully!\r
98   Exception in thread "main" java.lang.NullPointerException\r
99         at compbio.ws.client.MetadataHelper.getParametersList(MetadataHelper.java:30)\r
100         at compbio.ws.client.Jws2Client.<init>(Jws2Client.java:179)\r
101         at compbio.ws.client.Jws2Client.main(Jws2Client.java:483)\r
102 \r
103 DONE:  ScoreManager should output scores properly \r
104 DONE:  Allow empty Parameters and Preset files! \r
105 DONE:  Check the WS input and reject it on submission rather then of access with error message\r
106 \r
107 DONE: Add registry service to query services status\r
108 DONE: Refactor web services checker to enable a programmatic access to its methods.\r
109 DONE: Finish the client\r
110 DONE: Add AACon ws\r
111 DONE: Add iupred ws http://iupred.enzim.hu/\r
112 DONE: Add globprot ws - does not report raw scores, just regions\r
113 DONE: Add ronn ws\r
114 DONE: Define limits for presets - if required\r
115 DONE: Add logging facility to WSTester so more details of the problem can be reported\r
116 DONE: Statistics collector for engines (number of operations/timing)\r
117 \r
118 \r
119 version 1\r
120 \r
121 DONE: LocalExecutor service must be shutdown on web application undeploy event not on JVM shutdown. \r
122       This is because JVM is still running even after web application is shut down!\r
123 DONE: Use absolute path for web site download links as archives are not included into distro!\r
124 DONE: Rearrange web site docs - add links to the top of the page to the topics discussed below\r
125 DONE: Put the documentation for various executables online\r
126 DONE: Make left gradient image one-two characters larger + change "For developer ->For Developers"\r
127 DONE: test local/cluster execution - test Load balancer\r
128 DONE: Improve SimpleWS client so it can be scripted against: give user alignment and accept parameters\r
129 DONE: Make a configuration tester class (check that configuration files point to the executables, and they can be executed)\r
130 DONE: PUT CLIENT JAR INTO WEB-INF/LIB - most likely need to get rid of dist prefix in the build file\r
131 DONE: Different packages for download and dundee. generic vs specific settings. \r
132 DONE: JAVADOC\r
133 DONE: Refactor EngineResourcesLeak tester to hide a map implementation!\r
134 DONE: Compile executables for linux in the most generic way\r
135 DONE: Make different log4j configuration files / web services logs.\r
136 DONE: System manual\r
137 DONE: Developer doc\r
138 DONE: How to\r
139 DONE: Prepare different packages\r
140 DONE: extract commonly used names into variable in the build script\r
141 DONE: Test for high load conditions (TestNG?)\r
142 DONE: (low) Fix: Started jobs with unknown completion status reported as FINISHED by  msaws.getJobStatus(taskId) (see SimpleWSClient)\r
143 DONE: fix compile binaries script\r
144 DONE: Make script to change executable flag for linux systems\r
145 DONE: jobsout must be created within war\r
146 DONE: enable relative paths for local engine conf temp dir\r
147 COUND NOT REPRODUCE: fix cluster job status - RUNNING -> UNDEFINED\r
148 DONE: throw JobSubmission exception with appropriate method instead - (low) code discoverer/tester for ws - e.g. after war deployment to find out what actually works\r
149 DONE: fix build scripts after reorganising project\r
150 DONE: package as war file for deployment\r
151 DONE: package for jalview distro for local execution\r
152 DONE: reorganise project into independent chunks\r
153 DONE: test Parameter & Option toCommand method\r
154 DONE: Replace WS methods with new CommandBuilder.toCommand()\r
155 DONE: Setting default values is validated as external method \r
156 DONE: Refactoring to extract data model, and engines is performed\r
157 DONE: Default value is adopted for passing new Option values to server side\r
158 DONE: Converting Options to commands delegated to CommandBuilder  \r
159 DONE: Make Arguments mutable to facilitate default value setting for WS\r
160 DONE: Matrix files for alignment programme\r
161 DONE: Clean up testcases\r
162 DONE: Replace List<String> as command line parameters abstraction to dedicated CommandBuilder class \r
163 DONE: Parallel execution for tcoffee jobs\r
164 DONE: Copyright added\r
165 DONE: WRAP ProbCons\r
166 DONE: think about time limits and cluster parameters for parallel execution - NativeSpecs for cluster is implemented\r
167 DONE: (low) Use for WS: (@WebParam(name = "name") String name) {\r
168 DONE: Implement rough policy for runtimes (e.g. do not run excessively long tasks on the local machine if cluster is available)\r
169 DONE: Write tomcat conf to expose WS\r
170 DONE: access control to web.xml\r
171 DONE: Statistics collector for WS\r
172 DONE: implements limits for web services\r
173 DONE: WS clients must be able to connect to a web service given the service url. \r
174 e.i. ws URL should not be compiled in using wsimport, but determined from \r
175 the configuration file.  \r
176 \r
177 DONE: Could not find configuration files if run from within servlet container\r
178 DONE: Add ways to get engine based on the key for everything but submission of the new tasks \r
179 DONE: Add cache to Cluster JOBID - so that at least jobs for which results have not been collected is cached.\r
180 DONE: FINISHED overrides FINISHED with time stamp!\r
181 DONE: Consider think about JobStatus and StatFileStatus\r
182 DONE: a method to read 3 chars at the beginning of the file to indicate a progress is added\r
183 DONE: ConfiguredExecutable<?> al = sexec.getResults(jobId); || Alignment ?\r
184 DONE: ClustalW - OUTput must be set !\r
185 DONE: Add accessor methods to get a DUMP of the process output \r
186 DONE: FilePuller should be cached to avoid excessive fs exercise\r
187 DONE: Test List of the processes (ensure no memory leaks)\r
188 PART DONE - On the client on shutdown remember the task list - server tasks could be loaded and executed from saved run configurations, client should decide for themselves what they want\r
189 DONE: Persist the task list to enable later result collection on the server side\r
190 DONE Wrap TCoffee\r
191 DONE: improve parameters handling - new schema + update for all parameters\r
192 DONE: Cluster jobs report submitting and result collecting/finishing time (for sync jobs only(!)) and cluster jobid in the corresponding files  \r
193 DONE: Local jobs report starting and finising times in files with corresponding names in the task directory  \r
194 DONE: Generalize getResult method for MSA runners\r
195 DONE: Create test suits\r
196 DONE: Convert junit tests to TestNG\r
197 DONE: Redirect output & error streams to the named files as some processed need this  \r
198 DONE: Extract generilyzed class with most of the method for individual executable to use\r
199 DONE: Refit wrappers to use the generalised class to avoid duplication  \r
200 DONE: Pass environment variable settings to the executable\r
201 DONE: Complete AsyncExecutors implementation\r
202 DONE: Look to unify methods for engines\r
203 DONE: Provide way around of generated directory setup for test cases(?)\r
204 DONE: Fix the test cases for local engine (need to set directory on executable explicitly)\r
205 DONE: Make log files for processes err and out for local execution\r
206 DONE: Trace where AsyncExcel called with null Executable and attempts to create a new directory repeatedly\r
207 DONE: directory generator\r
208 DONE: tests for cancel \r
209 DONE tests for getStatus\r
210 DONE  ws async\r
211 DONE: parametrized clustal operations\r
212 DONE: test large datasets handling \r
213 DONE: write load balancer \r
214 DONE: (low) task persistance\r
215 DONE: Look at CancellableTask if with Sync and AsyncExecutor \r