2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.app
.dwca
;
13 import java
.util
.UUID
;
15 import org
.apache
.log4j
.Logger
;
17 import eu
.etaxonomy
.cdm
.api
.application
.ICdmApplicationConfiguration
;
18 import eu
.etaxonomy
.cdm
.app
.common
.CdmDestinations
;
19 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
20 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
21 import eu
.etaxonomy
.cdm
.io
.common
.CdmDefaultImport
;
22 import eu
.etaxonomy
.cdm
.io
.common
.IImportConfigurator
.CHECK
;
23 import eu
.etaxonomy
.cdm
.io
.common
.events
.LoggingIoObserver
;
24 import eu
.etaxonomy
.cdm
.io
.dwca
.in
.DwcaDataImportConfiguratorBase
.DatasetUse
;
25 import eu
.etaxonomy
.cdm
.io
.dwca
.in
.DwcaImportConfigurator
;
26 import eu
.etaxonomy
.cdm
.io
.dwca
.in
.IImportMapping
.MappingType
;
27 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
28 import eu
.etaxonomy
.cdm
.model
.name
.NomenclaturalCode
;
29 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
30 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceFactory
;
36 public class DwcaImportActivator
{
37 private static final Logger logger
= Logger
.getLogger(DwcaImportActivator
.class);
39 //database validation status (create, update, validate ...)
40 static DbSchemaValidation hbm2dll
= DbSchemaValidation
.CREATE
;
41 // static final URI source = dwca_test_in();
42 // static final URI source = dwca_test_cich_len();
43 // static final URI source = dwca_test_col_sapindaceae();
44 // static final URI source = dwca_test_col_cichorium();
45 // static final URI source = dwca_test_scratch_test();
46 // static final URI source = dwca_test_col_All();
47 // static final URI source = dwca_test_col_All_Pesi2();
48 static final URI source
= dwca_emonocots_dioscoreaceae();
51 static final ICdmDataSource cdmDestination
= CdmDestinations
.localH2();
52 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_dwca();
53 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();
54 // static final ICdmDataSource cdmDestination = CdmDestinations.localH2();
55 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_pesi_test();
56 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_pesi();
57 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();
62 static final UUID classificationUuid
= UUID
.fromString("29d4011f-a6dd-4081-beb8-559ba6b84a6b");
64 //default nom code is ICZN as it allows adding publication year
65 static final NomenclaturalCode defaultNomCode
= NomenclaturalCode
.ICZN
;
69 static final CHECK check
= CHECK
.IMPORT_WITHOUT_CHECK
;
70 static int partitionSize
= 1000;
73 static DatasetUse datasetUse
= DatasetUse
.SECUNDUM
;
74 static boolean scientificNameIdAsOriginalSourceId
= true;
75 static boolean guessNomRef
= true;
76 static boolean handleAllRefsAsCitation
= true;
79 static boolean validateRankConsistency
= false;
83 static final boolean doTaxa
= true;
84 static final boolean doDistribution
= false;
86 static final boolean doDeduplicate
= false;
90 static final MappingType mappingType
= MappingType
.InMemoryMapping
;
92 private void doImport(ICdmDataSource cdmDestination
){
95 DwcaImportConfigurator config
= DwcaImportConfigurator
.NewInstance(source
, cdmDestination
);
96 config
.addObserver(new LoggingIoObserver());
97 config
.setClassificationUuid(classificationUuid
);
98 config
.setCheck(check
);
99 config
.setDbSchemaValidation(hbm2dll
);
100 config
.setMappingType(mappingType
);
102 config
.setScientificNameIdAsOriginalSourceId(scientificNameIdAsOriginalSourceId
);
103 config
.setValidateRankConsistency(validateRankConsistency
);
104 config
.setDefaultPartitionSize(partitionSize
);
105 config
.setNomenclaturalCode(defaultNomCode
);
106 config
.setDatasetUse(datasetUse
);
107 config
.setGuessNomenclaturalReferences(guessNomRef
);
108 config
.setHandleAllRefsAsCitation(handleAllRefsAsCitation
);
110 CdmDefaultImport
<DwcaImportConfigurator
> myImport
= new CdmDefaultImport
<DwcaImportConfigurator
>();
115 System
.out
.println("Start import from ("+ source
.toString() + ") ...");
116 config
.setSourceReference(getSourceReference(config
.getSourceReferenceTitle()));
117 myImport
.invoke(config
);
118 System
.out
.println("End import from ("+ source
.toString() + ")...");
125 ICdmApplicationConfiguration app
= myImport
.getCdmAppController();
126 int count
= app
.getAgentService().deduplicate(Person
.class, null, null);
127 logger
.warn("Deduplicated " + count
+ " persons.");
128 // count = app.getAgentService().deduplicate(Team.class, null, null);
129 // logger.warn("Deduplicated " + count + " teams.");
130 count
= app
.getReferenceService().deduplicate(Reference
.class, null, null);
131 logger
.warn("Deduplicated " + count
+ " references.");
136 private Reference
getSourceReference(String string
) {
137 Reference result
= ReferenceFactory
.newGeneric();
138 result
.setTitleCache(string
);
143 public static URI
dwca_test_in() {
144 // URI sourceUrl = URI.create("http://dev.e-taxonomy.eu/trac/export/14463/trunk/cdmlib/cdmlib-io/src/test/resources/eu/etaxonomy/cdm/io/dwca/in/DwcaZipToStreamConverterTest-input.zip");
145 URI sourceUrl
= URI
.create("file:///C:/Users/pesiimport/Documents/pesi_cdmlib/cdmlib-io/src/test/resources/eu/etaxonomy/cdm/io/dwca/in/DwcaZipToStreamConverterTest-input.zip");
151 public static URI
dwca_test_cich() {
152 URI sourceUrl
= URI
.create("file:///E:/opt/data/dwca/20110621_1400_cichorieae_dwca.zip");
157 public static URI
dwca_test_cich_len() {
158 URI sourceUrl
= URI
.create("file:///C:/localCopy/Data/dwca/export/20110621_1400_cichorieae_dwca.zip");
163 public static URI
dwca_test_col_cichorium() {
164 URI sourceUrl
= URI
.create("file:///C:/localCopy/Data/dwca/import/CoL/Cichorium/archive-genus-Cichorium-bl3.zip");
169 public static URI
dwca_test_col_sapindaceae() {
170 URI sourceUrl
= URI
.create("file:///C:/localCopy/Data/dwca/import/CoL/Sapindaceae/archive-family-Sapindaceae-bl3.zip");
175 public static URI
dwca_emonocots_local() {
176 URI sourceUrl
= URI
.create("file:///C:/localCopy/Data/dwca/import/Scratchpads/dwca_dioscoreaceae_emonocots.zip");
180 //emonocots_dioscoreaceae
181 public static URI
dwca_emonocots_dioscoreaceae() {
182 URI sourceUrl
= URI
.create("file:////PESIIMPORT3/vibrant/dwca/dwca_emonocots_dioscoreaceae.zip");
186 //emonocots_zingiberaceae
187 public static URI
dwca_emonocots_zingiberaceae() {
188 URI sourceUrl
= URI
.create("file:////PESIIMPORT3/vibrant/dwca/dwca_emonocots_zingiberaceae.zip");
191 //emonocots_cypripedioideae
192 public static URI
dwca_emonocots_cypripedioideae() {
193 URI sourceUrl
= URI
.create("file:////PESIIMPORT3/vibrant/dwca/dwca_emonocots_cypripedioideae.zip");
199 public static URI
dwca_test_col_All() {
200 URI sourceUrl
= URI
.create("file:///C:/localCopy/Data/dwca/import/CoL/All/archive-complete.zip");
205 public static URI
dwca_test_col_All_Pesi2() {
206 URI sourceUrl
= URI
.create("file:///C:/opt/data/CoL/All/archive-complete.zip");
215 public static void main(String
[] args
) {
216 DwcaImportActivator me
= new DwcaImportActivator();
217 me
.doImport(cdmDestination
);