From abf149f01980c894cd54d995a1e8e48e96ecbbad Mon Sep 17 00:00:00 2001
From: Olivier Maury <Olivier.Maury@inrae.fr>
Date: Mon, 1 Jul 2024 16:08:38 +0200
Subject: [PATCH] =?UTF-8?q?Passer=20=C3=A0=20Jakarta=20XML=20bindings?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pom.xml                                       |  2 +-
 .../agroclim/indicators/GenerateMarkdown.java | 31 +++++-----
 .../indicators/exception/ErrorMessage.java    |  3 +-
 .../exception/IndicatorsErrorCategory.java    |  1 +
 .../exception/type/CommonErrorType.java       |  3 +-
 .../exception/type/ComputationErrorType.java  |  1 +
 .../exception/type/ResourceErrorType.java     |  1 +
 .../exception/type/XmlErrorType.java          |  1 +
 .../indicators/model/AnnualPhase.java         |  1 +
 .../agroclim/indicators/model/Evaluation.java |  2 +-
 .../indicators/model/EvaluationSettings.java  | 21 ++++---
 .../indicators/model/EvaluationType.java      |  3 +-
 .../indicators/model/ExpressionParameter.java | 11 ++--
 .../indicators/model/HasParameters.java       |  3 +-
 .../indicators/model/JEXLFormula.java         |  2 +-
 .../agroclim/indicators/model/Knowledge.java  | 25 ++++----
 .../model/LocalDateTimeAdapter.java           |  2 +-
 .../indicators/model/LocalizedString.java     | 13 +++--
 .../inrae/agroclim/indicators/model/Note.java | 13 ++---
 .../agroclim/indicators/model/Parameter.java  | 11 ++--
 .../agroclim/indicators/model/TimeScale.java  |  7 ++-
 .../inrae/agroclim/indicators/model/Unit.java | 11 ++--
 .../model/criteria/ComparisonCriteria.java    | 39 ++++++-------
 .../model/criteria/CompositeCriteria.java     |  9 +--
 .../indicators/model/criteria/Criteria.java   | 19 +++----
 .../model/criteria/FormulaCriteria.java       | 23 ++++----
 .../model/criteria/LogicalOperator.java       |  6 +-
 .../indicators/model/criteria/NoCriteria.java | 21 ++++---
 .../model/criteria/RelationalOperator.java    |  7 +--
 .../model/criteria/SimpleCriteria.java        | 57 +++++++++----------
 .../model/criteria/VariableCriteria.java      | 11 ++--
 .../indicators/model/data/FileLoader.java     |  9 ++-
 .../indicators/model/data/Variable.java       | 31 +++++-----
 .../model/data/climate/ClimateFileLoader.java | 31 +++++-----
 .../data/climate/ClimateLoaderProxy.java      |  9 ++-
 .../model/data/phenology/AnnualStageData.java |  2 +-
 .../model/data/phenology/PhaseEnd.java        |  2 +-
 .../data/phenology/PhenologicalResource.java  |  2 +-
 .../data/phenology/PhenologyCalculator.java   | 11 ++--
 .../data/phenology/PhenologyFileLoader.java   | 11 ++--
 .../data/phenology/PhenologyLoaderProxy.java  | 13 ++---
 .../RelativeAnnualStageCalculator.java        |  1 +
 .../model/data/phenology/StageDelta.java      |  7 +--
 .../model/data/soil/SoilLoaderProxy.java      | 13 ++---
 .../aggregation/AggregationFunction.java      |  9 ++-
 .../function/aggregation/JEXLFunction.java    |  5 +-
 .../function/normalization/Exponential.java   |  9 ++-
 .../model/function/normalization/Linear.java  |  5 +-
 .../function/normalization/MultiLinear.java   |  5 +-
 .../normalization/MultiLinearInterval.java    |  5 +-
 .../model/function/normalization/Normal.java  |  7 +--
 .../normalization/NormalizationFunction.java  |  8 +--
 .../model/function/normalization/Sigmoid.java |  7 +--
 .../model/indicator/AggregationIndicator.java |  5 +-
 .../model/indicator/AverageOfDiff.java        | 10 ++--
 .../model/indicator/CompositeIndicator.java   | 52 ++++++++---------
 .../indicators/model/indicator/DayOfYear.java | 10 ++--
 .../indicators/model/indicator/DiffOfSum.java | 25 ++++----
 .../indicators/model/indicator/Formula.java   |  5 +-
 .../indicators/model/indicator/Frequency.java |  3 +-
 .../indicators/model/indicator/Indicator.java | 18 +++---
 .../model/indicator/InjectedParameter.java    | 11 ++--
 .../model/indicator/MaxWaveLength.java        |  7 +--
 .../model/indicator/NumberOfDays.java         |  7 +--
 .../model/indicator/NumberOfWaves.java        | 12 ++--
 .../PotentialSowingDaysFrequency.java         |  9 ++-
 .../indicators/model/indicator/Quotient.java  |  9 ++-
 .../model/indicator/SimpleIndicator.java      |  3 +-
 .../SimpleIndicatorWithCriteria.java          |  3 +-
 .../indicators/model/indicator/Sum.java       |  6 +-
 .../indicators/model/indicator/Tamm.java      |  3 +-
 .../indicator/listener/IndicatorEvent.java    |  3 +-
 .../model/result/EvaluationResult.java        |  1 +
 .../model/result/IndicatorResult.java         |  3 +-
 .../indicators/model/result/PhaseResult.java  |  3 +-
 .../agroclim/indicators/util/DateUtils.java   |  1 +
 .../indicators/util/ErrorTypeUtils.java       |  5 +-
 .../indicators/util/NameableEnumUtils.java    |  3 +-
 .../agroclim/indicators/xml/DtdResolver.java  |  6 +-
 .../indicators/xml/MarshallerBuilder.java     | 14 ++---
 .../indicators/xml/UnmarshallerBuilder.java   | 11 ++--
 .../agroclim/indicators/xml/XMLUtil.java      | 16 +++---
 src/main/java/module-info.java                | 25 ++++----
 .../indicators/exception/ErrorTypeTest.java   |  6 +-
 .../IndicatorsErrorCategoryTest.java          |  9 ++-
 .../exception/IndicatorsExceptionTest.java    |  7 ++-
 .../model/CulturalPracticesTest.java          | 12 ++--
 .../model/EvaluationParametersTest.java       | 11 ++--
 .../model/EvaluationRobertTest.java           | 23 ++++----
 .../model/EvaluationSettingsTest.java         |  4 +-
 .../EvaluationWithoutAggregationTest.java     | 21 ++++---
 .../model/EvalutationCustomHeadersTest.java   | 13 +++--
 .../indicators/model/JEXLFormulaTest.java     |  9 ++-
 .../indicators/model/KnowledgeDailyTest.java  |  2 +-
 .../indicators/model/KnowledgeHourlyTest.java | 14 +++--
 .../indicators/model/KnowledgeTest.java       |  4 +-
 .../indicators/model/LocalizedStringTest.java |  8 ++-
 .../indicators/model/MMarjouTest.java         | 21 ++++---
 .../indicators/model/NameableTest.java        | 17 +++---
 .../indicators/model/RaidayMeantTest.java     |  4 +-
 .../model/criteria/CompositeCriteriaTest.java |  2 +-
 .../model/criteria/FormulaCriteriaTest.java   |  2 +-
 .../model/criteria/SimpleCriteriaTest.java    |  2 +-
 .../indicators/model/data/FileLoaderTest.java |  5 +-
 .../indicators/model/data/VariableTest.java   |  7 ++-
 .../model/data/climate/ClimateTest.java       |  2 +-
 .../data/climate/ClimaticDailyDataTest.java   |  4 +-
 .../data/climate/ClimaticResourceTest.java    |  2 +-
 .../PhenologyCalculatorMethodsTest.java       | 17 +++---
 .../data/phenology/PhenologyLoaderTest.java   |  4 +-
 .../model/data/soil/SoilCalculatorTest.java   | 16 +++---
 .../function/NormalizationFunctionTest.java   |  3 +-
 .../model/indicator/AverageOfDiffTest.java    | 10 ++--
 .../model/indicator/ColdsumtminTest.java      |  4 +-
 .../model/indicator/FrequencyTest.java        |  8 ++-
 .../model/indicator/ImplementationsTest.java  | 13 +++--
 .../model/indicator/IndicatorTest.java        |  2 +-
 .../model/indicator/PhaseLengthTest.java      |  8 ++-
 .../listener/CompositeIndicatorTest.java      |  8 ++-
 .../listener/IndicatorEventTest.java          |  6 +-
 .../listener/PropertyChangeListenerTest.java  | 12 ++--
 .../indicators/resources/MessagesTest.java    |  1 +
 .../indicators/resources/VersionTest.java     |  1 +
 .../indicators/util/DeepCopyHelperTest.java   |  9 ++-
 .../indicators/util/PathUtilsTest.java        | 14 +++--
 .../indicators/util/StageUtilsTest.java       | 13 +++--
 .../agroclim/indicators/xml/XMLUtilTest.java  |  2 +-
 .../agroclim/indicators/xml/XsdTest.java      |  6 +-
 128 files changed, 632 insertions(+), 587 deletions(-)

diff --git a/pom.xml b/pom.xml
index 7108e7ff..62c76910 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@ along with Indicators. If not, see <https://www.gnu.org/licenses/>.
         <dependency>
             <groupId>org.glassfish.jaxb</groupId>
             <artifactId>jaxb-runtime</artifactId>
-            <version>2.3.1</version>
+            <version>4.0.5</version>
         </dependency>
         <!-- CSV -->
         <dependency>
diff --git a/src/main/java/fr/inrae/agroclim/indicators/GenerateMarkdown.java b/src/main/java/fr/inrae/agroclim/indicators/GenerateMarkdown.java
index bd447217..f2a6a8ad 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/GenerateMarkdown.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/GenerateMarkdown.java
@@ -1,20 +1,5 @@
 package fr.inrae.agroclim.indicators;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.exception.type.CommonErrorType;
-import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
-import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
-import fr.inrae.agroclim.indicators.exception.type.XmlErrorType;
-import fr.inrae.agroclim.indicators.model.Knowledge;
-import fr.inrae.agroclim.indicators.model.LocalizedString;
-import fr.inrae.agroclim.indicators.model.Note;
-import fr.inrae.agroclim.indicators.model.Parameter;
-import fr.inrae.agroclim.indicators.model.TimeScale;
-import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
-import fr.inrae.agroclim.indicators.model.indicator.Indicator;
-import fr.inrae.agroclim.indicators.resources.I18n;
-import fr.inrae.agroclim.indicators.util.StringUtils;
-import fr.inrae.agroclim.indicators.util.Utf8BufferedWriter;
 import java.io.BufferedWriter;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -30,6 +15,22 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
+
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.exception.type.CommonErrorType;
+import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
+import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
+import fr.inrae.agroclim.indicators.exception.type.XmlErrorType;
+import fr.inrae.agroclim.indicators.model.Knowledge;
+import fr.inrae.agroclim.indicators.model.LocalizedString;
+import fr.inrae.agroclim.indicators.model.Note;
+import fr.inrae.agroclim.indicators.model.Parameter;
+import fr.inrae.agroclim.indicators.model.TimeScale;
+import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
+import fr.inrae.agroclim.indicators.model.indicator.Indicator;
+import fr.inrae.agroclim.indicators.resources.I18n;
+import fr.inrae.agroclim.indicators.util.StringUtils;
+import fr.inrae.agroclim.indicators.util.Utf8BufferedWriter;
 import lombok.extern.log4j.Log4j2;
 
 /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/exception/ErrorMessage.java b/src/main/java/fr/inrae/agroclim/indicators/exception/ErrorMessage.java
