Project

General

Profile

« Previous | Next » 

Revision 57648

merged branch cris r57561-HEAD

View differences:

modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/ValidatorServiceImpl.java
3 3
import eu.dnetlib.api.functionality.ValidatorServiceException;
4 4
import eu.dnetlib.domain.data.Repository;
5 5
import eu.dnetlib.domain.data.RepositoryInterface;
6
import eu.dnetlib.domain.functionality.validator.JobForValidation;
7
import eu.dnetlib.domain.functionality.validator.JobResultEntry;
8
import eu.dnetlib.domain.functionality.validator.RuleSet;
9
import eu.dnetlib.domain.functionality.validator.StoredJob;
6
import eu.dnetlib.domain.functionality.validator.*;
10 7
import eu.dnetlib.repo.manager.exception.ResourceNotFoundException;
11 8
import eu.dnetlib.repo.manager.shared.Constants;
12 9
import eu.dnetlib.repo.manager.shared.InterfaceInformation;
......
14 11
import eu.dnetlib.repo.manager.utils.OaiTools;
15 12
import gr.uoa.di.driver.util.ServiceLocator;
16 13
import org.apache.log4j.Logger;
14
import org.eurocris.openaire.cris.validator.model.Job;
15
import org.eurocris.openaire.cris.validator.service.JobExecutor;
16
import org.eurocris.openaire.cris.validator.service.MapJobDao;
17 17
import org.json.JSONException;
18 18
import org.springframework.beans.factory.annotation.Autowired;
19 19
import org.springframework.http.HttpStatus;
......
61 61
    @Autowired
62 62
    private EmailUtils emailUtils;
63 63

  
64
    @Autowired
65
    private JobExecutor crisValidatorExecutor;
66

  
67
    @Autowired
68
    private MapJobDao crisJobs;
69

  
64 70
    @PostConstruct
65 71
    private void loadRules(){
66 72
        LOGGER.debug("PostConstruct method! Load rules!");
......
84 90
                    }
85 91
                }
86 92
            }
93

  
94
            /////////////////////////////////////////////////////////////////////////////////////////
95
            // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly //
96
            /////////////////////////////////////////////////////////////////////////////////////////
97
            int ruleId = -1000;
98
            Rule rule = new Rule();
99
            rule.setType("cris");
100
            rule.setName("CRIS Rules");
101
            rule.setId(ruleId);
102
            rule.setMandatory(true);
103
            RuleSet crisRuleSet = new RuleSet();
104
            crisRuleSet.setContentRulesIds(Collections.singleton(ruleId));
105
            crisRuleSet.setContentRules(Collections.singletonList(rule));
106
            crisRuleSet.setUsageRulesIds(Collections.singleton(ruleId));
107
            crisRuleSet.setUsageRules(Collections.singletonList(rule));
108
            crisRuleSet.setId(-1);
109
            crisRuleSet.setDescription("Validates using the CRIS Validator implementation");
110
            crisRuleSet.setName("CRIS Validation");
111

  
112
            String crisKey = Constants.VALIDATION_MODE_CRIS;
113
            if (rulesetMap.containsKey(crisKey))
114
                rulesetMap.get(crisKey).add(crisRuleSet);
115
            else {
116
                List<RuleSet> ruleSets = new ArrayList<RuleSet>();
117
                ruleSets.add(crisRuleSet);
118
                rulesetMap.put(crisKey, ruleSets);
119
            }
120
            /////////////////////////////////////////////////////////////////////////////////////////
121
            /////////////////////////////////////////////////////////////////////////////////////////
87 122
        } catch (ValidatorServiceException e) {
88 123
            LOGGER.error(e);
89 124
        }
......
96 131
        LOGGER.debug("Submit job for validation with id : " + jobForValidation.getDatasourceId());
