Project

General

Profile

Download (4.57 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.common.CdmDefaultImport;
22
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
23
import eu.etaxonomy.cdm.io.common.ITaxonNodeOutStreamPartitioner;
24
import eu.etaxonomy.cdm.io.common.TaxonNodeOutStreamPartitioner;
25
import eu.etaxonomy.cdm.io.common.TaxonNodeOutStreamPartitionerConcurrent;
26
import eu.etaxonomy.cdm.io.pesi.fauEu2Cdm.FauEu2CdmImportConfigurator;
27
import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
28
import eu.etaxonomy.cdm.model.reference.Reference;
29
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
30

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

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

    
40
    static final ICdmDataSource fauEuSource = CdmDestinations.test_cdm_pesi_fauna_europaea();
41
    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_pesi_leer();
42

    
43
    static final String sourceRefTitle = "Fauna Europaea PESI import.";
44
    static final UUID sourceRefUuid = UUID.fromString("f27a5e67-d065-4b79-8d41-eabd3ae0edd0");
45

    
46
    //check - import
47
    static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
48

    
49
    static final int partitionSize = 5000;
50

    
51
    static final boolean doTaxa = false;
52
    static final boolean doDescriptions = true;
53

    
54
    static final boolean doConcurrent = false;
55
    //auditing
56
    static final boolean registerAuditing = false;
57

    
58
// ***************** ALL ************************************************//
59

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

    
67

    
68
    private void doImport(ICdmDataSource source, ICdmDataSource destination, DbSchemaValidation hbm2dll){
69

    
70
        String importFrom = " import from "+ source.getDatabase() + " to "+ destination.getDatabase() + " ...";
71
        System.out.println("Start"+importFrom);
72

    
73
        FauEu2CdmImportConfigurator config = FauEu2CdmImportConfigurator.NewInstance(source,  destination);
74
        config.setConcurrent(doConcurrent);
75
        config.setDoTaxa(doTaxa);
76
        config.setDoDescriptions(doDescriptions);
77
        config.setSourceReference(getSourceRef());
78

    
79
        IProgressMonitor monitor = config.getProgressMonitor();
80

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

    
92
        config.setCheck(check);
93
//        config.setRecordsPerTransaction(partitionSize);
94

    
95
        config.setRegisterAuditing(registerAuditing);
96

    
97
        // invoke import
98
        CdmDefaultImport<FauEu2CdmImportConfigurator> myImport = new CdmDefaultImport<>();
99
        myImport.invoke(config);
100

    
101
        System.out.println("End" + importFrom);
102
    }
103

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

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