index 674639f3..55e34754 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/exception/ErrorMessage.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/exception/ErrorMessage.java
@@ -20,12 +20,13 @@ import java.io.Serializable;
 import java.util.Collection;
 import java.util.Locale;
 
+import org.json.JSONObject;
+
 import fr.inrae.agroclim.indicators.resources.I18n;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.ToString;
-import org.json.JSONObject;
 
 /**
  * Error messages for the user.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategory.java b/src/main/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategory.java
index 1e25aa3a..46715486 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategory.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategory.java
@@ -4,6 +4,7 @@
 package fr.inrae.agroclim.indicators.exception;
 
 import fr.inrae.agroclim.indicators.model.data.ResourceManager;
+import fr.inrae.agroclim.indicators.model.indicator.Indicator;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/exception/type/CommonErrorType.java b/src/main/java/fr/inrae/agroclim/indicators/exception/type/CommonErrorType.java
index 5d936c0b..06166b97 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/exception/type/CommonErrorType.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/exception/type/CommonErrorType.java
@@ -1,8 +1,9 @@
 package fr.inrae.agroclim.indicators.exception.type;
 
-import fr.inrae.agroclim.indicators.exception.ErrorType;
 import java.util.StringJoiner;
 
+import fr.inrae.agroclim.indicators.exception.ErrorType;
+
 /**
  * Common methods to implements ErrorType.
  *
diff --git a/src/main/java/fr/inrae/agroclim/indicators/exception/type/ComputationErrorType.java b/src/main/java/fr/inrae/agroclim/indicators/exception/type/ComputationErrorType.java
index 3c3a79d0..26dda72d 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/exception/type/ComputationErrorType.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/exception/type/ComputationErrorType.java
@@ -3,6 +3,7 @@ package fr.inrae.agroclim.indicators.exception.type;
 import fr.inrae.agroclim.indicators.exception.ErrorCategory;
 import fr.inrae.agroclim.indicators.exception.IndicatorsErrorCategory;
 import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
+import fr.inrae.agroclim.indicators.model.indicator.Indicator;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/exception/type/ResourceErrorType.java b/src/main/java/fr/inrae/agroclim/indicators/exception/type/ResourceErrorType.java
index 6be38b76..19fdbfd3 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/exception/type/ResourceErrorType.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/exception/type/ResourceErrorType.java
@@ -2,6 +2,7 @@ package fr.inrae.agroclim.indicators.exception.type;
 
 import fr.inrae.agroclim.indicators.exception.ErrorCategory;
 import fr.inrae.agroclim.indicators.exception.IndicatorsErrorCategory;
+import fr.inrae.agroclim.indicators.model.data.ResourceManager;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/exception/type/XmlErrorType.java b/src/main/java/fr/inrae/agroclim/indicators/exception/type/XmlErrorType.java
index aba636aa..1b338d65 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/exception/type/XmlErrorType.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/exception/type/XmlErrorType.java
@@ -2,6 +2,7 @@ package fr.inrae.agroclim.indicators.exception.type;
 
 import fr.inrae.agroclim.indicators.exception.ErrorCategory;
 import fr.inrae.agroclim.indicators.exception.IndicatorsErrorCategory;
+import fr.inrae.agroclim.indicators.model.indicator.Indicator;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/AnnualPhase.java b/src/main/java/fr/inrae/agroclim/indicators/model/AnnualPhase.java
index 6d0e8edb..0b29089d 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/AnnualPhase.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/AnnualPhase.java
@@ -17,6 +17,7 @@
 package fr.inrae.agroclim.indicators.model;
 
 import java.util.Date;
+
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/Evaluation.java b/src/main/java/fr/inrae/agroclim/indicators/model/Evaluation.java
index fb76b985..8e78e9e4 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/Evaluation.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/Evaluation.java
@@ -18,6 +18,7 @@ package fr.inrae.agroclim.indicators.model;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
@@ -55,7 +56,6 @@ import fr.inrae.agroclim.indicators.model.result.PhaseResult;
 import fr.inrae.agroclim.indicators.resources.Messages;
 import fr.inrae.agroclim.indicators.util.DateUtils;
 import fr.inrae.agroclim.indicators.util.StageUtils;
-import java.time.LocalDate;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NonNull;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationSettings.java b/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationSettings.java
index 1c26ae7c..da66f92b 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationSettings.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationSettings.java
@@ -16,7 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import java.io.Serializable;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -26,16 +25,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.criteria.ComparisonCriteria;
 import fr.inrae.agroclim.indicators.model.criteria.CompositeCriteria;
 import fr.inrae.agroclim.indicators.model.criteria.FormulaCriteria;
@@ -76,6 +66,15 @@ import fr.inrae.agroclim.indicators.model.indicator.Quotient;
 import fr.inrae.agroclim.indicators.model.indicator.SimpleIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Sum;
 import fr.inrae.agroclim.indicators.model.indicator.Tamm;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationType.java b/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationType.java
index 3fa36eae..486e49d7 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationType.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/EvaluationType.java
@@ -18,9 +18,10 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.util.NameableEnumUtils;
 import java.util.Locale;
 
+import fr.inrae.agroclim.indicators.util.NameableEnumUtils;
+
 /**
  * Type of evaluation.
  *
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/ExpressionParameter.java b/src/main/java/fr/inrae/agroclim/indicators/model/ExpressionParameter.java
index b527899f..c5d1c207 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/ExpressionParameter.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/ExpressionParameter.java
@@ -19,9 +19,10 @@
 package fr.inrae.agroclim.indicators.model;
 
 import java.io.Serializable;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
 import lombok.AllArgsConstructor;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -39,7 +40,7 @@ import lombok.Setter;
 @EqualsAndHashCode(
         callSuper = false,
         of = {"name", "value"}
-)
+        )
 @AllArgsConstructor
 @NoArgsConstructor
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -68,7 +69,7 @@ public class ExpressionParameter implements Cloneable, Serializable {
 
     @Override
     public final ExpressionParameter clone() throws CloneNotSupportedException {
-        ExpressionParameter clone = (ExpressionParameter) super.clone();
+        final ExpressionParameter clone = (ExpressionParameter) super.clone();
         clone.name = name;
         clone.value = value;
         return clone;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/HasParameters.java b/src/main/java/fr/inrae/agroclim/indicators/model/HasParameters.java
index 61f79f98..b436297b 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/HasParameters.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/HasParameters.java
@@ -16,10 +16,11 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.util.Doublet;
 import java.util.List;
 import java.util.Map;
 
+import fr.inrae.agroclim.indicators.util.Doublet;
+
 /**
  * Indicator or indicator criteria can have user defined parameters.
  *
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/JEXLFormula.java b/src/main/java/fr/inrae/agroclim/indicators/model/JEXLFormula.java
index 4eb2e1ef..aea41aa5 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/JEXLFormula.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/JEXLFormula.java
@@ -33,6 +33,7 @@ import org.apache.commons.jexl3.JexlExpression;
 import org.apache.commons.jexl3.JexlFeatures;
 import org.apache.commons.jexl3.JexlScript;
 import org.apache.commons.jexl3.MapContext;
+import org.apache.commons.jexl3.introspection.JexlPermissions;
 
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
@@ -42,7 +43,6 @@ import fr.inrae.agroclim.indicators.model.function.aggregation.MathMethod;
 import fr.inrae.agroclim.indicators.util.StringUtils;
 import lombok.Getter;
 import lombok.Setter;
-import org.apache.commons.jexl3.introspection.JexlPermissions;
 
 /**
  * Execution of JEXL formula to make computation.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/Knowledge.java b/src/main/java/fr/inrae/agroclim/indicators/model/Knowledge.java
index 637484e0..8c1faa5c 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/Knowledge.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/Knowledge.java
@@ -16,19 +16,13 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.EnumMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.criteria.ComparisonCriteria;
 import fr.inrae.agroclim.indicators.model.criteria.CompositeCriteria;
 import fr.inrae.agroclim.indicators.model.criteria.FormulaCriteria;
@@ -63,7 +57,12 @@ import fr.inrae.agroclim.indicators.model.indicator.SimpleIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Sum;
 import fr.inrae.agroclim.indicators.model.indicator.Tamm;
 import fr.inrae.agroclim.indicators.xml.XMLUtil;
-import javax.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.Getter;
 import lombok.NonNull;
 import lombok.Setter;
@@ -355,6 +354,11 @@ public final class Knowledge implements Cloneable {
         }
     }
 
+    public Parameter getParameterById(final String id) {
+        return this.parameters.stream()
+                .filter(parameter -> parameter.getId().equals(id))
+                .findFirst().orElse(null);
+    }
     /**
      * Update localized description and name of indicator from Knowledge.
      *
@@ -388,9 +392,4 @@ public final class Knowledge implements Cloneable {
             ((CompositeIndicator) indicator).getIndicators().forEach(this::setI18n);
         }
     }
-    public Parameter getParameterById(final String id) {
-        return this.parameters.stream()
-                .filter(parameter -> parameter.getId().equals(id))
-                .findFirst().orElse(null);
-    }
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/LocalDateTimeAdapter.java b/src/main/java/fr/inrae/agroclim/indicators/model/LocalDateTimeAdapter.java
index 347b72f7..f436756a 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/LocalDateTimeAdapter.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/LocalDateTimeAdapter.java
@@ -20,7 +20,7 @@ package fr.inrae.agroclim.indicators.model;
 
 import java.time.LocalDateTime;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 /**
  * JSON adapter for LocalDateTime.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/LocalizedString.java b/src/main/java/fr/inrae/agroclim/indicators/model/LocalizedString.java
index 585a415f..efea6adb 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/LocalizedString.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/LocalizedString.java
@@ -19,10 +19,11 @@ package fr.inrae.agroclim.indicators.model;
 import java.io.Serializable;
 import java.util.List;
 import java.util.Objects;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlValue;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlValue;
 import lombok.AllArgsConstructor;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -41,7 +42,7 @@ import lombok.Setter;
 @EqualsAndHashCode(
         callSuper = false,
         of = {"lang", "value"}
-)
+        )
 @AllArgsConstructor
 @NoArgsConstructor
 public final class LocalizedString implements Cloneable, Serializable {
@@ -88,7 +89,7 @@ public final class LocalizedString implements Cloneable, Serializable {
 
     @Override
     public LocalizedString clone() throws CloneNotSupportedException {
-        LocalizedString clone = (LocalizedString) super.clone();
+        final LocalizedString clone = (LocalizedString) super.clone();
         clone.lang = lang;
         clone.value = value;
         return clone;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/Note.java b/src/main/java/fr/inrae/agroclim/indicators/model/Note.java
index ff355214..72bdcc72 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/Note.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/Note.java
@@ -2,11 +2,10 @@ package fr.inrae.agroclim.indicators.model;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlID;
-
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlID;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 
@@ -23,7 +22,7 @@ import lombok.Getter;
 @EqualsAndHashCode(
         callSuper = false,
         of = {"id"}
-)
+        )
 public final class Note implements Cloneable, Serializable {
 
     /**
@@ -48,7 +47,7 @@ public final class Note implements Cloneable, Serializable {
 
     @Override
     public Note clone() {
-        Note clone = new Note();
+        final Note clone = new Note();
         clone.id = this.id;
         clone.description = this.description;
         return clone;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/Parameter.java b/src/main/java/fr/inrae/agroclim/indicators/model/Parameter.java
index 14e5644b..91776309 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/Parameter.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/Parameter.java
@@ -19,9 +19,10 @@ package fr.inrae.agroclim.indicators.model;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -38,7 +39,7 @@ import lombok.Setter;
 @EqualsAndHashCode(
         callSuper = false,
         of = {"id", "attribute", "descriptions"}
-)
+        )
 public final class Parameter implements Cloneable, Serializable {
 
     /**
@@ -79,7 +80,7 @@ public final class Parameter implements Cloneable, Serializable {
 
     @Override
     public Parameter clone() throws CloneNotSupportedException {
-        Parameter clone = (Parameter) super.clone();
+        final Parameter clone = (Parameter) super.clone();
         clone.attribute = attribute;
         if (descriptions != null) {
             clone.descriptions = new ArrayList<>();
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/TimeScale.java b/src/main/java/fr/inrae/agroclim/indicators/model/TimeScale.java
index b28cac02..ffbffa05 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/TimeScale.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/TimeScale.java
@@ -18,10 +18,11 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.util.NameableEnumUtils;
 import java.util.Locale;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlType;
+
+import fr.inrae.agroclim.indicators.util.NameableEnumUtils;
+import jakarta.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlType;
 
 /**
  * Timescale of indicators.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/Unit.java b/src/main/java/fr/inrae/agroclim/indicators/model/Unit.java
index 08f97159..6ff82cf4 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/Unit.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/Unit.java
@@ -2,10 +2,11 @@ package fr.inrae.agroclim.indicators.model;
 
 import java.io.Serializable;
 import java.util.List;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlID;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlID;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -23,7 +24,7 @@ import lombok.Setter;
 @EqualsAndHashCode(
         callSuper = false,
         of = {"id", "iri", "labels", "symbols"}
-)
+        )
 public final class Unit implements Cloneable, Serializable {
     /**
      * UUID for Serializable.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/ComparisonCriteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/ComparisonCriteria.java
index 5779acb8..0c63acda 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/ComparisonCriteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/ComparisonCriteria.java
@@ -18,6 +18,12 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.model.Parameter;
@@ -25,15 +31,10 @@ import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NonNull;
@@ -54,7 +55,7 @@ import lombok.ToString;
 @EqualsAndHashCode(
         callSuper = true,
         of = {"leftVariable", "relationalOperator", "rightVariable"}
-)
+        )
 @ToString
 public final class ComparisonCriteria extends Criteria {
 
@@ -155,6 +156,11 @@ public final class ComparisonCriteria extends Criteria {
                 && !res.getMissingVariables().contains(rightVariable.name());
     }
 
+    @Override
+    public void removeParameter(final Parameter param) {
+        // Do nothing for this type of criteria
+    }
+
     @Override
     public void setParametersValues(final Map<String, Double> values) {
         // No parameters for the comparison of variables
@@ -164,18 +170,13 @@ public final class ComparisonCriteria extends Criteria {
     public String toStringTree(final String indent) {
         final StringBuilder sb = new StringBuilder();
         sb.append(indent).append("  class: ")
-                .append(getClass().getName()).append("\n");
+        .append(getClass().getName()).append("\n");
         sb.append(indent).append("  leftVariable: ")
-            .append(leftVariable).append("\n");
+        .append(leftVariable).append("\n");
         sb.append(indent).append("  relationalOperator: ")
-                .append(relationalOperator).append("\n");
+        .append(relationalOperator).append("\n");
         sb.append(indent).append("  rightVariable: ")
-                .append(rightVariable).append("\n");
+        .append(rightVariable).append("\n");
         return sb.toString();
     }
-
-    @Override
-    public void removeParameter(final Parameter param) {
-        // Do nothing for this type of criteria
-    }
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteria.java
index 3f09a9f9..c191e3f2 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteria.java
@@ -16,12 +16,14 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.model.Parameter;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
@@ -29,14 +31,9 @@ import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.HashMap;
-
-import java.util.Map;
-
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NonNull;
-
 import lombok.Setter;
 
 /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/Criteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/Criteria.java
index 8934fd79..493bca82 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/Criteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/Criteria.java
@@ -16,19 +16,12 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import java.io.Serializable;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Computable;
 import fr.inrae.agroclim.indicators.model.HasParameters;
 import fr.inrae.agroclim.indicators.model.Parameter;
@@ -36,6 +29,12 @@ import fr.inrae.agroclim.indicators.model.criteria.visitor.CriteriaVisitable;
 import fr.inrae.agroclim.indicators.model.criteria.visitor.CriteriaVisitor;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.UseVariables;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import lombok.AccessLevel;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -56,8 +55,8 @@ import lombok.Setter;
         callSuper = false,
         of = {"parameters"}
         )
-public abstract class Criteria implements Cloneable, CriteriaVisitable,
-Computable, HasParameters, Serializable, UseVariables {
+public abstract class Criteria
+        implements Cloneable, CriteriaVisitable, Computable, HasParameters, Serializable, UseVariables {
     /**
      * UUID for Serializable.
      */
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteria.java
index 02c5a31d..cefb383b 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteria.java
@@ -26,10 +26,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
@@ -40,6 +36,9 @@ import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.util.Doublet;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -174,9 +173,9 @@ public final class FormulaCriteria extends Criteria {
         final List<Doublet<Parameter, Number>> val = new ArrayList<>();
         if (expressionParameters != null) {
             expressionParameters.forEach(p -> getParameters().stream() //
-                        .filter(a -> p.getName().equals(a.getAttribute())) //
-                        .findFirst() //
-                        .ifPresent(param -> val.add(Doublet.of(param, p.getValue()))));
+                    .filter(a -> p.getName().equals(a.getAttribute())) //
+                    .findFirst() //
+                    .ifPresent(param -> val.add(Doublet.of(param, p.getValue()))));
         }
         return val;
     }
