Project

General

Profile

Download (4.24 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
 */
29
public class JaxbImportActivator {
30

    
31
	/* SerializeFrom DB **/
32
//	private static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();
33
	private static final ICdmDataSource cdmDestination = CdmDestinations.localH2Armeria();
34
	
35
	
36
	// Import:
37
	private static String importFileNameString = 
38
		//"C:\\workspace\\cdmlib_2.2\\cdmlib-io\\src\\test\\resources\\eu\\etaxonomy\\cdm\\io\\jaxb\\export_test_app_import.xml";
39
//		"file:/C:/export_test_app_import.xml";
40
//	"file:/C:/localCopy/Data/kr�hen/201206141338-jaxb_export-cdm.xml";
41
//	"file:/C:/opt/data/rl/201406041541-jaxb_export-Regenwuermer.xml";
42
	"file:/C:/opt/data/rl/201406241132-jaxb_export-Armeria.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

    
55
	private void invokeImport(String importFileParamString, ICdmDataSource destination) {
56
		try {
57
			JaxbImportConfigurator jaxbImportConfigurator;
58
			if (importFileParamString !=null && destination != null){
59
				URI importFileParam = new URI(importFileParamString);
60
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileParam, destination);
61
			}else if (destination != null){			
62
				URI importFileName = new URI(importFileNameString);
63
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileName, destination);
64
			} else if (importFileParamString !=null ){
65
				URI importFileParam = new URI(importFileParamString);
66
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileParam, cdmDestination);
67
			} else{
68
				URI importFileName = new URI(importFileNameString);
69
				jaxbImportConfigurator = JaxbImportConfigurator.NewInstance(importFileName, cdmDestination);
70
			}
71
			
72
			CdmDefaultImport<JaxbImportConfigurator> jaxbImport = 
73
				new CdmDefaultImport<JaxbImportConfigurator>();
74
	
75
	
76
			// invoke import
77
			logger.debug("Invoking Jaxb import");
78
	
79
			jaxbImport.invoke(jaxbImportConfigurator, destination, true);
80
		} catch (URISyntaxException e) {
81
			e.printStackTrace();
82
		}
83
	
84

    
85
	}
86

    
87
	
88
	private CdmApplicationController initDb(ICdmDataSource db) {
89

    
90
		// Init source DB
91
		CdmApplicationController appCtrInit = null;
92

    
93
		appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.CREATE, false);
94

    
95
		return appCtrInit;
96
	}
97

    
98
	
99
	// Load test data to DB
100
	private void loadTestData(CdmApplicationController appCtrInit) {
101

    
102
		TestDatabase.loadTestData("", appCtrInit);
103
	}
104
	
105
	public static String chooseFile(String[] args) {
106
		if(args == null)
107
			return null;
108
		for (String dest: args){
109
			if (dest.endsWith(".xml")){
110
				return args[0];
111
			}
112
		}
113
		return null;
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)