Project

General

Profile

Download (4.19 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
	
36
	
37
	// Import:
38
	private static String importFileNameString = 
39
		//"C:\\workspace\\cdmlib_2.2\\cdmlib-io\\src\\test\\resources\\eu\\etaxonomy\\cdm\\io\\jaxb\\export_test_app_import.xml";
40
//		"file:/C:/export_test_app_import.xml";
41
//	"file:/C:/localCopy/Data/kr�hen/201206141338-jaxb_export-cdm.xml";
42
	"file:/C:/opt/data/rl/201406041541-jaxb_export-Regenwuermer.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 = new URI(importFileParamString);
70
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileParam, destination);
71
			}else if (destination != null){			
72
				URI importFileName = new URI(importFileNameString);
73
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileName, destination);
74
			} else if (importFileParamString !=null ){
75
				URI importFileParam = new URI(importFileParamString);
76
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileParam, cdmDestination);
77
			} else{
78
				URI importFileName = new URI(importFileNameString);
79
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileName, cdmDestination);
80
			}
81
			
82
			CdmDefaultImport<JaxbImportConfigurator> jaxbImport = 
83
				new CdmDefaultImport<JaxbImportConfigurator>();
84
	
85
	
86
			// invoke import
87
			logger.debug("Invoking Jaxb import");
88
	
89
			jaxbImport.invoke(jaxbImportConfigurator, destination, true);
90
		} catch (URISyntaxException e) {
91
			e.printStackTrace();
92
		}
93
	
94

    
95
	}
96

    
97
	
98
	private CdmApplicationController initDb(ICdmDataSource db) {
99

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

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

    
105
		return appCtrInit;
106
	}
107

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

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

    
115

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

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

    
130
}
(3-3/3)