Summary Result is automatically saved in SimpleOaiPmhRoute Router
This commit is contained in:
parent
d2baa7ccf2
commit
59fdd724e9
|
@ -3,6 +3,7 @@ package eu.dnetlib.validatorapi.controllers;
|
|||
import eu.dnetlib.validatorapi.entities.IssueDescriptor;
|
||||
import eu.dnetlib.validatorapi.entities.SummaryResult;
|
||||
import eu.dnetlib.validatorapi.entities.ValidationJob;
|
||||
import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationIssueRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationResultRepository;
|
||||
|
@ -20,13 +21,16 @@ public class ReportController {
|
|||
private final ValidationJobRepository validationJobRepository;
|
||||
private final ValidationResultRepository validationResultRepository;
|
||||
private final ValidationIssueRepository validationIssueRepository;
|
||||
private final SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
|
||||
public ReportController(ValidationJobRepository validationJobRepository,
|
||||
ValidationResultRepository validationResultRepository,
|
||||
ValidationIssueRepository validationIssueRepository) {
|
||||
ValidationIssueRepository validationIssueRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository) {
|
||||
this.validationJobRepository = validationJobRepository;
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.validationIssueRepository = validationIssueRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
}
|
||||
|
||||
@RequestMapping(value={"getJobResult"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
|
@ -44,6 +48,38 @@ public class ReportController {
|
|||
return validationResultRepository.getFullSummaryResult(jobId);
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"saveResultsByJobId"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public void saveSummaryJobResults(@RequestParam(name = "jobId") int jobId,
|
||||
@RequestParam(name= "guidelines", required = false) Optional<String> guidelines) {
|
||||
List<SummaryResult> summaryResultList;
|
||||
if (guidelines.isPresent() && guidelines.get().isEmpty())
|
||||
summaryResultList = validationResultRepository.getFullSummaryResult(jobId, guidelines.get());
|
||||
else
|
||||
summaryResultList = validationResultRepository.getFullSummaryResult(jobId);
|
||||
|
||||
for(SummaryResult sr:summaryResultList){
|
||||
System.out.println("Saving " + sr.getRule_name() + ", " + sr.getValidationJobId());
|
||||
sr.setValidationJobId(jobId);
|
||||
summaryValidationJobRepository.save(sr);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"getSummaryFromDB"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public List<SummaryResult> getSummaryFromDB(@RequestParam(name = "jobId") int jobId,
|
||||
@RequestParam(name= "guidelines", required = false) Optional<String> guidelines) {
|
||||
List<SummaryResult> srlist = summaryValidationJobRepository.findByValidationJobId(jobId);
|
||||
|
||||
/* SummaryResult sr = new SummaryResult();
|
||||
sr.setValidationJobId(jobId);
|
||||
sr.setRule_name("Access Rights");
|
||||
System.out.println("\n>>" + summaryValidationJobRepository.findAll());*/
|
||||
/* for (SummaryResult sr:srlist) {
|
||||
System.out.println(sr);
|
||||
}*/
|
||||
return srlist;
|
||||
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"getWarningsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
private List<IssueDescriptor> getWarningDescriptors(@RequestParam(name = "jobId") int jobId,
|
||||
@RequestParam(name = "ruleName") String ruleName){
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package eu.dnetlib.validatorapi.controllers;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class SummaryResultId implements Serializable {
|
||||
public String rule_name;
|
||||
public int validationJobId;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
SummaryResultId that = (SummaryResultId) o;
|
||||
|
||||
System.out.println("\n\n\n\n");
|
||||
System.out.println("Validation job id " + validationJobId);
|
||||
System.out.println("rule_name " + rule_name);
|
||||
System.out.println("\n\n\n\n");
|
||||
|
||||
|
||||
if (validationJobId != that.validationJobId) return false;
|
||||
return rule_name != null ? rule_name.equals(that.rule_name) : that.rule_name == null;
|
||||
}
|
||||
|
||||
// Implement hashCode method
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = rule_name != null ? rule_name.hashCode() : 0;
|
||||
result = 31 * result + validationJobId;
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -7,6 +7,7 @@ import eu.dnetlib.validatorapi.entities.RuleInfo;
|
|||
import eu.dnetlib.validatorapi.entities.ValidationJob;
|
||||
import eu.dnetlib.validatorapi.entities.ValidationRuleResult;
|
||||
import eu.dnetlib.validatorapi.exceptions.ValidationException;
|
||||
import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationIssueRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationResultRepository;
|
||||
|
@ -55,16 +56,20 @@ public class ValidationController {
|
|||
private final ValidationResultRepository validationResultRepository;
|
||||
private final ValidationIssueRepository validationIssueRepository;
|
||||
|
||||
private final SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
|
||||
@Autowired
|
||||
CamelContext camelContext;
|
||||
|
||||
@Autowired
|
||||
public ValidationController(ValidationJobRepository validationJobRepository,
|
||||
ValidationResultRepository validationResultRepository,
|
||||
ValidationIssueRepository validationIssueRepository) {
|
||||
ValidationIssueRepository validationIssueRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository) {
|
||||
this.validationJobRepository = validationJobRepository;
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.validationIssueRepository = validationIssueRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"/realValidator-old"}, method = RequestMethod.GET)
|
||||
|
@ -219,7 +224,8 @@ public class ValidationController {
|
|||
|
||||
if (fairProfile == null) {
|
||||
oaiPmhRouteBuilder =
|
||||
new SimpleOaiPmhRoute(oaiEndpoint, profile, validationJob, numberOfRecords, uuid.toString());
|
||||
new SimpleOaiPmhRoute(oaiEndpoint, profile, validationJob, numberOfRecords, uuid.toString(),
|
||||
validationResultRepository, summaryValidationJobRepository);
|
||||
|
||||
} else {
|
||||
oaiPmhRouteBuilder =
|
||||
|
|
|
@ -1,58 +1,64 @@
|
|||
package eu.dnetlib.validatorapi.entities;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.IdClass;
|
||||
import eu.dnetlib.validatorapi.controllers.SummaryResultId;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Entity
|
||||
@IdClass(SummaryResult.class)
|
||||
@Table(name="summary_result")
|
||||
@IdClass(SummaryResultId.class)
|
||||
public class SummaryResult implements Serializable {
|
||||
@Id
|
||||
@Column(name="rule_name")
|
||||
String rule_name;
|
||||
public String rule_name;
|
||||
|
||||
@Id
|
||||
@Column(name="validation_job_id")
|
||||
int validationJobId;
|
||||
public int validationJobId;
|
||||
|
||||
@Column(name="rule_weight")
|
||||
int rule_weight;
|
||||
public int rule_weight;
|
||||
|
||||
@Column(name="requirement_level")
|
||||
String requirement_level;
|
||||
public String requirement_level;
|
||||
|
||||
@Column(name="description")
|
||||
String description;
|
||||
public String description;
|
||||
|
||||
@Column(name="fair_principles")
|
||||
String fair_principles;
|
||||
public String fair_principles;
|
||||
|
||||
@Column(name="link")
|
||||
String link;
|
||||
public String link;
|
||||
|
||||
@Column(name="guidelines")
|
||||
String guidelines;
|
||||
public String guidelines;
|
||||
|
||||
@Column(name = "internal_error")
|
||||
String internal_error;
|
||||
public String internal_error;
|
||||
|
||||
@Column(name="rule_status")
|
||||
String rule_status;
|
||||
public String rule_status;
|
||||
|
||||
@Column(name = "passed_records")
|
||||
long passed_records;
|
||||
public long passed_records;
|
||||
|
||||
@Column(name="failed_records")
|
||||
long failed_records;
|
||||
public long failed_records;
|
||||
|
||||
@Column(name="has_errors")
|
||||
boolean has_errors;
|
||||
public boolean has_errors;
|
||||
|
||||
@Column(name="has_warnings")
|
||||
boolean has_warnings;
|
||||
public boolean has_warnings;
|
||||
|
||||
public SummaryResult(){}
|
||||
|
||||
public SummaryResult(int validationJobId, String rule_name) {
|
||||
this.validationJobId = validationJobId;
|
||||
this.rule_name = rule_name;
|
||||
}
|
||||
public SummaryResult(String rule_name, long passed_records, long failed_records) {
|
||||
this.rule_name = rule_name;
|
||||
this.passed_records = passed_records;
|
||||
|
@ -95,6 +101,14 @@ public class SummaryResult implements Serializable {
|
|||
this.rule_name = rule_name;
|
||||
}
|
||||
|
||||
public int getValidationJobId() {
|
||||
return validationJobId;
|
||||
}
|
||||
|
||||
public void setValidationJobId(int validationJobId) {
|
||||
this.validationJobId = validationJobId;
|
||||
}
|
||||
|
||||
public int getRule_weight() {
|
||||
return rule_weight;
|
||||
}
|
||||
|
@ -201,5 +215,4 @@ public class SummaryResult implements Serializable {
|
|||
'}';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
package eu.dnetlib.validatorapi.processors;
|
||||
|
||||
import eu.dnetlib.validatorapi.entities.SummaryResult;
|
||||
import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationResultRepository;
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.Processor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SummaryValidationJobProcessor implements Processor {
|
||||
|
||||
private final ValidationResultRepository validationResultRepository;
|
||||
private final SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
int validation_job_id;
|
||||
|
||||
public SummaryValidationJobProcessor(ValidationResultRepository validationResultRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository,
|
||||
int validation_job_id){
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
this.validation_job_id = validation_job_id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(Exchange exchange) throws Exception {
|
||||
List<SummaryResult> summaryResults = validationResultRepository.getFullSummaryResult
|
||||
(validation_job_id);
|
||||
|
||||
|
||||
System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
|
||||
System.out.println("VALIDATION JOB ID " + (Integer) exchange.getIn().getHeader("validationId"));
|
||||
System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
|
||||
|
||||
for(SummaryResult sr: summaryResults) {
|
||||
sr.validationJobId = validation_job_id;
|
||||
sr.validationJobId = validation_job_id;
|
||||
summaryValidationJobRepository.save(sr);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,10 +1,14 @@
|
|||
package eu.dnetlib.validatorapi.repositories;
|
||||
|
||||
import eu.dnetlib.validatorapi.controllers.SummaryResultId;
|
||||
import eu.dnetlib.validatorapi.entities.SummaryResult;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface SummaryValidationJobRepository extends JpaRepository<SummaryResult, Long> {
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface SummaryValidationJobRepository extends JpaRepository<SummaryResult, SummaryResultId> {
|
||||
|
||||
List<SummaryResult> findByValidationJobId(int validationJobId);
|
||||
}
|
||||
|
|
|
@ -4,10 +4,9 @@ import eu.dnetlib.validator2.validation.guideline.openaire.AbstractOpenAireProfi
|
|||
import eu.dnetlib.validatorapi.entities.ValidationIssue;
|
||||
import eu.dnetlib.validatorapi.entities.ValidationJob;
|
||||
import eu.dnetlib.validatorapi.entities.ValidationRuleResult;
|
||||
import eu.dnetlib.validatorapi.processors.DataBaseProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.ErrorProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.ExceptionProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.XmlProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.*;
|
||||
import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationResultRepository;
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.Processor;
|
||||
import org.apache.camel.TypeConversionException;
|
||||
|
@ -27,15 +26,21 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
private ValidationJob validationJob;
|
||||
String routeid;
|
||||
|
||||
private ValidationResultRepository validationResultRepository;
|
||||
private SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
|
||||
|
||||
public SimpleOaiPmhRoute(String oaiEndpoint, AbstractOpenAireProfile profile, ValidationJob validationJob,
|
||||
long maxNumberOfRecords, String routeid) {
|
||||
long maxNumberOfRecords, String routeid, ValidationResultRepository validationResultRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository) {
|
||||
this.oaiEndpoint = oaiEndpoint;
|
||||
this.validationJob = validationJob;
|
||||
this.profile = profile;
|
||||
this.maxNumberOfRecords = maxNumberOfRecords;
|
||||
this.routeid = routeid;
|
||||
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -49,7 +54,7 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
|
||||
onException(TypeConversionException.class)
|
||||
.process(new ExceptionProcessor(validationJob))
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true").log("\n\n\n\nHEREEEEEE")
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop")
|
||||
.maximumRedeliveries(0)
|
||||
.handled(true)
|
||||
|
@ -109,6 +114,7 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
.process(new DataBaseProcessor())
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")//;.to("direct:saveToDatabase")
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop&async=true")
|
||||
.to("direct:cleanDB")
|
||||
.endChoice()
|
||||
.end()
|
||||
.endChoice()
|
||||
|
@ -117,6 +123,10 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
.end();
|
||||
|
||||
from("direct:cleanDB")
|
||||
.process(new SummaryValidationJobProcessor(validationResultRepository, summaryValidationJobRepository,
|
||||
validationJob.id));
|
||||
|
||||
/*
|
||||
from("direct:saveToDatabase")
|
||||
.routeId(routeid2)
|
||||
|
|
Loading…
Reference in New Issue