Project

General

Profile

Download (3.5 KB) Statistics
| Branch: | Revision:
1
/**
2
* Copyright (C) 2015 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.euromed;
10

    
11
import java.util.HashSet;
12
import java.util.Set;
13
import java.util.UUID;
14

    
15
import org.apache.log4j.Logger;
16

    
17
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
18
import eu.etaxonomy.cdm.api.application.ICdmRepository;
19
import eu.etaxonomy.cdm.api.service.UpdateResult;
20
import eu.etaxonomy.cdm.api.service.description.AggregationMode;
21
import eu.etaxonomy.cdm.api.service.description.DistributionAggregation;
22
import eu.etaxonomy.cdm.api.service.description.DistributionAggregationConfiguration;
23
import eu.etaxonomy.cdm.app.common.CdmDestinations;
24
import eu.etaxonomy.cdm.common.monitor.DefaultProgressMonitor;
25
import eu.etaxonomy.cdm.database.DbSchemaValidation;
26
import eu.etaxonomy.cdm.database.ICdmDataSource;
27
import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
28
import eu.etaxonomy.cdm.model.name.Rank;
29

    
30
/**
31
 * @author a.mueller
32
 * @since 18.10.2019
33
 */
34
public class EuroMedDistributionAggregationActivator {
35

    
36
    private static final Logger logger = Logger.getLogger(EuroMedDistributionAggregationActivator.class);
37

    
38
    //database validation status (create, update, validate ...)
39
    static DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;
40

    
41
//    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_mysql_pesi_euromed();
42
//   static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_euroMed();
43
    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_production_euromed();
44

    
45
   //Actinolema
46
//    static final UUID subtreeUuid = UUID.fromString("108745e9-c740-4c88-a2bb-2304a797c827");
47
    //Apiaceae
48
//    static final UUID subtreeUuid = UUID.fromString("236f19ad-0eba-4cdd-a839-41348c0a7b38");
49
    //Asteranae
50
//  static final UUID subtreeUuid = UUID.fromString("7255db07-bbe0-43f6-921b-5c68c65e343f");
51

    
52
    //Magnoliopsida
53
    static final UUID subtreeUuid = UUID.fromString("342959e1-eb51-4992-bc60-80dd650727c9");
54

    
55
    private void doImport(ICdmDataSource cdmDestination){
56

    
57
        logger.info("start");
58
        ICdmRepository app = CdmApplicationController.NewInstance(cdmDestination, dbSchemaValidation);
59

    
60
        DistributionAggregation distributionAggregation = new DistributionAggregation();
61

    
62
        Set<UUID> subtreeUuids = new HashSet<>();
63
        subtreeUuids.add(subtreeUuid);
64
        TaxonNodeFilter filter = TaxonNodeFilter.NewInstance(null, subtreeUuids, null, null, null,
65
                null, Rank.uuidGenus);
66
        DistributionAggregationConfiguration aggregationConfig =
67
                DistributionAggregationConfiguration.NewInstance(
68
                AggregationMode.byToParent(),
69
                null,
70
                filter,
71
                DefaultProgressMonitor.NewInstance());
72
        UpdateResult result = distributionAggregation.invoke(aggregationConfig, app);
73
        System.out.println("Status: " + result.getStatus());
74
        System.out.println("Exceptions: " + result.getExceptions());
75
        for (Exception ex: result.getExceptions()){
76
            ex.printStackTrace();
77
        }
78
        System.out.println("Size: " + result.getUpdatedCdmIds().size());
79
    }
80

    
81
    public static void main(String[] args) {
82
        EuroMedDistributionAggregationActivator me = new EuroMedDistributionAggregationActivator();
83
        me.doImport(cdmDestination);
84
        System.exit(0);
85
    }
86
}
(1-1/3)