Project

General

Profile

Download (8.49 KB) Statistics
| Branch: | Revision:
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.eflora;
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.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
	@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_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

    
(1-1/15)