Project

General

Profile

Download (7.64 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.common;
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.common.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
	public static ICdmDataSource cdm_test_local_mysql(){
27
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
28
		String cdmServer = "127.0.0.1";
29
		String cdmDB = "cdm_test";
30
		String cdmUserName = "root";
31
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
32
	}
33

    
34
	public static ICdmDataSource cdm_test_local_faunaEu_mysql(){
35
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
36
		String cdmServer = "127.0.0.1";
37
		String cdmDB = "cdm_faunaeu_2014_07";
38
		String cdmUserName = "root";
39
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
40
	}
41

    
42

    
43
	public static ICdmDataSource cdm_test_local_indexFungorum(){
44
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
45
		String cdmServer = "127.0.0.1";
46
		String cdmDB = "indexFungorum";
47
		String cdmUserName = "root";
48
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
49
	}
50

    
51

    
52
	public static ICdmDataSource cdm_test_local_mysql_erms(){
53
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
54
		String cdmServer = "127.0.0.1";
55
		String cdmDB = "erms";
56
		String cdmUserName = "root";
57
		return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
58
	}
59

    
60

    
61
	public static ICdmDataSource cdm_test_local_mysql_erms2(){
62
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
63
		String cdmServer = "127.0.0.1";
64
		String cdmDB = "erms2";
65
		String cdmUserName = "root";
66
		return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
67
	}
68

    
69

    
70
	public static ICdmDataSource cdm_test_local_mysql_test(){
71
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
72
		String cdmServer = "127.0.0.1";
73
		String cdmDB = "test";
74
		String cdmUserName = "edit";
75
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
76
	}
77
	public static ICdmDataSource cdm_portal_test_localhost(){
78
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
79
		String cdmServer = "127.0.0.1";
80
		String cdmDB = "cdm_portal_test";
81
		String cdmUserName = "edit";
82
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
83
	}
84

    
85
	public static ICdmDataSource cdm_portal_test_localhost2(){
86
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
87
		String cdmServer = "127.0.0.1";
88
		String cdmDB = "cdm_portal_test2";
89
		String cdmUserName = "edit";
90
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
91
	}
92

    
93
	public static ICdmDataSource cdm_local_postgres_CdmTest(){
94
		DatabaseTypeEnum dbType = DatabaseTypeEnum.PostgreSQL;
95
		String cdmServer = "127.0.0.1";
96
		String cdmDB = "CdmTest";
97
		String cdmUserName = "edit";
98
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
99
	}
100

    
101

    
102
	public static ICdmDataSource NULL(){
103
		return null;
104
	}
105

    
106

    
107
	public static ICdmDataSource localH2(){
108
		return CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
109
	}
110

    
111
	public static ICdmDataSource localH2(String database, String username, String filePath){
112
		return CdmDataSource.NewH2EmbeddedInstance(database, "sa", "", filePath, null);
113
	}
114

    
115

    
116
	public static ICdmDataSource localH2EuroMed(){
117
		return CdmDataSource.NewH2EmbeddedInstance("euroMed", "sa", "");
118
	}
119

    
120
	public static ICdmDataSource localH2Erms(){
121
		return CdmDataSource.NewH2EmbeddedInstance("erms", "sa", "");
122
	}
123

    
124
	public static ICdmDataSource cdm_algaterra_preview(){
125
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
126
		String cdmServer = "160.45.63.201";
127
		String cdmDB = "cdm_edit_algaterra";
128
		String cdmUserName = "edit";
129
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
130
	}
131

    
132

    
133
	public static ICdmDataSource cdm_pesi_euroMed(){
134
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
135
		String cdmServer = "160.45.63.175";
136
		String cdmDB = "cdm_pesi_euromed";
137
		String cdmUserName = "edit";
138
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
139
	}
140

    
141
	public static ICdmDataSource cdm_local_euroMed(){
142
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
143
		String cdmServer = "127.0.0.1";
144
		String cdmDB = "euroMed";
145
		String cdmUserName = "root";
146
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
147
	}
148

    
149
	public static ICdmDataSource cdm_local_euroMed2(){
150
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
151
		String cdmServer = "127.0.0.1";
152
		String cdmDB = "euroMed2";
153
		String cdmUserName = "root";
154
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
155
	}
156

    
157
	public static ICdmDataSource cdm_local_euroMed3(){
158
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
159
		String cdmServer = "127.0.0.1";
160
		String cdmDB = "euroMed3";
161
		String cdmUserName = "root";
162
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
163
	}
164

    
165
	public static ICdmDataSource cdm_pesi_fauna_europaea(){
166
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
167
		String cdmServer = "160.45.63.175";
168
		String cdmDB = "cdm_pesi_fauna_europaea";
169
		String cdmUserName = "edit";
170
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
171
	}
172

    
173

    
174
	public static ICdmDataSource cdm_pesi_erms(){
175
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
176
		String cdmServer = "160.45.63.175";
177
		String cdmDB = "cdm_pesi_erms";
178
		String cdmUserName = "edit";
179
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
180
	}
181

    
182

    
183
	/**
184
	 * initializes source
185
	 * TODO only supports MySQL and PostgreSQL
186
	 *
187
	 * @param dbType
188
	 * @param cdmServer
189
	 * @param cdmDB
190
	 * @param port
191
	 * @param cdmUserName
192
	 * @param pwd
193
	 * @return
194
	 */
195
	public static ICdmDataSource makeDestination(DatabaseTypeEnum dbType, String cdmServer, String cdmDB, int port, String cdmUserName, String pwd ){
196
		//establish connection
197
		pwd = AccountStore.readOrStorePassword(cdmServer, cdmDB, cdmUserName, pwd);
198
		ICdmDataSource destination;
199
		if(dbType.equals(DatabaseTypeEnum.MySQL)){
200
			destination = CdmDataSource.NewMySqlInstance(cdmServer, cdmDB, port, cdmUserName, pwd, null);
201
		} else if(dbType.equals(DatabaseTypeEnum.PostgreSQL)){
202
			destination = CdmDataSource.NewPostgreSQLInstance(cdmServer, cdmDB, port, cdmUserName, pwd, null);
203
		} else {
204
			//TODO others
205
			throw new RuntimeException("Unsupported DatabaseType");
206
		}
207
		return destination;
208

    
209
	}
210

    
211

    
212
	/**
213
	 * Accepts a string array and tries to find a method returning an ICdmDataSource with
214
	 * the name of the given first string in the array
215
	 *
216
	 * @param args
217
	 * @return
218
	 */
219
	public static ICdmDataSource chooseDestination(String[] args) {
220
		if(args == null) {
221
            return null;
222
        }
223

    
224
		if(args.length != 1) {
225
            return null;
226
        }
227

    
228
		String possibleDestination = args[0];
229

    
230
		Method[] methods = CdmDestinations.class.getMethods();
231

    
232
		for (Method method : methods){
233
			if(method.getName().equals(possibleDestination)){
234
				try {
235
					return (ICdmDataSource) method.invoke(null, null);
236
				} catch (IllegalArgumentException e) {
237
					// TODO Auto-generated catch block
238
					e.printStackTrace();
239
				} catch (IllegalAccessException e) {
240
					// TODO Auto-generated catch block
241
					e.printStackTrace();
242
				} catch (InvocationTargetException e) {
243
					// TODO Auto-generated catch block
244
					e.printStackTrace();
245
				}
246
			}
247
		}
248
		return null;
249
	}
250

    
251
}
252

    
(1-1/4)