Project

General

Profile

Download (7.73 KB) Statistics
| Branch: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2009 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.cdm.app.sdd;
11

    
12
import java.io.File;
13
import java.net.MalformedURLException;
14
import java.sql.SQLException;
15

    
16
import org.apache.log4j.Logger;
17

    
18
import eu.etaxonomy.cdm.common.CdmUtils;
19
import eu.etaxonomy.cdm.database.CdmDataSource;
20
import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
21
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
22
import eu.etaxonomy.cdm.database.DbSchemaValidation;
23
import eu.etaxonomy.cdm.database.ICdmDataSource;
24
import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
25
import eu.etaxonomy.cdm.io.common.IExportConfigurator.DO_REFERENCES;
26
import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
27
import junit.framework.Assert;
28

    
29
/**
30
 * @author l.morris
31
 * @date 29 Nov 2012
32
 *
33
 */
34
public class SDDExportActivator {
35

    
36
	/* SerializeFrom DB **/
37
	private static final String sourceDbName = "cdm";
38
	//private static final String destinationFileName = "ViolaFromCDM.xml";
39
	//private static final String destinationFolder = "/Developer/exports SDD";
40
	//private static final String destinationFolder = "C:/tmp/viola/exports_SDD";
41

    
42
	/** NUMBER_ROWS_TO_RETRIEVE = 0 is the default case to retrieve all rows.
43
	 * For testing purposes: If NUMBER_ROWS_TO_RETRIEVE >0 then retrieve
44
	 *  as many rows as specified for agents, references, etc.
45
	 *  Only root taxa and no synonyms and relationships are retrieved. */
46
	private static final int NUMBER_ROWS_TO_RETRIEVE = 0;
47

    
48
	private static final String server = "134.157.190.207";
49
	private static final String username = "sa";
50

    
51
	public static ICdmDataSource CDM_DB(String dbname) {
52

    
53
		logger.info("Setting DB " + dbname);
54
		ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance(dbname, username, "");
55
		return datasource;
56
	}
57

    
58
    private static ICdmDataSource customDataSource() {
59

    
60
        CdmPersistentDataSource loadedDataSource = null;
61
       //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("192.168.2.10", "cdm_test_niels2", 3306, "edit", password, code);
62

    
63
       String dataSourceName = CdmUtils.readInputLine("Database name: ");
64
       String username = CdmUtils.readInputLine("Username: ");
65
       String password = CdmUtils.readInputLine("Password: ");
66

    
67
       dataSourceName = (dataSourceName.equals("")) ? "cdm_test3" : dataSourceName;
68
       username = (username.equals("")) ? "ljm" : username;
69

    
70
       //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", "cdm_test3", 3306, "ljm", password, NomenclaturalCode.ICBN);
71
       ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", dataSourceName, 3306, username, password);
72
       //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", "cdm_edit_cichorieae", 3306, "ljm", password, NomenclaturalCode.ICBN);
73
       //ICdmDataSource dataSource =
74
       CdmDataSource.NewMySqlInstance("160.45.63.201", "cdm_edit_cichorieae", 3306, "edit", password);
75
       boolean connectionAvailable;
76
       try {
77
           connectionAvailable = dataSource.testConnection();
78
           System.out.println("LORNA connection available " + connectionAvailable);
79
           Assert.assertTrue("Testdatabase is not available", connectionAvailable);
80

    
81
       } catch (ClassNotFoundException e1) {
82
           // TODO Auto-generated catch block
83
           e1.printStackTrace();
84
       } catch (SQLException e1) {
85
           // TODO Auto-generated catch block
86
           e1.printStackTrace();
87
       }
88

    
89
       CdmPersistentDataSource.save(dataSourceName, dataSource);
90
       try {
91
           loadedDataSource = CdmPersistentDataSource.NewInstance(dataSourceName);
92
//			CdmApplicationController.NewInstance(loadedDataSource, DbSchemaValidation.CREATE);
93
//           NomenclaturalCode loadedCode = loadedDataSource.getNomenclaturalCode();
94
//
95
//           Assert.assertEquals(NomenclaturalCode.ICNAFP, loadedCode);
96
       } catch (DataSourceNotFoundException e) {
97
           e.printStackTrace();
98
       }
99
       //return loadedDataSource;
100
       return dataSource;
101
   }
102

    
103

    
104

    
105
	private static final Logger logger = Logger.getLogger(ViolaExportActivator.class);
106

    
107
	//private static final ICdmDataSource sourceDb = ViolaExportActivator.CDM_DB(sourceDbName);
108
	private static final ICdmDataSource sourceDb = customDataSource();
109
	//private static final File destinationFile = new File(destinationFolder + File.separator + destinationFileName);
110

    
111
	private static boolean doAgents = true;
112
	private static boolean doAgentData = true;
113
	private static boolean doLanguageData = true;
114
	private static boolean doFeatureData = true;
115
	private static boolean doDescriptions = true;
116
	private static boolean doMedia = true;
117
	private static boolean doOccurrences = true;
118
	//private static boolean doReferences = true;
119
	private static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
120
    private static boolean doReferencedEntities = true;
121
	private static boolean doRelationships = false;  //causes org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [eu.etaxonomy.cdm.model.taxon.Taxon#24563] in cichoriae
122
	private static boolean doSynonyms = true;
123
	private static boolean doTaxonNames = true;
124
	private static boolean doTaxa = true;
125
	private static boolean doTerms = true;
126
	private static boolean doTermVocabularies = true;
127
	private static boolean doHomotypicalGroups = true;//try export again
128

    
129
	private void invokeExport() {
130

    
131
        // export data
132
        //String exporturlStr = "/sdd/SDDImportExportTest.sdd.xml";
133
        String exporturlStr = "SDDImportExportTest.sdd.xml";
134
        File f = new File(exporturlStr);
135
        try {
136
			exporturlStr = f.toURI().toURL().toString();
137
		} catch (MalformedURLException e) {
138
			// TODO Auto-generated catch block
139
			e.printStackTrace();
140
		}
141

    
142
		//lorna//SDDExportConfigurator sddExportConfigurator =
143
			//SDDExportConfigurator.NewInstance(sourceDb, destinationFileName, destinationFolder);
144

    
145
		SDDExportConfigurator sddExportConfigurator =
146
				SDDExportConfigurator.NewInstance(sourceDb, exporturlStr);
147

    
148

    
149
		CdmDefaultExport<SDDExportConfigurator> sddExport =
150
			new CdmDefaultExport<SDDExportConfigurator>();
151

    
152
		sddExportConfigurator.setSource(sourceDb);
153
		//lorna//sddExportConfigurator.setDestination(destinationFile);
154
		sddExportConfigurator.setDbSchemaValidation(DbSchemaValidation.VALIDATE);
155

    
156
		sddExportConfigurator.setMaxRows(NUMBER_ROWS_TO_RETRIEVE);
157

    
158
		sddExportConfigurator.setDoAuthors(doAgents);
159
		sddExportConfigurator.setDoAgentData(doAgentData);
160
		sddExportConfigurator.setDoLanguageData(doLanguageData);
161
		sddExportConfigurator.setDoFeatureData(doFeatureData);
162
		sddExportConfigurator.setDoDescriptions(doDescriptions);
163
		sddExportConfigurator.setDoMedia(doMedia);
164
		sddExportConfigurator.setDoOccurrence(doOccurrences);
165
		sddExportConfigurator.setDoReferences(doReferences);
166
		sddExportConfigurator.setDoReferencedEntities(doReferencedEntities);
167
		sddExportConfigurator.setDoRelTaxa(doRelationships);
168
		sddExportConfigurator.setDoSynonyms(doSynonyms);
169
		sddExportConfigurator.setDoTaxonNames(doTaxonNames);
170
		sddExportConfigurator.setDoTaxa(doTaxa);
171
		sddExportConfigurator.setDoTerms(doTerms);
172
		sddExportConfigurator.setDoTermVocabularies(doTermVocabularies);
173
		sddExportConfigurator.setDoHomotypicalGroups(doHomotypicalGroups);
174

    
175
		// invoke export
176
		logger.debug("Invoking SDD export");
177
		sddExport.invoke(sddExportConfigurator);
178

    
179
	}
180

    
181
	/**
182
	 * @param args
183
	 */
184
	public static void main(String[] args) {
185

    
186
		SDDExportActivator sddex = new SDDExportActivator();
187

    
188
		sddex.invokeExport();
189

    
190
	}
191

    
192
}
(11-11/19)