Project

General

Profile

Download (4.66 KB) Statistics
| Branch: | Revision:
1
/**
2
* Copyright (C) 2019 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
package eu.etaxonomy.cdm.app.pesi;
10

    
11
import java.util.Calendar;
12
import java.util.UUID;
13

    
14
import org.apache.log4j.Logger;
15

    
16
import eu.etaxonomy.cdm.app.common.CdmDestinations;
17
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
18
import eu.etaxonomy.cdm.database.DbSchemaValidation;
19
import eu.etaxonomy.cdm.database.ICdmDataSource;
20
import eu.etaxonomy.cdm.filter.TaxonNodeFilter.ORDER;
21
import eu.etaxonomy.cdm.io.cdm2cdm.Cdm2CdmImportConfigurator;
22
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
23
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
24
import eu.etaxonomy.cdm.io.common.ITaxonNodeOutStreamPartitioner;
25
import eu.etaxonomy.cdm.io.common.TaxonNodeOutStreamPartitioner;
26
import eu.etaxonomy.cdm.io.common.TaxonNodeOutStreamPartitionerConcurrent;
27
import eu.etaxonomy.cdm.io.pesi.out.PesiTransformer;
28
import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
29
import eu.etaxonomy.cdm.model.reference.Reference;
30
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
31

    
32
/**
33
 * @author a.mueller
34
 * @since 17.08.2019
35
 */
36
public class FauEu2CdmActivator {
37

    
38
    @SuppressWarnings("unused")
39
    private static final Logger logger = Logger.getLogger(FauEu2CdmActivator.class);
40

    
41
    static final ICdmDataSource fauEuSource = CdmDestinations.test_cdm_pesi_fauna_europaea();
42
//    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_pesi_leer();
43
    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_pesi2019_final();
44

    
45
    static final boolean doTaxa = true;
46
    static final boolean doDescriptions = false;
47

    
48

    
49
    static final String sourceRefTitle = "Fauna Europaea PESI import.";
50
    public static final UUID sourceRefUuid = PesiTransformer.uuidSourceRefFaunaEuropaea;
51

    
52
    //check - import
53
    static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
54

    
55
    static final int partitionSize = 5000;
56

    
57
    static final boolean doConcurrent = false;
58
    //auditing
59
    static final boolean registerAuditing = false;
60

    
61
// ***************** ALL ************************************************//
62

    
63
//    >50 records
64
//    UUID uuidTaxonNodeFilter = UUID.fromString("0e8bc793-f434-47c4-ba82-650c3bbd83bf");
65
    //>17000 records
66
//    UUID uuidTaxonNodeFilter = UUID.fromString("7ee4983b-78a3-44c5-9af2-beb0494b5fc8");
67
    //complete
68
    UUID uuidTaxonNodeFilter = UUID.fromString("feaa3025-a4a9-499a-b62f-15b3b96e5c55");
69

    
70

    
71
    private void doImport(ICdmDataSource source, ICdmDataSource destination, DbSchemaValidation hbm2dll){
72

    
73
        String importFrom = " import from "+ source.getDatabase() + " to "+ destination.getDatabase() + " ...";
74
        System.out.println("Start"+importFrom);
75

    
76
        Cdm2CdmImportConfigurator config = Cdm2CdmImportConfigurator.NewInstace(source, destination);
77
        config.setConcurrent(doConcurrent);
78
        config.setDoTaxa(doTaxa);
79
        config.setDoDescriptions(doDescriptions);
80
        config.setSourceReference(getSourceRef());
81

    
82
        IProgressMonitor monitor = config.getProgressMonitor();
83

    
84
        config.setDbSchemaValidation(hbm2dll);
85
        config.getTaxonNodeFilter().orSubtree(uuidTaxonNodeFilter);
86
        config.getTaxonNodeFilter().setOrder(ORDER.TREEINDEX);
87
        if (doConcurrent){
88
            ITaxonNodeOutStreamPartitioner partitioner = TaxonNodeOutStreamPartitionerConcurrent
89
                    .NewInstance(config.getSource(), config.getTaxonNodeFilter(),
90
                            8, monitor, 1, TaxonNodeOutStreamPartitioner.fullPropertyPaths);
91
            config.setPartitioner(partitioner);
92
        }
93

    
94
        config.setCheck(check);
95
//        config.setRecordsPerTransaction(partitionSize);
96

    
97
        config.setRegisterAuditing(registerAuditing);
98

    
99
        // invoke import
100
        CdmDefaultImport<Cdm2CdmImportConfigurator> myImport = new CdmDefaultImport<>();
101
        myImport.invoke(config);
102

    
103
        System.out.println("End" + importFrom);
104
    }
105

    
106
    private Reference getSourceRef() {
107
        Reference ref = ReferenceFactory.newDatabase();
108
        ref.setTitle(sourceRefTitle);
109
        ref.setDatePublished(VerbatimTimePeriod.NewVerbatimInstance(Calendar.getInstance()));
110
        ref.setUuid(sourceRefUuid);
111
        return ref;
112
    }
113

    
114
    public static void main(String[] args) {
115
        ICdmDataSource cdmDB = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
116
        FauEu2CdmActivator myImport = new FauEu2CdmActivator();
117
        myImport.doImport(fauEuSource, cdmDB, DbSchemaValidation.VALIDATE);
118
        System.exit(0);
119
    }
120
}
(3-3/9)