Project

General

Profile

Download (7.73 KB) Statistics
| Branch: | 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
package eu.etaxonomy.cdm.app.sdd;
10

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

    
15
import org.apache.log4j.Logger;
16
import org.springframework.util.Assert;
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

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

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

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

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

    
50
	public static ICdmDataSource CDM_DB(String dbname) {
51

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

    
57
    private static ICdmDataSource customDataSource() {
58

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

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

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

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

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

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

    
102

    
103

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

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

    
110
	private static boolean doAgents = true;
111
	private static boolean doAgentData = true;
112
	private static boolean doLanguageData = true;
113
	private static boolean doFeatureData = true;
114
	private static boolean doDescriptions = true;
115
	private static boolean doMedia = true;
116
	private static boolean doOccurrences = true;
117
	//private static boolean doReferences = true;
118
	private static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
119
    private static boolean doReferencedEntities = true;
120
	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
121
	private static boolean doSynonyms = true;
122
	private static boolean doTaxonNames = true;
123
	private static boolean doTaxa = true;
124
	private static boolean doTerms = true;
125
	private static boolean doTermVocabularies = true;
126
	private static boolean doHomotypicalGroups = true;//try export again
127

    
128
	private void invokeExport() {
129

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

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

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

    
147

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

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

    
155
		sddExportConfigurator.setMaxRows(NUMBER_ROWS_TO_RETRIEVE);
156

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

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

    
178
	}
179

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

    
185
		SDDExportActivator sddex = new SDDExportActivator();
186

    
187
		sddex.invokeExport();
188

    
189
	}
190

    
191
}
(11-11/19)