Project

General

Profile

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

    
12
import java.util.UUID;
13

    
14
import org.apache.log4j.Logger;
15

    
16
import eu.etaxonomy.cdm.api.application.ICdmRepository;
17
import eu.etaxonomy.cdm.app.common.CdmDestinations;
18
import eu.etaxonomy.cdm.app.common.CdmImportSources;
19
import eu.etaxonomy.cdm.common.CdmUtils;
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.common.IImportConfigurator.CHECK;
24
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;
25
import eu.etaxonomy.cdm.io.common.IImportConfigurator.EDITOR;
26
import eu.etaxonomy.cdm.io.common.Source;
27
import eu.etaxonomy.cdm.io.globis.GlobisImportConfigurator;
28
import eu.etaxonomy.cdm.model.common.User;
29
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
30
import eu.etaxonomy.cdm.model.name.TaxonName;
31
import eu.etaxonomy.cdm.model.reference.ISourceable;
32

    
33
/**
34
 * @author a.mueller
35
 * @since 14.04.2010
36
 */
37
public class GlobisActivator {
38
	private static final Logger logger = Logger.getLogger(GlobisActivator.class);
39

    
40
	//database validation status (create, update, validate ...)
41
	static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
42
	static final Source globisSource = CdmImportSources.GLOBIS_MDB_20140113_PESIIMPORT_SQLSERVER();
43
//	static final ICdmDataSource cdmDestination = CdmDestinations.localH2();
44
//	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();
45
	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_globis();
46
//	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_production_globis();
47

    
48

    
49

    
50
	static final UUID classificationUuid = UUID.fromString("8bd27d84-fd4f-4bfa-bde0-3e6b7311b334");
51
	static final UUID featureTreeUuid = UUID.fromString("33cbf7a8-0c47-4d47-bd11-b7d77a38d0f6");
52
	//static final Object[] featureKeyList = new Integer[]{1,4,5,10,11,12,13,14, 249, 250, 251, 252, 253};
53

    
54
	static final String classificationName = "Globis";
55
	static final String sourceReferenceTitle = "Globis Informix Database";
56

    
57
	static final EDITOR editor = EDITOR.EDITOR_AS_EDITOR;
58

    
59
	static final String imageBaseUrl = "http://globis-images.insects-online.de/images/";
60

    
61
	//check - import
62
	static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
63

    
64
	static final int partitionSize = 3000;
65

    
66

    
67
	//NomenclaturalCode
68
	static final NomenclaturalCode nomenclaturalCode = NomenclaturalCode.ICZN;
69

    
70

    
71
	static final boolean doReadMediaData = false;
72

    
73
//	//ignore null
74
	static final boolean ignoreNull = true;
75

    
76
// ***************** ALL ************************************************//
77

    
78
	//authors
79
	static final boolean doAuthors = true;
80

    
81
//	//references
82
	static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
83

    
84
	//taxa
85
	static final boolean doCurrentTaxa = true;
86
	static final boolean doSpecTaxa = true;
87
	static final boolean doImages = true;
88
	static final boolean doCommonNames = true;
89

    
90

    
91
//******************** NONE ***************************************//
92

    
93
//	//authors
94
//	static final boolean doAuthors = false;
95
//
96
//	//references
97
//	static final DO_REFERENCES doReferences =  DO_REFERENCES.NONE;
98
//
99
//	//taxa
100
//	static final boolean doCurrentTaxa = false;
101
//	static final boolean doSpecTaxa = false;
102
//	static final boolean doImages = false;
103
//	static final boolean doCommonNames = false;
104

    
105
//
106

    
107
	public void doImport(Source source, ICdmDataSource destination){
108
		System.out.println("Start import from ("+ globisSource.getDatabase() + ") ...");
109

    
110
		GlobisImportConfigurator config = GlobisImportConfigurator.NewInstance(source,  destination);
111

    
112
		config.setClassificationUuid(classificationUuid);
113
		config.setNomenclaturalCode(nomenclaturalCode);
114

    
115
		config.setIgnoreNull(ignoreNull);
116
		config.setDoReadMediaData(doReadMediaData);
117
		config.setDoReferences(doReferences);
118
		config.setDoAuthors(doAuthors);
119

    
120
		config.setDoCurrentTaxa(doCurrentTaxa);
121
		config.setDoSpecTaxa(doSpecTaxa);
122
		config.setDoImages(doImages);
123
		config.setDoCommonNames(doCommonNames);
124
		config.setImageBaseUrl(imageBaseUrl);
125

    
126
		config.setDbSchemaValidation(hbm2dll);
127
		config.setCheck(check);
128
		config.setRecordsPerTransaction(partitionSize);
129
		config.setClassificationName(classificationName);
130
		config.setSourceReferenceTitle(sourceReferenceTitle);
131
		config.setEditor(editor);
132

    
133
		// invoke import
134
		CdmDefaultImport<GlobisImportConfigurator> globisImport = new CdmDefaultImport<GlobisImportConfigurator>();
135
		globisImport.invoke(config);
136

    
137
		if (config.isDoNewUser()){
138
			//single user or all
139

    
140
			String user = CdmUtils.readInputLine("Please insert username : ");
141
			String pwd = CdmUtils.readInputLine("Please insert password for user '" + CdmUtils.Nz(user) + "': ");
142
			ICdmRepository app = globisImport.getCdmAppController();
143
			app.getUserService().save(User.NewInstance(user, pwd));
144
		}
145

    
146
		if (config.getCheck().equals(CHECK.CHECK_AND_IMPORT)  || config.getCheck().equals(CHECK.IMPORT_WITHOUT_CHECK)    ){
147
			ICdmRepository app = globisImport.getCdmAppController();
148
			ISourceable<?> obj = app.getCommonService().getSourcedObjectByIdInSource(TaxonName.class, "1000027", null);
149
			logger.info(obj);
150

    
151
//			//make feature tree
152
//			FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, ermsImportConfigurator.getFeatureMap(), featureKeyList);
153
//			app = ermsImport.getCdmAppController();
154
//			app.getFeatureTreeService().saveOrUpdate(tree);
155
		}
156
		System.out.println("End import from ("+ source.getDatabase() + ")...");
157
	}
158

    
159

    
160
	/**
161
	 * @param args
162
	 */
163
	public static void main(String[] args) {
164

    
165
		//make Globis Source
166
		Source source = globisSource;
167
		ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
168
		GlobisActivator me = new GlobisActivator();
169
		me.doImport(source, destination);
170

    
171
	}
172

    
173

    
174
}
    (1-1/1)