adapt app-import to v5.45
[cdmlib-apps.git] / cdm-eflora / src / main / java / eu / etaxonomy / cdm / app / eflora / 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 package eu.etaxonomy.cdm.app.eflora;
10
11 import java.lang.reflect.InvocationTargetException;
12 import java.lang.reflect.Method;
13
14 import org.apache.logging.log4j.LogManager;
15 import org.apache.logging.log4j.Logger;
16
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;
21
22 public class CdmDestinations {
23
24 @SuppressWarnings("unused")
25 private static final Logger logger = LogManager.getLogger();
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_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);
43 }
44
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);
51 }
52
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);
59 }
60
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);
67 }
68
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);
75 }
76
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);
83 }
84
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);
91 }
92
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);
99 }
100
101
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);
108 }
109
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);
116 }
117
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);
124 }
125
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);
132 }
133
134
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);
141 }
142
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);
149 }
150
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);
157 }
158
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);
165 }
166
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);
173 }
174
175 public static ICdmDataSource NULL(){
176 return null;
177 }
178
179
180 public static ICdmDataSource localH2(){
181 return CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
182 }
183
184 public static ICdmDataSource localH2(String database, String username, String filePath){
185 return CdmDataSource.NewH2EmbeddedInstance(database, username, "", filePath);
186 }
187
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);
194 // }
195
196 /**
197 * initializes source
198 * TODO only supports MySQL and PostgreSQL
199 *
200 * @param dbType
201 * @param cdmServer
202 * @param cdmDB
203 * @param port
204 * @param cdmUserName
205 * @param pwd
206 * @return
207 */
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);
216 } else {
217 //TODO others
218 throw new RuntimeException("Unsupported DatabaseType");
219 }
220 return destination;
221
222 }
223
224
225 /**
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
228 *
229 * @param args
230 * @return
231 */
232 public static ICdmDataSource chooseDestination(String[] args) {
233 if(args == null) {
234 return null;
235 }
236
237 if(args.length != 1) {
238 return null;
239 }
240
241 String possibleDestination = args[0];
242
243 Method[] methods = CdmDestinations.class.getMethods();
244
245 for (Method method : methods){
246 if(method.getName().equals(possibleDestination)){
247 try {
248 return (ICdmDataSource) method.invoke(null, null);
249 } catch (IllegalArgumentException e) {
250 // TODO Auto-generated catch block
251 e.printStackTrace();
252 } catch (IllegalAccessException e) {
253 // TODO Auto-generated catch block
254 e.printStackTrace();
255 } catch (InvocationTargetException e) {
256 // TODO Auto-generated catch block
257 e.printStackTrace();
258 }
259 }
260 }
261 return null;
262 }
263
264 }
265