97 132
        try {
98 133
            emailUtils.sendSubmitJobForValidationEmail(SecurityContextHolder.getContext().getAuthentication(),jobForValidation);
99
            this.getValidationService().submitValidationJob(jobForValidation);
134
            /////////////////////////////////////////////////////////////////////////////////////////
135
            // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly //
136
            /////////////////////////////////////////////////////////////////////////////////////////
137
            if (jobForValidation.getSelectedContentRules().size() == 1 &&
138
                    jobForValidation.getSelectedContentRules().contains(-1000)) {
139
                crisValidatorExecutor.submit(jobForValidation.getBaseUrl(), jobForValidation.getUserEmail());
140
            } else {
141
                this.getValidationService().submitValidationJob(jobForValidation);
142
            }
143
            /////////////////////////////////////////////////////////////////////////////////////////
144
            /////////////////////////////////////////////////////////////////////////////////////////
145
//            this.getValidationService().submitValidationJob(jobForValidation);
100 146
        } catch (ValidatorServiceException e) {
101 147
            LOGGER.debug("Exception on submitJobForValidation" , e);
102 148
            emailUtils.reportException(e);
......
199 245
                                            String dateFrom,
200 246
                                            String dateTo,
201 247
                                            String validationStatus ) throws ValidatorServiceException {
202
        return getValidationService().getStoredJobsNew(user, jobType, Integer.parseInt(offset), Integer.parseInt(limit), dateFrom, dateTo, validationStatus);
248
//        return getValidationService().getStoredJobsNew(user, jobType, Integer.parseInt(offset), Integer.parseInt(limit), dateFrom, dateTo, validationStatus);
249
        List<StoredJob> jobs = getValidationService().getStoredJobsNew(user, jobType, Integer.parseInt(offset), Integer.parseInt(limit), dateFrom, dateTo, validationStatus);
250
        /////////////////////////////////////////////////////////////////////////////////////////
251
        // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly //
252
        /////////////////////////////////////////////////////////////////////////////////////////
253
        if (jobs == null) {
254
            jobs = new ArrayList<>();
255
        }
256
        List<Job> cj = crisJobs.getJobs(user);
257
        for (Job job : cj) {
258
            StoredJob sj = new StoredJob();
259

  
260
            if (job.getDateFinished() != null) {
261
                sj.setEnded(job.getDateFinished().toString());
262
                sj.setDuration(Long.toString(job.getDateFinished().getTime() - job.getDateStarted().getTime()) + " seconds");
263
            } else {
264
                sj.setEnded("-");
265
                sj.setDuration("-");
266
            }
267
            sj.setStarted(job.getDateStarted().toString());
268

  
269
            sj.setUserEmail(job.getUser());
270
            sj.setCris(true);
271
            sj.setBaseUrl(job.getUrl());
272
            sj.setJobType("CRIS Validation");
273

  
274
            // TODO: status
275
            sj.setValidationStatus(job.getStatus());
276
            sj.setUsageJobStatus(job.getStatus());
277
            sj.setContentJobStatus(job.getStatus());
278

  
279
            // TODO: scores
280
//            sj.setFilteredScores();
281
            sj.setContentJobScore(job.getScore());
282
            sj.setUsageJobScore(job.getScore());
283

  
284
            jobs.add(sj);
285
        }
286
        /////////////////////////////////////////////////////////////////////////////////////////
287
        /////////////////////////////////////////////////////////////////////////////////////////
288
        return jobs;
203 289
    }
204 290

  
205 291
    @Override
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/MonitorServiceImpl.java
2 2

  
3 3
import eu.dnetlib.api.functionality.ValidatorService;
4 4
import eu.dnetlib.api.functionality.ValidatorServiceException;
5
import eu.dnetlib.domain.functionality.validator.JobForValidation;
5 6
import eu.dnetlib.domain.functionality.validator.StoredJob;
6 7
import eu.dnetlib.repo.manager.shared.Constants;
7 8
import eu.dnetlib.repo.manager.shared.JobsOfUser;
8 9
import gr.uoa.di.driver.util.ServiceLocator;
9 10
import org.apache.log4j.Logger;
11
import org.eurocris.openaire.cris.validator.model.Job;
12
import org.eurocris.openaire.cris.validator.service.MapJobDao;
10 13
import org.json.JSONException;
14
import org.springframework.beans.factory.annotation.Autowired;
11 15
import org.springframework.stereotype.Service;
12 16

  
13 17
import javax.annotation.Resource;
18
import javax.mail.Store;
19
import java.util.ArrayList;
20
import java.util.Collections;
21
import java.util.Date;
22
import java.util.List;
23
import java.util.stream.Collectors;
14 24

  
15 25
@Service("monitorService")
16 26
public class MonitorServiceImpl implements MonitorService {
17 27

  
28
    @Autowired
29
    private MapJobDao crisJobs;
30

  
18 31
    @Resource(name = "validatorServiceLocator")
19 32
    private ServiceLocator<ValidatorService> validatorServiceLocator;
20 33

  
......
49 62
        JobsOfUser retJobs = new JobsOfUser();
50 63
        retJobs.setJobs(getValidationService().getStoredJobsNew(user, jobType, Integer.parseInt(offset),
51 64
                Integer.parseInt(limit), dateFrom, dateTo, validationStatus));
65

  
52 66
        if (Boolean.parseBoolean(includeJobsTotal)) {
53 67
            retJobs.setTotalJobs(this.getJobsTotalNumberOfUser(user, jobType, null));
54 68
            retJobs.setTotalJobsSuccessful(this.getJobsTotalNumberOfUser(user, jobType, Constants.VALIDATION_JOB_STATUS_SUCCESSFUL));
......
73 87

  
74 88
            }
75 89
        }