@@ -212,6 +211,11 @@ public final class FormulaCriteria extends Criteria {
         formula = new JEXLFormula();
     }
 
+    @Override
+    public void removeParameter(final Parameter param) {
+        // Do nothing for this type of criteria (override on subclass)
+    }
+
     @Override
     public String toStringTree(final String indent) {
         final StringBuilder sb = new StringBuilder();
@@ -223,9 +227,4 @@ public final class FormulaCriteria extends Criteria {
         }
         return sb.toString();
     }
-
-    @Override
-    public void removeParameter(final Parameter param) {
-        // Do nothing for this type of criteria (override on subclass)
-    }
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/LogicalOperator.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/LogicalOperator.java
index 31a17498..9b1e730c 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/LogicalOperator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/LogicalOperator.java
@@ -16,9 +16,9 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlEnum;
 
 /**
  * Logical operator for the composite criteria.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/NoCriteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/NoCriteria.java
index d6c88efe..ceb461f2 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/NoCriteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/NoCriteria.java
@@ -18,17 +18,16 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import java.util.List;
 import java.util.Map;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlType;
-
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Parameter;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.List;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.ToString;
 
@@ -75,6 +74,11 @@ public final class NoCriteria extends VariableCriteria {
         return Map.of();
     }
 
+    @Override
+    public void removeParameter(final Parameter param) {
+        // Do nothing for this type of criteria
+    }
+
     @Override
     public void setParametersValues(final Map<String, Double> values) {
         // do nothing
@@ -90,9 +94,4 @@ public final class NoCriteria extends VariableCriteria {
         return sb.toString();
     }
 
-    @Override
-    public void removeParameter(final Parameter param) {
-        // Do nothing for this type of criteria
-    }
-
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/RelationalOperator.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/RelationalOperator.java
index 665f71f4..4d42e45f 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/RelationalOperator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/RelationalOperator.java
@@ -20,10 +20,9 @@ package fr.inrae.agroclim.indicators.model.criteria;
 
 import java.util.Objects;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlEnum;
-
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlEnum;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteria.java
index 33703356..47dc30f5 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteria.java
@@ -16,23 +16,22 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Parameter;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.List;
-import java.util.Optional;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -150,20 +149,6 @@ public final class SimpleCriteria extends VariableCriteria {
         return operator.eval(val, getThreshold());
     }
 
-    @Override
-    public List<Doublet<Parameter, Number>> getParameterDefaults() {
-        if (getParameters() == null) {
-            return List.of();
-        }
-        final Optional<Parameter> found = getParameters().stream() //
-                .filter(a -> THRESHOLD.equals(a.getAttribute())) //
-                .findFirst();
-        if (found.isEmpty()) {
-            return List.of();
-        }
-        return List.of(Doublet.of(found.get(), threshold));
-    }
-
     /**
      * @param data
      *            climatic data
@@ -181,6 +166,20 @@ public final class SimpleCriteria extends VariableCriteria {
         return sb.toString();
     }
 
+    @Override
+    public List<Doublet<Parameter, Number>> getParameterDefaults() {
+        if (getParameters() == null) {
+            return List.of();
+        }
+        final Optional<Parameter> found = getParameters().stream() //
+                .filter(a -> THRESHOLD.equals(a.getAttribute())) //
+                .findFirst();
+        if (found.isEmpty()) {
+            return List.of();
+        }
+        return List.of(Doublet.of(found.get(), threshold));
+    }
+
     @Override
     public Map<String, Double> getParametersValues() {
         final Map<String, Double> val = new HashMap<>();
@@ -214,6 +213,13 @@ public final class SimpleCriteria extends VariableCriteria {
         return null;
     }
 
+    @Override
+    public void removeParameter(final Parameter param) {
+        if (this.getParameters() != null) {
+            this.getParameters().remove(param);
+        }
+    }
+
     /**
      * @param value true for comparison inferior or inferior or equal, false for superior or superior or equal.
      */
@@ -297,11 +303,4 @@ public final class SimpleCriteria extends VariableCriteria {
         .append("\n");
         return sb.toString();
     }
-
-    @Override
-    public void removeParameter(final Parameter param) {
-        if (this.getParameters() != null) {
-            this.getParameters().remove(param);
-        }
-    }
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/VariableCriteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/VariableCriteria.java
index 5e58c4f8..f7314bae 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/criteria/VariableCriteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/criteria/VariableCriteria.java
@@ -18,18 +18,17 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import java.util.Objects;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/FileLoader.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/FileLoader.java
index 1023cad3..2b00aa6c 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/FileLoader.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/FileLoader.java
@@ -26,11 +26,6 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlTransient;
-
 import com.fasterxml.jackson.databind.MappingIterator;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectReader;
@@ -42,6 +37,10 @@ import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
 import fr.inrae.agroclim.indicators.resources.Messages;
 import fr.inrae.agroclim.indicators.util.PathUtils;
 import fr.inrae.agroclim.indicators.util.StringUtils;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlTransient;
 import lombok.AccessLevel;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/Variable.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/Variable.java
index 6732bcdb..d96c8ea5 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/Variable.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/Variable.java
@@ -19,12 +19,11 @@ package fr.inrae.agroclim.indicators.model.data;
 import java.util.HashSet;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlEnumValue;
-
 import fr.inrae.agroclim.indicators.model.TimeScale;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlEnumValue;
 import lombok.Getter;
 import lombok.NonNull;
 
@@ -111,6 +110,17 @@ public enum Variable {
         SOIL;
     }
 
+    /**
+     * @param variableName name of variable to find.
+     * @return found variable or null
+     */
+    public static Variable getByName(final String variableName) {
+        if (variableName == null) {
+            throw new NullPointerException("Variable name is null!");
+        }
+        return valueOf(variableName.toUpperCase());
+    }
+
     /**
      * @param timescale time scale of variable
      * @param type type of variable
@@ -144,17 +154,6 @@ public enum Variable {
         return variables;
     }
 
-    /**
-     * @param variableName name of variable to find.
-     * @return found variable or null
-     */
-    public static Variable getByName(final String variableName) {
-        if (variableName == null) {
-            throw new NullPointerException("Variable name is null!");
-        }
-        return valueOf(variableName.toUpperCase());
-    }
-
     /**
      * Related time scales.
      */
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateFileLoader.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateFileLoader.java
index a4ad0ef8..32681224 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateFileLoader.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateFileLoader.java
@@ -31,12 +31,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
 import com.fasterxml.jackson.databind.MappingIterator;
 import com.fasterxml.jackson.databind.ObjectReader;
 import com.fasterxml.jackson.dataformat.csv.CsvMapper;
