diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 02a4bab5a92ad8b583b68039ca5323b33bc007fd..dc25365bd5359ab440829cdf58041b39655c9ca9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -48,8 +48,10 @@ cache:
     - .m2/repository/
 
 build:
-  image: maven:3.6-adoptopenjdk-14
+  image: eclipse-temurin:17-jdk-alpine
   stage: build
+  before_script:
+    - apk update && apk add maven
   script:
     - mvn $MAVEN_OPTS compile
     - TRUEVERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
@@ -81,8 +83,10 @@ build:
     - stable
 
 test:
-  image: maven:3.6-adoptopenjdk-14
+  image: eclipse-temurin:17-jdk-alpine
   stage: test
+  before_script:
+    - apk update && apk add maven
   script:
     - find . -name "*.class" -exec touch {} \+
     - mvn $MAVEN_OPTS clean test
@@ -93,8 +97,10 @@ test:
   
 
 package:
-  image: maven:3.6-adoptopenjdk-14
+  image: eclipse-temurin:17-jdk-alpine
   stage: package
+  before_script:
+    - apk update && apk add maven
   script:
     - mvn $MAVEN_OPTS clean install -DskipTests=true
     - cd met4j-toolbox
@@ -128,17 +134,20 @@ deployJar:
     - stable
 
 deploySnapshot:
-  image: maven:3.6-adoptopenjdk-14
+  image: eclipse-temurin:17-jdk-alpine
   stage: deploy
+  before_script:
+    - apk update && apk add maven
   script:
     - mvn $MAVEN_CLI_OPTS deploy -Dmaven.test.skip=true
   only:
     - develop
 
 deployCentral:
-  image: maven:3.6-adoptopenjdk-14
+  image: eclipse-temurin:17-jdk-alpine
   stage: deploy
   before_script:
+    - apk update && apk add maven
     - 'which ssh-agent || ( apt-get update -qy && apt-get install openssh-client -qqy )'
     - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
     - eval $(ssh-agent -s)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 77f7c26765ceab1cc8dd676a3ff09fc71fd6bec8..aa863107b456c4cd5bd6a8414ca7b52f3ed0239e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## Next Release
+
+
+
+
 ## 1.5.0
 
 
diff --git a/Dockerfile b/Dockerfile
index 3d409a37e69226b1e2286c1d6ca0f4354ca058f3..3c8fd528354b26618c6a1b52e6b02da44f11f204 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,6 @@
-FROM adoptopenjdk:11-jdk-hotspot
+FROM eclipse-temurin:17-jdk-alpine
+
+RUN apk update && apk add maven
 
 RUN mkdir -p /opt/bin
 
diff --git a/coverage/pom.xml b/coverage/pom.xml
index 1e6d76466cc3f298811809e5fac679277716591f..2a539ca26414262d46be2f89b3c6a701326d2efb 100644
--- a/coverage/pom.xml
+++ b/coverage/pom.xml
@@ -54,6 +54,9 @@
 
     <properties>
         <maven.deploy.skip>true</maven.deploy.skip>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -93,7 +96,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.5</version>
+                <version>0.8.11</version>
                 <executions>
                     <execution>
                         <id>report-aggregate</id>
diff --git a/met4j-chemUtils/pom.xml b/met4j-chemUtils/pom.xml
index 404dac28b29f1390367e859f6abe2f663b20febb..842b6fdf42820fe3cb1b0ef39b2eab69792ed27d 100644
--- a/met4j-chemUtils/pom.xml
+++ b/met4j-chemUtils/pom.xml
@@ -10,8 +10,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <artifactId>met4j-chemUtils</artifactId>
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>org.openscience.cdk</groupId>
             <artifactId>cdk-bundle</artifactId>
-            <version>2.6</version>
+            <version>2.9</version>
         </dependency>
         <dependency>
             <groupId>fr.inrae.toulouse.metexplore</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <version>3.0.0</version>