90
        /////////////////////////////////////////////////////////////////////////////////////////
91
        // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly //
92
        /////////////////////////////////////////////////////////////////////////////////////////
93
        List<StoredJob> jobs = new ArrayList<>();
76 94

  
95
        List<Job> cj = crisJobs.getJobs(user);
96
        for (Job job : cj) {
77 97

  
98
            StoredJob sj = converJobToStoredJob(job);
99

  
100

  
101
            // filter out entries based on 'validationStatus'
102
            if ("all".equals(validationStatus)) {
103
                jobs.add(sj);
104
            } else {
105
                if (sj.getValidationStatus().equals(validationStatus)) {
106
                    jobs.add(sj);
107
                }
108
            }
109
        }
110

  
111
        // add to CRIS Jan jobs all other jobs
112
        if (retJobs.getJobs() != null) {
113
            jobs.addAll(retJobs.getJobs());
114
        }
115
        // set all jobs back to retJobs
116
        retJobs.setJobs(jobs);
117

  
118
        // fix number of jobs
119
        if (Boolean.parseBoolean(includeJobsTotal)) {
120
            retJobs.setTotalJobs(retJobs.getTotalJobs() + crisJobs.getJobs(user).size());
121
            retJobs.setTotalJobsSuccessful(retJobs.getTotalJobsSuccessful() + crisJobs.getJobs(user, Job.Status.SUCCESSFUL.getKey()).size());
122
            retJobs.setTotalJobsFailed(retJobs.getTotalJobsFailed() + crisJobs.getJobs(user, Job.Status.FAILED.getKey()).size());
123
            retJobs.setTotalJobsOngoing(retJobs.getTotalJobsOngoing() + crisJobs.getJobs(user, Job.Status.ONGOING.getKey()).size());
124
        }
125
        /////////////////////////////////////////////////////////////////////////////////////////
126
        /////////////////////////////////////////////////////////////////////////////////////////
127

  
78 128
        return retJobs;
79 129

  
80 130
    }
......
100 150
    public StoredJob getJobSummary(String jobId,
101 151
                                   String groupBy) throws JSONException {
102 152
        LOGGER.debug("Getting job summary with id : " + jobId);
153
        StoredJob job = null;
103 154
        try {
104
            return getValidationService().getStoredJob(Integer.parseInt(jobId), groupBy);
155
            job = getValidationService().getStoredJob(Integer.parseInt(jobId), groupBy);
105 156
        } catch (ValidatorServiceException e) {
106 157
            LOGGER.error(e);
107 158
        }
108
        return null;
159
        /////////////////////////////////////////////////////////////////////////////////////////
160
        // FIXME: this is a hack for CRIS Jan Dvorak Validator, should be implemented properly //
161
        /////////////////////////////////////////////////////////////////////////////////////////
162
        if (job == null) {
163
            // not a good way to do it but Job id field is string
164
            List<Job> cJobs = crisJobs.getAll().stream().filter(j -> j.getId().hashCode() == Integer.parseInt(jobId)).collect(Collectors.toList());
165
            if (!cJobs.isEmpty()) {
166
                job = converJobToStoredJob(cJobs.get(0));
167
            }
168
        }
169
        /////////////////////////////////////////////////////////////////////////////////////////
170
        /////////////////////////////////////////////////////////////////////////////////////////
171
        return job;
109 172
    }
