Project

General

Profile

Download (6.79 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_test_local_mysql_test(){
98
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
99
		String cdmServer = "127.0.0.1";
100
		String cdmDB = "test";
101
		String cdmUserName = "edit";
102
		return makeDestination(dbType, cdmServer, cdmDB, -1, cdmUserName, null);
103
	}
104

    
105
	public static ICdmDataSource NULL(){
106
		return null;
107
	}
108

    
109

    
110
	public static ICdmDataSource localH2(){
111
		return CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
112
	}
113

    
114
	public static ICdmDataSource localH2EuroMed(){
115
		return CdmDataSource.NewH2EmbeddedInstance("euroMed", "sa", "");
116
	}
117

    
118
	public static ICdmDataSource localH2Erms(){
119
		return CdmDataSource.NewH2EmbeddedInstance("erms", "sa", "");
120
	}
121

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

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

    
138

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

    
147

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

    
175

    
176
	/**
177
	 * Accepts a string array and tries to find a method returning an ICdmDataSource with
178
	 * the name of the given first string in the array
179
	 *
180
	 * @param args
181
	 * @return
182
	 */
183
	public static ICdmDataSource chooseDestination(String[] args) {
184
		if(args == null) {
185
            return null;
186
        }
187

    
188
		if(args.length != 1) {
189
            return null;
190
        }
191

    
192
		String possibleDestination = args[0];
193

    
194
		Method[] methods = CdmDestinations.class.getMethods();
195

    
196
		for (Method method : methods){
197
			if(method.getName().equals(possibleDestination)){
198
				try {
199
					return (ICdmDataSource) method.invoke(null, null);
200
				} catch (IllegalArgumentException e) {
201
					e.printStackTrace();
202
				} catch (IllegalAccessException e) {
203
					e.printStackTrace();
204
				} catch (InvocationTargetException e) {
205
					e.printStackTrace();
206
				}
207
			}
208
		}
209
		return null;
210
	}
211
}
212

    
(1-1/3)