Project

General

Profile

Download (7.15 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
        return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
48
    }
49

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

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

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

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

    
97
    public static ICdmDataSource cdm_pesi2019_final(){
98
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
99
        String cdmServer = "127.0.0.1";
100
        String cdmDB = "cdm_pesi_2019final";
101
        String cdmUserName = "edit";
102
        int port = 3306;
103
        return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
104
    }
105

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

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

    
118

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

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

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

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

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

    
147

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

    
156

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

    
184

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

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

    
201
		String possibleDestination = args[0];
202

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

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

    
(1-1/5)