110 173

  
174
    private StoredJob converJobToStoredJob(Job job) {
175
        StoredJob sj = new StoredJob();
176
        sj.setId(job.getId().hashCode());
177
        sj.setValidationStatus(job.getStatus());
178
        if (job.getDateFinished() != null) {
179
            sj.setEnded(job.getDateFinished().toString());
180
            sj.setDuration(new Date(job.getDateFinished().getTime() - job.getDateStarted().getTime()).toString());
181
        } else {
182
            sj.setEnded("-");
183
            sj.setDuration("-");
184
        }
185
        sj.setStarted(job.getDateStarted().toString());
186

  
187
        sj.setUserEmail(job.getUser());
188
        sj.setCris(true);
189
        sj.setBaseUrl(job.getUrl());
190
        sj.setJobType("CRIS Validation");
191

  
192
        // TODO: status
193
        sj.setValidationStatus(job.getStatus());
194
        sj.setUsageJobStatus(job.getStatus());
195
        sj.setContentJobStatus(job.getStatus());
196

  
197
        // TODO: scores
198
//            sj.setFilteredScores();
199
        sj.setContentJobScore(job.getScore());
200
        sj.setUsageJobScore(job.getScore());
201

  
202
        sj.setValidationType("CRIS Validation");
203

  
204
        return sj;
205
    }
206

  
111 207
}
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/config/Config.java
19 19
@EnableAspectJAutoProxy
20 20
@EnableCircuitBreaker
21 21
@PropertySource(value = {"classpath:application.properties"} )
22
@ComponentScan(basePackages = "eu.dnetlib.repo.manager.*")
22
@ComponentScan(basePackages = {
23
        "org.eurocris.openaire.cris.validator.service",
24
        "eu.dnetlib.repo.manager.*"})
