Project

General

Profile

« Previous | Next » 

Revision 57648

merged branch cris r57561-HEAD

View differences:

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
}

Also available in: Unified diff