Project

General

Profile

Download (5.42 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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.test.function;
11

    
12
import org.apache.log4j.Logger;
13

    
14
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
15
import eu.etaxonomy.cdm.common.AccountStore;
16
import eu.etaxonomy.cdm.common.monitor.DefaultProgressMonitor;
17
import eu.etaxonomy.cdm.database.CdmDataSource;
18
import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
19
import eu.etaxonomy.cdm.database.DbSchemaValidation;
20
import eu.etaxonomy.cdm.database.ICdmDataSource;
21
import eu.etaxonomy.cdm.database.update.CdmUpdater;
22
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
23

    
24
/**
25
 * This class is meant for functional testing of model changes. It is not meant
26
 * for running in maven.
27
 * @author a.mueller
28
 * @date 22.05.2015
29
 *
30
 */
31
public class TestModelUpdate {
32
	@SuppressWarnings("unused")
33
	private static final Logger logger = Logger.getLogger(TestModelUpdate.class);
34

    
35

    
36
	private void testSelectedDb(){
37
		DbSchemaValidation schema = DbSchemaValidation.CREATE;
38

    
39
		DatabaseTypeEnum dbType = DatabaseTypeEnum.H2;
40

    
41

    
42
		String database = (schema == DbSchemaValidation.VALIDATE  ? "cdm36" : "cdm40");
43
//		database = "cdm36";
44
		CdmDataSource dataSource = getDatasource(dbType, database);
45

    
46

    
47
 		try {
48
			CdmUpdater updater = new CdmUpdater();
49
			if (schema == DbSchemaValidation.VALIDATE){
50
				updater.updateToCurrentVersion(dataSource, DefaultProgressMonitor.NewInstance());
51
			}
52
		} catch (Exception e) {
53
			e.printStackTrace();
54
		}
55

    
56
		try {
57
            CdmApplicationController appCtr = CdmApplicationController.NewInstance(dataSource,schema);
58

    
59
//		Classification classification = Classification.NewInstance("Me");
60
//		Taxon taxon = Taxon.NewInstance(null, null);
61
//		Person person = Person.NewInstance();
62
//		TaxonNode node = classification.addChildTaxon(taxon, null, null);
63
//		DefinedTerm lastScrutiny = (DefinedTerm)appCtr.getTermService().find(DefinedTerm.uuidLastScrutiny);
64
//		TaxonNodeAgentRelation rel = node.addAgentRelation(lastScrutiny, person);
65
//      appCtr.getClassificationService().save(classification);
66

    
67
//            BotanicalName botName = BotanicalName.NewInstance(Rank.SPECIES());
68
//            Reference ref = ReferenceFactory.newBook();
69
//            botName.addImportSource("1", "ns", ref, "detail");
70
//            appCtr.getNameService().save(botName);
71

    
72
            appCtr.getCommonService().createFullSampleData();
73

    
74

    
75

    
76
            appCtr.close();
77
        } catch (Exception e) {
78
            e.printStackTrace();
79
        }finally {
80
            System.exit(0);
81
        }
82
	}
83

    
84

    
85

    
86
/**
87
     * @param dbType
88
     * @param database
89
     * @return
90
     */
91
    private CdmDataSource getDatasource(DatabaseTypeEnum dbType, String database) {
92
        String server = "localhost";
93
        String username = "edit";
94
        String serverSql = "130.133.70.26";
95

    
96
        if (dbType == DatabaseTypeEnum.MySQL){
97
            return CdmDataSource.NewMySqlInstance(server, database, username, AccountStore.readOrStorePassword(server, database, username, null));
98
        }else if (dbType == DatabaseTypeEnum.H2){
99
            //H2
100
            String path = "C:\\Users\\a.mueller\\.cdmLibrary\\writableResources\\h2\\LocalH2_" + database;
101
            username = "sa";
102
            CdmDataSource dataSource = CdmDataSource.NewH2EmbeddedInstance("cdmTest", username, "", path,   NomenclaturalCode.ICNAFP);
103
            return dataSource;
104
        }else if (dbType == DatabaseTypeEnum.SqlServer2005){
105
            server = serverSql;
106
            username = "cdmupdater";
107
            CdmDataSource dataSource = CdmDataSource.NewSqlServer2005Instance(server, database, 1433, username, AccountStore.readOrStorePassword(server, database, username, null));
108
            return dataSource;
109
        }else if (dbType == DatabaseTypeEnum.PostgreSQL){
110
            server = serverSql;
111
            username = "postgres";
112
            CdmDataSource dataSource = CdmDataSource.NewPostgreSQLInstance(server, database, 5432, username,  AccountStore.readOrStorePassword(server, database, username, null), null);
113
            return dataSource;
114
        }else{
115
            throw new IllegalArgumentException("dbType not supported:" + dbType);
116
        }
117
    }
118

    
119

    
120

    
121
	/**
122
	 * Updates the H2 test database in remote web-app.
123
	 * Requires that the local path to the database is adapted
124
	 */
125
	@SuppressWarnings("unused")  //enable only if needed
126
	private void updateRemoteWebappTestH2(){
127
		String path = "C:\\Users\\a.mueller\\eclipse\\svn\\cdmlib-trunk\\cdmlib\\cdmlib-remote-webapp\\src\\test\\resources\\h2";
128
		ICdmDataSource dataSource = CdmDataSource.NewH2EmbeddedInstance("cdmTest", "sa", "", path, NomenclaturalCode.ICNAFP);
129

    
130

    
131
 		try {
132
			CdmUpdater updater = new CdmUpdater();
133
			updater.updateToCurrentVersion(dataSource, DefaultProgressMonitor.NewInstance());
134
		} catch (Exception e) {
135
			e.printStackTrace();
136
		}
137

    
138
		//CdmPersistentDataSource.save(dataSource.getName(), dataSource);
139
		CdmApplicationController appCtr;
140
		appCtr = CdmApplicationController.NewInstance(dataSource,DbSchemaValidation.VALIDATE);
141
		appCtr.close();
142
	}
143

    
144

    
145
	private void test(){
146
		System.out.println("Start Datasource");
147
		testSelectedDb();
148

    
149
//		updateRemoteWebappTestH2();
150

    
151
		System.out.println("\nEnd Datasource");
152
	}
153

    
154
	/**
155
	 * @param args
156
	 */
157
	public static void  main(String[] args) {
158
		TestModelUpdate cc = new TestModelUpdate();
159
    	cc.test();
160
	}
161

    
162
}
(8-8/11)