+            <version>5.7.0</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
@@ -46,7 +46,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j-core/pom.xml b/met4j-core/pom.xml
index 898ae91a34304b4d14a097b7346db4baaed86334..6edc9ba4e9082d42c91df7985a7c2b2e39d14988 100644
--- a/met4j-core/pom.xml
+++ b/met4j-core/pom.xml
@@ -22,8 +22,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -31,7 +31,7 @@
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
-            <version>3.0</version>
+            <version>3.13.0</version>
         </dependency>
     </dependencies>
 
@@ -40,7 +40,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java
index f9ca3e445769f87c7f5bd5e7c0a887b8ee942f97..9c4cd7b34ad163cdb936a376482ca206a5b5fd83 100755
--- a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java
+++ b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java
@@ -37,7 +37,8 @@
 package fr.inrae.toulouse.metexplore.met4j_core.biodata;
 
 import lombok.Getter;
-import javax.annotation.Nonnull;
+import lombok.NonNull;
+
 import java.util.Objects;
 
 /**
@@ -61,7 +62,7 @@ public abstract class BioParticipant extends BioEntity {
 	 * @param quantity number of units of physicalEntity
 	 */
 
-	public BioParticipant(String id, @Nonnull BioPhysicalEntity physicalEntity, Double quantity) {
+	public BioParticipant(String id, @NonNull BioPhysicalEntity physicalEntity, Double quantity) {
 		super(id);
 		this.physicalEntity=physicalEntity;
 		if(Double.isNaN(quantity) || Double.isInfinite(quantity) || quantity <= 0)
diff --git a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java
index 81e5236a48106efdac0d698b48e03e0c12d0c2ee..5fe8d9d078ac0255b555c080075f9ed78e0e1260 100644
--- a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java
+++ b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java
@@ -36,8 +36,8 @@
 package fr.inrae.toulouse.metexplore.met4j_core.biodata;
 
 import lombok.Getter;
+import lombok.NonNull;
 
-import javax.annotation.Nonnull;
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
 import java.text.NumberFormat;
@@ -61,7 +61,7 @@ public class BioReactant extends BioParticipant {
 	 * @param stoichiometry stoichiometric coefficient
 	 * @param location a {@link fr.inrae.toulouse.metexplore.met4j_core.biodata.BioCompartment}
 	 */
-	protected BioReactant(@Nonnull BioMetabolite metabolite, Double stoichiometry, @Nonnull BioCompartment location) {
+	protected BioReactant(@NonNull BioMetabolite metabolite, Double stoichiometry, @NonNull BioCompartment location) {
 		super(metabolite.getId()+"__"+stoichiometry+"__"+location.getId(), metabolite, stoichiometry);
 		this.location = location;
 	}
diff --git a/met4j-graph/pom.xml b/met4j-graph/pom.xml
index 15bca6259e9eee74db5065a708fa1fd16aa9ebd8..790c6a52e6727cac5f3206932c3fd59aa9664170 100644
--- a/met4j-graph/pom.xml
+++ b/met4j-graph/pom.xml
@@ -16,21 +16,21 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.jgrapht</groupId>
             <artifactId>jgrapht-core</artifactId>
-            <version>1.5.0</version>
+            <version>1.5.2</version>
             <!--memo: once 1.5.2 is available, remove quick-fix in graph.connect.ShortestPath$getShortestPathsUnionList-->
         </dependency>
         <dependency>
             <groupId>org.jgrapht</groupId>
             <artifactId>jgrapht-io</artifactId>
-            <version>1.5.0</version>
+            <version>1.5.2</version>
         </dependency>
         <dependency>
             <groupId>fr.inrae.toulouse.metexplore</groupId>
@@ -59,7 +59,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java
index 76381b6b9632ffe245725614f2db361057d26918..17a32a8b2639ffb1d07e0969ed968bc79f2f7d73 100644
--- a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java
+++ b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java
@@ -310,13 +310,8 @@ public class ShortestPath<V extends BioEntity,E extends Edge<V>, G extends BioGr
 		for(V start : startNodes){
 			for(V end : targetNodes){
 				if(start!=end){
-					try{
-						GraphPath<V, E> p = paths.getPath(start,end);
-						if(p!=null) outputPaths.add(new BioPath<>(p));
-					}catch(NullPointerException e){
-						//Handle JGraphT error which will be fixed in the next release (1.5.2).
-						//See https://github.com/jgrapht/jgrapht/issues/1053
-					}
+					GraphPath<V, E> p = paths.getPath(start,end);
+					if(p!=null) outputPaths.add(new BioPath<>(p));
 				}
 			}
 		}
diff --git a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java
index c3a7b08729205727aa84e18a8c755f5b14767fb2..73a4976abf9f007f708bf42c7e12653fbce95235 100644
--- a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java
+++ b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java
@@ -35,15 +35,13 @@
  */
 package fr.inrae.toulouse.metexplore.met4j_graph.computation.transform;
 
-import java.util.*;
-import java.util.stream.Collectors;
-
-import com.google.common.primitives.Doubles;
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.BioGraph;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.Edge;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.parallel.MergedGraph;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.parallel.MetaEdge;
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity;
+
+import java.util.*;
 
 /**
  * Class used to merges parallel edges.
@@ -222,7 +220,7 @@ public class EdgeMerger {
 		return new Comparator<E>() {
 			@Override
 			public int compare(E e1, E e2) {
-				return Doubles.compare(
+				return Double.compare(
 						g.getEdgeWeight(e2),
 						g.getEdgeWeight(e1)
 				);
@@ -233,7 +231,7 @@ public class EdgeMerger {
 		return new Comparator<E>() {
 			@Override
 			public int compare(E e1, E e2) {
-				return Doubles.compare(
+				return Double.compare(
 						g.getEdgeWeight(e1),
 						g.getEdgeWeight(e2)
 				);
diff --git a/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java b/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java
index c8756056fa03bd0de3921d1604197e38ec89059a..6cc16894987cb0c0460ba1c92ccf63674ccf3fcf 100644
--- a/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java
+++ b/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java
@@ -35,35 +35,23 @@
  */
 package fr.inrae.toulouse.metexplore.met4j_graph;
 
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite;
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction;
 import fr.inrae.toulouse.metexplore.met4j_graph.computation.connect.ShortestPath;
+import fr.inrae.toulouse.metexplore.met4j_graph.computation.connect.weighting.UnweightedPolicy;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.BioPath;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.BioPathUtils;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.compound.CompoundGraph;
 import fr.inrae.toulouse.metexplore.met4j_graph.core.compound.ReactionEdge;
-import fr.inrae.toulouse.metexplore.met4j_graph.io.ExportGraph;
 import fr.inrae.toulouse.metexplore.met4j_mathUtils.matrix.BioMatrix;
-import fr.inrae.toulouse.metexplore.met4j_mathUtils.matrix.EjmlMatrix;
-import fr.inrae.toulouse.metexplore.met4j_graph.computation.connect.weighting.UnweightedPolicy;
-
-import org.apache.bcel.generic.BREAKPOINT;
-import org.junit.BeforeClass;
 import org.junit.Before;
-import org.junit.Test;
 import org.junit.Rule;
+import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction;
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite;
+import java.util.*;
+
+import static org.junit.Assert.assertEquals;
 
 /**
  * test class for {@link BioPathUtils} methods
diff --git a/met4j-io/pom.xml b/met4j-io/pom.xml
index 18d2878abbb6c147fb3d5b70e46c5aaf0711c185..36c255838f1f0be517944e0e049caaacf0dc0671 100644
--- a/met4j-io/pom.xml
+++ b/met4j-io/pom.xml
@@ -17,8 +17,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -35,13 +35,13 @@
         <dependency>
             <groupId>xerces</groupId>
             <artifactId>xercesImpl</artifactId>
-            <version>2.8.0</version>
+            <version>2.12.2</version>
         </dependency>
         <!-- https://mvnrepository.com/artifact/xom/xom -->
         <dependency>
             <groupId>xom</groupId>
             <artifactId>xom</artifactId>
-            <version>1.2.5</version>
+            <version>1.3.9</version>
         </dependency>
         <dependency>
             <groupId>com.sun.jersey</groupId>
@@ -51,12 +51,12 @@
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
-            <version>31.0.1-jre</version>
+            <version>32.1.3-jre</version>
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <version>3.0.0</version>
+            <version>5.7.0</version>
         </dependency>
     </dependencies>
     <build>
@@ -64,7 +64,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java
index 92f0a6ee047e2186390cf2619b2aa8df87463b47..74a3dd6095fe043932803ec27a5581e751cdd2ba 100644
--- a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java
+++ b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java
@@ -36,10 +36,11 @@
 
 package fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin;
 
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity;
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite;
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioNetwork;
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction;
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.collection.BioCollection;
 import fr.inrae.toulouse.metexplore.met4j_io.jsbml.dataTags.AdditionalDataTag;
 import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.tags.ReaderSBML1Compatible;
 import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.tags.ReaderSBML2Compatible;
@@ -49,13 +50,10 @@ import org.sbml.jsbml.CVTerm;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.UniqueNamedSBase;
 
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction;
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.collection.BioCollection;
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity;
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite;
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioNetwork;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
-import static fr.inrae.toulouse.metexplore.met4j_core.utils.StringUtils.*;
+import static fr.inrae.toulouse.metexplore.met4j_core.utils.StringUtils.isVoid;
 
 /**
  * This class is used to parse the MIRIAM annotation of every SBML element.
@@ -88,11 +86,11 @@ public class AnnotationParser implements PackageParser, AdditionalDataTag, Reade
     /**
      * The default annotation pattern:
      * <ul>
-     * <li>http://identifiers.org/([^/]+)/(.*)
+     * <li>http://identifiers.org/([^/]+)[/:](.*)
      * </ul>
      * The first parenthesis group is
      */
-    public static final String defaultAnnotationPattern = "https?://identifiers.org/([^/]+)/(.*)";
+    public static final String defaultAnnotationPattern = "https?://identifiers.org/([^/]+)[/:](.*)";
 
     /**
      * Constructor
diff --git a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java
index a49fe3db5fb94058c6ad67098c69c54d7d0775b0..44d998c38aad1e7d5c6649413fd0501a21250df9 100644
--- a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java
+++ b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java
@@ -91,6 +91,11 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp
 	 */
 	public FBCModelPlugin fbcModel;
 
+	/**
+	 * Indicates if the genes are parsed or not
+	 */
+	public Boolean parseGenes = true;
+
 	/** {@inheritDoc} */
 	@Override
 	public String getAssociatedPackageName() {
@@ -103,6 +108,17 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp
 		return model.isPackageURIEnabled(PackageNamespace);
 	}
 
+
+	public FBCParser(Boolean parseGenes) {
+
+        this.parseGenes = parseGenes;
+    }
+
+	public FBCParser() {
+
+		this.parseGenes = true;
+	}
+
 	/**
 	 * {@inheritDoc}
 	 *
@@ -129,7 +145,10 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp
 		this.setStrictFromFbcModel();
 
 		this.parseParameters();
-		this.parseListOfGeneProducts();
+
+		if(parseGenes) {
+			this.parseListOfGeneProducts();
+		}
 		try {
 			this.parseFluxReactions();
 		} catch (GeneSetException | Met4jSbmlReaderException e) {
@@ -239,7 +258,7 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp
 			GeneAssociation geneAssociation = new GeneAssociation();
 
 			// System.err.println(rxn.getId());
-			if (rxnPlugin.isSetGeneProductAssociation()) {
+			if (parseGenes && rxnPlugin.isSetGeneProductAssociation()) {
 				geneAssociation = this.computeGeneAssocations(rxnPlugin.getGeneProductAssociation().getAssociation());
 			}
 			// System.err.println("out of recursion");
diff --git a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java
index 06fe91e25ac75a58e08cf02eb5cc656511ff8b97..71d4bd8dbeeed10115feeabbddd1d15bf34f0f56 100755
--- a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java
+++ b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java
@@ -245,7 +245,7 @@ public class StringUtils {
 //        	
 //        	codes.add(new Integer(str));
         	
-        	int[] codesInt = new int []{new Integer(str)};
+        	int[] codesInt = new int []{Integer.valueOf(str)};
         	
         	String specialCharacter = new String(codesInt,0, codesInt.length);
         	
diff --git a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java
index 0ea64e6e695c48745d1bcb15232fdc7cee9f087e..a30c7a7969d5a81fe12d922373447be86d9a6cdf 100644
--- a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java
+++ b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java
@@ -38,16 +38,13 @@ package fr.inrae.toulouse.metexplore.met4j_io.annotations;
 
 
 import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite;
+import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioProtein;
 import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction;
 import fr.inrae.toulouse.metexplore.met4j_io.jsbml.attributes.Notes;
-import fr.inrae.toulouse.metexplore.met4j_io.jsbml.attributes.SbmlAnnotation;
-import org.apache.xalan.trace.GenerateEvent;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioProtein;
-
 import java.util.HashSet;
 import java.util.Set;
 
diff --git a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java
index 5681dc1c849bdb24b9fadc15fbf0e40b4c8a1c72..c9142d8b88be3624befd09a5191fe04b781a14ae 100644
--- a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java
+++ b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java
@@ -37,11 +37,15 @@
 package fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader;
 
 import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioNetwork;
+import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.FBCParser;
+import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.PackageParser;
 import org.junit.Test;
 import org.sbml.jsbml.SBMLDocument;
 
 import javax.xml.stream.XMLStreamException;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
 
 import static org.junit.Assert.*;
 import static org.mockito.Mockito.doReturn;
@@ -65,10 +69,33 @@ public class JsbmlReaderTest {
 
         assertEquals(3, network.getReactionsView().size());
 
+        assertEquals(2, network.getGenesView().size());
+
         // Other tests are done on JsbmlToBioNetwork
 
     }
 
+    @Test
+    public void readWithoutGenes() throws IOException, XMLStreamException, Met4jSbmlReaderException {
+
+        JsbmlReader reader = spy(new JsbmlReader("test"));
+
+        SbmlDocMock docMockGenerator  = new SbmlDocMock();
+        SBMLDocument doc = docMockGenerator.doc;
+
+        doReturn(doc).when(reader).sbmlRead();
+
+        BioNetwork network = reader.read(new ArrayList<PackageParser>(Arrays.asList(new FBCParser(false))));
+
+        assertNotNull(network);
+
+        assertEquals(3, network.getReactionsView().size());
+
+        assertEquals(0, network.getGenesView().size());
+
+
+    }
+
     @Test
     public void readWithoutNotes() throws IOException, XMLStreamException, Met4jSbmlReaderException {
         JsbmlReader reader = spy(new JsbmlReader("test"));
diff --git a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java
index 9054ca48250285baa15fec6370b430cd545d24b0..f60f41a35be1e2be275271c654068603c7831023 100644
--- a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java
+++ b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java
@@ -35,9 +35,13 @@
  */
 package fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader;
 
+import fr.inrae.toulouse.metexplore.met4j_io.utils.StringUtils;
 import org.sbml.jsbml.*;
+import org.sbml.jsbml.ext.fbc.*;
 
 import javax.xml.stream.XMLStreamException;
+import java.util.ArrayList;
+import java.util.List;
 
 public class SbmlDocMock {
 
@@ -51,7 +55,7 @@ public class SbmlDocMock {
 
     public SbmlDocMock() {
 
-        doc = new SBMLDocument(3, 1);
+        doc = new SBMLDocument(3, 2);
 
         model = doc.createModel();
 
@@ -83,6 +87,21 @@ public class SbmlDocMock {
         m1.setInitialAmount(2.0);
         m2.setInitialAmount(3.0);
 
+        // Create genes
+        FBCModelPlugin fbcModel = (FBCModelPlugin)  model.getPlugin("http://www.sbml.org/sbml/level3/version1/fbc/version2");
+        GeneProduct gene1 = fbcModel.createGeneProduct();
+        gene1.setId("g1");
+        gene1.setName("g1");
+        gene1.setLabel("g1");
+
+        fbcModel.addGeneProduct(gene1);
+
+        GeneProduct gene2 = fbcModel.createGeneProduct();
+        gene2.setId("g2");
+        gene2.setName("g2");
+        gene2.setLabel("g2");
+
+        fbcModel.addGeneProduct(gene2);
 
         r1 = model.createReaction("r1");
         r1.setName("name1");
@@ -90,8 +109,22 @@ public class SbmlDocMock {
 
         r1.setSBOTerm("SBO:0000167");
 
+        GeneProductRef geneRef1 = new GeneProductRef();
+        geneRef1.setGeneProduct(StringUtils.convertToSID("g1"));
+
+        FBCReactionPlugin rxnPlugin = (FBCReactionPlugin) r1.getPlugin("fbc");
+        GeneProductAssociation GPA = rxnPlugin.createGeneProductAssociation();
+        GPA.setAssociation(geneRef1);
+
         r2 = model.createReaction("r2");
 
+        GeneProductRef geneRef2 = new GeneProductRef();
+        geneRef2.setGeneProduct(StringUtils.convertToSID("g2"));
+
+        FBCReactionPlugin rxn2Plugin = (FBCReactionPlugin) r2.getPlugin("fbc");
+        GeneProductAssociation GPA2 = rxnPlugin.createGeneProductAssociation();
+        GPA.setAssociation(geneRef2);
+
         SpeciesReference m1Ref = new SpeciesReference(m1);
         m1Ref.setStoichiometry(2.0);
 
diff --git a/met4j-mapping/pom.xml b/met4j-mapping/pom.xml
index ed55e7a08b7086e1a5da3861e460316d49eeb086..937aef96dd70633eb3f079e7674bb720caff3a37 100644
--- a/met4j-mapping/pom.xml
+++ b/met4j-mapping/pom.xml
@@ -10,8 +10,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <artifactId>met4j-mapping</artifactId>
@@ -24,12 +24,12 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.12</version>
+            <version>4.13.2</version>
         </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-text</artifactId>
-            <version>1.8</version>
+            <version>1.11.0</version>
             <scope>compile</scope>
         </dependency>
     </dependencies>
@@ -39,7 +39,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java b/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java
index 24ff3608d27890046fc0aaac282585dda9314381..2a182a773fd075ad94ebd4c96c24df751adb47b7 100644
--- a/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java
+++ b/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java
@@ -246,7 +246,7 @@ public class PathwayEnrichment {
         for(BioPathway p : pvalues.keySet()){
             double pval = pvalues.get(p);
             double adjPval = pval*pvalues.size();
-            adjPvalues.put(p, new Double(adjPval));
+            adjPvalues.put(p, Double.valueOf(adjPval));
         }
         return adjPvalues;
     }
@@ -265,7 +265,7 @@ public class PathwayEnrichment {
             BioPathway p = orderedPaths.get(k);
             double pval = pvalues.get(p);
             double adjPval = pval*pvalues.size()/(k+1);
-            adjPvalues.put(p, new Double(adjPval));
+            adjPvalues.put(p, Double.valueOf(adjPval));
         }
         return adjPvalues;
     }
@@ -284,7 +284,7 @@ public class PathwayEnrichment {
             BioPathway p = orderedPaths.get(k);
             double pval = pvalues.get(p);
             double adjPval = pval*(pvalues.size()+1-(k+1));
-            adjPvalues.put(p, new Double(adjPval));
+            adjPvalues.put(p, Double.valueOf(adjPval));
         }
         return adjPvalues;
     }
diff --git a/met4j-mathUtils/pom.xml b/met4j-mathUtils/pom.xml
index a89d93b74486436e6ade399bea00165c8bd70fc6..e5e68a0542aefd654049f22e89cc0030df6b5dcf 100644
--- a/met4j-mathUtils/pom.xml
+++ b/met4j-mathUtils/pom.xml
@@ -17,8 +17,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -39,7 +39,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java b/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java
index aa9f9635caeeb15a85680e21069b4aef85f6c151..ba2d9653ceecf98a748ce164f82446765abfd4a2 100644
--- a/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java
+++ b/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java
@@ -67,9 +67,9 @@ public class SimilarityComputor {
 		if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size");
 		BitSet intersect = (BitSet) fingerprint1.clone();
 		intersect.and(fingerprint2);
-		double a = new Integer(fingerprint1.cardinality()).doubleValue();
-		double b = new Integer(fingerprint2.cardinality()).doubleValue();
-		double c = new Integer(intersect.cardinality()).doubleValue();
+		double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue();
+		double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue();
+		double c = Integer.valueOf(intersect.cardinality()).doubleValue();
 		double dist = c/(a+b-c);
 		return dist;
 	}
@@ -89,9 +89,9 @@ public class SimilarityComputor {
 		if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size");
 		BitSet intersect = (BitSet) fingerprint1.clone();
 		intersect.and(fingerprint2);
-		double a = new Integer(fingerprint1.cardinality()).doubleValue();
-		double b = new Integer(fingerprint2.cardinality()).doubleValue();
-		double c = new Integer(intersect.cardinality()).doubleValue();
+		double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue();
+		double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue();
+		double c = Integer.valueOf(intersect.cardinality()).doubleValue();
 		double dist = (2*c)/(a+b);
 		return dist;
 	}
@@ -111,9 +111,9 @@ public class SimilarityComputor {
 		if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size");
 		BitSet intersect = (BitSet) fingerprint1.clone();
 		intersect.and(fingerprint2);
-		double a = new Integer(fingerprint1.cardinality()).doubleValue();
-		double b = new Integer(fingerprint2.cardinality()).doubleValue();
-		double c = new Integer(intersect.cardinality()).doubleValue();
+		double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue();
+		double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue();
+		double c = Integer.valueOf(intersect.cardinality()).doubleValue();
 		double dist = c/(Math.sqrt(a*b));
 		return dist;
 	}
@@ -133,9 +133,9 @@ public class SimilarityComputor {
 		if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size");
 		BitSet intersect = (BitSet) fingerprint1.clone();
 		intersect.and(fingerprint2);
-		double a = new Integer(fingerprint1.cardinality()).doubleValue();
-		double b = new Integer(fingerprint2.cardinality()).doubleValue();
-		double c = new Integer(intersect.cardinality()).doubleValue();
+		double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue();
+		double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue();
+		double c = Integer.valueOf(intersect.cardinality()).doubleValue();
 		double dist = a+b-(2*c);
 		return dist;
 	}
@@ -154,9 +154,9 @@ public class SimilarityComputor {
 		if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size");
 		BitSet intersect = (BitSet) fingerprint1.clone();
 		intersect.and(fingerprint2);
-		double a = new Integer(fingerprint1.cardinality()).doubleValue();
-		double b = new Integer(fingerprint2.cardinality()).doubleValue();
-		double c = new Integer(intersect.cardinality()).doubleValue();
+		double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue();
+		double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue();
+		double c = Integer.valueOf(intersect.cardinality()).doubleValue();
 		double dist = Math.sqrt(a+b-(2*c));
 		return dist;
 	}
@@ -177,9 +177,9 @@ public class SimilarityComputor {
 		if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size");
 		BitSet intersect = (BitSet) fingerprint1.clone();
 		intersect.and(fingerprint2);
-		double a = new Integer(fingerprint1.cardinality()).doubleValue();
-		double b = new Integer(fingerprint2.cardinality()).doubleValue();
-		double c = new Integer(intersect.cardinality()).doubleValue();
+		double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue();
+		double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue();
+		double c = Integer.valueOf(intersect.cardinality()).doubleValue();
 		double dist = (a+b-(2*c))/(a+b-c);
 		return dist;
 	}
@@ -198,7 +198,7 @@ public class SimilarityComputor {
 		if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size");
 		BitSet xor = (BitSet) fingerprint1.clone();
 		xor.xor(fingerprint2);
-		return new Integer(xor.cardinality()).doubleValue();
+		return Integer.valueOf(xor.cardinality()).doubleValue();
 	}
 	
 	
diff --git a/met4j-reconstruction/pom.xml b/met4j-reconstruction/pom.xml
index d1e7675faab53276a0226ea7e0d2e252a9bac77b..4fc1807001d32338f67b6499902053271c1fa5ab 100644
--- a/met4j-reconstruction/pom.xml
+++ b/met4j-reconstruction/pom.xml
@@ -52,8 +52,8 @@
     <url>http://maven.apache.org</url>
 
     <properties>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
@@ -66,7 +66,7 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.12</version>
+            <version>4.13.2</version>
         </dependency>
     </dependencies>
 
@@ -75,7 +75,7 @@
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j-toolbox/pom.xml b/met4j-toolbox/pom.xml
index 04f64ec42501a60492228dbe2aa7365fc613dbd6..17f3ac7eb60c68ded9d4696925e81f4d3ff656e0 100644
--- a/met4j-toolbox/pom.xml
+++ b/met4j-toolbox/pom.xml
@@ -14,8 +14,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
     <dependencies>
@@ -68,7 +68,12 @@
         <dependency>
             <groupId>org.hibernate.validator</groupId>
             <artifactId>hibernate-validator</artifactId>
-            <version>6.0.17.Final</version>
+            <version>8.0.1.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-model</artifactId>
+            <version>4.0.0-alpha-8</version>
         </dependency>
     </dependencies>
 
@@ -121,14 +126,14 @@
                     <dependency>
                         <groupId>com.github.edwgiz</groupId>
                         <artifactId>maven-shade-plugin.log4j2-cachefile-transformer</artifactId>
-                        <version>2.6.1</version>
+                        <version>2.6.2</version>
                     </dependency>
                 </dependencies>
             </plugin>
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.7</version>
+                <version>0.8.11</version>
                 <executions>
                     <!-- to avoid bugs in some situations -->
                     <execution>
diff --git a/met4j.singularity b/met4j.singularity
index 5fc314cb88eb96c2f2ec32c3ca8aca65d7f8892b..f2d740b47b5cdf9c0d50700673c67aa5b27514ef 100644
--- a/met4j.singularity
+++ b/met4j.singularity
@@ -1,5 +1,5 @@
 Bootstrap: docker
-From: adoptopenjdk:11-jdk-hotspot
+From: eclipse-temurin:17-jdk-alpine
 
 %runscript
     if [ $# -lt 1 ] 
@@ -24,7 +24,7 @@ mvn package
     Maintainer Ludovic.Cottret@inrae.fr
     
 %post
-
+    apk update && apk add maven
     cd /usr/bin && ln -s /opt/bin/met4j.sh
 
 %environment
diff --git a/pom.xml b/pom.xml
index b4f87a2b985f2d6f1b17f28db9ce6ff84d0a4998..59f27808b63a8710fc0ca352d93579da3967aa98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,8 +64,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
         <project.scm.id>forgemia</project.scm.id>
     </properties>
 
@@ -87,8 +87,8 @@
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.8.1</version>
                 <configuration>
-                    <source>11</source>
-                    <target>11</target>
+                    <source>17</source>
+                    <target>17</target>
                 </configuration>
             </plugin>
             <plugin>
@@ -105,7 +105,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
+                <version>3.0.0-M5</version>
             </plugin>
         </plugins>
     </build>
@@ -184,13 +184,13 @@
         <dependency>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>build-helper-maven-plugin</artifactId>
-            <version>3.0.0</version>
+            <version>3.4.0</version>
             <type>maven-plugin</type>
         </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <version>1.18.22</version>
+            <version>1.18.30</version>
             <scope>provided</scope>
         </dependency>
         <dependency>