From 82ae31dbaf8865340597a2d7b561f3527504177e Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Fri, 3 Jan 2025 14:14:11 +0100
Subject: [PATCH] feat: Compatible with Java EE 10 (Jakarta)

---
 .vscode/settings.json                         |  3 +++
 pom.xml                                       | 14 ++++---------
 .../vips/core/service/ModelResource.java      | 14 ++++++-------
 .../coremanager/service/ManagerResource.java  | 14 ++++++-------
 .../nibio/vips/entity/ResultJsonbAdapter.java | 20 ++++++++-----------
 .../nibio/vips/entity/WeatherObservation.java |  4 +---
 .../java/no/nibio/vips/util/ServletUtil.java  |  4 ++--
 src/main/java/no/nibio/vips/util/WebUtil.java |  6 +++---
 .../no/nibio/vips/util/ServletUtilTest.java   |  1 -
 9 files changed, 35 insertions(+), 45 deletions(-)
 create mode 100644 .vscode/settings.json

diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..c5f3f6b
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "java.configuration.updateBuildConfiguration": "interactive"
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e294c31..33b7b8a 100755
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
     </parent>
 
     <artifactId>VIPSCommon</artifactId>
-    <version>2.1.2-SNAPSHOT</version>
+    <version>3.0.0-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <name>VIPSCommon</name>
@@ -70,15 +70,9 @@
             <type>jar</type>
         </dependency>
         <dependency>
-            <groupId>javax</groupId>
-            <artifactId>javaee-api</artifactId>
-            <version>8.0.1</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax</groupId>
-            <artifactId>javaee-web-api</artifactId>
-            <version>8.0.1</version>
+            <groupId>jakarta.platform</groupId>
+            <artifactId>jakarta.jakartaee-api</artifactId>
+            <version>10.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/no/nibio/vips/core/service/ModelResource.java b/src/main/java/no/nibio/vips/core/service/ModelResource.java
index 8eb474b..e878f00 100755
--- a/src/main/java/no/nibio/vips/core/service/ModelResource.java
+++ b/src/main/java/no/nibio/vips/core/service/ModelResource.java
@@ -19,13 +19,13 @@
 
 package no.nibio.vips.core.service;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.ipmdecisions.IPMDecisionsModelConfiguration;
 
diff --git a/src/main/java/no/nibio/vips/coremanager/service/ManagerResource.java b/src/main/java/no/nibio/vips/coremanager/service/ManagerResource.java
index e0fe49b..505e729 100755
--- a/src/main/java/no/nibio/vips/coremanager/service/ManagerResource.java
+++ b/src/main/java/no/nibio/vips/coremanager/service/ManagerResource.java
@@ -20,13 +20,13 @@
 package no.nibio.vips.coremanager.service;
 
 import java.util.Map;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.entity.ModelRunRequest;
 import no.nibio.vips.ipmdecisions.IPMDecisionsModelConfiguration;
 
diff --git a/src/main/java/no/nibio/vips/entity/ResultJsonbAdapter.java b/src/main/java/no/nibio/vips/entity/ResultJsonbAdapter.java
index 2038629..e817226 100644
--- a/src/main/java/no/nibio/vips/entity/ResultJsonbAdapter.java
+++ b/src/main/java/no/nibio/vips/entity/ResultJsonbAdapter.java
@@ -19,22 +19,18 @@
 
 package no.nibio.vips.entity;
 
-import com.bedatadriven.jackson.datatype.jts.JtsModule;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import java.util.Date;
+import java.util.Map;
 import org.locationtech.jts.geom.Geometry;
 import org.locationtech.jts.geom.LineString;
 import org.locationtech.jts.geom.Point;
 import org.locationtech.jts.geom.Polygon;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.Map;
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
-import javax.json.bind.Jsonb;
-import javax.json.bind.JsonbBuilder;
-import javax.json.bind.adapter.JsonbAdapter;
+import com.bedatadriven.jackson.datatype.jts.JtsModule;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.json.Json;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.bind.adapter.JsonbAdapter;
 import no.nibio.vips.gis.GISUtil;
 
 /**
diff --git a/src/main/java/no/nibio/vips/entity/WeatherObservation.java b/src/main/java/no/nibio/vips/entity/WeatherObservation.java
index 196c4c7..13dc33c 100755
--- a/src/main/java/no/nibio/vips/entity/WeatherObservation.java
+++ b/src/main/java/no/nibio/vips/entity/WeatherObservation.java
@@ -20,10 +20,8 @@
 package no.nibio.vips.entity;
 
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.util.Date;
-import javax.json.bind.annotation.JsonbDateFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 
 
 /**
diff --git a/src/main/java/no/nibio/vips/util/ServletUtil.java b/src/main/java/no/nibio/vips/util/ServletUtil.java
index c39a912..077fef5 100755
--- a/src/main/java/no/nibio/vips/util/ServletUtil.java
+++ b/src/main/java/no/nibio/vips/util/ServletUtil.java
@@ -24,8 +24,8 @@ import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.stream.Collectors;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/util/WebUtil.java b/src/main/java/no/nibio/vips/util/WebUtil.java
index dcaedba..1d491d4 100755
--- a/src/main/java/no/nibio/vips/util/WebUtil.java
+++ b/src/main/java/no/nibio/vips/util/WebUtil.java
@@ -19,6 +19,7 @@
 
 package no.nibio.vips.util;
 
+import static java.util.stream.Collectors.toList;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -28,9 +29,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import static java.util.stream.Collectors.toList;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
 import org.apache.commons.validator.routines.UrlValidator;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
@@ -38,6 +36,8 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.message.BasicNameValuePair;
+import jakarta.mail.internet.AddressException;
+import jakarta.mail.internet.InternetAddress;
 
 /**
  * Static convenience methods for common web-related tasks.
diff --git a/src/test/java/no/nibio/vips/util/ServletUtilTest.java b/src/test/java/no/nibio/vips/util/ServletUtilTest.java
index af57c21..cfe2600 100755
--- a/src/test/java/no/nibio/vips/util/ServletUtilTest.java
+++ b/src/test/java/no/nibio/vips/util/ServletUtilTest.java
@@ -18,7 +18,6 @@
  */
 package no.nibio.vips.util;
 
-import javax.servlet.http.HttpServletRequest;
 import junit.framework.TestCase;
 
 /**
-- 
GitLab