Project

General

Profile

Download (6.24 KB) Statistics
| Branch: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.cdm.app.globis;
12

    
13
import java.util.UUID;
14

    
15
import org.apache.log4j.Logger;
16

    
17
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
18
import eu.etaxonomy.cdm.app.common.CdmDestinations;
19
import eu.etaxonomy.cdm.app.common.CdmImportSources;
20
import eu.etaxonomy.cdm.common.AccountStore;
21
import eu.etaxonomy.cdm.common.CdmUtils;
22
import eu.etaxonomy.cdm.database.DbSchemaValidation;
23
import eu.etaxonomy.cdm.database.ICdmDataSource;
24
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
25
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
26
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;
27
import eu.etaxonomy.cdm.io.common.IImportConfigurator.EDITOR;
28
import eu.etaxonomy.cdm.io.common.Source;
29
import eu.etaxonomy.cdm.io.globis.GlobisImportConfigurator;
30
import eu.etaxonomy.cdm.model.common.ISourceable;
31
import eu.etaxonomy.cdm.model.common.User;
32
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
33
import eu.etaxonomy.cdm.model.name.ZoologicalName;
34

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

    
42
	//database validation status (create, update, validate ...)
43
	static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
44
	static final Source globisSource = CdmImportSources.GLOBIS_MDB_20140113_PESIIMPORT_SQLSERVER();
45
//	static final ICdmDataSource cdmDestination = CdmDestinations.localH2();
46
//	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();
47
	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_globis_dev();
48
//	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_globis_production();
49
	
50
	
51
	
52
	static final UUID classificationUuid = UUID.fromString("8bd27d84-fd4f-4bfa-bde0-3e6b7311b334");
53
	static final UUID featureTreeUuid = UUID.fromString("33cbf7a8-0c47-4d47-bd11-b7d77a38d0f6");
54
	//static final Object[] featureKeyList = new Integer[]{1,4,5,10,11,12,13,14, 249, 250, 251, 252, 253};
55
	
56
	static final String classificationName = "Globis";
57
	static final String sourceReferenceTitle = "Globis Informix Database";
58
	
59
	static final EDITOR editor = EDITOR.EDITOR_AS_EDITOR;
60
	
61
	static final String imageBaseUrl = "http://globis-images.insects-online.de/images/";
62
	
63
	//check - import
64
	static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
65

    
66
	static final int partitionSize = 3000;
67

    
68

    
69
	//NomenclaturalCode
70
	static final NomenclaturalCode nomenclaturalCode = NomenclaturalCode.ICZN;
71

    
72
	
73
	static final boolean doReadMediaData = false;
74
	
75
//	//ignore null
76
	static final boolean ignoreNull = true;
77
	
78
// ***************** ALL ************************************************//
79
	
80
	//authors
81
	static final boolean doAuthors = true;
82
	
83
//	//references
84
	static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
85
	
86
	//taxa
87
	static final boolean doCurrentTaxa = true;
88
	static final boolean doSpecTaxa = true;
89
	static final boolean doImages = true;
90
	static final boolean doCommonNames = true;
91
	
92
	
93
//******************** NONE ***************************************//
94
	
95
//	//authors
96
//	static final boolean doAuthors = false;
97
//
98
//	//references
99
//	static final DO_REFERENCES doReferences =  DO_REFERENCES.NONE;
100
//	
101
//	//taxa
102
//	static final boolean doCurrentTaxa = false;
103
//	static final boolean doSpecTaxa = false;
104
//	static final boolean doImages = false;
105
//	static final boolean doCommonNames = false;
106

    
107
//	
108
	
109
	public void doImport(Source source, ICdmDataSource destination){
110
		System.out.println("Start import from ("+ globisSource.getDatabase() + ") ...");
111
		
112
		GlobisImportConfigurator config = GlobisImportConfigurator.NewInstance(source,  destination);
113
		
114
		config.setClassificationUuid(classificationUuid);
115
		config.setNomenclaturalCode(nomenclaturalCode);
116

    
117
		config.setIgnoreNull(ignoreNull);
118
		config.setDoReadMediaData(doReadMediaData);
119
		config.setDoReferences(doReferences);
120
		config.setDoAuthors(doAuthors);
121
		
122
		config.setDoCurrentTaxa(doCurrentTaxa);
123
		config.setDoSpecTaxa(doSpecTaxa);
124
		config.setDoImages(doImages);
125
		config.setDoCommonNames(doCommonNames);
126
		config.setImageBaseUrl(imageBaseUrl);
127
		
128
		config.setDbSchemaValidation(hbm2dll);
129
		config.setCheck(check);
130
		config.setRecordsPerTransaction(partitionSize);
131
		config.setClassificationName(classificationName);
132
		config.setSourceReferenceTitle(sourceReferenceTitle);
133
		config.setEditor(editor);
134

    
135
		// invoke import
136
		CdmDefaultImport<GlobisImportConfigurator> globisImport = new CdmDefaultImport<GlobisImportConfigurator>();
137
		globisImport.invoke(config);
138
		
139
		if (config.isDoNewUser()){
140
			//single user or all
141
			
142
			String user = CdmUtils.readInputLine("Please insert username : ");
143
			String pwd = CdmUtils.readInputLine("Please insert password for user '" + CdmUtils.Nz(user) + "': ");
144
			ICdmApplicationConfiguration app = globisImport.getCdmAppController();
145
			app.getUserService().save(User.NewInstance(user, pwd));
146
		}
147
		
148
		if (config.getCheck().equals(CHECK.CHECK_AND_IMPORT)  || config.getCheck().equals(CHECK.IMPORT_WITHOUT_CHECK)    ){
149
			ICdmApplicationConfiguration app = globisImport.getCdmAppController();
150
			ISourceable<?> obj = app.getCommonService().getSourcedObjectByIdInSource(ZoologicalName.class, "1000027", null);
151
			logger.info(obj);
152
			
153
//			//make feature tree
154
//			FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, ermsImportConfigurator.getFeatureMap(), featureKeyList);
155
//			app = ermsImport.getCdmAppController();
156
//			app.getFeatureTreeService().saveOrUpdate(tree);
157
		}
158
		System.out.println("End import from ("+ source.getDatabase() + ")...");
159
	}
160
	
161
	
162
	/**
163
	 * @param args
164
	 */
165
	public static void main(String[] args) {
166
		
167
		//make Globis Source
168
		Source source = globisSource;
169
		ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
170
		GlobisActivator me = new GlobisActivator();
171
		me.doImport(source, destination);
172

    
173
	}
174

    
175

    
176
}
    (1-1/1)