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.MySQL;
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
 		try{
56
    		CdmApplicationController appCtr = CdmApplicationController.NewInstance(dataSource,schema);
57

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

    
66
    //		appCtr.getCommonService().createFullSampleData();
67

    
68

    
69

    
70
    		appCtr.close();
71
 		}catch (Exception e) {
72
 		    e.printStackTrace();
73
 		}
74
		System.exit(0);
75
	}
76

    
77

    
78

    
79
/**
80
     * @param dbType
81
     * @param database
82
     * @return
83
     */
84
    private CdmDataSource getDatasource(DatabaseTypeEnum dbType, String database) {
85
        String server = "localhost";
86
        String username = "edit";
87
        String serverSql = "130.133.70.26";
88

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

    
112

    
113

    
114
	/**
115
	 * Updates the H2 test database in remote web-app.
116
	 * Requires that the local path to the database is adapted
117
	 */
118
	@SuppressWarnings("unused")  //enable only if needed
119
	private void updateRemoteWebappTestH2(){
120
//	    String pathToProject = "C:\\Users\\a.mueller\\eclipse\\git\\cdmlib\\cdmlib-remote-webapp\\";
121
//	    String pathToProject = "C:\\Users\\a.mueller\\eclipse\\git\\cdm-vaadin\\";
122
	    String pathToProject = "C:\\Users\\a.mueller\\eclipse\\git\\taxeditor\\eu.etaxonomy.taxeditor.test\\";
123

    
124
	    String pathInProject = "src\\test\\resources\\h2";
125

    
126
	    String path = pathToProject + pathInProject;
127
		ICdmDataSource dataSource = CdmDataSource.NewH2EmbeddedInstance("cdmTest", "sa", "", path, NomenclaturalCode.ICNAFP);
128

    
129

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

    
137
		//CdmPersistentDataSource.save(dataSource.getName(), dataSource);
138
		CdmApplicationController appCtr;
139
		appCtr = CdmApplicationController.NewInstance(dataSource,DbSchemaValidation.VALIDATE);
140
		appCtr.close();
141
		System.exit(0);
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
}
(7-7/9)