676fcbcf255ac7642b3203e56467548ef5fa50f2
[cdmlib-apps.git] / cdm-pesi / src / main / java / eu / etaxonomy / cdm / app / common / CdmDestinations.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.app.common;
11
12 import java.lang.reflect.InvocationTargetException;
13 import java.lang.reflect.Method;
14
15 import org.apache.log4j.Logger;
16
17 import eu.etaxonomy.cdm.common.AccountStore;
18 import eu.etaxonomy.cdm.database.CdmDataSource;
19 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
20 import eu.etaxonomy.cdm.database.ICdmDataSource;
21
22 public class CdmDestinations {
23 @SuppressWarnings("unused")
24 private static Logger logger = Logger.getLogger(CdmDestinations.class);
25
26 /**
27 * Intended to be used for imports
28 */
29 public static ICdmDataSource import_a(){
30 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
31 String cdmServer = "localhost";
32 String cdmDB = "import_a";
33 String cdmUserName = "root";
34 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
35 }
36
37 public static ICdmDataSource cdm_test_alex(){
38 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
39 String cdmServer = "192.168.2.10";
40 String cdmDB = "cdm_production_palmae";
41 String cdmUserName = "edit";
42 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
43 }
44
45
46 public static ICdmDataSource cdm_test_useSummary(){
47 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
48 String cdmServer = "localhost";
49 String cdmDB = "palmae_2011_07_17";
50 String cdmUserName = "edit";
51 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
52 }
53
54 public static ICdmDataSource cdm_test_jaxb(){
55 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
56 String cdmServer = "192.168.2.10";
57 String cdmDB = "cdm_test_jaxb";
58 String cdmUserName = "edit";
59 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
60 }
61
62 public static ICdmDataSource cdm_test_jaxb2(){
63 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
64 String cdmServer = "192.168.2.10";
65 String cdmDB = "cdm_test_jaxb2";
66 String cdmUserName = "edit";
67 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
68 }
69
70 public static ICdmDataSource cdm_test_andreasM(){
71 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
72 String cdmServer = "192.168.2.10";
73 String cdmDB = "cdm_test_andreasM";
74 String cdmUserName = "edit";
75 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
76 }
77
78 public static ICdmDataSource cdm_test_andreasM2(){
79 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
80 String cdmServer = "192.168.2.10";
81 String cdmDB = "cdm_test_andreasM2";
82 String cdmUserName = "edit";
83 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
84 }
85
86 public static ICdmDataSource cdm_test_local_mysql(){
87 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
88 String cdmServer = "127.0.0.1";
89 String cdmDB = "cdm_test";
90 String cdmUserName = "root";
91 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
92 }
93
94 public static ICdmDataSource cdm_test_local_mysql_fdac(){
95 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
96 String cdmServer = "127.0.0.1";
97 String cdmDB = "fdac";
98 String cdmUserName = "edit";
99 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
100 }
101
102 public static ICdmDataSource cdm_test_local_mysql_test(){
103 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
104 String cdmServer = "127.0.0.1";
105 String cdmDB = "test";
106 String cdmUserName = "edit";
107 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
108 }
109
110
111 public static ICdmDataSource cdm_portal(){
112 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
113 String cdmServer = "192.168.2.10";
114 String cdmDB = "cdm_portal";
115 String cdmUserName = "edit";
116 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
117 }
118
119 public static ICdmDataSource cdm_portal_test(){
120 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
121 String cdmServer = "192.168.2.10";
122 String cdmDB = "cdm_portal_test";
123 String cdmUserName = "edit";
124 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
125 }
126
127 public static ICdmDataSource cdm_test_patricia(){
128 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
129 String cdmServer = "192.168.2.10";
130 String cdmDB = "cdm_test_patricia";
131 String cdmUserName = "edit";
132 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
133 }
134
135 //
136 public static ICdmDataSource cdm_test_andreasK1(){
137 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
138 String cdmServer = "192.168.2.10";
139 String cdmDB = "cdm_test_andreasK1";
140 String cdmUserName = "edit";
141 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
142 }
143
144
145 public static ICdmDataSource cdm_pesi_erms(){
146 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
147 String cdmServer = "192.168.2.10";
148 String cdmDB = "cdm_pesi_erms";
149 String cdmUserName = "edit";
150 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
151 }
152
153 public static ICdmDataSource cdm_campanulaceae(){
154 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
155 String cdmServer = "192.168.2.10";
156 String cdmDB = "cdm_campanulaceae";
157 String cdmUserName = "edit";
158 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
159 }
160
161 public static ICdmDataSource cdm_ildis_dev(){
162 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
163 String cdmServer = "160.45.63.201";
164 String cdmDB = "cdm_edit_ildis";
165 String cdmUserName = "edit";
166 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
167 }
168
169 //
170 // public static ICdmDataSource cdm_ildis_production(){
171 // DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
172 // String cdmServer = "160.45.63.151";
173 // String cdmDB = "cdm_edit_ildis";
174 // String cdmUserName = "edit";
175 // return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
176 // }
177
178 public static ICdmDataSource cdm_cyprus_dev(){
179 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
180 String cdmServer = "160.45.63.201";
181 String cdmDB = "cdm_cyprus";
182 String cdmUserName = "edit";
183 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
184 }
185
186 public static ICdmDataSource cdm_cyprus_production(){
187 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
188 String cdmServer = "160.45.63.151";
189 String cdmDB = "cdm_production_cyprus";
190 String cdmUserName = "edit";
191 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
192 }
193
194 public static ICdmDataSource cdm_cyprus_production_tunnel(){
195 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
196 String cdmServer = "127.0.0.1";
197 int port = 13306;
198 String cdmDB = "cdm_production_cyprus";
199 String cdmUserName = "edit";
200 return makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
201 }
202
203 public static ICdmDataSource cdm_cyprus_dev_tunnel(){
204 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
205 String cdmServer = "127.0.0.1";
206 int port = 13306;
207 String cdmDB = "cdm_cyprus";
208 String cdmUserName = "edit";
209 return makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
210 }
211
212 public static ICdmDataSource cdm_campanulaceae_production(){
213 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
214 String cdmServer = "160.45.63.151";
215 String cdmDB = "cdm_production_campanulaceae";
216 String cdmUserName = "edit";
217 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
218 }
219
220 public static ICdmDataSource cdm_flora_malesiana_preview(){
221 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
222 String cdmServer = "160.45.63.201";
223 String cdmDB = "cdm_edit_flora_malesiana";
224 String cdmUserName = "edit";
225 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
226 }
227
228 public static ICdmDataSource cdm_flora_malesiana_production(){
229 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
230 String cdmServer = "160.45.63.151";
231 String cdmDB = "cdm_production_flora_malesiana";
232 String cdmUserName = "edit";
233 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
234 }
235
236 public static ICdmDataSource cdm_flora_central_africa_preview(){
237 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
238 String cdmServer = "160.45.63.201";
239 String cdmDB = "cdm_edit_flora_central_africa";
240 String cdmUserName = "edit";
241 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
242 }
243
244 public static ICdmDataSource cdm_flora_central_africa_production(){
245 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
246 String cdmServer = "160.45.63.151";
247 String cdmDB = "cdm_production_flora_central_africa";
248 String cdmUserName = "edit";
249 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
250 }
251
252 public static ICdmDataSource cdm_portal_test_localhost(){
253 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
254 String cdmServer = "127.0.0.1";
255 String cdmDB = "cdm_portal_test";
256 String cdmUserName = "edit";
257 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
258 }
259
260 public static ICdmDataSource cdm_portal_test_localhost2(){
261 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
262 String cdmServer = "127.0.0.1";
263 String cdmDB = "cdm_portal_test2";
264 String cdmUserName = "edit";
265 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
266 }
267
268 public static ICdmDataSource cdm_local_cichorieae(){
269 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
270 String cdmServer = "127.0.0.1";
271 String cdmDB = "cdm_edit_cichorieae";
272 String cdmUserName = "edit";
273 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
274 }
275
276 public static ICdmDataSource cdm_local_dipera(){
277 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
278 String cdmServer = "127.0.0.1";
279 String cdmDB = "cdm_edit_diptera";
280 String cdmUserName = "edit";
281 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
282 }
283
284 public static ICdmDataSource cdm_local_palmae(){
285 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
286 String cdmServer = "127.0.0.1";
287 String cdmDB = "cdm_edit_palmae";
288 String cdmUserName = "edit";
289 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
290 }
291
292 public static ICdmDataSource cdm_local_globis(){
293 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
294 String cdmServer = "127.0.0.1";
295 String cdmDB = "cdm_globis";
296 String cdmUserName = "edit";
297 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
298 }
299
300
301 public static ICdmDataSource cdm_local_postgres_CdmTest(){
302 DatabaseTypeEnum dbType = DatabaseTypeEnum.PostgreSQL;
303 String cdmServer = "127.0.0.1";
304 String cdmDB = "CdmTest";
305 String cdmUserName = "edit";
306 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
307 }
308
309 public static ICdmDataSource cdm_local_tdwg2010(){
310 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
311 String cdmServer = "127.0.0.1";
312 String cdmDB = "cdm_tdwg2010";
313 String cdmUserName = "edit";
314 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
315 }
316
317
318 public static ICdmDataSource NULL(){
319 return null;
320 }
321
322
323 public static ICdmDataSource localH2(){
324 return CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
325 }
326
327 public static ICdmDataSource localH2(String database, String username, String filePath){
328 return CdmDataSource.NewH2EmbeddedInstance(database, "sa", "", filePath, null);
329 }
330 public static ICdmDataSource localH2Cichorieae(){
331 return CdmDataSource.NewH2EmbeddedInstance("cichorieae", "sa", "");
332 }
333
334
335 public static ICdmDataSource localH2EuroMed(){
336 return CdmDataSource.NewH2EmbeddedInstance("euroMed", "sa", "");
337 }
338
339 public static ICdmDataSource localH2Erms(){
340 return CdmDataSource.NewH2EmbeddedInstance("erms", "sa", "");
341 }
342
343 public static ICdmDataSource cdm_algaterra_preview(){
344 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
345 String cdmServer = "160.45.63.201";
346 String cdmDB = "cdm_edit_algaterra";
347 String cdmUserName = "edit";
348 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
349 }
350
351
352 public static ICdmDataSource cdm_euroMed_dev(){
353 DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
354 String cdmServer = "160.45.63.201";
355 String cdmDB = "cdm_euromed_dev";
356 String cdmUserName = "edit";
357 return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
358 }
359
360
361
362
363 /**
364 * initializes source
365 * TODO only supports MySQL and PostgreSQL
366 *
367 * @param dbType
368 * @param cdmServer
369 * @param cdmDB
370 * @param port
371 * @param cdmUserName
372 * @param pwd
373 * @return
374 */
375 private static ICdmDataSource makeDestination(DatabaseTypeEnum dbType, String cdmServer, String cdmDB, int port, String cdmUserName, String pwd ){
376 //establish connection
377 pwd = AccountStore.readOrStorePassword(cdmServer, cdmDB, cdmUserName, pwd);
378 ICdmDataSource destination;
379 if(dbType.equals(DatabaseTypeEnum.MySQL)){
380 destination = CdmDataSource.NewMySqlInstance(cdmServer, cdmDB, port, cdmUserName, pwd, null);
381 } else if(dbType.equals(DatabaseTypeEnum.PostgreSQL)){
382 destination = CdmDataSource.NewPostgreSQLInstance(cdmServer, cdmDB, port, cdmUserName, pwd, null);
383 } else {
384 //TODO others
385 throw new RuntimeException("Unsupported DatabaseType");
386 }
387 return destination;
388
389 }
390
391
392 /**
393 * Accepts a string array and tries to find a method returning an ICdmDataSource with
394 * the name of the given first string in the array
395 *
396 * @param args
397 * @return
398 */
399 public static ICdmDataSource chooseDestination(String[] args) {
400 if(args == null)
401 return null;
402
403 if(args.length != 1)
404 return null;
405
406 String possibleDestination = args[0];
407
408 Method[] methods = CdmDestinations.class.getMethods();
409
410 for (Method method : methods){
411 if(method.getName().equals(possibleDestination)){
412 try {
413 return (ICdmDataSource) method.invoke(null, null);
414 } catch (IllegalArgumentException e) {
415 // TODO Auto-generated catch block
416 e.printStackTrace();
417 } catch (IllegalAccessException e) {
418 // TODO Auto-generated catch block
419 e.printStackTrace();
420 } catch (InvocationTargetException e) {
421 // TODO Auto-generated catch block
422 e.printStackTrace();
423 }
424 }
425 }
426 return null;
427 }
428
429 }
430