Project

General

Profile

Download (3.33 KB) Statistics
| Branch: | Revision:
1
/**
2
 * Copyright (C) 2008 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.jaxb;
11

    
12
import java.net.URI;
13

    
14
import org.apache.log4j.Logger;
15

    
16
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
17
import eu.etaxonomy.cdm.app.common.CdmDestinations;
18
import eu.etaxonomy.cdm.app.util.TestDatabase;
19
import eu.etaxonomy.cdm.database.DbSchemaValidation;
20
import eu.etaxonomy.cdm.database.ICdmDataSource;
21
import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
22
import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
23

    
24
/**
25
 * @author a.babadshanjan
26
 * @created 25.09.2008
27
 * @version 1.0
28
 */
29
public class JaxbExportActivator {
30

    
31
	/* SerializeFrom DB **/
32
	private static final ICdmDataSource cdmSource = CdmDestinations.localH2Diptera();
33
	
34
	// Export:
35
	private static String exportFileName = "C:\\export_test_app_import.xml";
36

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

    
43
	private static final Logger logger = Logger.getLogger(JaxbImportActivator.class);
44

    
45
	private void invokeExport(ICdmDataSource sourceParam, URI uri) {
46
		JaxbExportConfigurator jaxbExportConfigurator;
47
		if (uri !=null && sourceParam != null){
48
			jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(sourceParam, uri);
49
		}else if (sourceParam != null){			
50
			jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(sourceParam, URI.create(exportFileName));
51
		} else if (uri !=null ){
52
			jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(cdmSource, uri);
53
		} else{
54
			jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(cdmSource, URI.create(exportFileName));
55
		}
56
		
57
		
58
		CdmDefaultExport<JaxbExportConfigurator> jaxbExport = 
59
			new CdmDefaultExport<JaxbExportConfigurator>();
60
		
61

    
62
		// invoke export
63
		logger.debug("Invoking Jaxb export");
64
		jaxbExport.invoke(jaxbExportConfigurator);
65

    
66
	}
67
	public static String chooseFile(String[] args) {
68
		if(args == null)
69
			return null;
70
		for (String dest: args){
71
			if (dest.endsWith(".xml")){
72
				return args[0];
73
			}
74
		}
75
		return null;
76
	}
77

    
78
	
79

    
80
	
81
	private CdmApplicationController initDb(ICdmDataSource db) {
82

    
83
		// Init source DB
84
		CdmApplicationController appCtrInit = null;
85

    
86
		appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.VALIDATE, false);
87

    
88
		return appCtrInit;
89
	}
90

    
91
	
92
	// Load test data to DB
93
	private void loadTestData(CdmApplicationController appCtrInit) {
94
		TestDatabase.loadTestData("", appCtrInit);
95
	}
96

    
97

    
98
	/**
99
	 * @param args
100
	 */
101
	public static void main(String[] args) {
102

    
103
		JaxbExportActivator sc = new JaxbExportActivator();
104
		ICdmDataSource source = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmSource;
105
		String file = chooseFile(args);
106
		URI uri = URI.create(file);
107
		CdmApplicationController appCtr = null;
108
		appCtr = sc.initDb(source);
109
				
110
		sc.invokeExport(source, uri);
111
		
112
	}
113

    
114
}
(2-2/3)