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.
9 package eu
.etaxonomy
.cdm
.app
.eflora
;
11 import java
.lang
.reflect
.InvocationTargetException
;
12 import java
.lang
.reflect
.Method
;
14 import org
.apache
.logging
.log4j
.LogManager
;
15 import org
.apache
.logging
.log4j
.Logger
;
17 import eu
.etaxonomy
.cdm
.config
.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
{
24 @SuppressWarnings("unused")
25 private static final Logger logger
= LogManager
.getLogger();
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_local_mysql(){
38 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
39 String cdmServer
= "127.0.0.1";
40 String cdmDB
= "cdm_test";
41 String cdmUserName
= "edit";
42 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
45 public static ICdmDataSource
cdm_test_local_mysql_fdac(){
46 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
47 String cdmServer
= "127.0.0.1";
48 String cdmDB
= "fdac";
49 String cdmUserName
= "edit";
50 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
53 public static ICdmDataSource
cdm_test_local_mysql_test(){
54 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
55 String cdmServer
= "127.0.0.1";
56 String cdmDB
= "test";
57 String cdmUserName
= "edit";
58 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
61 public static ICdmDataSource
cdm_test_local_fdac(){
62 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
63 String cdmServer
= "127.0.0.1";
64 String cdmDB
= "fdac";
65 String cdmUserName
= "root";
66 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
69 public static ICdmDataSource
cdm_flora_malesiana_preview(){
70 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
71 String cdmServer
= "160.45.63.175";
72 String cdmDB
= "cdm_edit_flora_malesiana";
73 String cdmUserName
= "edit";
74 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
77 public static ICdmDataSource
cdm_flora_malesiana_production(){
78 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
79 String cdmServer
= "160.45.63.171";
80 String cdmDB
= "cdm_production_flora_malesiana";
81 String cdmUserName
= "edit";
82 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
85 public static ICdmDataSource
cdm_nepenthes_production(){
86 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
87 String cdmServer
= "160.45.63.171";
88 String cdmDB
= "cdm_production_caryo_nepenthaceae";
89 String cdmUserName
= "edit";
90 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
93 public static ICdmDataSource
cdm_flora_malesiana_prospective_production(){
94 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
95 String cdmServer
= "160.45.63.171";
96 String cdmDB
= "cdm_production_flora_malesiana_prospective";
97 String cdmUserName
= "edit";
98 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
102 public static ICdmDataSource
cdm_flora_guianas_preview(){
103 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
104 String cdmServer
= "160.45.63.175";
105 String cdmDB
= "cdm_flora_guianas";
106 String cdmUserName
= "edit";
107 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
110 public static ICdmDataSource
cdm_flora_guianas_production(){
111 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
112 String cdmServer
= "160.45.63.171";
113 String cdmDB
= "cdm_production_flora_guianas";
114 String cdmUserName
= "edit";
115 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
118 public static ICdmDataSource
cdm_flore_gabon_preview(){
119 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
120 String cdmServer
= "160.45.63.175";
121 String cdmDB
= "cdm_flore_gabon";
122 String cdmUserName
= "edit";
123 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
126 public static ICdmDataSource
cdm_flore_gabon_production(){
127 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
128 String cdmServer
= "160.45.63.171";
129 String cdmDB
= "cdm_production_flore_gabon";
130 String cdmUserName
= "edit";
131 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
135 public static ICdmDataSource
cdm_flora_central_africa_local(){
136 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
137 String cdmServer
= "localhost";
138 String cdmDB
= "fdac";
139 String cdmUserName
= "edit";
140 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
143 public static ICdmDataSource
cdm_flora_central_africa_preview(){
144 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
145 String cdmServer
= "160.45.63.175";
146 String cdmDB
= "cdm_edit_flora_central_africa";
147 String cdmUserName
= "edit";
148 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
151 public static ICdmDataSource
cdm_flora_central_africa_production(){
152 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
153 String cdmServer
= "160.45.63.171";
154 String cdmDB
= "cdm_production_flora_central_africa";
155 String cdmUserName
= "edit";
156 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
159 public static ICdmDataSource
cdm_portal_test_localhost(){
160 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
161 String cdmServer
= "127.0.0.1";
162 String cdmDB
= "cdm_portal_test";
163 String cdmUserName
= "edit";
164 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
167 public static ICdmDataSource
cdm_portal_test_localhost2(){
168 DatabaseTypeEnum dbType
= DatabaseTypeEnum
.MySQL
;
169 String cdmServer
= "127.0.0.1";
170 String cdmDB
= "cdm_portal_test2";
171 String cdmUserName
= "edit";
172 return makeDestination(dbType
, cdmServer
, cdmDB
, -1, cdmUserName
, null);
175 public static ICdmDataSource
NULL(){
180 public static ICdmDataSource
localH2(){
181 return CdmDataSource
.NewH2EmbeddedInstance("cdm", "sa", "");
184 public static ICdmDataSource
localH2(String database
, String username
, String filePath
){
185 return CdmDataSource
.NewH2EmbeddedInstance(database
, username
, "", filePath
);
188 // public static ICdmDataSource LAPTOP_HP(){
189 // DatabaseTypeEnum dbType = DatabaseTypeEnum.SqlServer2005;
190 // String cdmServer = "LAPTOPHP";
191 // String cdmDB = "cdmTest";
192 // String cdmUserName = "edit";
193 // return makeDestination(cdmServer, cdmDB, -1, cdmUserName, null);
198 * TODO only supports MySQL and PostgreSQL
208 private static ICdmDataSource
makeDestination(DatabaseTypeEnum dbType
, String cdmServer
, String cdmDB
, int port
, String cdmUserName
, String pwd
){
209 //establish connection
210 pwd
= AccountStore
.readOrStorePassword(cdmServer
, cdmDB
, cdmUserName
, pwd
);
211 ICdmDataSource destination
;
212 if(dbType
.equals(DatabaseTypeEnum
.MySQL
)){
213 destination
= CdmDataSource
.NewMySqlInstance(cdmServer
, cdmDB
, port
, cdmUserName
, pwd
);
214 } else if(dbType
.equals(DatabaseTypeEnum
.PostgreSQL
)){
215 destination
= CdmDataSource
.NewPostgreSQLInstance(cdmServer
, cdmDB
, port
, cdmUserName
, pwd
);
218 throw new RuntimeException("Unsupported DatabaseType");
226 * Accepts a string array and tries to find a method returning an ICdmDataSource with
227 * the name of the given first string in the array
232 public static ICdmDataSource
chooseDestination(String
[] args
) {
237 if(args
.length
!= 1) {
241 String possibleDestination
= args
[0];
243 Method
[] methods
= CdmDestinations
.class.getMethods();
245 for (Method method
: methods
){
246 if(method
.getName().equals(possibleDestination
)){
248 return (ICdmDataSource
) method
.invoke(null, null);
249 } catch (IllegalArgumentException e
) {
250 // TODO Auto-generated catch block
252 } catch (IllegalAccessException e
) {
253 // TODO Auto-generated catch block
255 } catch (InvocationTargetException e
) {
256 // TODO Auto-generated catch block