Project

General

Profile

Download (6.46 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_faunaeu_2017_03";
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 = "indexFungorum";
62
		String cdmUserName = "root";
63
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
64
	}
65

    
66
	public static ICdmDataSource cdm_test_local_mysql_erms(){
67
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
68
		String cdmServer = "127.0.0.1";
69
		String cdmDB = "cdm_pesi_erms";
70
		String cdmUserName = "edit";
71
		return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
72
	}
73

    
74
    public static ICdmDataSource cdm_test_local_mysql_erms2(){
75
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
76
        String cdmServer = "127.0.0.1";
77
        String cdmDB = "cdm_pesi_erms2";
78
        String cdmUserName = "edit";
79
        return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
80
    }
81

    
82
    public static ICdmDataSource cdm_test_local_mysql_euromed(){
83
        DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
84
        String cdmServer = "127.0.0.1";
85
        String cdmDB = "cdm_pesi_euromed";
86
        String cdmUserName = "edit";
87
        int port = 3306;
88
        return CdmDestinations.makeDestination(dbType, cdmServer, cdmDB, port, cdmUserName, null);
89
    }
90

    
91
	public static ICdmDataSource cdm_test_local_mysql_test(){
92
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
93
		String cdmServer = "127.0.0.1";
94
		String cdmDB = "test";
95
		String cdmUserName = "edit";
96
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
97
	}
98

    
99
	public static ICdmDataSource NULL(){
100
		return null;
101
	}
102

    
103

    
104
	public static ICdmDataSource localH2(){
105
		return CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
106
	}
107

    
108
	public static ICdmDataSource localH2EuroMed(){
109
		return CdmDataSource.NewH2EmbeddedInstance("euroMed", "sa", "");
110
	}
111

    
112
	public static ICdmDataSource localH2Erms(){
113
		return CdmDataSource.NewH2EmbeddedInstance("erms", "sa", "");
114
	}
115

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

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

    
132

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

    
141

    
142
	/**
143
	 * initializes source
144
	 * TODO only supports MySQL and PostgreSQL
145
	 *
146
	 * @param dbType
147
	 * @param cdmServer
148
	 * @param cdmDB
149
	 * @param port
150
	 * @param cdmUserName
151
	 * @param pwd
152
	 * @return
153
	 */
154
	public static ICdmDataSource makeDestination(DatabaseTypeEnum dbType, String cdmServer, String cdmDB, int port, String cdmUserName, String pwd ){
155
		//establish connection
156
		pwd = AccountStore.readOrStorePassword(cdmServer, cdmDB, cdmUserName, pwd);
157
		ICdmDataSource destination;
158
		if(dbType.equals(DatabaseTypeEnum.MySQL)){
159
			destination = CdmDataSource.NewMySqlInstance(cdmServer, cdmDB, port, cdmUserName, pwd);
160
		} else if(dbType.equals(DatabaseTypeEnum.PostgreSQL)){
161
			destination = CdmDataSource.NewPostgreSQLInstance(cdmServer, cdmDB, port, cdmUserName, pwd);
162
		} else {
163
			//TODO others
164
			throw new RuntimeException("Unsupported DatabaseType");
165
		}
166
		return destination;
167
	}
168

    
169

    
170
	/**
171
	 * Accepts a string array and tries to find a method returning an ICdmDataSource with
172
	 * the name of the given first string in the array
173
	 *
174
	 * @param args
175
	 * @return
176
	 */
177
	public static ICdmDataSource chooseDestination(String[] args) {
178
		if(args == null) {
179
            return null;
180
        }
181

    
182
		if(args.length != 1) {
183
            return null;
184
        }
185

    
186
		String possibleDestination = args[0];
187

    
188
		Method[] methods = CdmDestinations.class.getMethods();
189

    
190
		for (Method method : methods){
191
			if(method.getName().equals(possibleDestination)){
192
				try {
193
					return (ICdmDataSource) method.invoke(null, null);
194
				} catch (IllegalArgumentException e) {
195
					e.printStackTrace();
196
				} catch (IllegalAccessException e) {
197
					e.printStackTrace();
198
				} catch (InvocationTargetException e) {
199
					e.printStackTrace();
200
				}
201
			}
202
		}
203
		return null;
204
	}
205
}
206

    
(1-1/3)