Project

General

Profile

Download (4.68 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.greece;
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.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 BupleurumExportActivator {
36

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

    
40
    static final ICdmDataSource greeceSource = CdmDestinations.cdm_production_greece_checklist();
41
//    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_test_mysql();
42
//    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_cdmtest_mysql();
43
    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_bupleurum();
44

    
45
    static final String sourceRefTitle = "Flora of Greece";
46
    static final UUID sourceRefUuid = UUID.fromString("f88e33e5-1f6a-463e-b6fd-220d5e93d810");
47

    
48
    static final DbSchemaValidation schemaValidation = DbSchemaValidation.CREATE;
49

    
50
    //check - import
51
    static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
52

    
53
    static final int partitionSize = 5000;
54

    
55
    static final boolean doTaxa = true;
56
    static final boolean doDescriptions = false;
57
    static final boolean removeImportSources = true;
58

    
59
    static final boolean doConcurrent = false;
60
    //auditing
61
    static final boolean registerAuditing = true;
62

    
63
// ***************** ALL ************************************************//
64

    
65
    UUID uuidBupleurumTaxonNodeFilter = UUID.fromString("51e768cf-321b-4108-8bee-46143996b033");
66

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

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

    
72
        Cdm2CdmImportConfigurator config = Cdm2CdmImportConfigurator.NewInstace(source, destination);
73
        config.setConcurrent(doConcurrent);
74
        config.setDoTaxa(doTaxa);
75
        config.setDoDescriptions(doDescriptions);
76
        config.setSourceReference(getSourceRef());
77
        config.setRemoveImportSources(removeImportSources);
78

    
79
        IProgressMonitor monitor = config.getProgressMonitor();
80

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

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

    
94
        config.setRegisterAuditing(registerAuditing);
95

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

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

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

    
111
    public static void main(String[] args) {
112
        ICdmDataSource cdmDB = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
113
        BupleurumExportActivator myImport = new BupleurumExportActivator();
114
        myImport.doImport(greeceSource, cdmDB, schemaValidation);
115
        System.exit(0);
116
    }
117
}
(1-1/9)