@@ -52,6 +46,11 @@ import fr.inrae.agroclim.indicators.resources.I18n;
 import fr.inrae.agroclim.indicators.resources.Messages;
 import fr.inrae.agroclim.indicators.util.DateUtils;
 import fr.inrae.agroclim.indicators.util.StringUtils;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
@@ -185,11 +184,11 @@ public final class ClimateFileLoader extends FileLoader implements ClimateLoader
         case DAILY -> {
             df = dateFormat;
             delta = DateUtils.NB_OF_MS_IN_DAY;
-            }
+        }
         case HOURLY -> {
             df = dateTimeFormat;
             delta = DateUtils.NB_OF_MS_IN_HOUR;
-            }
+        }
         default -> throw new IllegalStateException("TimeScale not handled: " + timeScale);
         }
         if (previous.getDate() != null && current.getDate() != null) {
@@ -459,13 +458,6 @@ public final class ClimateFileLoader extends FileLoader implements ClimateLoader
         return data;
     }
 
-    /**
-     * @param locale locale for date formatter
-     */
-    public void setLocale(final Locale locale) {
-        dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);
-        dateTimeFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
-    }
     /**
      * Parse String to Integer, like {@code Integer.parseInt} method.
      * @param value the string value to parsing
@@ -476,9 +468,16 @@ public final class ClimateFileLoader extends FileLoader implements ClimateLoader
         Integer ret;
         try {
             ret = Integer.parseInt(value);
-        } catch (NumberFormatException e) {
+        } catch (final NumberFormatException e) {
             ret = defaultValue;
         }
         return ret;
     }
+    /**
+     * @param locale locale for date formatter
+     */
+    public void setLocale(final Locale locale) {
+        dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+        dateTimeFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
+    }
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateLoaderProxy.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateLoaderProxy.java
index fa44e27c..55d0b61b 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateLoaderProxy.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateLoaderProxy.java
@@ -24,14 +24,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-
 import fr.inrae.agroclim.indicators.model.TimeScale;
 import fr.inrae.agroclim.indicators.model.data.DataLoadingListenerHandler;
 import fr.inrae.agroclim.indicators.model.data.Variable;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/AnnualStageData.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/AnnualStageData.java
index dcaae4bc..d704a6ee 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/AnnualStageData.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/AnnualStageData.java
@@ -22,11 +22,11 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 import fr.inrae.agroclim.indicators.model.data.Data;
 import fr.inrae.agroclim.indicators.resources.Messages;
 import fr.inrae.agroclim.indicators.util.DateUtils;
-import java.util.stream.Collectors;
 import lombok.Getter;
 import lombok.Setter;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhaseEnd.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhaseEnd.java
index 55ead8b9..473c8b60 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhaseEnd.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhaseEnd.java
@@ -16,8 +16,8 @@
  */
 package fr.inrae.agroclim.indicators.model.data.phenology;
 
-import lombok.Getter;
 import lombok.AllArgsConstructor;
+import lombok.Getter;
 
 /**
  * End of phase for PhenologicalModelType.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologicalResource.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologicalResource.java
index 3e33d686..e0e9e9fd 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologicalResource.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologicalResource.java
@@ -20,13 +20,13 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Indicator;
 import fr.inrae.agroclim.indicators.model.indicator.IndicatorCategory;
 import fr.inrae.agroclim.indicators.util.DateUtils;
-import java.util.stream.Collectors;
 import lombok.extern.log4j.Log4j2;
 
 /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculator.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculator.java
index 0990cacf..97888045 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculator.java
@@ -28,17 +28,16 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.StringJoiner;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.model.TimeScale;
 import fr.inrae.agroclim.indicators.model.data.DataLoadingListenerHandler;
 import fr.inrae.agroclim.indicators.model.data.ResourcesLoader;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NonNull;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyFileLoader.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyFileLoader.java
index baacf02c..04e9487a 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyFileLoader.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyFileLoader.java
@@ -26,12 +26,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
 import org.apache.logging.log4j.Level;
 
 import com.fasterxml.jackson.databind.MappingIterator;
@@ -45,6 +39,11 @@ import fr.inrae.agroclim.indicators.model.data.FileLoader;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.ResourcesLoader;
 import fr.inrae.agroclim.indicators.model.data.Variable;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderProxy.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderProxy.java
index 1765dff5..c1b47258 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderProxy.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderProxy.java
@@ -23,16 +23,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlTransient;
-
 import fr.inrae.agroclim.indicators.model.TimeScale;
 import fr.inrae.agroclim.indicators.model.data.DataLoadingListenerHandler;
 import fr.inrae.agroclim.indicators.model.data.ResourcesLoader;
 import fr.inrae.agroclim.indicators.model.data.Variable;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlTransient;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -56,7 +55,7 @@ import lombok.Setter;
         "userHeader"}
         )
 public final class PhenologyLoaderProxy extends DataLoadingListenerHandler
-implements ResourcesLoader<List<AnnualStageData>> {
+        implements ResourcesLoader<List<AnnualStageData>> {
     /**
      * UUID for Serializable.
      */
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/RelativeAnnualStageCalculator.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/RelativeAnnualStageCalculator.java
index eefbb641..aa691c50 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/RelativeAnnualStageCalculator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/RelativeAnnualStageCalculator.java
@@ -21,6 +21,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+
 import lombok.Getter;
 import lombok.Setter;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/StageDelta.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/StageDelta.java
index 8c56c409..ab801623 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/StageDelta.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/phenology/StageDelta.java
@@ -19,10 +19,9 @@ package fr.inrae.agroclim.indicators.model.data.phenology;
 import java.io.Serializable;
 import java.util.Comparator;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/data/soil/SoilLoaderProxy.java b/src/main/java/fr/inrae/agroclim/indicators/model/data/soil/SoilLoaderProxy.java
index c7a7c379..af86fe1e 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/data/soil/SoilLoaderProxy.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/data/soil/SoilLoaderProxy.java
@@ -25,16 +25,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-
 import fr.inrae.agroclim.indicators.model.TimeScale;
 import fr.inrae.agroclim.indicators.model.data.DataLoadingListenerHandler;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
