2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.app
.common
;
12 import java
.lang
.reflect
.InvocationTargetException
;
13 import java
.lang
.reflect
.Method
;
15 import org
.apache
.log4j
.Logger
;
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
;
22 public class CdmDestinations
{
23 @SuppressWarnings("unused")
24 private static Logger logger
= Logger
.getLogger(CdmDestinations
.class);
27 * Intended to be used for imports
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
194 public static ICdmDataSource
cdm_cyprus_production_tunnel(){
195 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
196 String cdmServer
= "127.0.0.1";
198 String cdmDB
= "cdm_production_cyprus";
199 String cdmUserName
= "edit";
200 return makeDestination(dbType
, cdmServer
, cdmDB
, port
, cdmUserName
, null);
203 public static ICdmDataSource
cdm_cyprus_dev_tunnel(){
204 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
205 String cdmServer
= "127.0.0.1";
207 String cdmDB
= "cdm_cyprus";
208 String cdmUserName
= "edit";
209 return makeDestination(dbType
, cdmServer
, cdmDB
, port
, cdmUserName
, null);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
318 public static ICdmDataSource
NULL(){
323 public static ICdmDataSource
localH2(){
324 return CdmDataSource
.NewH2EmbeddedInstance("cdm", "sa", "");
327 public static ICdmDataSource
localH2(String database
, String username
, String filePath
){
328 return CdmDataSource
.NewH2EmbeddedInstance(database
, "sa", "", filePath
, null);
330 public static ICdmDataSource
localH2Cichorieae(){
331 return CdmDataSource
.NewH2EmbeddedInstance("cichorieae", "sa", "");
335 public static ICdmDataSource
localH2EuroMed(){
336 return CdmDataSource
.NewH2EmbeddedInstance("euroMed", "sa", "");
339 public static ICdmDataSource
localH2Erms(){
340 return CdmDataSource
.NewH2EmbeddedInstance("erms", "sa", "");
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);
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);
365 * TODO only supports MySQL and PostgreSQL
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);
385 throw new RuntimeException("Unsupported DatabaseType");
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
399 public static ICdmDataSource
chooseDestination(String
[] args
) {
406 String possibleDestination
= args
[0];
408 Method
[] methods
= CdmDestinations
.class.getMethods();
410 for (Method method
: methods
){
411 if(method
.getName().equals(possibleDestination
)){
413 return (ICdmDataSource
) method
.invoke(null, null);
414 } catch (IllegalArgumentException e
) {
415 // TODO Auto-generated catch block
417 } catch (IllegalAccessException e
) {
418 // TODO Auto-generated catch block
420 } catch (InvocationTargetException e
) {
421 // TODO Auto-generated catch block