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 public static ICdmDataSource
cdm_test_jaxb2(){
28 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
29 String cdmServer
= "192.168.2.10";
30 String cdmDB
= "cdm_test_jaxb2";
31 String cdmUserName
= "edit";
32 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
35 public static ICdmDataSource
cdm_test_patricia(){
36 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
37 String cdmServer
= "192.168.2.10";
38 String cdmDB
= "cdm_test_patricia";
39 String cdmUserName
= "edit";
40 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
43 public static ICdmDataSource
cdm_test_local_mysql(){
44 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
45 String cdmServer
= "127.0.0.1";
46 String cdmDB
= "cdm_test";
47 String cdmUserName
= "root";
48 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
51 public static ICdmDataSource
cdm_test_local_mysql_fdac(){
52 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
53 String cdmServer
= "127.0.0.1";
54 String cdmDB
= "fdac";
55 String cdmUserName
= "edit";
56 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
59 public static ICdmDataSource
cdm_test_local_mysql_test(){
60 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
61 String cdmServer
= "127.0.0.1";
62 String cdmDB
= "test";
63 String cdmUserName
= "edit";
64 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
66 public static ICdmDataSource
cdm_portal_test_localhost(){
67 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
68 String cdmServer
= "127.0.0.1";
69 String cdmDB
= "cdm_portal_test";
70 String cdmUserName
= "edit";
71 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
74 public static ICdmDataSource
cdm_portal_test_localhost2(){
75 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
76 String cdmServer
= "127.0.0.1";
77 String cdmDB
= "cdm_portal_test2";
78 String cdmUserName
= "edit";
79 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
82 public static ICdmDataSource
cdm_local_postgres_CdmTest(){
83 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.PostgreSQL
;
84 String cdmServer
= "127.0.0.1";
85 String cdmDB
= "CdmTest";
86 String cdmUserName
= "edit";
87 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
91 public static ICdmDataSource
NULL(){
96 public static ICdmDataSource
localH2(){
97 return CdmDataSource
.NewH2EmbeddedInstance("cdm", "sa", "");
100 public static ICdmDataSource
localH2(String database
, String username
, String filePath
){
101 return CdmDataSource
.NewH2EmbeddedInstance(database
, "sa", "", filePath
, null);
103 public static ICdmDataSource
localH2Cichorieae(){
104 return CdmDataSource
.NewH2EmbeddedInstance("cichorieae", "sa", "");
108 public static ICdmDataSource
localH2EuroMed(){
109 return CdmDataSource
.NewH2EmbeddedInstance("euroMed", "sa", "");
112 public static ICdmDataSource
localH2Erms(){
113 return CdmDataSource
.NewH2EmbeddedInstance("erms", "sa", "");
116 public static ICdmDataSource
cdm_algaterra_preview(){
117 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
118 String cdmServer
= "160.45.63.201";
119 String cdmDB
= "cdm_edit_algaterra";
120 String cdmUserName
= "edit";
121 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
125 public static ICdmDataSource
cdm_pesi_euroMed(){
126 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
127 String cdmServer
= "160.45.63.201";
128 String cdmDB
= "cdm_pesi_euromed";
129 String cdmUserName
= "edit";
130 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
135 public static ICdmDataSource
cdm_pesi_fauna_europaea(){
136 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
137 String cdmServer
= "160.45.63.201";
138 String cdmDB
= "cdm_pesi_fauna_europaea";
139 String cdmUserName
= "edit";
140 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
144 public static ICdmDataSource
cdm_pesi_erms(){
145 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
146 String cdmServer
= "160.45.63.201";
147 String cdmDB
= "cdm_pesi_erms";
148 String cdmUserName
= "edit";
149 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
156 * TODO only supports MySQL and PostgreSQL
166 private static ICdmDataSource
makeDestination(DatabaseTypeEnum dbType
, String cdmServer
, String cdmDB
, int port
, String cdmUserName
, String pwd
){
167 //establish connection
168 pwd
= AccountStore
.readOrStorePassword(cdmServer
, cdmDB
, cdmUserName
, pwd
);
169 ICdmDataSource destination
;
170 if(dbType
.equals(DatabaseTypeEnum
.MySQL
)){
171 destination
= CdmDataSource
.NewMySqlInstance(cdmServer
, cdmDB
, port
, cdmUserName
, pwd
, null);
172 } else if(dbType
.equals(DatabaseTypeEnum
.PostgreSQL
)){
173 destination
= CdmDataSource
.NewPostgreSQLInstance(cdmServer
, cdmDB
, port
, cdmUserName
, pwd
, null);
176 throw new RuntimeException("Unsupported DatabaseType");
184 * Accepts a string array and tries to find a method returning an ICdmDataSource with
185 * the name of the given first string in the array
190 public static ICdmDataSource
chooseDestination(String
[] args
) {
197 String possibleDestination
= args
[0];
199 Method
[] methods
= CdmDestinations
.class.getMethods();
201 for (Method method
: methods
){
202 if(method
.getName().equals(possibleDestination
)){
204 return (ICdmDataSource
) method
.invoke(null, null);
205 } catch (IllegalArgumentException e
) {
206 // TODO Auto-generated catch block
208 } catch (IllegalAccessException e
) {
209 // TODO Auto-generated catch block
211 } catch (InvocationTargetException e
) {
212 // TODO Auto-generated catch block