Project

General

Profile

Download (6.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.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_test_fauneu"; 
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
	public static ICdmDataSource cdm_test_local_mysql_test(){
61
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
62
		String cdmServer = "127.0.0.1";
63
		String cdmDB = "test"; 
64
		String cdmUserName = "edit";
65
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
66
	}
67
	public static ICdmDataSource cdm_portal_test_localhost(){
68
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
69
		String cdmServer = "127.0.0.1";
70
		String cdmDB = "cdm_portal_test";
71
		String cdmUserName = "edit";
72
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
73
	}
74
	
75
	public static ICdmDataSource cdm_portal_test_localhost2(){
76
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
77
		String cdmServer = "127.0.0.1";
78
		String cdmDB = "cdm_portal_test2";
79
		String cdmUserName = "edit";
80
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
81
	}
82

    
83
	public static ICdmDataSource cdm_local_postgres_CdmTest(){
84
		DatabaseTypeEnum dbType = DatabaseTypeEnum.PostgreSQL;
85
		String cdmServer = "127.0.0.1";
86
		String cdmDB = "CdmTest";
87
		String cdmUserName = "edit";
88
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
89
	}
90
	
91
	
92
	public static ICdmDataSource NULL(){
93
		return null;
94
	}
95
	
96
	
97
	public static ICdmDataSource localH2(){
98
		return CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
99
	}
100
	
101
	public static ICdmDataSource localH2(String database, String username, String filePath){
102
		return CdmDataSource.NewH2EmbeddedInstance(database, "sa", "", filePath, null);
103
	}
104

    
105
	
106
	public static ICdmDataSource localH2EuroMed(){
107
		return CdmDataSource.NewH2EmbeddedInstance("euroMed", "sa", "");
108
	}
109
	
110
	public static ICdmDataSource localH2Erms(){
111
		return CdmDataSource.NewH2EmbeddedInstance("erms", "sa", "");
112
	}
113

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

    
122

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

    
131

    
132

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

    
142
	public static ICdmDataSource cdm_pesi_erms(){
143
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
144
		String cdmServer = "160.45.63.201";
145
		String cdmDB = "cdm_pesi_erms"; 
146
		String cdmUserName = "edit";
147
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
148
	}
149

    
150

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

    
178
	}
179

    
180

    
181
	/**
182
	 * Accepts a string array and tries to find a method returning an ICdmDataSource with 
183
	 * the name of the given first string in the array
184
	 * 
185
	 * @param args
186
	 * @return
187
	 */
188
	public static ICdmDataSource chooseDestination(String[] args) {
189
		if(args == null)
190
			return null;
191
		
192
		if(args.length != 1)
193
			return null;
194
		
195
		String possibleDestination = args[0];
196
		
197
		Method[] methods = CdmDestinations.class.getMethods();
198
		
199
		for (Method method : methods){
200
			if(method.getName().equals(possibleDestination)){
201
				try {
202
					return (ICdmDataSource) method.invoke(null, null);
203
				} catch (IllegalArgumentException e) {
204
					// TODO Auto-generated catch block
205
					e.printStackTrace();
206
				} catch (IllegalAccessException e) {
207
					// TODO Auto-generated catch block
208
					e.printStackTrace();
209
				} catch (InvocationTargetException e) {
210
					// TODO Auto-generated catch block
211
					e.printStackTrace();
212
				}
213
			}
214
		}
215
		return null;
216
	}
217
	
218
}
219

    
(2-2/5)