From 0b6e7de3cc49b274093c15089a4397306651d73f Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Thu, 17 Jun 2021 12:29:02 +0200 Subject: [PATCH] rename Mode enum to JobFailureSeverity --- conf/core/jobs.csv | 118 +++++++++--------- .../caosdb/server/database/proto/Rule.java | 4 +- src/main/java/org/caosdb/server/jobs/Job.java | 24 ++-- .../org/caosdb/server/jobs/JobConfig.java | 8 +- .../server/jobs/core/CheckDescPresent.java | 4 +- .../server/jobs/core/CheckNamePresent.java | 4 +- .../CheckNoAdditionalPropertiesPresent.java | 2 +- .../jobs/core/CheckNoOverridesPresent.java | 2 +- .../jobs/core/CheckParOblPropPresent.java | 12 +- .../server/jobs/core/CheckParPresent.java | 4 +- .../server/jobs/core/CheckPropPresent.java | 4 +- .../server/jobs/core/CheckUnitPresent.java | 4 +- .../{Mode.java => JobFailureSeverity.java} | 20 ++- .../jobs/core/LoadContainerFlagJobs.java | 2 +- .../caosdb/server/transaction/Retrieve.java | 6 +- .../server/transaction/Transaction.java | 16 ++- 16 files changed, 127 insertions(+), 107 deletions(-) rename src/main/java/org/caosdb/server/jobs/core/{Mode.java => JobFailureSeverity.java} (55%) diff --git a/conf/core/jobs.csv b/conf/core/jobs.csv index a604e63b..71fd6422 100644 --- a/conf/core/jobs.csv +++ b/conf/core/jobs.csv @@ -21,92 +21,92 @@ # # Five columns: -# DOMAIN_ID, ENTITY_ID, TRANSACTION, JOB, MODE +# DOMAIN_ID, ENTITY_ID, TRANSACTION, JOB, JOB_FAILURE_SEVERITY # general rules -0,0,INSERT,CheckPropValid,MUST -0,0,INSERT,CheckParValid,MUST -0,0,INSERT,CheckParOblPropPresent,MUST -0,0,INSERT,CheckValueParsable,MUST -0,0,UPDATE,CheckPropValid,MUST -0,0,UPDATE,CheckParValid,MUST -0,0,UPDATE,CheckParOblPropPresent,MUST -0,0,UPDATE,CheckValueParsable,MUST -0,0,DELETE,CheckReferenceDependencyExistent,MUST -0,0,DELETE,CheckChildDependencyExistent,MUST +0,0,INSERT,CheckPropValid,ERROR +0,0,INSERT,CheckParValid,ERROR +0,0,INSERT,CheckParOblPropPresent,ERROR +0,0,INSERT,CheckValueParsable,ERROR +0,0,UPDATE,CheckPropValid,ERROR +0,0,UPDATE,CheckParValid,ERROR +0,0,UPDATE,CheckParOblPropPresent,ERROR +0,0,UPDATE,CheckValueParsable,ERROR +0,0,DELETE,CheckReferenceDependencyExistent,ERROR +0,0,DELETE,CheckChildDependencyExistent,ERROR # role specific rules ## recordtype rules -0,1,INSERT,CheckNamePresent,MUST -0,1,INSERT,CheckPropPresent,SHOULD -0,1,INSERT,SetImpToRecByDefault,MUST +0,1,INSERT,CheckNamePresent,ERROR +0,1,INSERT,CheckPropPresent,WARN +0,1,INSERT,SetImpToRecByDefault,ERROR -0,1,UPDATE,CheckNamePresent,MUST -0,1,UPDATE,CheckPropPresent,SHOULD -0,1,UPDATE,SetImpToRecByDefault,MUST +0,1,UPDATE,CheckNamePresent,ERROR +0,1,UPDATE,CheckPropPresent,WARN +0,1,UPDATE,SetImpToRecByDefault,ERROR ## record rules -0,2,INSERT,CheckNamePresent,SHOULD -0,2,INSERT,CheckPropPresent,SHOULD -0,2,INSERT,CheckParPresent,MUST -0,2,INSERT,SetImpToFix,MUST +0,2,INSERT,CheckNamePresent,WARN +0,2,INSERT,CheckPropPresent,WARN +0,2,INSERT,CheckParPresent,ERROR +0,2,INSERT,SetImpToFix,ERROR -0,2,UPDATE,CheckNamePresent,SHOULD -0,2,UPDATE,CheckPropPresent,SHOULD -0,2,UPDATE,CheckParPresent,MUST -0,2,UPDATE,SetImpToFix,MUST +0,2,UPDATE,CheckNamePresent,WARN +0,2,UPDATE,CheckPropPresent,WARN +0,2,UPDATE,CheckParPresent,ERROR +0,2,UPDATE,SetImpToFix,ERROR ## file rules -0,3,INSERT,CheckNamePresent,SHOULD -0,3,INSERT,MatchFileProp,MUST -0,3,INSERT,CheckTargetPathValid,MUST -0,3,INSERT,SetImpToFix,MUST +0,3,INSERT,CheckNamePresent,WARN +0,3,INSERT,MatchFileProp,ERROR +0,3,INSERT,CheckTargetPathValid,ERROR +0,3,INSERT,SetImpToFix,ERROR -0,3,UPDATE,CheckNamePresent,SHOULD -0,3,UPDATE,MatchFileProp,MUST -0,3,UPDATE,CheckTargetPathValid,MUST -0,3,UPDATE,SetImpToFix,MUST +0,3,UPDATE,CheckNamePresent,WARN +0,3,UPDATE,MatchFileProp,ERROR +0,3,UPDATE,CheckTargetPathValid,ERROR +0,3,UPDATE,SetImpToFix,ERROR ## property rules -0,4,INSERT,CheckDatatypePresent,MUST -0,4,UPDATE,CheckDatatypePresent,MUST -0,4,INSERT,CheckNamePresent,MUST -0,4,UPDATE,CheckNamePresent,MUST -0,4,INSERT,SetImpToFix,MUST -0,4,UPDATE,SetImpToFix,MUST +0,4,INSERT,CheckDatatypePresent,ERROR +0,4,UPDATE,CheckDatatypePresent,ERROR +0,4,INSERT,CheckNamePresent,ERROR +0,4,UPDATE,CheckNamePresent,ERROR +0,4,INSERT,SetImpToFix,ERROR +0,4,UPDATE,SetImpToFix,ERROR ## query template rules -0,8,UPDATE,CheckQueryTemplate,MUST -0,8,INSERT,CheckQueryTemplate,MUST +0,8,UPDATE,CheckQueryTemplate,ERROR +0,8,INSERT,CheckQueryTemplate,ERROR # data type specific rules ## reference rules -0,11,INSERT,CheckRefidPresent,SHOULD -0,11,INSERT,CheckRefidValid,MUST -0,11,INSERT,CheckRefidIsaParRefid,SHOULD +0,11,INSERT,CheckRefidPresent,WARN +0,11,INSERT,CheckRefidValid,ERROR +0,11,INSERT,CheckRefidIsaParRefid,WARN -0,11,UPDATE,CheckRefidPresent,SHOULD -0,11,UPDATE,CheckRefidValid,MUST -0,11,UPDATE,CheckRefidIsaParRefid,SHOULD +0,11,UPDATE,CheckRefidPresent,WARN +0,11,UPDATE,CheckRefidValid,ERROR +0,11,UPDATE,CheckRefidIsaParRefid,WARN ## integer rules -0,12,INSERT,CheckUnitPresent,SHOULD -0,12,INSERT,ParseUnit,SHOULD +0,12,INSERT,CheckUnitPresent,WARN +0,12,INSERT,ParseUnit,WARN -0,12,UPDATE,CheckUnitPresent,SHOULD -0,12,UPDATE,ParseUnit,SHOULD +0,12,UPDATE,CheckUnitPresent,WARN +0,12,UPDATE,ParseUnit,WARN ## double rules -0,13,INSERT,CheckUnitPresent,SHOULD -0,13,INSERT,ParseUnit,SHOULD +0,13,INSERT,CheckUnitPresent,WARN +0,13,INSERT,ParseUnit,WARN -0,13,UPDATE,CheckUnitPresent,SHOULD -0,13,UPDATE,ParseUnit,SHOULD +0,13,UPDATE,CheckUnitPresent,WARN +0,13,UPDATE,ParseUnit,WARN ## filereference rules -0,17,INSERT,CheckRefidValid,MUST -0,17,INSERT,CheckRefidIsaParRefid,MUST +0,17,INSERT,CheckRefidValid,ERROR +0,17,INSERT,CheckRefidIsaParRefid,ERROR -0,17,UPDATE,CheckRefidValid,MUST -0,17,UPDATE,CheckRefidIsaParRefid,MUST +0,17,UPDATE,CheckRefidValid,ERROR +0,17,UPDATE,CheckRefidIsaParRefid,ERROR diff --git a/src/main/java/org/caosdb/server/database/proto/Rule.java b/src/main/java/org/caosdb/server/database/proto/Rule.java index 3d25f766..0aa848bb 100644 --- a/src/main/java/org/caosdb/server/database/proto/Rule.java +++ b/src/main/java/org/caosdb/server/database/proto/Rule.java @@ -23,7 +23,7 @@ package org.caosdb.server.database.proto; import java.io.Serializable; -import org.caosdb.server.jobs.core.Mode; +import org.caosdb.server.jobs.core.JobFailureSeverity; public class Rule implements Serializable { @@ -33,5 +33,5 @@ public class Rule implements Serializable { public int entity = 0; public String job = null; public String transaction = null; - public Mode mode = null; + public JobFailureSeverity mode = null; } diff --git a/src/main/java/org/caosdb/server/jobs/Job.java b/src/main/java/org/caosdb/server/jobs/Job.java index 0f0875ed..2954f533 100644 --- a/src/main/java/org/caosdb/server/jobs/Job.java +++ b/src/main/java/org/caosdb/server/jobs/Job.java @@ -50,7 +50,7 @@ import org.caosdb.server.entity.Message; import org.caosdb.server.entity.container.ParentContainer; import org.caosdb.server.entity.container.TransactionContainer; import org.caosdb.server.entity.wrapper.Parent; -import org.caosdb.server.jobs.core.Mode; +import org.caosdb.server.jobs.core.JobFailureSeverity; import org.caosdb.server.transaction.Transaction; import org.caosdb.server.utils.EntityStatus; import org.caosdb.server.utils.ServerMessages; @@ -70,7 +70,7 @@ public abstract class Job { private static List<Class<? extends Job>> loadAlways; private Transaction<? extends TransactionContainer> transaction = null; - private Mode mode = null; + private JobFailureSeverity mode = null; private final TransactionStage stage; private EntityInterface entity = null; @@ -128,7 +128,7 @@ public abstract class Job { } public final Job init( - final Mode mode, + final JobFailureSeverity mode, final EntityInterface entity, final Transaction<? extends TransactionContainer> transaction) { this.mode = mode; @@ -149,11 +149,11 @@ public abstract class Job { return this.entity; } - protected final Mode getMode() { + protected final JobFailureSeverity getMode() { return this.mode; } - protected final void setMode(final Mode mode) { + protected final void setMode(final JobFailureSeverity mode) { this.mode = mode; } @@ -307,7 +307,7 @@ public abstract class Job { */ public static Job getJob( final String job, - final Mode mode, + final JobFailureSeverity mode, final EntityInterface entity, final Transaction<? extends TransactionContainer> transaction) { // Fill `allClasses` with available subclasses @@ -397,7 +397,7 @@ public abstract class Job { for (final Class<? extends Job> j : loadAlways) { if (EntityJob.class.isAssignableFrom(j) && j.getAnnotation(JobAnnotation.class).transaction().isInstance(transaction)) { - jobs.add(getJob(j, Mode.MUST, entity, transaction)); + jobs.add(getJob(j, JobFailureSeverity.ERROR, entity, transaction)); } } @@ -427,7 +427,7 @@ public abstract class Job { private static Job getJob( final Class<? extends Job> jobClass, - final Mode mode, + final JobFailureSeverity mode, final EntityInterface entity, final Transaction<? extends TransactionContainer> transaction) { Job ret; @@ -459,7 +459,7 @@ public abstract class Job { // load flag jobs if (!entity.getFlags().isEmpty()) { for (final String key : entity.getFlags().keySet()) { - final Job j = getJob(key, Mode.MUST, entity, transaction); + final Job j = getJob(key, JobFailureSeverity.ERROR, entity, transaction); if (j != null) { if (j instanceof FlagJob) { ((FlagJob) j).setValue(entity.getFlag(key)); @@ -474,7 +474,7 @@ public abstract class Job { for (final EntityInterface p : entity.getParents()) { if (!p.getFlags().isEmpty()) { for (final String key : p.getFlags().keySet()) { - final Job j = getJob(key, Mode.MUST, entity, transaction); + final Job j = getJob(key, JobFailureSeverity.ERROR, entity, transaction); if (j != null) { if (j instanceof FlagJob) { ((FlagJob) j).setValue(p.getFlag(key)); @@ -493,7 +493,7 @@ public abstract class Job { for (final EntityInterface p : entity.getProperties()) { if (!p.getFlags().isEmpty()) { for (final String key : p.getFlags().keySet()) { - final Job j = getJob(key, Mode.MUST, entity, transaction); + final Job j = getJob(key, JobFailureSeverity.ERROR, entity, transaction); if (j != null) { if (j instanceof FlagJob) { ((FlagJob) j).setValue(p.getFlag(key)); @@ -572,7 +572,7 @@ public abstract class Job { for (final Class<? extends Job> j : loadAlways) { if (ContainerJob.class.isAssignableFrom(j) && j.getAnnotation(JobAnnotation.class).transaction().isInstance(transaction)) { - jobs.add(getJob(j, Mode.MUST, null, transaction)); + jobs.add(getJob(j, JobFailureSeverity.ERROR, null, transaction)); } } return jobs; diff --git a/src/main/java/org/caosdb/server/jobs/JobConfig.java b/src/main/java/org/caosdb/server/jobs/JobConfig.java index 6cceeae3..cbbe93f1 100644 --- a/src/main/java/org/caosdb/server/jobs/JobConfig.java +++ b/src/main/java/org/caosdb/server/jobs/JobConfig.java @@ -16,7 +16,7 @@ import org.caosdb.server.entity.EntityInterface; import org.caosdb.server.entity.RetrieveEntity; import org.caosdb.server.entity.container.TransactionContainer; import org.caosdb.server.entity.wrapper.Property; -import org.caosdb.server.jobs.core.Mode; +import org.caosdb.server.jobs.core.JobFailureSeverity; import org.caosdb.server.transaction.Transaction; import org.caosdb.server.utils.ConfigurationException; @@ -87,7 +87,7 @@ public class JobConfig { final Integer entity = Integer.parseInt(row[1]); final String transaction = row[2]; final String job = row[3]; - final Mode mode = Mode.valueOf(row[4]); + final JobFailureSeverity mode = JobFailureSeverity.valueOf(row[4]); final String key = getKey(domain, entity, transaction); if (!result.containsKey(key)) { result.put(key, new ArrayList<>()); @@ -116,7 +116,9 @@ public class JobConfig { final List<Job> result = new LinkedList<>(); jobRules.forEach( config -> { - result.add(Job.getJob((String) config[0], (Mode) config[1], target, transaction)); + result.add( + Job.getJob( + (String) config[0], (JobFailureSeverity) config[1], target, transaction)); }); return result; } diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckDescPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckDescPresent.java index fc3a5114..d94e61f2 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckDescPresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckDescPresent.java @@ -36,11 +36,11 @@ public class CheckDescPresent extends EntityJob { public final void run() { if (!getEntity().hasDescription()) { switch (getMode()) { - case MUST: + case ERROR: getEntity().addError(ServerMessages.ENTITY_HAS_NO_DESCRIPTION); getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); break; - case SHOULD: + case WARN: getEntity().addWarning(ServerMessages.ENTITY_HAS_NO_DESCRIPTION); default: break; diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckNamePresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckNamePresent.java index f1600ce4..4f0e5f32 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckNamePresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckNamePresent.java @@ -36,11 +36,11 @@ public class CheckNamePresent extends EntityJob { public final void run() { if (!getEntity().hasName()) { switch (getMode()) { - case MUST: + case ERROR: getEntity().addError(ServerMessages.ENTITY_HAS_NO_NAME); getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); break; - case SHOULD: + case WARN: getEntity().addWarning(ServerMessages.ENTITY_HAS_NO_NAME); break; default: diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java index b04a9151..9ff3b127 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java @@ -45,7 +45,7 @@ public class CheckNoAdditionalPropertiesPresent extends EntityJob { } private void addMessage(EntityInterface property, Message message) { - if (getMode() == Mode.MUST) { + if (getMode() == JobFailureSeverity.ERROR) { property.addError(message); } else { property.addWarning(message); diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckNoOverridesPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckNoOverridesPresent.java index e439354e..e0eca6b7 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckNoOverridesPresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckNoOverridesPresent.java @@ -28,7 +28,7 @@ public class CheckNoOverridesPresent extends EntityJob { } private void addMessage(Property p, Message message) { - if (getMode() == Mode.MUST) { + if (getMode() == JobFailureSeverity.ERROR) { p.addError(message); } else { p.addWarning(message); diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java index fc557f89..ffd0431b 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java @@ -53,7 +53,7 @@ public class CheckParOblPropPresent extends EntityJob { if (getEntity().hasParents()) { handleImportanceFlags(); - if (getMode() == Mode.IGNORE) { + if (getMode() == JobFailureSeverity.IGNORE) { // importance is to be ignored return; } @@ -106,12 +106,12 @@ public class CheckParOblPropPresent extends EntityJob { // implements this parentProperty. Add the // respective messages. switch (getMode()) { - case MUST: + case ERROR: // TODO add information WHICH property is // missing. getEntity().addError(ServerMessages.OBLIGATORY_PROPERTY_MISSING); break; - case SHOULD: + case WARN: // TODO add information WHICH property is // missing. getEntity().addWarning(ServerMessages.OBLIGATORY_PROPERTY_MISSING); @@ -133,13 +133,13 @@ public class CheckParOblPropPresent extends EntityJob { if (entityFlag != null) { switch (entityFlag) { case "error": - setMode(Mode.MUST); + setMode(JobFailureSeverity.ERROR); break; case "warn": - setMode(Mode.SHOULD); + setMode(JobFailureSeverity.WARN); break; case "ignore": - setMode(Mode.IGNORE); + setMode(JobFailureSeverity.IGNORE); break; default: // do nothing diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckParPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckParPresent.java index 8851456c..3ab63fb1 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckParPresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckParPresent.java @@ -36,11 +36,11 @@ public class CheckParPresent extends EntityJob { public final void run() { if (!getEntity().hasParents() || getEntity().getParents().isEmpty()) { switch (getMode()) { - case MUST: + case ERROR: getEntity().addError(ServerMessages.ENTITY_HAS_NO_PARENTS); getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); break; - case SHOULD: + case WARN: getEntity().addWarning(ServerMessages.ENTITY_HAS_NO_PARENTS); default: break; diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckPropPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckPropPresent.java index 31a46097..cbb86610 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckPropPresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckPropPresent.java @@ -36,11 +36,11 @@ public class CheckPropPresent extends EntityJob { public final void run() { if (getEntity().getProperties().isEmpty()) { switch (getMode()) { - case MUST: + case ERROR: getEntity().addError(ServerMessages.ENTITY_HAS_NO_PROPERTIES); getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); break; - case SHOULD: + case WARN: getEntity().addWarning(ServerMessages.ENTITY_HAS_NO_PROPERTIES); default: break; diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckUnitPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckUnitPresent.java index aa87ecff..1688ab7f 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckUnitPresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckUnitPresent.java @@ -41,11 +41,11 @@ public class CheckUnitPresent extends EntityJob { if (!hasUnit(getEntity())) { switch (getMode()) { - case MUST: + case ERROR: getEntity().addError(ServerMessages.ENTITY_HAS_NO_UNIT); getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); break; - case SHOULD: + case WARN: getEntity().addWarning(ServerMessages.ENTITY_HAS_NO_UNIT); default: break; diff --git a/src/main/java/org/caosdb/server/jobs/core/Mode.java b/src/main/java/org/caosdb/server/jobs/core/JobFailureSeverity.java similarity index 55% rename from src/main/java/org/caosdb/server/jobs/core/Mode.java rename to src/main/java/org/caosdb/server/jobs/core/JobFailureSeverity.java index e786c7fe..f3bfe63e 100644 --- a/src/main/java/org/caosdb/server/jobs/core/Mode.java +++ b/src/main/java/org/caosdb/server/jobs/core/JobFailureSeverity.java @@ -22,8 +22,22 @@ */ package org.caosdb.server.jobs.core; -public enum Mode { - MUST, - SHOULD, +/** + * Describes the severity of a failure of a job (esp. consitency checks). + * + * <ul> + * <li>{@link #ERROR} - a failure throws an error and the transaction will not succeed. + * <li>{@link #WARN} - a failure produces a warning but the transaction may succeed anyway. + * <li>{@link #IGNORE} - the job may fail silently. Jobs can also decide to not run at all if that + * is not necessary in this case. + * <p>Jobs where this doesn't make sense at all may also ignore the severity. It is rather a + * convenient way to configure jobs where this makes sense than a definitive normative + * property of a job. + * + * @author Timm Fitschen <t.fitschen@indiscale.com> + */ +public enum JobFailureSeverity { + ERROR, + WARN, IGNORE, } diff --git a/src/main/java/org/caosdb/server/jobs/core/LoadContainerFlagJobs.java b/src/main/java/org/caosdb/server/jobs/core/LoadContainerFlagJobs.java index ef8df214..c04fd21d 100644 --- a/src/main/java/org/caosdb/server/jobs/core/LoadContainerFlagJobs.java +++ b/src/main/java/org/caosdb/server/jobs/core/LoadContainerFlagJobs.java @@ -36,7 +36,7 @@ public class LoadContainerFlagJobs extends ContainerJob { protected void run() { if (getContainer().getFlags() != null) { for (final Entry<String, String> flag : getContainer().getFlags().entrySet()) { - final Job j = Job.getJob(flag.getKey(), Mode.MUST, null, getTransaction()); + final Job j = Job.getJob(flag.getKey(), JobFailureSeverity.ERROR, null, getTransaction()); if (j != null) { if (j instanceof FlagJob) { ((FlagJob) j).setValue(flag.getValue()); diff --git a/src/main/java/org/caosdb/server/transaction/Retrieve.java b/src/main/java/org/caosdb/server/transaction/Retrieve.java index 19f840e9..250df042 100644 --- a/src/main/java/org/caosdb/server/transaction/Retrieve.java +++ b/src/main/java/org/caosdb/server/transaction/Retrieve.java @@ -31,7 +31,7 @@ import org.caosdb.server.entity.xml.SetFieldStrategy; import org.caosdb.server.entity.xml.ToElementStrategy; import org.caosdb.server.entity.xml.ToElementable; import org.caosdb.server.jobs.ScheduledJob; -import org.caosdb.server.jobs.core.Mode; +import org.caosdb.server.jobs.core.JobFailureSeverity; import org.caosdb.server.jobs.core.RemoveDuplicates; import org.caosdb.server.jobs.core.ResolveNames; import org.caosdb.server.permissions.EntityPermission; @@ -53,14 +53,14 @@ public class Retrieve extends Transaction<RetrieveContainer> { // resolve names { final ResolveNames r = new ResolveNames(); - r.init(Mode.SHOULD, null, this); + r.init(JobFailureSeverity.WARN, null, this); ScheduledJob scheduledJob = getSchedule().add(r); getSchedule().runJob(scheduledJob); } { final RemoveDuplicates job = new RemoveDuplicates(); - job.init(Mode.MUST, null, this); + job.init(JobFailureSeverity.ERROR, null, this); ScheduledJob scheduledJob = getSchedule().add(job); getSchedule().runJob(scheduledJob); } diff --git a/src/main/java/org/caosdb/server/transaction/Transaction.java b/src/main/java/org/caosdb/server/transaction/Transaction.java index 99c305fa..b30d13b4 100644 --- a/src/main/java/org/caosdb/server/transaction/Transaction.java +++ b/src/main/java/org/caosdb/server/transaction/Transaction.java @@ -45,7 +45,7 @@ import org.caosdb.server.jobs.TransactionStage; import org.caosdb.server.jobs.core.AccessControl; import org.caosdb.server.jobs.core.CheckDatatypePresent; import org.caosdb.server.jobs.core.CheckEntityACLRoles; -import org.caosdb.server.jobs.core.Mode; +import org.caosdb.server.jobs.core.JobFailureSeverity; import org.caosdb.server.jobs.core.PickUp; import org.caosdb.server.permissions.EntityACL; import org.caosdb.server.utils.AbstractObservable; @@ -96,13 +96,17 @@ public abstract class Transaction<C extends TransactionContainer> extends Abstra */ protected void makeSchedule() throws Exception { // load flag jobs - final Job loadContainerFlags = Job.getJob("LoadContainerFlagJobs", Mode.MUST, null, this); + final Job loadContainerFlags = + Job.getJob("LoadContainerFlagJobs", JobFailureSeverity.ERROR, null, this); final ScheduledJob scheduledJob = this.schedule.add(loadContainerFlags); this.schedule.runJob(scheduledJob); // AccessControl - this.schedule.add(Job.getJob(AccessControl.class.getSimpleName(), Mode.MUST, null, this)); - this.schedule.add(Job.getJob(CheckEntityACLRoles.class.getSimpleName(), Mode.MUST, null, this)); + this.schedule.add( + Job.getJob(AccessControl.class.getSimpleName(), JobFailureSeverity.ERROR, null, this)); + this.schedule.add( + Job.getJob( + CheckEntityACLRoles.class.getSimpleName(), JobFailureSeverity.ERROR, null, this)); // load permanent container jobs this.schedule.addAll(Job.loadPermanentContainerJobs(this)); @@ -113,12 +117,12 @@ public abstract class Transaction<C extends TransactionContainer> extends Abstra // additionally load datatype job if (e.hasValue()) { - this.schedule.add(new CheckDatatypePresent().init(Mode.MUST, e, this)); + this.schedule.add(new CheckDatatypePresent().init(JobFailureSeverity.ERROR, e, this)); } // load pickup job if necessary if (e.hasFileProperties() && e.getFileProperties().isPickupable()) { - this.schedule.add(new PickUp().init(Mode.MUST, e, this)); + this.schedule.add(new PickUp().init(JobFailureSeverity.ERROR, e, this)); } } } -- GitLab