Project

General

Profile

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

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

    
16
import org.apache.logging.log4j.LogManager;
17
import org.apache.logging.log4j.Logger;
18
import org.springframework.aop.framework.Advised;
19
import org.springframework.aop.support.AopUtils;
20

    
21
import eu.etaxonomy.cdm.api.dto.portal.DistributionInfoDto.InfoPart;
22
import eu.etaxonomy.cdm.api.dto.portal.config.DistributionInfoConfiguration;
23
import eu.etaxonomy.cdm.api.service.geo.DistributionService;
24
import eu.etaxonomy.cdm.app.common.CdmDestinations;
25
import eu.etaxonomy.cdm.database.DbSchemaValidation;
26
import eu.etaxonomy.cdm.database.ICdmDataSource;
27
import eu.etaxonomy.cdm.io.api.application.CdmIoApplicationController;
28

    
29
/**
30
 * @author a.mueller
31
 * @since 08.07.2017
32
 */
33
public class TestSalvadorAreaMapping {
34

    
35
    @SuppressWarnings("unused")
36
    private static final Logger logger = LogManager.getLogger();
37

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

    
41
//    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();
42
//    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_salvador_preview();
43
    static final ICdmDataSource cdmDestination = CdmDestinations.cdm_production_salvador();
44

    
45
    protected void doTest(ICdmDataSource cdmDestination){
46

    
47
        CdmIoApplicationController app = CdmIoApplicationController.NewInstance(cdmDestination, hbm2dll);
48
        try {
49
            doTest2(app);
50
        } catch (Exception e) {
51
            e.printStackTrace();
52
        }
53
    }
54

    
55
    private void doTest2(CdmIoApplicationController app)  {
56
        UUID taxonUuid = UUID.fromString("eae896f0-3194-4b7b-a502-ad1d54ec36e6");
57
//      Taxon taxon = (Taxon)app.getTaxonService().find(taxonUuid);
58
      Object distributionServiceObj = app.getBean("distributionService");
59
      DistributionService distributionService;
60
        try {
61
            distributionService = getTargetObject(distributionServiceObj);
62

    
63

    
64
          Set<InfoPart> partSet = new HashSet<>();
65
          partSet.add(InfoPart.mapUriParams);
66

    
67
          EnumSet<InfoPart> parts = EnumSet.copyOf(partSet);
68
          DistributionInfoConfiguration distConfig = new DistributionInfoConfiguration();
69
          distConfig.setInfoParts(parts);
70
          distributionService.composeDistributionInfoFor(distConfig, taxonUuid, false, null,
71
                  null, null);
72
        } catch (Exception e) {
73
            e.printStackTrace();
74
        }
75
    }
76

    
77
    @SuppressWarnings("unchecked")
78
    protected <T> T getTargetObject(Object proxy) throws Exception {
79
        while( (AopUtils.isJdkDynamicProxy(proxy))) {
80
            return (T) getTargetObject(((Advised)proxy).getTargetSource().getTarget());
81
        }
82
        return (T) proxy; // expected to be cglib proxy then, which is simply a specialized class
83
    }
84

    
85
    public static void main(String[] args) {
86
        TestSalvadorAreaMapping me = new TestSalvadorAreaMapping();
87
        me.doTest(cdmDestination);
88

    
89
        System.exit(0);
90
    }
91
}
(4-4/4)