Project

General

Profile

Download (7.18 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

    
107
	public static ICdmDataSource cdm_test_local_mysql_test(){
108
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
109
		String cdmServer = "127.0.0.1";
110
		String cdmDB = "test";
111
		String cdmUserName = "edit";
112
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
113
	}
114

    
115
	public static ICdmDataSource NULL(){
116
		return null;
117
	}
118

    
119

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

    
124
	public static ICdmDataSource localH2EuroMed(){
125
		return CdmDataSource.NewH2EmbeddedInstance("euroMed", "sa", "");
126
	}
127

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

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

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

    
148

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

    
157

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

    
185

    
186
	/**
187
	 * Accepts a string array and tries to find a method returning an ICdmDataSource with
188
	 * the name of the given first string in the array
189
	 *
190
	 * @param args
191
	 * @return
192
	 */
193
	public static ICdmDataSource chooseDestination(String[] args) {
194
		if(args == null) {
195
            return null;
196
        }
197

    
198
		if(args.length != 1) {
199
            return null;
200
        }
201

    
202
		String possibleDestination = args[0];
203

    
204
		Method[] methods = CdmDestinations.class.getMethods();
205

    
206
		for (Method method : methods){
207
			if(method.getName().equals(possibleDestination)){
208
				try {
209
					return (ICdmDataSource) method.invoke(null, null);
210
				} catch (IllegalArgumentException e) {
211
					e.printStackTrace();
212
				} catch (IllegalAccessException e) {
213
					e.printStackTrace();
214
				} catch (InvocationTargetException e) {
215
					e.printStackTrace();
216
				}
217
			}
218
		}
219
		return null;
220
	}
221
}
222

    
(1-1/5)