@@ -256,7 +255,7 @@ public final class SoilLoaderProxy extends DataLoadingListenerHandler implements
      */
     public void setClimaticDailyData(final List<ClimaticDailyData> values) {
         this.climaticDailyData = values;
-        if (loader instanceof SoilCalculator calc) {
+        if (loader instanceof final SoilCalculator calc) {
             calc.setClimaticDailyData(values);
         } else {
             LOGGER.warn("No soil loader!");
@@ -294,7 +293,7 @@ public final class SoilLoaderProxy extends DataLoadingListenerHandler implements
      */
     public void setStages(final List<Date> values) {
         this.stages = values;
-        if (loader instanceof SoilCalculator calc) {
+        if (loader instanceof final SoilCalculator calc) {
             calc.setStages(stages);
         }
     }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/AggregationFunction.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/AggregationFunction.java
index 0816bf08..c5f0db25 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/AggregationFunction.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/AggregationFunction.java
@@ -19,11 +19,10 @@ package fr.inrae.agroclim.indicators.model.function.aggregation;
 import java.io.Serializable;
 import java.util.Map;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -37,7 +36,7 @@ import lombok.Setter;
 @EqualsAndHashCode(
         callSuper = false,
         of = {"expression"}
-)
+        )
 public abstract class AggregationFunction implements Serializable {
     /**
      * UUID for Serializable.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/JEXLFunction.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/JEXLFunction.java
index 1e14519f..784951dd 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/JEXLFunction.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/aggregation/JEXLFunction.java
@@ -4,10 +4,9 @@ import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.util.Map;
 
-import javax.xml.bind.annotation.XmlRootElement;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.JEXLFormula;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.EqualsAndHashCode;
 
 /**
@@ -21,7 +20,7 @@ import lombok.EqualsAndHashCode;
 @XmlRootElement
 @EqualsAndHashCode(
         callSuper = true
-)
+        )
 public final class JEXLFunction extends AggregationFunction {
     /**
      * UUID for Serializable.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Exponential.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Exponential.java
index 1ed7d060..c6df7f5a 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Exponential.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Exponential.java
@@ -16,9 +16,8 @@
  */
 package fr.inrae.agroclim.indicators.model.function.normalization;
 
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
-
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -64,8 +63,8 @@ public final class Exponential extends NormalizationFunction {
      */
     public Exponential(final double a, final double b) {
         this();
-            this.expA = a;
-            this.expB = b;
+        this.expA = a;
+        this.expB = b;
     }
 
     /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Linear.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Linear.java
index e50aaceb..53659271 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Linear.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Linear.java
@@ -16,9 +16,8 @@
  */
 package fr.inrae.agroclim.indicators.model.function.normalization;
 
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
-
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinear.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinear.java
index 7a3c6d81..870c12c2 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinear.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinear.java
@@ -24,9 +24,8 @@ import java.util.List;
 import java.util.StringJoiner;
 import java.util.stream.Stream;
 
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinearInterval.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinearInterval.java
index 6591ced0..9352f485 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinearInterval.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/MultiLinearInterval.java
@@ -20,9 +20,8 @@ package fr.inrae.agroclim.indicators.model.function.normalization;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Normal.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Normal.java
index 7befda86..7a6d776b 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Normal.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Normal.java
@@ -16,9 +16,8 @@
  */
 package fr.inrae.agroclim.indicators.model.function.normalization;
 
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
-
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -136,7 +135,7 @@ public final class Normal extends NormalizationFunction {
 
     @Override
     public double normalize(final double value) {
-        double denom = normalA * Math.pow(value - normalC, 2) + normalB
+        final double denom = normalA * Math.pow(value - normalC, 2) + normalB
                 * (value - normalC);
         return 1 / (1 + Math.exp(denom));
     }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/NormalizationFunction.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/NormalizationFunction.java
index babd33a2..ce468110 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/NormalizationFunction.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/NormalizationFunction.java
@@ -19,11 +19,10 @@ package fr.inrae.agroclim.indicators.model.function.normalization;
 import java.io.Serializable;
 import java.util.Locale;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-
 import fr.inrae.agroclim.indicators.model.Nameable;
 import fr.inrae.agroclim.indicators.resources.I18n;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
 import lombok.ToString;
 
 /**
@@ -35,8 +34,7 @@ import lombok.ToString;
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @ToString
-public abstract class NormalizationFunction implements Cloneable, Nameable,
-Serializable {
+public abstract class NormalizationFunction implements Cloneable, Nameable, Serializable {
 
     /**
      * UUID for Serializable.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Sigmoid.java b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Sigmoid.java
index 63f5833a..5a671130 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Sigmoid.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/function/normalization/Sigmoid.java
@@ -16,9 +16,8 @@
  */
 package fr.inrae.agroclim.indicators.model.function.normalization;
 
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
-
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -31,7 +30,7 @@ import lombok.ToString;
 @EqualsAndHashCode(
         callSuper = false,
         of = {"sigmoidA", "sigmoidB"}
-)
+        )
 @ToString
 public final class Sigmoid extends NormalizationFunction {
     /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AggregationIndicator.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AggregationIndicator.java
index 33ad49c7..e3ef49ee 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AggregationIndicator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AggregationIndicator.java
@@ -5,8 +5,6 @@ import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.DoubleStream;
 
-import javax.xml.bind.annotation.XmlElement;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.ThrowingToDoubleFunction;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
@@ -17,6 +15,7 @@ import fr.inrae.agroclim.indicators.model.criteria.VariableCriteria;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
+import jakarta.xml.bind.annotation.XmlElement;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -92,7 +91,7 @@ public abstract class AggregationIndicator extends SimpleIndicatorWithCriteria i
             }
             return aggregate(stream);
         } catch (final RuntimeException ex) {
-            if (ex.getCause() instanceof IndicatorsException iex) {
+            if (ex.getCause() instanceof final IndicatorsException iex) {
                 throw iex;
             }
             throw ex;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiff.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiff.java
index 6b5a1dde..91336014 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiff.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiff.java
@@ -16,16 +16,15 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import java.util.HashSet;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.Getter;
 
 /**
@@ -34,8 +33,7 @@ import lombok.Getter;
  * @author jcufi
  */
 @XmlType(propOrder = {"variable1", "variable2"})
-public final class AverageOfDiff extends SimpleIndicatorWithoutParameters
-implements Detailable {
+public final class AverageOfDiff extends SimpleIndicatorWithoutParameters implements Detailable {
 
     /**
      * UUID for Serializable.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/CompositeIndicator.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/CompositeIndicator.java
index 173d70ba..c0af4e5e 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/CompositeIndicator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/CompositeIndicator.java
@@ -25,11 +25,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.model.Evaluation;
@@ -40,6 +35,7 @@ import fr.inrae.agroclim.indicators.model.Parameter;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Data;
 import fr.inrae.agroclim.indicators.model.data.DataLoadingListener;
+import fr.inrae.agroclim.indicators.model.data.DataLoadingListener.DataFile;
 import fr.inrae.agroclim.indicators.model.data.DataLoadingListenerHandler;
 import fr.inrae.agroclim.indicators.model.data.HasDataLoadingListener;
 import fr.inrae.agroclim.indicators.model.data.Resource;
@@ -51,6 +47,10 @@ import fr.inrae.agroclim.indicators.model.function.normalization.Exponential;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorEvent;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorListener;
 import fr.inrae.agroclim.indicators.util.Doublet;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -71,8 +71,8 @@ import lombok.extern.log4j.Log4j2;
         of = {"aggregationFunction", "indicators", "tag"}
         )
 @Log4j2
-public class CompositeIndicator extends Indicator implements
-DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
+public class CompositeIndicator extends Indicator
+implements DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
 
     /**
      * UUID for Serializable.
@@ -323,8 +323,8 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
         boolean contains = false;
         for (final Indicator indicator : getIndicators()) {
             final String cat = indicator.getCategory();
-            if (indicator instanceof CompositeIndicator compositeIndicator
-                && !IndicatorCategory.PHENO_PHASES.getTag().equals(cat)) {
+            if (indicator instanceof final CompositeIndicator compositeIndicator
+                    && !IndicatorCategory.PHENO_PHASES.getTag().equals(cat)) {
                 contains = compositeIndicator.containsClimaticIndicator();
                 if (!contains) {
                     break;
@@ -385,13 +385,6 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
         return getListeners().getListeners(AggregationFunctionListener.class);
     }
 
-    @Override
-    public final List<Doublet<Parameter, Number>> getParameterDefaults() {
-        final List<Doublet<Parameter, Number>> val = new ArrayList<>();
-        indicators.forEach(i -> val.addAll(i.getParameterDefaults()));
-        return val;
-    }
-
     @Override
     public final DataLoadingListener[] getDataLoadingListeners() {
         return dataLoadingListenerHandler.getDataLoadingListeners();
@@ -407,6 +400,13 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
         return getIndicators().iterator().next();
     }
 
+    @Override
+    public final List<Doublet<Parameter, Number>> getParameterDefaults() {
+        final List<Doublet<Parameter, Number>> val = new ArrayList<>();
+        indicators.forEach(i -> val.addAll(i.getParameterDefaults()));
+        return val;
+    }
+
     @Override
     public final List<Parameter> getParameters() {
         return indicators.stream()
@@ -434,7 +434,7 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
     @Override
     public final EvaluationType getType() {
         Evaluation evaluation = null;
-        if (this instanceof Evaluation eval) {
+        if (this instanceof final Evaluation eval) {
             evaluation = eval;
         } else {
             if (getParent() == null) {
@@ -442,7 +442,7 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
             }
             CompositeIndicator p = (CompositeIndicator) getParent();
             while (p != null) {
-                if (p instanceof Evaluation eval) {
+                if (p instanceof final Evaluation eval) {
                     evaluation = eval;
                     break;
                 }
@@ -500,7 +500,7 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
         }
 
         for (final Indicator indicator : getIndicators()) {
-            if (indicator instanceof CompositeIndicator compositeIndicator
+            if (indicator instanceof final CompositeIndicator compositeIndicator
                     && compositeIndicator.isAggregationMissing(fire)) {
                 isMissing = true;
             }
@@ -627,6 +627,13 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
         return result;
     }
 
+    @Override
+    public final void removeParameter(final Parameter param) {
+        if (getIndicators() != null) {
+            getIndicators().forEach(i -> i.removeParameter(param));
+        }
+    }
+
     /**
      * @param children children indicators
      */
@@ -672,11 +679,4 @@ DataLoadingListener, Detailable, HasDataLoadingListener, Comparable<Indicator> {
         return sb.toString();
     }
 
-    @Override
-    public final void removeParameter(final Parameter param) {
-        if (getIndicators() != null) {
-            getIndicators().forEach(i -> i.removeParameter(param));
-        }
-    }
-
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DayOfYear.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DayOfYear.java
index 8a5dcb18..371a0a6a 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DayOfYear.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DayOfYear.java
@@ -16,14 +16,13 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -39,8 +38,7 @@ import lombok.Setter;
  */
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
-public final class DayOfYear extends SimpleIndicatorWithCriteria
-implements Detailable {
+public final class DayOfYear extends SimpleIndicatorWithCriteria implements Detailable {
     /**
      * Hours in a day.
      */
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DiffOfSum.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DiffOfSum.java
index e0468ca6..94af8966 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DiffOfSum.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/DiffOfSum.java
@@ -23,9 +23,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.Parameter;
@@ -35,6 +32,8 @@ import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorEvent;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorListener;
 import fr.inrae.agroclim.indicators.util.Doublet;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -159,6 +158,16 @@ public final class DiffOfSum extends SimpleIndicator implements Detailable, Indi
         fireIndicatorEvent(e);
     }
 
+    @Override
+    public void removeParameter(final Parameter param) {
+        if (sumVariable1 != null) {
+            sumVariable1.removeParameter(param);
+        }
+        if (sumVariable2 != null) {
+            sumVariable2.removeParameter(param);
+        }
+    }
+
     @Override
     public void setParametersFromKnowledge(final Knowledge knowledge) {
         if (sumVariable1 == null || sumVariable2 == null) {
@@ -206,14 +215,4 @@ public final class DiffOfSum extends SimpleIndicator implements Detailable, Indi
         return sb.toString();
     }
 
-    @Override
-    public void removeParameter(final Parameter param) {
-        if (sumVariable1 != null) {
-            sumVariable1.removeParameter(param);
-        }
-        if (sumVariable2 != null) {
-            sumVariable2.removeParameter(param);
-        }
-    }
-
 }
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Formula.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Formula.java
index bad3df9f..d4114cc0 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Formula.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Formula.java
@@ -29,8 +29,6 @@ import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.DoubleStream;
 
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
@@ -42,7 +40,8 @@ import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Frequency.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Frequency.java
index 30d8e437..3232741f 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Frequency.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Frequency.java
@@ -20,8 +20,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlRootElement;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.Parameter;
@@ -29,6 +27,7 @@ import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.util.Doublet;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.Getter;
 import lombok.Setter;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Indicator.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Indicator.java
index 574114d4..22969b6c 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Indicator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Indicator.java
@@ -25,31 +25,31 @@ import java.util.Map;
 import java.util.Objects;
 
 import javax.swing.event.EventListenerList;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlIDREF;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
 
 import fr.inrae.agroclim.indicators.model.Computable;
 import fr.inrae.agroclim.indicators.model.EvaluationType;
 import fr.inrae.agroclim.indicators.model.HasParameters;
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.LocalizedString;
-import fr.inrae.agroclim.indicators.model.Unit;
 import fr.inrae.agroclim.indicators.model.Nameable;
 import fr.inrae.agroclim.indicators.model.Note;
 import fr.inrae.agroclim.indicators.model.Parameter;
 import fr.inrae.agroclim.indicators.model.Quantifiable;
 import fr.inrae.agroclim.indicators.model.TimeScale;
+import fr.inrae.agroclim.indicators.model.Unit;
 import fr.inrae.agroclim.indicators.model.data.UseVariables;
 import fr.inrae.agroclim.indicators.model.function.normalization.NormalizationFunction;
 import fr.inrae.agroclim.indicators.model.indicator.listener.HasIndicatorListener;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorEvent;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorListener;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlIDREF;
+import jakarta.xml.bind.annotation.XmlSeeAlso;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.AccessLevel;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/InjectedParameter.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/InjectedParameter.java
index 8ac93282..e92eec9e 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/InjectedParameter.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/InjectedParameter.java
@@ -23,13 +23,9 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.Parameter;
@@ -37,7 +33,10 @@ import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.Optional;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/MaxWaveLength.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/MaxWaveLength.java
index dca5dd74..fa25e39b 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/MaxWaveLength.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/MaxWaveLength.java
@@ -16,14 +16,13 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfDays.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfDays.java
index 9ffa5fbf..e9055245 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfDays.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfDays.java
@@ -16,13 +16,12 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * Compute number of days for the criteria.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfWaves.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfWaves.java
index 24ce21fa..c9cfa8ce 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfWaves.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/NumberOfWaves.java
@@ -16,9 +16,9 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
 
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
@@ -26,9 +26,9 @@ import fr.inrae.agroclim.indicators.model.Parameter;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/PotentialSowingDaysFrequency.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/PotentialSowingDaysFrequency.java
index 54dc714d..20639bee 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/PotentialSowingDaysFrequency.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/PotentialSowingDaysFrequency.java
@@ -16,14 +16,15 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.Parameter;
@@ -33,9 +34,7 @@ import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.ArrayList;
-import java.util.Objects;
-import java.util.Optional;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Quotient.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Quotient.java
index 87ec9eef..c3421b7e 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Quotient.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Quotient.java
@@ -23,11 +23,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
 import fr.inrae.agroclim.indicators.model.Knowledge;
@@ -38,6 +33,10 @@ import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorEvent;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorListener;
 import fr.inrae.agroclim.indicators.util.Doublet;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.Getter;
 import lombok.Setter;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicator.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicator.java
index f09ec130..439b5788 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicator.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicator.java
@@ -16,8 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.EvaluationType;
 import fr.inrae.agroclim.indicators.model.data.DailyData;
@@ -25,6 +23,7 @@ import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.function.normalization.NormalizationFunction;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorEvent;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorListener;
+import jakarta.xml.bind.annotation.XmlSeeAlso;
 import lombok.EqualsAndHashCode;
 import lombok.extern.log4j.Log4j2;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicatorWithCriteria.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicatorWithCriteria.java
index a2695d64..854f420e 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicatorWithCriteria.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/SimpleIndicatorWithCriteria.java
@@ -24,8 +24,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 
-import javax.xml.bind.Unmarshaller;
-
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.Parameter;
 import fr.inrae.agroclim.indicators.model.criteria.Criteria;
@@ -35,6 +33,7 @@ import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.function.normalization.NormalizationFunction;
 import fr.inrae.agroclim.indicators.model.indicator.listener.IndicatorEvent;
 import fr.inrae.agroclim.indicators.util.Doublet;
+import jakarta.xml.bind.Unmarshaller;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Sum.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Sum.java
index 2920d04c..daad1941 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Sum.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Sum.java
@@ -18,9 +18,9 @@ package fr.inrae.agroclim.indicators.model.indicator;
 
 import java.util.stream.DoubleStream;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * Somme d'une variable définie dans un SimpleCriteria.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Tamm.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Tamm.java
index a7bf8a88..6033ed4f 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Tamm.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/Tamm.java
@@ -23,8 +23,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlType;
-
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.Parameter;
@@ -33,6 +31,7 @@ import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
 import fr.inrae.agroclim.indicators.util.Doublet;
+import jakarta.xml.bind.annotation.XmlType;
 import lombok.Getter;
 import lombok.Setter;
 
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEvent.java b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEvent.java
index 28e15c55..204b561f 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEvent.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEvent.java
@@ -16,10 +16,11 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator.listener;
 
+import java.util.Objects;
+
 import fr.inrae.agroclim.indicators.model.Evaluation;
 import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Indicator;
-import java.util.Objects;
 import lombok.Getter;
 
 /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/result/EvaluationResult.java b/src/main/java/fr/inrae/agroclim/indicators/model/result/EvaluationResult.java
index 179d9bca..70782bf1 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/result/EvaluationResult.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/result/EvaluationResult.java
@@ -18,6 +18,7 @@ package fr.inrae.agroclim.indicators.model.result;
 
 import java.util.ArrayList;
 import java.util.List;
+
 import lombok.Getter;
 
 /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/result/IndicatorResult.java b/src/main/java/fr/inrae/agroclim/indicators/model/result/IndicatorResult.java
index e6cae561..0d7bd5a3 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/result/IndicatorResult.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/result/IndicatorResult.java
@@ -16,9 +16,10 @@
  */
 package fr.inrae.agroclim.indicators.model.result;
 
-import fr.inrae.agroclim.indicators.model.indicator.IndicatorCategory;
 import java.util.ArrayList;
 import java.util.List;
+
+import fr.inrae.agroclim.indicators.model.indicator.IndicatorCategory;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/model/result/PhaseResult.java b/src/main/java/fr/inrae/agroclim/indicators/model/result/PhaseResult.java
index 1c7e05fd..b83a84da 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/model/result/PhaseResult.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/model/result/PhaseResult.java
@@ -16,9 +16,10 @@
  */
 package fr.inrae.agroclim.indicators.model.result;
 
-import fr.inrae.agroclim.indicators.model.AnnualPhase;
 import java.util.ArrayList;
 import java.util.List;
+
+import fr.inrae.agroclim.indicators.model.AnnualPhase;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
diff --git a/src/main/java/fr/inrae/agroclim/indicators/util/DateUtils.java b/src/main/java/fr/inrae/agroclim/indicators/util/DateUtils.java
index d50dad6c..a4831889 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/util/DateUtils.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/util/DateUtils.java
@@ -22,6 +22,7 @@ import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.TimeZone;
+
 import lombok.NonNull;
 
 /**
diff --git a/src/main/java/fr/inrae/agroclim/indicators/util/ErrorTypeUtils.java b/src/main/java/fr/inrae/agroclim/indicators/util/ErrorTypeUtils.java
index 443a9d90..a056ef3e 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/util/ErrorTypeUtils.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/util/ErrorTypeUtils.java
@@ -1,7 +1,5 @@
 package fr.inrae.agroclim.indicators.util;
 
-import fr.inrae.agroclim.indicators.exception.ErrorType;
-import fr.inrae.agroclim.indicators.resources.I18n;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -10,6 +8,9 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
+import fr.inrae.agroclim.indicators.exception.ErrorType;
+import fr.inrae.agroclim.indicators.resources.I18n;
+
 /**
  * Helper methods to ensure all implementations of {@link ErrorType} are well defined.
  *
diff --git a/src/main/java/fr/inrae/agroclim/indicators/util/NameableEnumUtils.java b/src/main/java/fr/inrae/agroclim/indicators/util/NameableEnumUtils.java
index c2026843..7679a08a 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/util/NameableEnumUtils.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/util/NameableEnumUtils.java
@@ -18,9 +18,10 @@
  */
 package fr.inrae.agroclim.indicators.util;
 
+import java.util.Locale;
+
 import fr.inrae.agroclim.indicators.model.Nameable;
 import fr.inrae.agroclim.indicators.resources.Resources;
-import java.util.Locale;
 
 /**
  * Utils to get localized name of an enum.
diff --git a/src/main/java/fr/inrae/agroclim/indicators/xml/DtdResolver.java b/src/main/java/fr/inrae/agroclim/indicators/xml/DtdResolver.java
index 997f4ce7..da4f8eae 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/xml/DtdResolver.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/xml/DtdResolver.java
@@ -22,12 +22,14 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Map;
 import java.util.Objects;
-import lombok.NonNull;
-import lombok.Setter;
+
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
+import lombok.NonNull;
+import lombok.Setter;
+
 /**
  * Resolver for provided DTD.
  *
diff --git a/src/main/java/fr/inrae/agroclim/indicators/xml/MarshallerBuilder.java b/src/main/java/fr/inrae/agroclim/indicators/xml/MarshallerBuilder.java
index 53d80594..0bcd34ad 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/xml/MarshallerBuilder.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/xml/MarshallerBuilder.java
@@ -18,9 +18,9 @@
  */
 package fr.inrae.agroclim.indicators.xml;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
 import lombok.Setter;
 
 /**
@@ -60,14 +60,8 @@ public final class MarshallerBuilder {
         final Marshaller marshaller = jaxbContext.createMarshaller();
         marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
         marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
-        final String propName;
-        if ("1.8".equals(System.getProperty("java.specification.version"))) {
-            propName = "com.sun.xml.internal.bind.xmlHeaders";
-        } else {
-            propName = "com.sun.xml.bind.xmlHeaders";
-        }
         if (docType != null) {
-            marshaller.setProperty(propName, docType + "\n");
+            marshaller.setProperty("org.glassfish.jaxb.xmlHeaders", docType + "\n");
         }
         if (noNamespaceSchemaLocation != null) {
             marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, noNamespaceSchemaLocation);
diff --git a/src/main/java/fr/inrae/agroclim/indicators/xml/UnmarshallerBuilder.java b/src/main/java/fr/inrae/agroclim/indicators/xml/UnmarshallerBuilder.java
index fbabb8ba..5628e318 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/xml/UnmarshallerBuilder.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/xml/UnmarshallerBuilder.java
@@ -20,20 +20,23 @@ package fr.inrae.agroclim.indicators.xml;
 
 import java.io.InputStream;
 import java.util.Map;
+
 import javax.xml.XMLConstants;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 import javax.xml.transform.Source;
 import javax.xml.transform.sax.SAXSource;
-import lombok.Setter;
+
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
+import lombok.Setter;
+
 /**
  * Builder pattern to configure JAXB Unmarshaller.
  *
diff --git a/src/main/java/fr/inrae/agroclim/indicators/xml/XMLUtil.java b/src/main/java/fr/inrae/agroclim/indicators/xml/XMLUtil.java
index 8dacd948..0a1c8773 100644
--- a/src/main/java/fr/inrae/agroclim/indicators/xml/XMLUtil.java
+++ b/src/main/java/fr/inrae/agroclim/indicators/xml/XMLUtil.java
@@ -16,7 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.xml;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -25,13 +24,13 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
 import java.io.Reader;
+import java.io.StringWriter;
 import java.io.Writer;
 import java.nio.charset.StandardCharsets;
+import java.util.Map;
 
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.Source;
 
@@ -39,12 +38,13 @@ import org.w3c.dom.ls.LSInput;
 import org.w3c.dom.ls.LSResourceResolver;
 import org.xml.sax.SAXException;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.exception.type.XmlErrorType;
 import fr.inrae.agroclim.indicators.model.EvaluationSettings;
 import fr.inrae.agroclim.indicators.model.Knowledge;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Map;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
+import jakarta.xml.bind.Unmarshaller;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
@@ -82,7 +82,7 @@ public abstract class XMLUtil {
             + "    \"https://agroclim.inrae.fr/getari/dtd/1.1/knowledge.dtd\">";
 
     /**
-     * DTD resolver for javax.xml.validation.Validator.
+     * DTD resolver for jakarta.xml.validation.Validator.
      */
     public static final class CustomLSResourceResolver
     implements LSResourceResolver {
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index d269e263..2cb15335 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -22,14 +22,13 @@ module fr.inrae.agroclim.indicators {
     requires com.fasterxml.jackson.databind;
     requires com.fasterxml.jackson.annotation;
     requires com.fasterxml.jackson.core;
-    requires com.sun.xml.bind;
     requires commons.jexl3;
     requires commons.logging;
-    requires transitive java.xml.bind;
-    requires java.activation;
+    requires transitive jakarta.xml.bind;
     requires transitive java.desktop;
     requires org.apache.logging.log4j;
     requires org.apache.logging.log4j.core;
+    requires org.glassfish.jaxb.runtime;
     requires org.json;
 
     exports fr.inrae.agroclim.indicators.exception;
@@ -51,14 +50,14 @@ module fr.inrae.agroclim.indicators {
     exports fr.inrae.agroclim.indicators.util;
     exports fr.inrae.agroclim.indicators.xml;
 
-    opens fr.inrae.agroclim.indicators.model to com.sun.xml.bind, java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.criteria to java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.data to com.fasterxml.jackson.databind, java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.data.climate to java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.data.phenology to java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.data.soil to com.sun.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.function.aggregation to java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.function.listener to java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.function.normalization to java.xml.bind;
-    opens fr.inrae.agroclim.indicators.model.indicator to java.xml.bind;
+    opens fr.inrae.agroclim.indicators.model to jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.criteria to jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.data to com.fasterxml.jackson.databind, jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.data.climate to jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.data.phenology to jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.data.soil to org.glassfish.jaxb.runtime;
+    opens fr.inrae.agroclim.indicators.model.function.aggregation to jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.function.listener to jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.function.normalization to jakarta.xml.bind;
+    opens fr.inrae.agroclim.indicators.model.indicator to jakarta.xml.bind;
 }
diff --git a/src/test/java/fr/inrae/agroclim/indicators/exception/ErrorTypeTest.java b/src/test/java/fr/inrae/agroclim/indicators/exception/ErrorTypeTest.java
index dfed45e2..685ab33f 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/exception/ErrorTypeTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/exception/ErrorTypeTest.java
@@ -1,8 +1,5 @@
 package fr.inrae.agroclim.indicators.exception;
 
-import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
-import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
-import fr.inrae.agroclim.indicators.exception.type.XmlErrorType;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
@@ -14,6 +11,9 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
+import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
+import fr.inrae.agroclim.indicators.exception.type.XmlErrorType;
 import fr.inrae.agroclim.indicators.util.ErrorTypeUtils;
 
 /**
diff --git a/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategoryTest.java b/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategoryTest.java
index 25ea12db..5aa23947 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategoryTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsErrorCategoryTest.java
@@ -1,13 +1,16 @@
 package fr.inrae.agroclim.indicators.exception;
 
-import fr.inrae.agroclim.indicators.resources.I18n;
+import static org.junit.Assert.assertFalse;
+
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
+
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
-import org.junit.Test;
-import static org.junit.Assert.assertFalse;
+
+import fr.inrae.agroclim.indicators.resources.I18n;
 
 /**
  * Ensure all translations of {@link IndicatorsErrorCategory} are well defined.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsExceptionTest.java b/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsExceptionTest.java
index 63988bc0..10efcab0 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsExceptionTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/exception/IndicatorsExceptionTest.java
@@ -1,10 +1,13 @@
 package fr.inrae.agroclim.indicators.exception;
 
-import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
-import java.util.Locale;
 import static org.junit.Assert.assertEquals;
+
+import java.util.Locale;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.type.ComputationErrorType;
+
 /**
  * Test translations and formatting of exception message.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/CulturalPracticesTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/CulturalPracticesTest.java
index 55d2cedd..0e4dae8b 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/CulturalPracticesTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/CulturalPracticesTest.java
@@ -19,17 +19,19 @@
 
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import java.io.File;
-import lombok.extern.log4j.Log4j2;
-
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
 import org.junit.Before;
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import lombok.extern.log4j.Log4j2;
+
 /**
  * Test that evaluation with cultural practices works.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationParametersTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationParametersTest.java
index 63d31fd0..18d76172 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationParametersTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationParametersTest.java
@@ -1,14 +1,17 @@
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import fr.inrae.agroclim.indicators.util.Doublet;
-import java.io.File;
-import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+import java.util.List;
+
 import org.junit.Before;
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import fr.inrae.agroclim.indicators.util.Doublet;
+
 /**
  * Test that {@link Parameter} are well read in an evaluation.
  */
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationRobertTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationRobertTest.java
index e1a505c3..8e99a6bc 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationRobertTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationRobertTest.java
@@ -18,23 +18,26 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
-import fr.inrae.agroclim.indicators.model.result.EvaluationResult;
-import fr.inrae.agroclim.indicators.model.result.IndicatorResult;
-import fr.inrae.agroclim.indicators.model.result.PhaseResult;
-import java.io.File;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
 import org.junit.Before;
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
+import fr.inrae.agroclim.indicators.model.result.EvaluationResult;
+import fr.inrae.agroclim.indicators.model.result.IndicatorResult;
+import fr.inrae.agroclim.indicators.model.result.PhaseResult;
+
 /**
  * Tests for #9718.
  */
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationSettingsTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationSettingsTest.java
index d5849da6..4976e117 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationSettingsTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationSettingsTest.java
@@ -16,10 +16,12 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertTrue;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+
 /**
  * Test for EvaluationSettings.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationWithoutAggregationTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationWithoutAggregationTest.java
index 2394bd37..6572c83e 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationWithoutAggregationTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/EvaluationWithoutAggregationTest.java
@@ -18,11 +18,11 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
-import fr.inrae.agroclim.indicators.model.indicator.Indicator;
-import fr.inrae.agroclim.indicators.xml.XMLUtil;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -31,13 +31,16 @@ import java.io.OutputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+
 import org.junit.Before;
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
+import fr.inrae.agroclim.indicators.model.indicator.Indicator;
+import fr.inrae.agroclim.indicators.xml.XMLUtil;
+
 /**
  * Test for Evaluation.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/EvalutationCustomHeadersTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/EvalutationCustomHeadersTest.java
index 325eaa03..d226c65e 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/EvalutationCustomHeadersTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/EvalutationCustomHeadersTest.java
@@ -18,18 +18,21 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import fr.inrae.agroclim.indicators.model.result.EvaluationResult;
-import java.io.File;
-import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.Map;
+
 import org.junit.Before;
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import fr.inrae.agroclim.indicators.model.result.EvaluationResult;
+
 /**
  * Commons methods to test data proxy and loaders.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/JEXLFormulaTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/JEXLFormulaTest.java
index 908876e5..06e2bbe2 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/JEXLFormulaTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/JEXLFormulaTest.java
@@ -18,15 +18,18 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.data.Variable;
+import static org.junit.Assert.assertEquals;
+
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-import static org.junit.Assert.assertEquals;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.data.Variable;
+
 /**
  * Test JEXLFormula.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeDailyTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeDailyTest.java
index 7ccdb768..8c564e1a 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeDailyTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeDailyTest.java
@@ -16,7 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -34,6 +33,7 @@ import java.util.stream.Collectors;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Indicator;
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeHourlyTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeHourlyTest.java
index e4e0935e..bbff1ed3 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeHourlyTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeHourlyTest.java
@@ -18,6 +18,14 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.criteria.Criteria;
 import fr.inrae.agroclim.indicators.model.criteria.FormulaCriteria;
@@ -25,12 +33,6 @@ import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Formula;
 import fr.inrae.agroclim.indicators.model.indicator.Indicator;
 import fr.inrae.agroclim.indicators.model.indicator.NumberOfDays;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import org.junit.BeforeClass;
-import org.junit.Test;
 
 /**
  * Test the class vs the XML file.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeTest.java
index 651393b6..72d0684e 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/KnowledgeTest.java
@@ -16,7 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -28,6 +27,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -35,13 +35,13 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Indicator;
 import fr.inrae.agroclim.indicators.model.indicator.IndicatorCategory;
 import fr.inrae.agroclim.indicators.model.indicator.NumberOfWaves;
 import fr.inrae.agroclim.indicators.model.indicator.Quotient;
-import java.util.Objects;
 
 /**
  * Test the class vs the XML file.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/LocalizedStringTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/LocalizedStringTest.java
index 72f5be7c..843d0246 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/LocalizedStringTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/LocalizedStringTest.java
@@ -16,12 +16,14 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNull;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/MMarjouTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/MMarjouTest.java
index 75ca9303..82613882 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/MMarjouTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/MMarjouTest.java
@@ -16,22 +16,25 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 import fr.inrae.agroclim.indicators.model.data.phenology.AnnualStageData;
 import fr.inrae.agroclim.indicators.model.result.EvaluationResult;
 import fr.inrae.agroclim.indicators.model.result.IndicatorResult;
 import fr.inrae.agroclim.indicators.model.result.PhaseResult;
-import java.io.File;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 import lombok.extern.log4j.Log4j2;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import org.junit.Before;
-import org.junit.Test;
 
 /**
  * Test that Marine Marjou's Getari file computes.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/NameableTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/NameableTest.java
index 156eeb51..ace35f43 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/NameableTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/NameableTest.java
@@ -18,21 +18,24 @@
  */
 package fr.inrae.agroclim.indicators.model;
 
-import fr.inrae.agroclim.indicators.model.function.normalization.Exponential;
-import fr.inrae.agroclim.indicators.model.function.normalization.Linear;
-import fr.inrae.agroclim.indicators.model.function.normalization.MultiLinear;
-import fr.inrae.agroclim.indicators.model.function.normalization.Normal;
-import fr.inrae.agroclim.indicators.model.function.normalization.Sigmoid;
+import static org.junit.Assert.assertFalse;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
-import lombok.RequiredArgsConstructor;
-import static org.junit.Assert.assertFalse;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import fr.inrae.agroclim.indicators.model.function.normalization.Exponential;
+import fr.inrae.agroclim.indicators.model.function.normalization.Linear;
+import fr.inrae.agroclim.indicators.model.function.normalization.MultiLinear;
+import fr.inrae.agroclim.indicators.model.function.normalization.Normal;
+import fr.inrae.agroclim.indicators.model.function.normalization.Sigmoid;
+import lombok.RequiredArgsConstructor;
+
 /**
  * Test model of translations for Nameable enum or classes.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/RaidayMeantTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/RaidayMeantTest.java
index 1c71ef25..c9c8ba33 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/RaidayMeantTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/RaidayMeantTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
+import java.io.IOException;
 import java.nio.file.Paths;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
@@ -30,6 +31,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.TimeZone;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
@@ -55,8 +57,6 @@ import fr.inrae.agroclim.indicators.model.result.IndicatorResult;
 import fr.inrae.agroclim.indicators.model.result.PhaseResult;
 import fr.inrae.agroclim.indicators.util.DateUtils;
 import fr.inrae.agroclim.indicators.xml.XMLUtil;
-import java.io.IOException;
-import java.util.TimeZone;
 import lombok.NonNull;
 import lombok.extern.log4j.Log4j2;
 
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteriaTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteriaTest.java
index d37518aa..08e536e5 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteriaTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/criteria/CompositeCriteriaTest.java
@@ -16,7 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -25,6 +24,7 @@ import java.util.List;
 
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
 
 /**
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteriaTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteriaTest.java
index deb63d0b..6537d622 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteriaTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/criteria/FormulaCriteriaTest.java
@@ -18,7 +18,6 @@
  */
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -33,6 +32,7 @@ import java.util.Set;
 
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.EvaluationSettings;
 import fr.inrae.agroclim.indicators.model.ExpressionParameter;
 import fr.inrae.agroclim.indicators.model.data.Variable;
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteriaTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteriaTest.java
index 774fefe1..10ad61fe 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteriaTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/criteria/SimpleCriteriaTest.java
@@ -1,6 +1,5 @@
 package fr.inrae.agroclim.indicators.model.criteria;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -14,6 +13,7 @@ import java.nio.charset.StandardCharsets;
 
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
 import fr.inrae.agroclim.indicators.xml.XMLUtil;
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/FileLoaderTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/FileLoaderTest.java
index 450a76a2..cb359ad3 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/FileLoaderTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/FileLoaderTest.java
@@ -18,11 +18,10 @@
  */
 package fr.inrae.agroclim.indicators.model.data;
 
-import fr.inrae.agroclim.indicators.util.PathUtilsTest;
-import java.io.IOException;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
+import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
@@ -31,6 +30,8 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import fr.inrae.agroclim.indicators.util.PathUtilsTest;
+
 /**
  * Test FileLoader.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/VariableTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/VariableTest.java
index 851cc7df..361f9e23 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/VariableTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/VariableTest.java
@@ -18,12 +18,15 @@
  */
 package fr.inrae.agroclim.indicators.model.data;
 
-import fr.inrae.agroclim.indicators.model.TimeScale;
-import java.util.Set;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+
+import java.util.Set;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.model.TimeScale;
+
 /**
  * Test the Variable methods.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateTest.java
index f5b291a9..c892c18a 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimateTest.java
@@ -16,7 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.model.data.climate;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -27,6 +26,7 @@ import java.util.Map;
 
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.EvaluationSettings;
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticDailyDataTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticDailyDataTest.java
index f02ba7b8..a0cc640c 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticDailyDataTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticDailyDataTest.java
@@ -18,11 +18,13 @@
  */
 package fr.inrae.agroclim.indicators.model.data.climate;
 
+import static org.junit.Assert.assertEquals;
+
 import java.time.LocalDateTime;
 import java.time.Month;
 import java.time.ZoneId;
 import java.util.Date;
-import static org.junit.Assert.assertEquals;
+
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticResourceTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticResourceTest.java
index e174fbab..6d3fd7cc 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticResourceTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/climate/ClimaticResourceTest.java
@@ -16,13 +16,13 @@
  */
 package fr.inrae.agroclim.indicators.model.data.climate;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
 
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import static org.junit.Assert.assertEquals;
 
 /**
  * Test Climate resource class.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculatorMethodsTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculatorMethodsTest.java
index df104795..f25b9ccd 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculatorMethodsTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyCalculatorMethodsTest.java
@@ -16,10 +16,9 @@
  */
 package fr.inrae.agroclim.indicators.model.data.phenology;
 
-import com.fasterxml.jackson.databind.MappingIterator;
-import com.fasterxml.jackson.dataformat.csv.CsvMapper;
-import com.fasterxml.jackson.dataformat.csv.CsvParser;
-import com.fasterxml.jackson.dataformat.csv.CsvSchema;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -29,13 +28,17 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import lombok.extern.log4j.Log4j2;
 
 import org.junit.Assert;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 import org.junit.Test;
 
+import com.fasterxml.jackson.databind.MappingIterator;
+import com.fasterxml.jackson.dataformat.csv.CsvMapper;
+import com.fasterxml.jackson.dataformat.csv.CsvParser;
+import com.fasterxml.jackson.dataformat.csv.CsvSchema;
+
+import lombok.extern.log4j.Log4j2;
+
 
 /**
  * Test static methods of Phenology calculator.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderTest.java
index ee655a14..fc543832 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/phenology/PhenologyLoaderTest.java
@@ -16,7 +16,7 @@
  */
 package fr.inrae.agroclim.indicators.model.data.phenology;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
@@ -24,10 +24,10 @@ import java.util.List;
 
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.EvaluationSettings;
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 import fr.inrae.agroclim.indicators.xml.XMLUtil;
-import static org.junit.Assert.assertNotNull;
 
 /**
  * Test Phenology loader class.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/data/soil/SoilCalculatorTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/data/soil/SoilCalculatorTest.java
index 47e88c4a..59293cad 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/data/soil/SoilCalculatorTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/data/soil/SoilCalculatorTest.java
@@ -16,10 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.model.data.soil;
 
-import fr.inrae.agroclim.indicators.exception.ErrorMessage;
-import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
-import fr.inrae.agroclim.indicators.model.Evaluation;
-import fr.inrae.agroclim.indicators.model.EvaluationSettings;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -27,6 +23,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -34,19 +31,22 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.TimeZone;
 
 import org.junit.Before;
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.ErrorMessage;
+import fr.inrae.agroclim.indicators.exception.type.ResourceErrorType;
+import fr.inrae.agroclim.indicators.model.Evaluation;
+import fr.inrae.agroclim.indicators.model.EvaluationSettings;
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 import fr.inrae.agroclim.indicators.model.data.ResourceManager;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticDailyData;
 import fr.inrae.agroclim.indicators.util.DateUtils;
-import java.io.IOException;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.TimeZone;
 
 /**
  * Test Soil data calculator from ClimaticDailyData.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/function/NormalizationFunctionTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/function/NormalizationFunctionTest.java
index 9185f8c7..3182aead 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/function/NormalizationFunctionTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/function/NormalizationFunctionTest.java
@@ -16,6 +16,8 @@
  */
 package fr.inrae.agroclim.indicators.model.function;
 
+import static org.junit.Assert.assertEquals;
+
 import org.junit.Test;
 
 import fr.inrae.agroclim.indicators.model.function.normalization.Exponential;
@@ -24,7 +26,6 @@ import fr.inrae.agroclim.indicators.model.function.normalization.MultiLinear;
 import fr.inrae.agroclim.indicators.model.function.normalization.MultiLinearInterval;
 import fr.inrae.agroclim.indicators.model.function.normalization.Normal;
 import fr.inrae.agroclim.indicators.model.function.normalization.Sigmoid;
-import static org.junit.Assert.assertEquals;
 
 /**
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiffTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiffTest.java
index 7c73ef0c..21fef79a 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiffTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/AverageOfDiffTest.java
@@ -18,15 +18,17 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import fr.inrae.agroclim.indicators.model.data.Variable;
-import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
 import static junit.framework.TestCase.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import fr.inrae.agroclim.indicators.model.data.Variable;
+import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
+
 /**
  * Test {@link AverageOfDiff} indicator.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ColdsumtminTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ColdsumtminTest.java
index 49bbe200..8c5eaf91 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ColdsumtminTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ColdsumtminTest.java
@@ -20,11 +20,11 @@ package fr.inrae.agroclim.indicators.model.indicator;
 
 import static junit.framework.TestCase.assertEquals;
 
+import org.junit.Test;
+
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.criteria.RelationalOperator;
 import fr.inrae.agroclim.indicators.model.criteria.SimpleCriteria;
-import org.junit.Test;
-
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/FrequencyTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/FrequencyTest.java
index 2a0ea149..0d65fff7 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/FrequencyTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/FrequencyTest.java
@@ -18,15 +18,17 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
+import static junit.framework.TestCase.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.criteria.NoCriteria;
 import fr.inrae.agroclim.indicators.model.criteria.SimpleCriteria;
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
-import static junit.framework.TestCase.assertEquals;
-import static org.junit.Assert.assertTrue;
-import org.junit.Test;
 
 /**
  * Test {@link Frequency} indicator.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ImplementationsTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ImplementationsTest.java
index ebe244b2..04454508 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ImplementationsTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/ImplementationsTest.java
@@ -16,17 +16,20 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.Knowledge;
-import java.util.ArrayList;
-import java.util.List;
-import lombok.extern.log4j.Log4j2;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.List;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.Knowledge;
+import lombok.extern.log4j.Log4j2;
+
 /**
  * Test that all indicators defined in knowledge.xml have all implementations.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/IndicatorTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/IndicatorTest.java
index 0ca49112..d1feff8b 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/IndicatorTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/IndicatorTest.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -37,7 +38,6 @@ import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 import fr.inrae.agroclim.indicators.model.data.Resource;
 import fr.inrae.agroclim.indicators.model.data.Variable;
 import fr.inrae.agroclim.indicators.util.Doublet;
-import java.util.List;
 
 /**
  * Test common methods of Indicator.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/PhaseLengthTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/PhaseLengthTest.java
index 72dad372..f1d307f1 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/PhaseLengthTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/PhaseLengthTest.java
@@ -18,13 +18,15 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
 import static junit.framework.TestCase.assertEquals;
 import static org.junit.Assert.assertTrue;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import fr.inrae.agroclim.indicators.model.data.climate.ClimaticResource;
+
 /**
  * Test {@link PhaseLength} indicator.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/CompositeIndicatorTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/CompositeIndicatorTest.java
index 06efd484..3072a16f 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/CompositeIndicatorTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/CompositeIndicatorTest.java
@@ -18,13 +18,15 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator.listener;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
 import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Knowledge;
 import fr.inrae.agroclim.indicators.model.indicator.CompositeIndicator;
 import fr.inrae.agroclim.indicators.model.indicator.Indicator;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import org.junit.Test;
 
 /**
  * Test of CompositeIndicator.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEventTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEventTest.java
index a2e4465a..47fd97ef 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEventTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/IndicatorEventTest.java
@@ -16,11 +16,13 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator.listener;
 
-import fr.inrae.agroclim.indicators.model.Evaluation;
-import fr.inrae.agroclim.indicators.model.indicator.PotentialSowingDaysFrequency;
 import static org.junit.Assert.assertNotNull;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.model.Evaluation;
+import fr.inrae.agroclim.indicators.model.indicator.PotentialSowingDaysFrequency;
+
 /**
  * Test IndicatorEvent.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/PropertyChangeListenerTest.java b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/PropertyChangeListenerTest.java
index 90899b49..68cd6234 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/PropertyChangeListenerTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/model/indicator/listener/PropertyChangeListenerTest.java
@@ -18,17 +18,19 @@
  */
 package fr.inrae.agroclim.indicators.model.indicator.listener;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
-import fr.inrae.agroclim.indicators.model.Knowledge;
-import fr.inrae.agroclim.indicators.model.criteria.SimpleCriteria;
-import fr.inrae.agroclim.indicators.model.indicator.Indicator;
-import fr.inrae.agroclim.indicators.model.indicator.NumberOfDays;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
+import fr.inrae.agroclim.indicators.model.Knowledge;
+import fr.inrae.agroclim.indicators.model.criteria.SimpleCriteria;
+import fr.inrae.agroclim.indicators.model.indicator.Indicator;
+import fr.inrae.agroclim.indicators.model.indicator.NumberOfDays;
+
 /**
  *
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/resources/MessagesTest.java b/src/test/java/fr/inrae/agroclim/indicators/resources/MessagesTest.java
index b0c674f9..e5382384 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/resources/MessagesTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/resources/MessagesTest.java
@@ -17,6 +17,7 @@
 package fr.inrae.agroclim.indicators.resources;
 
 import java.util.Locale;
+
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
diff --git a/src/test/java/fr/inrae/agroclim/indicators/resources/VersionTest.java b/src/test/java/fr/inrae/agroclim/indicators/resources/VersionTest.java
index bf6b2cb5..78db52b0 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/resources/VersionTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/resources/VersionTest.java
@@ -18,6 +18,7 @@ package fr.inrae.agroclim.indicators.resources;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/fr/inrae/agroclim/indicators/util/DeepCopyHelperTest.java b/src/test/java/fr/inrae/agroclim/indicators/util/DeepCopyHelperTest.java
index 4919df60..544e323f 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/util/DeepCopyHelperTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/util/DeepCopyHelperTest.java
@@ -1,14 +1,17 @@
 package fr.inrae.agroclim.indicators.util;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
+import org.junit.Test;
+
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import org.junit.Test;
 
 /**
  * Test {@link DeepCopyHelper}.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/util/PathUtilsTest.java b/src/test/java/fr/inrae/agroclim/indicators/util/PathUtilsTest.java
index 89b26760..2d276743 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/util/PathUtilsTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/util/PathUtilsTest.java
@@ -18,21 +18,25 @@
  */
 package fr.inrae.agroclim.indicators.util;
 
-import com.fasterxml.jackson.databind.MappingIterator;
-import com.fasterxml.jackson.dataformat.csv.CsvMapper;
-import com.fasterxml.jackson.dataformat.csv.CsvSchema;
-import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+import static org.junit.Assert.assertEquals;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import static org.junit.Assert.assertEquals;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import com.fasterxml.jackson.databind.MappingIterator;
+import com.fasterxml.jackson.dataformat.csv.CsvMapper;
+import com.fasterxml.jackson.dataformat.csv.CsvSchema;
+
+import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
+
 /**
  * Test PathUtils.
  *
diff --git a/src/test/java/fr/inrae/agroclim/indicators/util/StageUtilsTest.java b/src/test/java/fr/inrae/agroclim/indicators/util/StageUtilsTest.java
index f7b4b96a..39dc2f0c 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/util/StageUtilsTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/util/StageUtilsTest.java
@@ -16,12 +16,10 @@
  */
 package fr.inrae.agroclim.indicators.util;
 
-import com.fasterxml.jackson.databind.MappingIterator;
-import com.fasterxml.jackson.dataformat.csv.CsvMapper;
-import com.fasterxml.jackson.dataformat.csv.CsvSchema;
-import fr.inrae.agroclim.indicators.model.Evaluation;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -34,13 +32,16 @@ import java.util.Map;
 
 import org.junit.Test;
 
+import com.fasterxml.jackson.databind.MappingIterator;
+import com.fasterxml.jackson.dataformat.csv.CsvMapper;
+import com.fasterxml.jackson.dataformat.csv.CsvSchema;
+
+import fr.inrae.agroclim.indicators.model.Evaluation;
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
 import fr.inrae.agroclim.indicators.model.data.phenology.AnnualStageData;
 import fr.inrae.agroclim.indicators.model.data.phenology.Stage;
 import fr.inrae.agroclim.indicators.model.data.phenology.StageDelta;
 import lombok.extern.log4j.Log4j2;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 
 /**
  * Test StageUtils.
diff --git a/src/test/java/fr/inrae/agroclim/indicators/xml/XMLUtilTest.java b/src/test/java/fr/inrae/agroclim/indicators/xml/XMLUtilTest.java
index 447f6769..d487005f 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/xml/XMLUtilTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/xml/XMLUtilTest.java
@@ -16,7 +16,6 @@
  */
 package fr.inrae.agroclim.indicators.xml;
 
-import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -35,6 +34,7 @@ import java.util.List;
 
 import org.junit.Test;
 
+import fr.inrae.agroclim.indicators.exception.IndicatorsException;
 import fr.inrae.agroclim.indicators.model.Evaluation;
 import fr.inrae.agroclim.indicators.model.EvaluationSettings;
 import fr.inrae.agroclim.indicators.model.Knowledge;
diff --git a/src/test/java/fr/inrae/agroclim/indicators/xml/XsdTest.java b/src/test/java/fr/inrae/agroclim/indicators/xml/XsdTest.java
index eada8c8b..484027a6 100644
--- a/src/test/java/fr/inrae/agroclim/indicators/xml/XsdTest.java
+++ b/src/test/java/fr/inrae/agroclim/indicators/xml/XsdTest.java
@@ -10,6 +10,9 @@ import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.XMLConstants;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
 import javax.xml.transform.Source;
 import javax.xml.transform.sax.SAXSource;
 import javax.xml.validation.Schema;
@@ -22,9 +25,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 
 import fr.inrae.agroclim.indicators.model.data.DataTestHelper;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
 import lombok.extern.log4j.Log4j2;
 
 /**
-- 
GitLab