diff --git a/pom.xml b/pom.xml
index e16b542..5a13a90 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,25 +17,25 @@
commons-io
commons-io
- 2.6
+ 2.11.0
compile
com.google.guava
guava
- 29.0-jre
+ 31.1-jre
compile
org.apache.logging.log4j
log4j-api
- 2.13.3
+ 2.20.0
compile
org.apache.logging.log4j
log4j-core
- 2.13.3
+ 2.20.0
test
@@ -50,7 +50,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.10.1
+ 3.11.0
@@ -60,7 +60,7 @@
org.apache.maven.plugins
maven-war-plugin
- 2.6
+ 3.3.2
false
diff --git a/src/main/java/eu/dnetlib/validator2/engine/Predicates.java b/src/main/java/eu/dnetlib/validator2/engine/Predicates.java
index c8360a0..1e36acc 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/Predicates.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/Predicates.java
@@ -3,9 +3,7 @@ package eu.dnetlib.validator2.engine;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
-import java.util.function.Consumer;
import java.util.function.Predicate;
-import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
diff --git a/src/main/java/eu/dnetlib/validator2/engine/builtins/SimpleRule.java b/src/main/java/eu/dnetlib/validator2/engine/builtins/SimpleRule.java
index c5ec45b..39eb98a 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/builtins/SimpleRule.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/builtins/SimpleRule.java
@@ -5,7 +5,6 @@ import eu.dnetlib.validator2.engine.RuleContext;
import eu.dnetlib.validator2.engine.RuleEvaluationException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.w3c.dom.NodeList;
import java.util.function.Predicate;
diff --git a/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardNodeListActionProperty.java b/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardNodeListActionProperty.java
index 2f4bbe3..0929d9b 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardNodeListActionProperty.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardNodeListActionProperty.java
@@ -9,7 +9,6 @@ import org.w3c.dom.NodeList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import java.util.function.Function;
import java.util.function.Predicate;
class StandardNodeListActionProperty extends StandardRuleProperty implements NodeListActionProperty {
diff --git a/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardXPathExpressionProperty.java b/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardXPathExpressionProperty.java
index 42f3a40..003e417 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardXPathExpressionProperty.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/builtins/StandardXPathExpressionProperty.java
@@ -5,8 +5,6 @@ import eu.dnetlib.validator2.engine.contexts.XPathExpressionProperty;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
-import javax.xml.xpath.XPathExpression;
-
public class StandardXPathExpressionProperty extends StandardRuleProperty implements XPathExpressionProperty {
public StandardXPathExpressionProperty(String name) {
diff --git a/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLCrisClassVocabularyRule.java b/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLCrisClassVocabularyRule.java
index 18e2c35..d176840 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLCrisClassVocabularyRule.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLCrisClassVocabularyRule.java
@@ -1,6 +1,5 @@
package eu.dnetlib.validator2.engine.builtins;
-import eu.dnetlib.validator2.engine.RuleEvaluationException;
import eu.dnetlib.validator2.engine.contexts.TermsProperty;
import eu.dnetlib.validator2.engine.contexts.XMLCrisClassSchemeContextWithVocabulary;
import org.w3c.dom.NodeList;
diff --git a/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLFieldExistsRule.java b/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLFieldExistsRule.java
index eb125ef..7df3d5d 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLFieldExistsRule.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLFieldExistsRule.java
@@ -1,10 +1,7 @@
package eu.dnetlib.validator2.engine.builtins;
import eu.dnetlib.validator2.engine.Helper;
-import eu.dnetlib.validator2.engine.Rule;
-import eu.dnetlib.validator2.engine.RuleEvaluationException;
import eu.dnetlib.validator2.engine.contexts.XMLContext;
-import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import java.util.Map;
diff --git a/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLRegularExpressionRule.java b/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLRegularExpressionRule.java
index 4cd2155..86000b8 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLRegularExpressionRule.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/builtins/XMLRegularExpressionRule.java
@@ -1,9 +1,7 @@
package eu.dnetlib.validator2.engine.builtins;
-import eu.dnetlib.validator2.engine.RuleEvaluationException;
import eu.dnetlib.validator2.engine.contexts.RegularExpressionProperty;
import eu.dnetlib.validator2.engine.contexts.XMLContextWithRegularExpression;
-import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import java.util.Map;
diff --git a/src/main/java/eu/dnetlib/validator2/engine/contexts/CardinalityContext.java b/src/main/java/eu/dnetlib/validator2/engine/contexts/CardinalityContext.java
index f8d520a..fcd5cca 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/contexts/CardinalityContext.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/contexts/CardinalityContext.java
@@ -2,7 +2,6 @@ package eu.dnetlib.validator2.engine.contexts;
import eu.dnetlib.validator2.engine.Helper;
import eu.dnetlib.validator2.engine.RuleContext;
-import eu.dnetlib.validator2.engine.RuleProperty;
import java.util.function.Predicate;
diff --git a/src/main/java/eu/dnetlib/validator2/engine/contexts/XPathExpressionProperty.java b/src/main/java/eu/dnetlib/validator2/engine/contexts/XPathExpressionProperty.java
index fc7462e..03f87ea 100644
--- a/src/main/java/eu/dnetlib/validator2/engine/contexts/XPathExpressionProperty.java
+++ b/src/main/java/eu/dnetlib/validator2/engine/contexts/XPathExpressionProperty.java
@@ -4,8 +4,6 @@ import eu.dnetlib.validator2.engine.RuleProperty;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
-import javax.xml.xpath.XPathExpressionException;
-
public interface XPathExpressionProperty extends RuleProperty {
NodeList evaluate(Document doc);
diff --git a/src/main/java/eu/dnetlib/validator2/validation/XMLApplicationProfile.java b/src/main/java/eu/dnetlib/validator2/validation/XMLApplicationProfile.java
index ab640e0..2dc7984 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/XMLApplicationProfile.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/XMLApplicationProfile.java
@@ -1,17 +1,10 @@
package eu.dnetlib.validator2.validation;
-import eu.dnetlib.validator2.engine.Rule;
-import eu.dnetlib.validator2.engine.Status;
-import eu.dnetlib.validator2.engine.builtins.XMLCardinalityRule;
-import eu.dnetlib.validator2.validation.guideline.ElementSpec;
import eu.dnetlib.validator2.validation.guideline.Guideline;
-import eu.dnetlib.validator2.validation.guideline.SyntheticGuideline;
import org.w3c.dom.Document;
import java.util.Collection;
-import java.util.HashMap;
import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
/**
* An application-specific collection of guidelines
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/ElementSpecCompiler.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/ElementSpecCompiler.java
index 8f594aa..1e57ce7 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/ElementSpecCompiler.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/ElementSpecCompiler.java
@@ -15,7 +15,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import javax.xml.xpath.XPathExpression;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/GuidelineEvaluation.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/GuidelineEvaluation.java
index 564f4ba..b651489 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/GuidelineEvaluation.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/GuidelineEvaluation.java
@@ -1,7 +1,6 @@
package eu.dnetlib.validator2.validation.guideline;
import eu.dnetlib.validator2.engine.*;
-import eu.dnetlib.validator2.engine.Helper;
import eu.dnetlib.validator2.engine.builtins.StandardRuleDiagnostics;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/StandardResult.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/StandardResult.java
index 2178c92..1dfb5f7 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/StandardResult.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/StandardResult.java
@@ -2,7 +2,6 @@ package eu.dnetlib.validator2.validation.guideline;
import eu.dnetlib.validator2.engine.Status;
-import java.util.Collection;
import java.util.Collections;
import java.util.List;
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/AbstractOpenAireProfile.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/AbstractOpenAireProfile.java
index 90b4af5..782752c 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/AbstractOpenAireProfile.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/AbstractOpenAireProfile.java
@@ -3,19 +3,19 @@ package eu.dnetlib.validator2.validation.guideline.openaire;
import eu.dnetlib.validator2.engine.Helper;
import eu.dnetlib.validator2.engine.Rule;
import eu.dnetlib.validator2.engine.Status;
-import eu.dnetlib.validator2.engine.builtins.*;
+import eu.dnetlib.validator2.engine.builtins.StandardXMLContext;
+import eu.dnetlib.validator2.engine.builtins.XMLCardinalityRule;
+import eu.dnetlib.validator2.engine.builtins.XMLRule;
import eu.dnetlib.validator2.validation.StandardValidationResult;
import eu.dnetlib.validator2.validation.XMLApplicationProfile;
import eu.dnetlib.validator2.validation.guideline.ElementSpec;
import eu.dnetlib.validator2.validation.guideline.Guideline;
-import eu.dnetlib.validator2.validation.guideline.SyntheticGuideline;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.util.HashMap;
import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
public abstract class AbstractOpenAireProfile implements XMLApplicationProfile {
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/DataArchiveGuidelinesV2Profile.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/DataArchiveGuidelinesV2Profile.java
index 0fccadf..6a0bfaf 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/DataArchiveGuidelinesV2Profile.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/DataArchiveGuidelinesV2Profile.java
@@ -2,11 +2,7 @@ package eu.dnetlib.validator2.validation.guideline.openaire;
import eu.dnetlib.validator2.engine.Rule;
import eu.dnetlib.validator2.engine.builtins.XMLCardinalityRule;
-import eu.dnetlib.validator2.validation.guideline.Builders;
-import eu.dnetlib.validator2.validation.guideline.ElementPosition;
-import eu.dnetlib.validator2.validation.guideline.ElementSpec;
-import eu.dnetlib.validator2.validation.guideline.Guideline;
-import eu.dnetlib.validator2.validation.guideline.SyntheticGuideline;
+import eu.dnetlib.validator2.validation.guideline.*;
import eu.dnetlib.validator2.validation.utils.ISO639ValuePredicate;
import eu.dnetlib.validator2.validation.utils.RegexValuePredicate;
import org.w3c.dom.Document;
@@ -14,8 +10,10 @@ import org.w3c.dom.Document;
import java.util.*;
import java.util.stream.Collectors;
-import static eu.dnetlib.validator2.validation.guideline.Cardinality.*;
-import static eu.dnetlib.validator2.validation.utils.SupportedRegExs.*;
+import static eu.dnetlib.validator2.validation.guideline.Cardinality.ONE;
+import static eu.dnetlib.validator2.validation.guideline.Cardinality.ONE_TO_N;
+import static eu.dnetlib.validator2.validation.utils.SupportedRegExs.COMPILED_ISO_8601_DATE_REG_EX;
+import static eu.dnetlib.validator2.validation.utils.SupportedRegExs.COMPILED_YEAR_YYYY_REG_EX;
public class DataArchiveGuidelinesV2Profile extends AbstractOpenAireProfile {
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/F3_01M.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/F3_01M.java
index 1c76d42..97216a4 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/F3_01M.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/F3_01M.java
@@ -4,7 +4,6 @@ import eu.dnetlib.validator2.validation.guideline.Builders;
import eu.dnetlib.validator2.validation.guideline.ElementSpec;
import eu.dnetlib.validator2.validation.guideline.Guideline;
import eu.dnetlib.validator2.validation.guideline.SyntheticGuideline;
-//import eu.dnetlib.validator2.validation.utils.PIDCheckValuePredicate;
import org.w3c.dom.Document;
import java.util.*;
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/FAIR_Data_GuidelinesProfile.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/FAIR_Data_GuidelinesProfile.java
index 294f0bd..48624af 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/FAIR_Data_GuidelinesProfile.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/FAIR_Data_GuidelinesProfile.java
@@ -1,16 +1,17 @@
package eu.dnetlib.validator2.validation.guideline.openaire;
//import com.google.gson.Gson;
+
import eu.dnetlib.validator2.engine.Status;
import eu.dnetlib.validator2.validation.XMLApplicationProfile;
import eu.dnetlib.validator2.validation.guideline.*;
-//import eu.dnetlib.validator2.validation.utils.PIDCheckValuePredicate;
import org.w3c.dom.Document;
import java.util.*;
import java.util.stream.Collectors;
-import static eu.dnetlib.validator2.validation.guideline.Cardinality.*;
+import static eu.dnetlib.validator2.validation.guideline.Cardinality.ONE;
+import static eu.dnetlib.validator2.validation.guideline.Cardinality.ONE_TO_N;
public final class FAIR_Data_GuidelinesProfile extends AbstractOpenAireProfile {
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisEventV111Profile.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisEventV111Profile.java
index 4b0aa21..f2b17f5 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisEventV111Profile.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisEventV111Profile.java
@@ -8,8 +8,6 @@ import org.w3c.dom.Document;
import java.util.Collection;
-import static eu.dnetlib.validator2.validation.utils.SupportedRegExs.COMPILED_YYYY_MM_DD_REGEX;
-
public class CrisEventV111Profile extends AbstractCrisProfile {
private static final Builders.ElementSpecBuilder TYPE_SPEC = Builders.
diff --git a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisProjectV111Profile.java b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisProjectV111Profile.java
index da858d8..bf839ba 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisProjectV111Profile.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/guideline/openaire/cris/CrisProjectV111Profile.java
@@ -8,8 +8,6 @@ import org.w3c.dom.Document;
import java.util.Collection;
-import static eu.dnetlib.validator2.validation.utils.SupportedRegExs.COMPILED_YYYY_MM_DD_REGEX;
-
public class CrisProjectV111Profile extends AbstractCrisProfile {
private static final Builders.ElementSpecBuilder TYPE_SPEC = Builders.
diff --git a/src/main/java/eu/dnetlib/validator2/validation/utils/EmbargoedEndDateValuePredicate.java b/src/main/java/eu/dnetlib/validator2/validation/utils/EmbargoedEndDateValuePredicate.java
index 847b379..71e3248 100644
--- a/src/main/java/eu/dnetlib/validator2/validation/utils/EmbargoedEndDateValuePredicate.java
+++ b/src/main/java/eu/dnetlib/validator2/validation/utils/EmbargoedEndDateValuePredicate.java
@@ -2,7 +2,7 @@ package eu.dnetlib.validator2.validation.utils;
import java.util.function.Predicate;
-import static eu.dnetlib.validator2.validation.utils.SupportedRegExs.*;
+import static eu.dnetlib.validator2.validation.utils.SupportedRegExs.COMPILED_EMBARGOED_END_DATE_REG_EX;
public class EmbargoedEndDateValuePredicate implements Predicate {
diff --git a/src/test/groovy/eu/dnetlib/validator2/validation/guideline/ElementSpecCompilerSpecification.groovy b/src/test/groovy/eu/dnetlib/validator2/validation/guideline/ElementSpecCompilerSpecification.groovy
index 6bbab94..ac385c0 100644
--- a/src/test/groovy/eu/dnetlib/validator2/validation/guideline/ElementSpecCompilerSpecification.groovy
+++ b/src/test/groovy/eu/dnetlib/validator2/validation/guideline/ElementSpecCompilerSpecification.groovy
@@ -4,12 +4,14 @@ import eu.dnetlib.validator2.engine.Helper
import eu.dnetlib.validator2.engine.XMLHelper
import eu.dnetlib.validator2.engine.builtins.AlwaysFailRule
import eu.dnetlib.validator2.engine.builtins.AlwaysSucceedRule
-import static eu.dnetlib.validator2.validation.guideline.RequirementLevel.*
-import static eu.dnetlib.validator2.validation.guideline.Cardinality.*
import org.w3c.dom.Document
import spock.lang.Shared
import spock.lang.Specification
+import static eu.dnetlib.validator2.validation.guideline.Cardinality.ONE
+import static eu.dnetlib.validator2.validation.guideline.Cardinality.ONE_TO_N
+import static eu.dnetlib.validator2.validation.guideline.RequirementLevel.*
+
//TODO: Test occurrence
class ElementSpecCompilerSpecification extends Specification {
diff --git a/src/test/groovy/eu/dnetlib/validator2/validation/guideline/SyntheticGuidelineSpecification.groovy b/src/test/groovy/eu/dnetlib/validator2/validation/guideline/SyntheticGuidelineSpecification.groovy
index 570ad15..b2ca3d6 100644
--- a/src/test/groovy/eu/dnetlib/validator2/validation/guideline/SyntheticGuidelineSpecification.groovy
+++ b/src/test/groovy/eu/dnetlib/validator2/validation/guideline/SyntheticGuidelineSpecification.groovy
@@ -1,12 +1,12 @@
package eu.dnetlib.validator2.validation.guideline
+import eu.dnetlib.validator2.engine.Rule
import eu.dnetlib.validator2.engine.Status
import eu.dnetlib.validator2.engine.XMLHelper
import eu.dnetlib.validator2.engine.builtins.XMLCardinalityRule
import org.w3c.dom.Document
import spock.lang.Shared
import spock.lang.Specification
-import eu.dnetlib.validator2.engine.Rule
import spock.lang.Unroll
import spock.util.concurrent.AsyncConditions