added summary table and cleaning processes for all validation cases
This commit is contained in:
parent
88a57a8b85
commit
c83d78077f
|
@ -58,7 +58,7 @@ public class ReportController {
|
|||
summaryResultList = validationResultRepository.getFullSummaryResult(jobId);
|
||||
|
||||
for(SummaryResult sr:summaryResultList){
|
||||
System.out.println("Saving " + sr.getRule_name() + ", " + sr.getValidationJobId());
|
||||
System.out.println("Saving " + sr.getRuleName() + ", " + sr.getValidationJobId());
|
||||
sr.setValidationJobId(jobId);
|
||||
summaryValidationJobRepository.save(sr);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ public class ReportController {
|
|||
@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);
|
||||
List<SummaryResult> srlist = summaryValidationJobRepository.findByValidationJobIdOrderByRuleName(jobId);
|
||||
|
||||
/* SummaryResult sr = new SummaryResult();
|
||||
sr.setValidationJobId(jobId);
|
||||
|
|
|
@ -3,7 +3,7 @@ package eu.dnetlib.validatorapi.controllers;
|
|||
import java.io.Serializable;
|
||||
|
||||
public class SummaryResultId implements Serializable {
|
||||
public String rule_name;
|
||||
public String ruleName;
|
||||
public int validationJobId;
|
||||
|
||||
@Override
|
||||
|
@ -15,18 +15,18 @@ public class SummaryResultId implements Serializable {
|
|||
|
||||
System.out.println("\n\n\n\n");
|
||||
System.out.println("Validation job id " + validationJobId);
|
||||
System.out.println("rule_name " + rule_name);
|
||||
System.out.println("rule_name " + ruleName);
|
||||
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;
|
||||
return ruleName != null ? ruleName.equals(that.ruleName) : that.ruleName == null;
|
||||
}
|
||||
|
||||
// Implement hashCode method
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = rule_name != null ? rule_name.hashCode() : 0;
|
||||
int result = ruleName != null ? ruleName.hashCode() : 0;
|
||||
result = 31 * result + validationJobId;
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -230,9 +230,9 @@ public class ValidationController {
|
|||
// new SimpleOaiPmhRoute(oaiEndpoint, profile, validationJob, numberOfRecords, uuid.toString());
|
||||
} else {
|
||||
oaiPmhRouteBuilder =
|
||||
new FairOaiPmhRoute2(oaiEndpoint, profile, validationJob, numberOfRecords, uuid.toString());
|
||||
/* new FairOaiPmhRoute2(oaiEndpoint, profile, validationJob, numberOfRecords, uuid.toString(),
|
||||
validationJobRepository, validationResultRepository, summaryValidationJobRepository);*/
|
||||
// new FairOaiPmhRoute2(oaiEndpoint, profile, validationJob, numberOfRecords, uuid.toString());
|
||||
new FairOaiPmhRoute2(oaiEndpoint, profile, fairProfile, validationJob, numberOfRecords, uuid.toString(),
|
||||
validationJobRepository, validationResultRepository, summaryValidationJobRepository);
|
||||
|
||||
}
|
||||
|
||||
|
@ -432,6 +432,9 @@ public class ValidationController {
|
|||
return new FAIR_Data_GuidelinesProfile();
|
||||
|
||||
} else if (guidelinesProfileName.equals("OpenAIRE Guidelines for Literature Repositories Profile v4")) {
|
||||
System.out.println("\n\n\nRETURNING FAIR LITERATURE\n\n\n");
|
||||
System.out.println("\n\n\n" + new FAIR_Literature_GuidelinesV4Profile().name() + "\n\n\n");
|
||||
|
||||
return new FAIR_Literature_GuidelinesV4Profile();
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||
public class SummaryResult implements Serializable {
|
||||
@Id
|
||||
@Column(name="rule_name")
|
||||
public String rule_name;
|
||||
public String ruleName;
|
||||
|
||||
@Id
|
||||
@Column(name="validation_job_id")
|
||||
|
@ -57,16 +57,16 @@ public class SummaryResult implements Serializable {
|
|||
|
||||
public SummaryResult(int validationJobId, String rule_name) {
|
||||
this.validationJobId = validationJobId;
|
||||
this.rule_name = rule_name;
|
||||
this.ruleName = rule_name;
|
||||
}
|
||||
public SummaryResult(String rule_name, long passed_records, long failed_records) {
|
||||
this.rule_name = rule_name;
|
||||
this.ruleName = rule_name;
|
||||
this.passed_records = passed_records;
|
||||
this.failed_records = failed_records;
|
||||
}
|
||||
|
||||
public SummaryResult(String rule_name, int rule_weight, long passed_records, long failed_records) {
|
||||
this.rule_name = rule_name;
|
||||
this.ruleName = rule_name;
|
||||
this.rule_weight = rule_weight;
|
||||
this.passed_records = passed_records;
|
||||
this.failed_records = failed_records;
|
||||
|
@ -76,7 +76,7 @@ public class SummaryResult implements Serializable {
|
|||
public SummaryResult(String rule_name, int rule_weight, String requirement_level, String description, String fair_principles,
|
||||
String link, String guidelines, String internal_error, long passed_records, long failed_records,
|
||||
String rule_status, boolean has_errors, boolean has_warnings) {
|
||||
this.rule_name = rule_name;
|
||||
this.ruleName = rule_name;
|
||||
this.rule_weight = rule_weight;
|
||||
this.requirement_level = requirement_level;
|
||||
this.description = description;
|
||||
|
@ -93,12 +93,12 @@ public class SummaryResult implements Serializable {
|
|||
|
||||
|
||||
|
||||
public String getRule_name() {
|
||||
return rule_name;
|
||||
public String getRuleName() {
|
||||
return ruleName;
|
||||
}
|
||||
|
||||
public void setRule_name(String rule_name) {
|
||||
this.rule_name = rule_name;
|
||||
public void setRuleName(String ruleName) {
|
||||
this.ruleName = ruleName;
|
||||
}
|
||||
|
||||
public int getValidationJobId() {
|
||||
|
@ -208,7 +208,7 @@ public class SummaryResult implements Serializable {
|
|||
@Override
|
||||
public String toString() {
|
||||
return "SummaryResult{" +
|
||||
"rule_name='" + rule_name + '\'' +
|
||||
"rule_name='" + ruleName + '\'' +
|
||||
", rule_weight=" + rule_weight +
|
||||
", passed_records=" + passed_records +
|
||||
", failed_records=" + failed_records +
|
||||
|
|
|
@ -36,7 +36,7 @@ public class ValidationIssue implements Serializable {
|
|||
this.issueType = issueType;
|
||||
}
|
||||
|
||||
public int getValidationJobId() {
|
||||
public long getValidationJobId() {
|
||||
return validationJobId;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ public class DataBaseProcessor implements Processor {
|
|||
validationJob.score = (Integer) exchange.getIn().getHeader("score");
|
||||
validationJob.progress = "COMPLETED";
|
||||
validationJob.endDate = new Date();
|
||||
|
||||
exchange.getIn().setBody(validationJob, ValidationJob.class);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +1,63 @@
|
|||
package eu.dnetlib.validatorapi.processors;public class SumUpNCleanProcessor {
|
||||
package eu.dnetlib.validatorapi.processors;
|
||||
|
||||
import eu.dnetlib.validator2.validation.guideline.openaire.AbstractOpenAireProfile;
|
||||
import eu.dnetlib.validatorapi.entities.SummaryResult;
|
||||
import eu.dnetlib.validatorapi.entities.ValidationJob;
|
||||
import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationResultRepository;
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.Processor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class SumUpNCleanProcessor implements Processor {
|
||||
|
||||
private final ValidationJobRepository validationJobRepository;
|
||||
private final ValidationResultRepository validationResultRepository;
|
||||
private final SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
private final AbstractOpenAireProfile profile;
|
||||
|
||||
public SumUpNCleanProcessor(ValidationJobRepository validationJobRepository,
|
||||
ValidationResultRepository validationResultRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository,
|
||||
AbstractOpenAireProfile profile) {
|
||||
this.validationJobRepository = validationJobRepository;
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
this.profile = profile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(Exchange exchange) throws Exception {
|
||||
|
||||
Thread stop=null;
|
||||
|
||||
ValidationJob validationJob = new ValidationJob();
|
||||
validationJob.id = (Integer)exchange.getIn().getHeader("validationId");
|
||||
validationJob.baseUrl = (String)(exchange.getIn().getHeader("baseUrl"));
|
||||
validationJob.set = (String)(exchange.getIn().getHeader("set"));
|
||||
validationJob.startDate = (Date) exchange.getIn().getHeader("startDate");
|
||||
validationJob.guidelines = (String) exchange.getIn().getHeader("guidelines");
|
||||
validationJob.status = (String)exchange.getIn().getHeader("status");
|
||||
validationJob.recordsTested = (Integer) exchange.getIn().getHeader("recordsTested");
|
||||
validationJob.numberOfRecords = Math.toIntExact((Long) exchange.getIn().getHeader("maxNumberOfRecords"));
|
||||
validationJob.score = (Integer) exchange.getIn().getHeader("score");
|
||||
validationJob.progress = "COMPLETED";
|
||||
validationJob.endDate = new Date();
|
||||
|
||||
List<SummaryResult> summaryResults = validationResultRepository.getFullSummaryResult
|
||||
((Integer) exchange.getIn().getHeader("validationId"));
|
||||
|
||||
for(SummaryResult sr: summaryResults) {
|
||||
sr.validationJobId = validationJob.id;
|
||||
summaryValidationJobRepository.save(sr);
|
||||
}
|
||||
|
||||
validationResultRepository.customDeleteByGuidelines(validationJob.id, profile.name());
|
||||
validationJobRepository.save(validationJob);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,30 +12,30 @@ public class SummaryValidationJobProcessor implements Processor {
|
|||
|
||||
private final ValidationResultRepository validationResultRepository;
|
||||
private final SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
int validation_job_id;
|
||||
private final String routeId;
|
||||
|
||||
public SummaryValidationJobProcessor(ValidationResultRepository validationResultRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository,
|
||||
int validation_job_id){
|
||||
String routeId){
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
this.validation_job_id = validation_job_id;
|
||||
this.routeId = routeId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(Exchange exchange) throws Exception {
|
||||
int validation_job_id = (Integer) exchange.getIn().getHeader("validationId");
|
||||
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");
|
||||
((Integer) exchange.getIn().getHeader("validationId"));
|
||||
|
||||
for(SummaryResult sr: summaryResults) {
|
||||
sr.validationJobId = validation_job_id;
|
||||
sr.validationJobId = validation_job_id;
|
||||
summaryValidationJobRepository.save(sr);
|
||||
}
|
||||
|
||||
validationResultRepository.customDelete(validation_job_id);
|
||||
|
||||
exchange.getIn().setHeader("CamelControlBusAction", "stop");
|
||||
exchange.getIn().setHeader("CamelControlBusRouteId", routeId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,10 +48,10 @@ public class XmlProcessor implements Processor {
|
|||
final DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
|
||||
Document doc = documentBuilder.parse(new InputSource(new StringReader(recordXml)));
|
||||
String recordUrl = extractRecordUrl(doc, "identifier");
|
||||
System.out.println("Identifier: " + recordUrl);
|
||||
List<ValidationRuleResult> validationRuleResults = new ArrayList<>();
|
||||
List<ValidationIssue> validationIssues = new ArrayList<>();
|
||||
|
||||
System.out.println("\n\n\nProcess with guideline " + profile.name());
|
||||
if (profile != null) {
|
||||
XMLApplicationProfile.ValidationResult validationResult = profile.validate("id", doc); //what id is that?
|
||||
Map<String, Guideline.Result> results = validationResult.results();
|
||||
|
@ -98,17 +98,26 @@ public class XmlProcessor implements Processor {
|
|||
|
||||
// System.out.println("Validation Issues: " + validationIssues);
|
||||
|
||||
exchange.getIn().setHeader("MyHeader", "SKATA");
|
||||
|
||||
if (processedRecords > maxNumberOfRecords) {
|
||||
exchange.getIn().setHeader("MyHeader", "stop");
|
||||
exchange.getIn().setHeader("validationId", validationJob.id);
|
||||
exchange.getIn().setHeader("baseUrl", validationJob.baseUrl);
|
||||
exchange.getIn().setHeader("set", validationJob.set);
|
||||
exchange.getIn().setHeader("startDate", validationJob.startDate);
|
||||
System.out.println("\n\n\n" + validationJob.id +": set guidelines "+ validationJob.guidelines + "\n\n\n");
|
||||
exchange.getIn().setHeader("guidelines", validationJob.guidelines);
|
||||
exchange.getIn().setHeader("status", status);
|
||||
exchange.getIn().setHeader("recordsTested", processedRecords-1);
|
||||
exchange.getIn().setHeader("maxNumberOfRecords", maxNumberOfRecords);
|
||||
exchange.getIn().setHeader("score", scoreSum/processedRecords);
|
||||
|
||||
|
||||
System.out.println("\n\n\n\n\n PLACE STOP HEADER \n\n\n\n\n\n");
|
||||
|
||||
|
||||
//exchange.setRouteStop(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
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;
|
||||
|
@ -8,7 +7,7 @@ import org.springframework.stereotype.Repository;
|
|||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface SummaryValidationJobRepository extends JpaRepository<SummaryResult, SummaryResultId> {
|
||||
public interface SummaryValidationJobRepository extends JpaRepository<SummaryResult, Integer> {
|
||||
|
||||
List<SummaryResult> findByValidationJobId(int validationJobId);
|
||||
List<SummaryResult> findByValidationJobIdOrderByRuleName(int validationJobId);
|
||||
}
|
||||
|
|
|
@ -3,14 +3,16 @@ package eu.dnetlib.validatorapi.repositories;
|
|||
import eu.dnetlib.validatorapi.entities.SummaryResult;
|
||||
import eu.dnetlib.validatorapi.entities.ValidationRuleResult;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface ValidationResultRepository extends JpaRepository<ValidationRuleResult, Long> {
|
||||
public interface ValidationResultRepository extends JpaRepository<ValidationRuleResult, Integer> {
|
||||
|
||||
@Query(value =
|
||||
"SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight," +
|
||||
|
@ -39,7 +41,8 @@ public interface ValidationResultRepository extends JpaRepository<ValidationRule
|
|||
"CASE WHEN COUNT(CASE WHEN has_warnings IS TRUE THEN 1 END) > 0 THEN TRUE ELSE FALSE END AS hasWarnings)" +
|
||||
"FROM eu.dnetlib.validatorapi.entities.ValidationRuleResult sr " +
|
||||
"WHERE sr.validationJobId = :id " +
|
||||
"GROUP BY sr.ruleName, sr.ruleWeight, sr.description, sr.fair_principles, sr.link, sr.requirement_level, sr.guidelines, sr.internalError, sr.validationJobId")
|
||||
"GROUP BY sr.ruleName, sr.ruleWeight, sr.description, sr.fair_principles, sr.link, sr.requirement_level, sr.guidelines, sr.internalError, sr.validationJobId " +
|
||||
"ORDER BY sr.ruleName")
|
||||
List<SummaryResult> getFullSummaryResult(@Param("id") int validationJobId);
|
||||
|
||||
@Query(value =
|
||||
|
@ -73,4 +76,13 @@ public interface ValidationResultRepository extends JpaRepository<ValidationRule
|
|||
List<SummaryResult> getFullSummaryResult(@Param("id") int validationJobId, @Param("guidelines") String guidelines);
|
||||
|
||||
|
||||
@Modifying
|
||||
@Transactional
|
||||
@Query("DELETE FROM ValidationRuleResult vr WHERE vr.validationJobId = :validationJobId")
|
||||
void customDelete(int validationJobId);
|
||||
|
||||
@Modifying
|
||||
@Transactional
|
||||
@Query("DELETE FROM ValidationRuleResult vr WHERE vr.validationJobId = :validationJobId and vr.guidelines =:guidelines")
|
||||
void customDeleteByGuidelines(int validationJobId, String guidelines);
|
||||
}
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
package eu.dnetlib.validatorapi.routes;
|
||||
|
||||
import eu.dnetlib.validator2.validation.guideline.openaire.AbstractOpenAireProfile;
|
||||
import eu.dnetlib.validator2.validation.guideline.openaire.FAIR_Data_GuidelinesProfile;
|
||||
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.SumUpNCleanProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.XmlProcessor;
|
||||
import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationResultRepository;
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.Processor;
|
||||
import org.apache.camel.TypeConversionException;
|
||||
|
@ -19,18 +21,25 @@ import org.apache.http.client.ClientProtocolException;
|
|||
import java.net.UnknownHostException;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.RejectedExecutionException;
|
||||
|
||||
public class FairOaiPmhRoute2 extends RouteBuilder {
|
||||
|
||||
private String oaiEndpoint;
|
||||
|
||||
private AbstractOpenAireProfile profile;
|
||||
private final AbstractOpenAireProfile profile;
|
||||
private final AbstractOpenAireProfile fairProfile;
|
||||
private long maxNumberOfRecords = 0;
|
||||
private ValidationJob validationJob;
|
||||
String routeid;
|
||||
String routeid2;
|
||||
private final ValidationJob validationJob;
|
||||
private String routeid;
|
||||
private String routeid2;
|
||||
|
||||
private ValidationJobRepository validationJobRepository;
|
||||
private ValidationResultRepository validationResultRepository;
|
||||
private SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
|
||||
|
||||
/*
|
||||
public FairOaiPmhRoute2(String oaiEndpoint, AbstractOpenAireProfile profile, ValidationJob validationJob,
|
||||
long maxNumberOfRecords, String routeid) {
|
||||
this.oaiEndpoint = oaiEndpoint;
|
||||
|
@ -40,6 +49,24 @@ public class FairOaiPmhRoute2 extends RouteBuilder {
|
|||
this.routeid = routeid;
|
||||
this.routeid2 = UUID.randomUUID().toString();
|
||||
}
|
||||
*/
|
||||
|
||||
public FairOaiPmhRoute2(String oaiEndpoint, AbstractOpenAireProfile profile, AbstractOpenAireProfile fairProfile,
|
||||
ValidationJob validationJob, long maxNumberOfRecords, String routeid,
|
||||
ValidationJobRepository validationJobRepository,
|
||||
ValidationResultRepository validationResultRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository) {
|
||||
this.oaiEndpoint = oaiEndpoint;
|
||||
this.validationJob = validationJob;
|
||||
this.profile = profile;
|
||||
this.fairProfile = fairProfile;
|
||||
this.maxNumberOfRecords = maxNumberOfRecords;
|
||||
this.routeid = routeid;
|
||||
this.routeid2 = UUID.randomUUID().toString();
|
||||
this.validationJobRepository = validationJobRepository;
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure() throws Exception {
|
||||
|
@ -87,6 +114,10 @@ public class FairOaiPmhRoute2 extends RouteBuilder {
|
|||
.handled(true)
|
||||
.end();
|
||||
|
||||
onException(RejectedExecutionException.class)
|
||||
.handled(true)
|
||||
.log("RejectedExecutionException occurred. Suspending further processing.");
|
||||
|
||||
|
||||
from(oaiEndpoint)
|
||||
.routeId("1")
|
||||
|
@ -121,8 +152,10 @@ public class FairOaiPmhRoute2 extends RouteBuilder {
|
|||
.end()
|
||||
.choice()
|
||||
.when(header("MyHeader").isEqualTo("stop"))
|
||||
.process(new DataBaseProcessor())
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")//;.to("direct:saveToDatabase")
|
||||
.process(new SumUpNCleanProcessor(validationJobRepository, validationResultRepository, summaryValidationJobRepository,
|
||||
profile))
|
||||
/*.process(new DataBaseProcessor())
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")//;.to("direct:saveToDatabase")*/
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop&async=true")
|
||||
.endChoice()
|
||||
.end();
|
||||
|
@ -130,7 +163,7 @@ public class FairOaiPmhRoute2 extends RouteBuilder {
|
|||
from("direct:fairProcessor")
|
||||
.routeId(routeid2)
|
||||
.split(xpath("//*[local-name()='record']"))
|
||||
.process(new XmlProcessor(new FAIR_Data_GuidelinesProfile(), validationJob, maxNumberOfRecords))
|
||||
.process(new XmlProcessor(fairProfile, validationJob, maxNumberOfRecords))
|
||||
.choice()
|
||||
.when(simple("${body[results]} && ${header.MyHeader} != 'stop'"))
|
||||
.split(simple("${body[results]}"))
|
||||
|
@ -145,8 +178,10 @@ public class FairOaiPmhRoute2 extends RouteBuilder {
|
|||
.end()
|
||||
.choice()
|
||||
.when(header("MyHeader").isEqualTo("stop"))
|
||||
.process(new DataBaseProcessor())
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")//;.to("direct:saveToDatabase")
|
||||
.process(new SumUpNCleanProcessor(validationJobRepository, validationResultRepository, summaryValidationJobRepository,
|
||||
fairProfile))
|
||||
/*.process(new DataBaseProcessor())
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")//;.to("direct:saveToDatabase")*/
|
||||
.to("controlbus:route?routeId="+routeid2+"&action=stop&async=true")
|
||||
.endChoice()
|
||||
.end();
|
||||
|
|
|
@ -4,8 +4,12 @@ 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.*;
|
||||
import eu.dnetlib.validatorapi.processors.ErrorProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.ExceptionProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.SumUpNCleanProcessor;
|
||||
import eu.dnetlib.validatorapi.processors.XmlProcessor;
|
||||
import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationJobRepository;
|
||||
import eu.dnetlib.validatorapi.repositories.ValidationResultRepository;
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.Processor;
|
||||
|
@ -16,6 +20,7 @@ import org.apache.http.client.ClientProtocolException;
|
|||
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.RejectedExecutionException;
|
||||
|
||||
public class SimpleOaiPmhRoute extends RouteBuilder {
|
||||
|
||||
|
@ -26,12 +31,14 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
private ValidationJob validationJob;
|
||||
String routeid;
|
||||
|
||||
private ValidationJobRepository validationJobRepository;
|
||||
private ValidationResultRepository validationResultRepository;
|
||||
private SummaryValidationJobRepository summaryValidationJobRepository;
|
||||
|
||||
|
||||
public SimpleOaiPmhRoute(String oaiEndpoint, AbstractOpenAireProfile profile, ValidationJob validationJob,
|
||||
long maxNumberOfRecords, String routeid, ValidationResultRepository validationResultRepository,
|
||||
long maxNumberOfRecords, String routeid, ValidationJobRepository validationJobRepository,
|
||||
ValidationResultRepository validationResultRepository,
|
||||
SummaryValidationJobRepository summaryValidationJobRepository) {
|
||||
this.oaiEndpoint = oaiEndpoint;
|
||||
this.validationJob = validationJob;
|
||||
|
@ -41,6 +48,7 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
|
||||
this.validationResultRepository = validationResultRepository;
|
||||
this.summaryValidationJobRepository = summaryValidationJobRepository;
|
||||
this.validationJobRepository = validationJobRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -55,7 +63,6 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
onException(TypeConversionException.class)
|
||||
.process(new ExceptionProcessor(validationJob))
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop")
|
||||
.maximumRedeliveries(0)
|
||||
.handled(true)
|
||||
.end();
|
||||
|
@ -63,7 +70,6 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
onException(ClientProtocolException.class)
|
||||
.process(new ExceptionProcessor(validationJob))
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop")
|
||||
.maximumRedeliveries(0)
|
||||
.handled(true)
|
||||
.end();
|
||||
|
@ -71,7 +77,6 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
onException(UnknownHostException.class)
|
||||
.process(new ExceptionProcessor(validationJob))
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop")
|
||||
.maximumRedeliveries(0)
|
||||
.handled(true)
|
||||
.end();
|
||||
|
@ -79,54 +84,50 @@ public class SimpleOaiPmhRoute extends RouteBuilder {
|
|||
onException(ClientProtocolException.class)
|
||||
.process(new ExceptionProcessor(validationJob))
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop")
|
||||
.maximumRedeliveries(0)
|
||||
.handled(true)
|
||||
.end();
|
||||
|
||||
//TODO: Reconsider
|
||||
onException(RejectedExecutionException.class)
|
||||
.handled(true) // Set 'handled' to true to prevent the exception from propagating
|
||||
.log("RejectedExecutionException occurred. Suspending further processing.");
|
||||
|
||||
/*
|
||||
.process(new TypeConversionExceptionProcessor(validationJob)).log("\n\n\n\n HERE 2")
|
||||
.process(new DataBaseProcessor())//.maximumRedeliveries(0)
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true").log("\n\n\n\nHEREEEEEE")
|
||||
.stop();
|
||||
*/
|
||||
from(oaiEndpoint)
|
||||
.routeId(routeid)
|
||||
.choice()
|
||||
.when(xpath("//*[local-name()='record']"))
|
||||
.split(xpath("//*[local-name()='record']"))
|
||||
.process(new XmlProcessor(profile, validationJob, maxNumberOfRecords))
|
||||
.choice()
|
||||
.choice()
|
||||
.when(simple("${body[results]} && ${header.MyHeader} != 'stop'"))
|
||||
.split(simple("${body[results]}"))
|
||||
.to("jpa:" + ValidationRuleResult.class.getName() + "?usePersist=true")
|
||||
.endChoice()
|
||||
.end()
|
||||
.choice()
|
||||
// .log("SAVING RESULTS ${header.MyHeader}")
|
||||
.split(simple("${body[results]}"))
|
||||
.to("jpa:" + ValidationRuleResult.class.getName() + "?usePersist=true")
|
||||
.endChoice()
|
||||
.end()
|
||||
.choice()
|
||||
.when(simple("${body[issues]} && ${header.MyHeader} != 'stop'"))
|
||||
.split(simple("${body[issues]}"))
|
||||
.to("jpa:"+ ValidationIssue.class.getName()+ "?usePersist=true")
|
||||
.endChoice()
|
||||
.end()
|
||||
.choice()
|
||||
.when(header("MyHeader").isEqualTo("stop"))
|
||||
.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()
|
||||
.otherwise()
|
||||
.process(new ErrorProcessor(validationJob))
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
// .log("SAVING ISSUES ${header.MyHeader}")
|
||||
.split(simple("${body[issues]}"))
|
||||
.to("jpa:"+ ValidationIssue.class.getName()+ "?usePersist=true")
|
||||
.endChoice()
|
||||
.end()
|
||||
.choice()
|
||||
.when(simple("${header.MyHeader} == 'stop'"))
|
||||
.process(new SumUpNCleanProcessor(validationJobRepository, validationResultRepository, summaryValidationJobRepository,
|
||||
profile))
|
||||
/*.process(new DataBaseProcessor())
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")//;.to("direct:saveToDatabase")*/
|
||||
.to("controlbus:route?routeId="+routeid+"&action=stop&async=true")
|
||||
.end()
|
||||
.endChoice()
|
||||
.otherwise()
|
||||
.process(new ErrorProcessor(validationJob))
|
||||
.to("jpa:" + ValidationJob.class.getName() + "?useExecuteUpdate=true")
|
||||
.endChoice()
|
||||
.end();
|
||||
|
||||
from("direct:cleanDB")
|
||||
.process(new SummaryValidationJobProcessor(validationResultRepository, summaryValidationJobRepository,
|
||||
validationJob.id));
|
||||
|
||||
/*
|
||||
from("direct:saveToDatabase")
|
||||
.routeId(routeid2)
|
||||
|
|
Loading…
Reference in New Issue