Project

General

Profile

Download (7.54 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.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
	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_fauna_europaea";
38
		String cdmUserName = "root";
39
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
40
	}
41

    
42
    public static ICdmDataSource cdm_test_local_pesi_leer(){
43
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
44
        String cdmServer = "127.0.0.1";
45
        String cdmDB = "cdm_pesi_test_leer";
46
        String cdmUserName = "edit";
47
        int port = 3306;
48
        return makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
49
    }
50

    
51
    public static ICdmDataSource cdm_test_local_pesi_leer2(){
52
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
53
        String cdmServer = "127.0.0.1";
54
        String cdmDB = "cdm_pesi_test_leer2";
55
        String cdmUserName = "edit";
56
        return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
57
    }
58

    
59
	public static ICdmDataSource cdm_test_local_indexFungorum(){
60
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
61
		String cdmServer = "127.0.0.1";
62
		String cdmDB = "cdm_pesi_indexfungorum";
63
		String cdmUserName = "edit";
64
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
65
	}
66
    public static ICdmDataSource cdm_test_local_indexFungorum2(){
67
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
68
        String cdmServer = "127.0.0.1";
69
        String cdmDB = "cdm_pesi_indexfungorum2";
70
        String cdmUserName = "edit";
71
        return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
72
    }
73
	public static ICdmDataSource cdm_test_local_mysql_erms(){
74
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
75
		String cdmServer = "127.0.0.1";
76
		String cdmDB = "cdm_pesi_erms";
77
		String cdmUserName = "edit";
78
		return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
79
	}
80

    
81
    public static ICdmDataSource cdm_test_local_mysql_erms2(){
82
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
83
        String cdmServer = "127.0.0.1";
84
        String cdmDB = "cdm_pesi_erms2";
85
        String cdmUserName = "edit";
86
        return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
87
    }
88

    
89
    public static ICdmDataSource cdm_test_local_mysql_euromed(){
90
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
91
        String cdmServer = "127.0.0.1";
92
        String cdmDB = "cdm_pesi_euromed";
93
        String cdmUserName = "edit";
94
        int port = 3306;
95
        return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
96
    }
97

    
98
    public static ICdmDataSource cdm_pesi2019_final(){
99
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
100
        String cdmServer = "127.0.0.1";
101
        String cdmDB = "cdm_pesi_2019final";
102
        String cdmUserName = "edit";
103
        int port = 3306;
104
        return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
105
    }
106
    public static ICdmDataSource cdm_pesi2019_final_test(){
107
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
108
        String cdmServer = "127.0.0.1";
109
        String cdmDB = "cdm_pesi_2019final_test";
110
        String cdmUserName = "edit";
111
        int port = 3306;
112
        return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
113
    }
114

    
115
	public static ICdmDataSource cdm_test_local_mysql_test(){
116
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
117
		String cdmServer = "127.0.0.1";
118
		String cdmDB = "test";
119
		String cdmUserName = "edit";
120
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
121
	}
122

    
123
	public static ICdmDataSource NULL(){
124
		return null;
125
	}
126

    
127

    
128
	public static ICdmDataSource localH2(){
129
		return CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
130
	}
131

    
132
	public static ICdmDataSource localH2EuroMed(){
133
		return CdmDataSource.NewH2EmbeddedInstance("euroMed", "sa", "");
134
	}
135

    
136
	public static ICdmDataSource localH2Erms(){
137
		return CdmDataSource.NewH2EmbeddedInstance("erms", "sa", "");
138
	}
139

    
140
	public static ICdmDataSource test_cdm_pesi_euroMed(){
141
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
142
		String cdmServer = "160.45.63.175";
143
		String cdmDB = "cdm_pesi_euromed";
144
		String cdmUserName = "edit";
145
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
146
	}
147

    
148
	public static ICdmDataSource test_cdm_pesi_fauna_europaea(){
149
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
150
		String cdmServer = "160.45.63.175";
151
		String cdmDB = "cdm_pesi_fauna_europaea";
152
		String cdmUserName = "edit";
153
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
154
	}
155

    
156

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

    
165

    
166
	/**
167
	 * initializes source
168
	 * TODO only supports MySQL and PostgreSQL
169
	 *
170
	 * @param dbType
171
	 * @param cdmServer
172
	 * @param cdmDB
173
	 * @param port
174
	 * @param cdmUserName
175
	 * @param pwd
176
	 * @return
177
	 */
178
	public static ICdmDataSource makeDestination(DatabaseTypeEnum dbType, String cdmServer, String cdmDB, int port, String cdmUserName, String pwd ){
179
		//establish connection
180
		pwd = AccountStore.readOrStorePassword(cdmServer, cdmDB, cdmUserName, pwd);
181
		ICdmDataSource destination;
182
		if(dbType.equals(DatabaseTypeEnum.MySQL)){
183
			destination = CdmDataSource.NewMySqlInstance(cdmServer, cdmDB, port, cdmUserName, pwd);
184
		} else if(dbType.equals(DatabaseTypeEnum.PostgreSQL)){
185
			destination = CdmDataSource.NewPostgreSQLInstance(cdmServer, cdmDB, port, cdmUserName, pwd);
186
		} else {
187
			//TODO others
188
			throw new RuntimeException("Unsupported DatabaseType");
189
		}
190
		return destination;
191
	}
192

    
193

    
194
	/**
195
	 * Accepts a string array and tries to find a method returning an ICdmDataSource with
196
	 * the name of the given first string in the array
197
	 *
198
	 * @param args
199
	 * @return
200
	 */
201
	public static ICdmDataSource chooseDestination(String[] args) {
202
		if(args == null) {
203
            return null;
204
        }
205

    
206
		if(args.length != 1) {
207
            return null;
208
        }
209

    
210
		String possibleDestination = args[0];
211

    
212
		Method[] methods = CdmDestinations.class.getMethods();
213

    
214
		for (Method method : methods){
215
			if(method.getName().equals(possibleDestination)){
216
				try {
217
					return (ICdmDataSource) method.invoke(null, null);
218
				} catch (IllegalArgumentException e) {
219
					e.printStackTrace();
220
				} catch (IllegalAccessException e) {
221
					e.printStackTrace();
222
				} catch (InvocationTargetException e) {
223
					e.printStackTrace();
224
				}
225
			}
226
		}
227
		return null;
228
	}
229
}
230

    
(1-1/5)