23 25
public class Config {
24 26

  
25 27
    private static Logger LOGGER = Logger.getLogger(Config.class);
modules/uoa-repository-manager-service/trunk/src/main/resources/application.properties
1 1
infrastructure.name=integration
2 2

  
3 3
## Container properties
4
container.hostname=estella.athenarc.gr
4
container.hostname=localhost
5 5
container.context=uoa-repository-manager-service
6 6
container.port=8480
7 7

  
8
IS.url = https://dev-openaire.d4science.org/is/services
9
ISLookUpService.url = ${IS.url}/isLookUp
10
ISRegistryService.url = ${IS.url}/isRegistry
11
ISSNService.url = ${IS.url}/services/isSN
8
IS.url=https://dev-openaire.d4science.org/is/services
9
ISLookUpService.url=${IS.url}/isLookUp
10
ISRegistryService.url=${IS.url}/isRegistry
11
ISSNService.url=${IS.url}/services/isSN
12 12

  
13 13
#ValidatorService.url=http://88.197.53.69:8080/validator-service/services/validatorWebService
14 14
#ValidatorService.url=http://beta.services.openaire.eu/validator-service/services/validatorWebService
......
17 17
services.provide.adminEmail=provide-admin@openaire.eu
18 18

  
19 19
## Broker Service
20
services.broker.url = http://broker1-dev-dnet.d4science.org
21
services.broker.port = 8080
22
services.broker.api = api/
23
services.broker.openaire = openaireBroker
20
services.broker.url=http://broker1-dev-dnet.d4science.org
21
services.broker.port=8080
22
services.broker.api=api/
23
services.broker.openaire=openaireBroker
24 24

  
25 25
#api.baseAddress=https://dev-openaire.d4science.org/openaire
26 26
api.baseAddress=http://beta.services.openaire.eu/openaire
27 27

  
28
service.repository-rest-api.baseUrl =http://${container.hostname}:${container.port}
29
services.repo-manager.baseUrl = http://${container.hostname}:${container.port}/${container.context}
28
service.repository-rest-api.baseUrl=http://${container.hostname}:${container.port}
29
services.repo-manager.baseUrl=http://${container.hostname}:${container.port}/${container.context}
30 30

  
31
transport.soap.baseAddress = http://${container.hostname}:${container.port}/${container.context}
32
transport.soap.force.local.address = false
31
transport.soap.baseAddress=http://${container.hostname}:${container.port}/${container.context}
32
transport.soap.force.local.address=false
33 33

  
34 34

  
35 35
validator.results.url=https://${container.hostname}:${container.port}/compatibility/browseHistory/
36
services.repo-manager.adminEmail = antleb@di.uoa.gr
37
services.repo-manager.repository.testing.mode = false
38
services.repo-manager.deploy.environment = development
39
services.validator.mail.host = smtp.gmail.com
40
services.validator.mail.port = 465
41
services.validator.mail.fromAddress = no-reply@openaire.eu
42
services.validator.mail.replyToAddress = no-reply@openaire.eu
43
services.validator.mail.username = test.openaire@gmail.com
44
services.validator.mail.password = ^($*@$)*!$
45
services.validator.mail.authenticate = true
46
services.validator.mail.override = false
47
services.validator.mail.logonly = false
48
services.validator.mail.mode = ssl
49
services.validator.mail.debug = false
50
services.validator.mail.overrideEmail = antleb@di.uoa.gr
51
services.validator.mail.specialRecipients = antleb@di.uoa.gr
36
services.repo-manager.adminEmail=antleb@di.uoa.gr
37
services.repo-manager.repository.testing.mode=false
38
services.repo-manager.deploy.environment=development
39
services.validator.mail.host=smtp.gmail.com
40
services.validator.mail.port=465
41
services.validator.mail.fromAddress=no-reply@openaire.eu
42
services.validator.mail.replyToAddress=no-reply@openaire.eu
43
services.validator.mail.username=test.openaire@gmail.com
44
services.validator.mail.password=^($*@$)*!$
45
services.validator.mail.authenticate=true
46
services.validator.mail.override=false
47
services.validator.mail.logonly=false
48
services.validator.mail.mode=ssl
49
services.validator.mail.debug=false
50
services.validator.mail.overrideEmail=antleb@di.uoa.gr
51
services.validator.mail.specialRecipients=antleb@di.uoa.gr
52 52

  
53
services.validator.repoRegistration.override = antleb@di.uoa.gr
53
services.validator.repoRegistration.override=antleb@di.uoa.gr
54 54

  
55
repomanager.db.driverClassName = org.postgresql.Driver
56
repomanager.db.url = jdbc:postgresql://194.177.192.119:5432/repomanager
57
repomanager.db.username = dnet
58
repomanager.db.password = dnetPwd
55
repomanager.db.driverClassName=org.postgresql.Driver
56
repomanager.db.url=jdbc:postgresql://194.177.192.119:5432/repomanager
57
repomanager.db.username=dnet
58
repomanager.db.password=dnetPwd
59 59

  
60
services.repomanager.analyticsURL = http://analytics.openaire.eu/addsite.php?
60
services.repomanager.analyticsURL=http://analytics.openaire.eu/addsite.php?
61 61

  
62
topic_types.url = https://beta.services.openaire.eu/provision/mvc/vocabularies/dnet:topic_types.json
62
topic_types.url=https://beta.services.openaire.eu/provision/mvc/vocabularies/dnet:topic_types.json
63 63

  
64
oidc.issuer = https://aai.openaire.eu/oidc/
65
oidc.id = 767422b9-5461-4807-a80a-f9a2072d3a7d
66
oidc.secret = AMQtGlbTXNjwjhF0st28LmM6V0XypMdaVS7tJmGuYFlmH36iIv4t7tVqYuLYrNPkhnZ_GPUJvhymBhFupdgb6aU
64
oidc.issuer=https://aai.openaire.eu/oidc/
65
oidc.id=767422b9-5461-4807-a80a-f9a2072d3a7d
66
oidc.secret=AMQtGlbTXNjwjhF0st28LmM6V0XypMdaVS7tJmGuYFlmH36iIv4t7tVqYuLYrNPkhnZ_GPUJvhymBhFupdgb6aU
67 67

  
68
oidc.dev.home = http://localhost:8480/uoa-repository-manager-service/openid_connect_login
69
webapp.dev.front = http://localhost:4200/landing
68
oidc.dev.home=http://localhost:8480/uoa-repository-manager-service/openid_connect_login
69
webapp.dev.front=http://localhost:4200/landing
70 70

  
71 71
##REDIS-AAI
72 72

  
73
redis.host=estella.athenarc.gr
73
redis.host=localhost
74 74
redis.port=6379
75 75
redis.password=redis123
76 76
aai.mode=develop
77 77

  
78 78

  
79
services.repomanager.usageStatisticsDiagramsBaseURL = https://beta.openaire.eu/stats3/
80
services.repomanager.usageStatisticsNumbersBaseURL = https://beta.services.openaire.eu/usagestats/datasources/
81
services.repomanager.usagestats.adminEmail = antleb@di.uoa.gr
79
services.repomanager.usageStatisticsDiagramsBaseURL=https://beta.openaire.eu/stats3/
80
services.repomanager.usageStatisticsNumbersBaseURL=https://beta.services.openaire.eu/usagestats/datasources/
81
services.repomanager.usagestats.adminEmail=antleb@di.uoa.gr
82 82

  
83 83
##SUSHI
84
services.repomanager.usagestats.sushiliteEndpoint = http://beta.services.openaire.eu/usagestats/sushilite/
84
services.repomanager.usagestats.sushiliteEndpoint=http://beta.services.openaire.eu/usagestats/sushilite/
85 85

  
86 86
##SEARCH API
87 87
search.api.baseAddress=https://beta.services.openaire.eu/search/v2/api
modules/uoa-repository-manager-service/trunk/pom.xml
240 240
            <version>1.1.5.RELEASE</version>
241 241
        </dependency>
242 242

  
243
<!-- https://mvnrepository.com/artifact/javax.xml.ws/jaxws-api -->
244
<dependency>
245
    <groupId>javax.xml.ws</groupId>
246
    <artifactId>jaxws-api</artifactId>
247
    <version>2.3.0</version>
248
</dependency>
249
<!-- https://mvnrepository.com/artifact/javax.jws/javax.jws-api -->
250
<dependency>
251
    <groupId>javax.jws</groupId>
252
    <artifactId>javax.jws-api</artifactId>
253
    <version>1.1</version>
254
</dependency>
255
<dependency>
256
    <groupId>javax.xml.bind</groupId>
257
    <artifactId>jaxb-api</artifactId>
258
    <version>2.3.0</version>
259
</dependency>
260
<dependency>
261
    <groupId>com.sun.xml.bind</groupId>
262
    <artifactId>jaxb-impl</artifactId>
263
    <version>2.3.0</version>
264
</dependency>
265
<!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-core -->
266
<dependency>
267
    <groupId>com.sun.xml.bind</groupId>
268
    <artifactId>jaxb-core</artifactId>
269
    <version>2.3.0</version>
270
</dependency>
271
<dependency>
272
  <groupId>javax.activation</groupId>
273
  <artifactId>activation</artifactId>
274
  <version>1.1-rev-1</version>
275
</dependency>
243
        <!-- https://mvnrepository.com/artifact/javax.xml.ws/jaxws-api -->
244
        <dependency>
245
            <groupId>javax.xml.ws</groupId>
246
            <artifactId>jaxws-api</artifactId>
247
            <version>2.3.0</version>
248
        </dependency>
249
        <!-- https://mvnrepository.com/artifact/javax.jws/javax.jws-api -->
250
        <dependency>
251
            <groupId>javax.jws</groupId>
252
            <artifactId>javax.jws-api</artifactId>
253
            <version>1.1</version>
254
        </dependency>
255
        <dependency>
256
            <groupId>javax.xml.bind</groupId>
257
            <artifactId>jaxb-api</artifactId>
258
            <version>2.3.0</version>
259
        </dependency>
260
        <dependency>
261
            <groupId>com.sun.xml.bind</groupId>
262
            <artifactId>jaxb-impl</artifactId>
263
            <version>2.3.0</version>
264
        </dependency>
265
        <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-core -->
266
        <dependency>
267
            <groupId>com.sun.xml.bind</groupId>
268
            <artifactId>jaxb-core</artifactId>
269
            <version>2.3.0</version>
270
        </dependency>
271
        <dependency>
272
            <groupId>javax.activation</groupId>
273
            <artifactId>activation</artifactId>
274
            <version>1.1-rev-1</version>
275
        </dependency>
276 276

  
277
        <dependency>
278
            <groupId>org.eurocris</groupId>
279
            <artifactId>openaire-cris-validator</artifactId>
280
            <version>1.0.1-SNAPSHOT</version>
281
        </dependency>
282
        <dependency>
283
            <groupId>org.mockito</groupId>
284
            <artifactId>mockito-core</artifactId>
285
            <version>2.26.0</version>
286
            <scope>test</scope>
287
        </dependency>
277 288

  
289

  
278 290
    </dependencies>
279 291

  
280 292
    <build>
281 293
        <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
282 294
        <plugins>
283
           <plugin>
295
            <plugin>
284 296
                <groupId>org.apache.maven.plugins</groupId>
285 297
                <artifactId>maven-compiler-plugin</artifactId>
286 298
                <version>3.7.0</version>
......
301 313
            <plugin>
302 314
                <groupId>cz.habarta.typescript-generator</groupId>
303 315
                <artifactId>typescript-generator-maven-plugin</artifactId>
304
                <version>2.1.406</version>
316
                <version>2.16.538</version>
305 317
                <executions>
306 318
                    <execution>
307 319
                        <id>java to typeScript</id>

Also available in: Unified diff