Project

General

Profile

Download (4.23 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
import java.net.URISyntaxException;
14

    
15
import org.apache.log4j.Logger;
16

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

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

    
32
	/* SerializeFrom DB **/
33
	//private static final ICdmDataSource cdmSource = CdmDestinations.localH2Diptera();
34
//	private static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();
35
	private static final ICdmDataSource cdmDestination = CdmDestinations.cdm_corvidae_dev();
36
	
37
	
38
	// Import:
39
	private static String importFileNameString = 
40
		//"C:\\workspace\\cdmlib_2.2\\cdmlib-io\\src\\test\\resources\\eu\\etaxonomy\\cdm\\io\\jaxb\\export_test_app_import.xml";
41
//		"file:/C:/export_test_app_import.xml";
42
	"file:/C:/localCopy/Data/kr?hen/201206141338-jaxb_export-cdm.xml";
43
	
44

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

    
51
	private static final Logger logger = Logger.getLogger(JaxbImportActivator.class);
52

    
53
	
54
	public static String chooseFile(String[] args) {
55
		if(args == null)
56
			return null;
57
		for (String dest: args){
58
			if (dest.endsWith(".xml")){
59
				return args[0];
60
			}
61
		}
62
		return null;
63
	}
64

    
65
	private void invokeImport(String importFileParamString, ICdmDataSource destination) {
66
		try {
67
			JaxbImportConfigurator jaxbImportConfigurator;
68
			if (importFileParamString !=null && destination != null){
69
				URI importFileParam;
70
				importFileParam = new URI(importFileParamString);
71
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileParam, destination);
72
			}else if (destination != null){			
73
				URI importFileName = new URI(importFileNameString);
74
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileName, destination);
75
			} else if (importFileParamString !=null ){
76
				URI importFileParam = new URI(importFileParamString);
77
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileParam, cdmDestination);
78
			} else{
79
				URI importFileName = new URI(importFileNameString);
80
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileName, cdmDestination);
81
			}
82
			
83
			CdmDefaultImport<JaxbImportConfigurator> jaxbImport = 
84
				new CdmDefaultImport<JaxbImportConfigurator>();
85
	
86
	
87
			// invoke import
88
			logger.debug("Invoking Jaxb import");
89
	
90
			jaxbImport.invoke(jaxbImportConfigurator, destination, true);
91
		} catch (URISyntaxException e) {
92
			e.printStackTrace();
93
		}
94
	
95

    
96
	}
97

    
98
	
99
	private CdmApplicationController initDb(ICdmDataSource db) {
100

    
101
		// Init source DB
102
		CdmApplicationController appCtrInit = null;
103

    
104
		appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.CREATE, false);
105

    
106
		return appCtrInit;
107
	}
108

    
109
	
110
	// Load test data to DB
111
	private void loadTestData(CdmApplicationController appCtrInit) {
112

    
113
		TestDatabase.loadTestData("", appCtrInit);
114
	}
115

    
116

    
117
	/**
118
	 * @param args
119
	 */
120
	public static void main(String[] args) {
121

    
122
		JaxbImportActivator jia = new JaxbImportActivator();
123
		ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
124
		String file = chooseFile(args)!= null ? chooseFile(args) : importFileNameString;
125
		CdmApplicationController appCtr = null;
126
//		appCtr = jia.initDb(destination);
127
				
128
		jia.invokeImport(file, destination);
129
	}
130

    
131
}
(3-3/3)