From f53c99453e92e117dcf77fe22d5a6de2088b4a69 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Wed, 8 Feb 2023 13:40:37 +0100
Subject: [PATCH] Refactor from javax to jakarta

---
 pom.xml                                       | 45 +++++------
 .../vips/logic/VIPSLogicApplication.java      | 36 +--------
 .../authenticate/AuthenticationFilter.java    | 10 +--
 .../servlet/CropCategoryController.java       | 10 +--
 .../ForecastConfigurationController.java      | 14 ++--
 .../servlet/FrontpageController.java          |  8 +-
 .../controller/servlet/HttpErrorServlet.java  | 10 +--
 .../controller/servlet/LoginController.java   | 15 ++--
 .../controller/servlet/MessageController.java | 76 ++++++++-----------
 .../NotificationSubscriptionController.java   | 14 ++--
 .../servlet/ObservationController.java        | 59 +++++---------
 .../servlet/OrganismController.java           | 14 ++--
 .../servlet/OrganizationController.java       | 10 +--
 .../servlet/OrganizationGroupController.java  | 10 +--
 .../servlet/PointOfInterestController.java    | 14 ++--
 .../servlet/SchedulingController.java         | 14 ++--
 .../controller/servlet/UserController.java    | 22 +++---
 .../controller/session/ForecastBean.java      | 22 +++---
 .../logic/controller/session/MessageBean.java | 24 +++---
 .../controller/session/ObservationBean.java   | 28 +++----
 .../controller/session/OrganismBean.java      | 12 ++-
 .../session/PointOfInterestBean.java          | 14 ++--
 .../controller/session/SchedulingBean.java    | 20 ++---
 .../logic/controller/session/UserBean.java    | 24 +++---
 .../no/nibio/vips/logic/entity/Country.java   | 30 ++++----
 .../nibio/vips/logic/entity/CropCategory.java | 26 +++----
 .../vips/logic/entity/CropCategoryLocal.java  | 16 ++--
 .../logic/entity/CropCategoryLocalPK.java     | 10 +--
 .../no/nibio/vips/logic/entity/CropPest.java  | 18 ++---
 .../no/nibio/vips/logic/entity/Currency.java  | 24 +++---
 .../no/nibio/vips/logic/entity/DbUpdate.java  | 24 +++---
 .../vips/logic/entity/ExternalResource.java   | 34 ++++-----
 .../logic/entity/ExternalResourceType.java    | 24 +++---
 .../logic/entity/ForecastConfiguration.java   | 40 +++++-----
 .../entity/ForecastModelConfiguration.java    | 22 +++---
 .../entity/ForecastModelConfigurationPK.java  | 10 +--
 .../vips/logic/entity/ForecastResult.java     | 26 +++----
 .../vips/logic/entity/ForecastSummary.java    | 18 ++---
 .../vips/logic/entity/ForecastSummaryPK.java  | 12 +--
 .../java/no/nibio/vips/logic/entity/Gis.java  | 20 ++---
 .../vips/logic/entity/HierarchyCategory.java  | 28 +++----
 .../logic/entity/HierarchyCategoryLocale.java | 18 ++---
 .../entity/HierarchyCategoryLocalePK.java     | 10 +--
 .../no/nibio/vips/logic/entity/MapLayer.java  | 23 +++---
 .../no/nibio/vips/logic/entity/Message.java   | 38 +++++-----
 .../logic/entity/MessageIllustration.java     | 22 +++---
 .../MessageIllustrationCaptionLocale.java     | 24 +++---
 .../MessageIllustrationCaptionLocalePK.java   | 10 +--
 .../logic/entity/MessageIllustrationPK.java   | 10 +--
 .../vips/logic/entity/MessageLocale.java      | 30 ++++----
 .../vips/logic/entity/MessageLocalePK.java    | 10 +--
 .../nibio/vips/logic/entity/MessageTag.java   | 32 ++++----
 .../vips/logic/entity/MessageTagLocale.java   | 20 +++--
 .../vips/logic/entity/MessageTagLocalePK.java | 10 +--
 .../vips/logic/entity/ModelInformation.java   | 24 +++---
 .../nibio/vips/logic/entity/Observation.java  | 40 +++++-----
 .../logic/entity/ObservationFormShortcut.java | 28 +++----
 .../entity/ObservationFormShortcutLocale.java | 22 +++---
 .../logic/entity/ObservationIllustration.java | 14 ++--
 .../entity/ObservationIllustrationPK.java     | 10 +--
 .../vips/logic/entity/ObservationMethod.java  | 25 +++---
 .../logic/entity/ObservationStatusType.java   | 20 ++---
 .../no/nibio/vips/logic/entity/Organism.java  | 32 ++++----
 .../entity/OrganismExternalResource.java      | 24 +++---
 .../entity/OrganismExternalResourcePK.java    |  8 +-
 .../vips/logic/entity/OrganismLocale.java     | 16 ++--
 .../vips/logic/entity/OrganismLocalePK.java   | 10 +--
 .../nibio/vips/logic/entity/Organization.java | 35 +++++----
 .../vips/logic/entity/OrganizationGroup.java  | 22 +++---
 .../vips/logic/entity/PointOfInterest.java    | 44 +++++------
 .../PointOfInterestExternalResource.java      | 26 +++----
 .../PointOfInterestExternalResourcePK.java    |  8 +-
 .../logic/entity/PointOfInterestType.java     | 26 +++----
 .../logic/entity/PointOfInterestTypeFarm.java |  6 +-
 .../entity/PointOfInterestTypeField.java      |  6 +-
 .../entity/PointOfInterestTypeRegion.java     |  6 +-
 .../entity/PointOfInterestWeatherStation.java | 24 +++---
 .../vips/logic/entity/PolygonService.java     | 22 +++---
 .../nibio/vips/logic/entity/Preparation.java  | 26 +++----
 .../vips/logic/entity/PreparationType.java    | 24 +++---
 .../nibio/vips/logic/entity/TaskHistory.java  | 30 ++++----
 .../vips/logic/entity/TaskHistoryStatus.java  | 24 +++---
 .../vips/logic/entity/UserAuthentication.java | 24 +++---
 .../logic/entity/UserAuthenticationPK.java    |  8 +-
 .../logic/entity/UserAuthenticationType.java  | 26 +++----
 .../logic/entity/UserPointOfInterest.java     | 16 ++--
 .../logic/entity/UserPointOfInterestPK.java   |  8 +-
 .../no/nibio/vips/logic/entity/UserUuid.java  | 18 ++---
 .../nibio/vips/logic/entity/UserUuidPK.java   |  8 +-
 .../vips/logic/entity/VipsLogicRole.java      | 20 ++---
 .../vips/logic/entity/VipsLogicUser.java      | 42 +++++-----
 .../logic/entity/WeatherForecastProvider.java | 20 ++---
 .../entity/WeatherStationDataSource.java      | 22 +++---
 .../entity/rest/PointMappingRequest.java      |  2 +-
 .../nibio/vips/logic/gis/GeometryEntity.java  | 11 ++-
 .../logic/i18n/CharacterEncodingFilter.java   | 12 +--
 .../vips/logic/i18n/LocalizationFilter.java   | 18 ++---
 .../logic/i18n/ResourceBundleJSServlet.java   |  8 +-
 .../vips/logic/i18n/SessionLocaleUtil.java    |  2 +-
 .../vips/logic/messaging/ForecastEvent.java   | 20 ++---
 ...ForecastEventNotificationSubscription.java | 10 +--
 .../messaging/ForecastNotificationLog.java    | 18 ++---
 .../messaging/ForecastNotificationLogPK.java  | 12 +--
 .../MessageNotificationSubscription.java      | 10 +--
 .../logic/messaging/MessageRecipient.java     |  6 +-
 .../vips/logic/messaging/MessagingBean.java   | 17 ++---
 .../ObservationNotificationSubscription.java  | 10 +--
 .../logic/messaging/UniversalMessage.java     | 26 +++----
 .../messaging/UniversalMessageFormat.java     | 12 +--
 .../UniversalMessagingServiceClient.java      | 10 +--
 .../send/MailMsgDeliveryHandler.java          | 12 +--
 .../send/SmsMsgDeliveryHandler.java           |  2 +-
 .../messaging/sms/SMSHandlingService.java     | 10 +--
 .../messaging/sms/ViaNettCustomerReply.java   |  8 +-
 .../applefruitmoth/AppleFruitMothBean.java    | 12 +--
 .../AppleFruitMothController.java             | 10 +--
 .../applefruitmoth/AppleFruitMothService.java | 18 ++---
 .../applefruitmoth/ObservationSite.java       | 37 +++++----
 .../applefruitmoth/ObservationSitePoint.java  | 38 +++++-----
 .../ObservationSitePointSeasonData.java       | 23 +++---
 .../ObservationSitePointSeasonDataPK.java     |  8 +-
 .../ObservationSiteSeasonCommonData.java      | 23 +++---
 .../ObservationSiteSeasonCommonDataPK.java    |  8 +-
 .../modules/barkbeetle/BarkbeetleBean.java    | 11 ++-
 .../barkbeetle/BarkbeetleController.java      | 12 +--
 .../modules/barkbeetle/BarkbeetleService.java | 25 +++---
 .../barkbeetle/RegistrationStatusType.java    | 20 ++---
 .../modules/barkbeetle/SeasonTrapsite.java    | 46 ++++++-----
 .../barkbeetle/SeasonTrapsiteBivolt.java      | 29 ++++---
 .../barkbeetle/TrapsiteRegistration.java      | 26 +++----
 .../barkbeetle/TrapsiteRegistrationPK.java    |  8 +-
 .../modules/barkbeetle/TrapsiteType.java      | 20 ++---
 .../BarleyNetBlotchModelService.java          | 20 ++---
 .../modules/barleynetblotch/Factors.java      | 20 ++---
 .../PreparationEffectFactor.java              | 18 ++---
 .../modules/roughage/RoughageService.java     | 23 +++---
 .../TerminateSchedulerListener.java           |  2 +-
 ...ptoriaSimpleRiskGridModelPreprocessor.java |  2 +-
 .../AltenariaModelPreprocessor.java           |  3 +-
 ...DeliaRadicumFloralisModelPreprocessor.java |  4 +-
 ...silaRosaeObservationModelPreprocessor.java |  4 +-
 .../SeptoriaApiicolaModelPreprocessor.java    |  3 -
 .../SeptoriaHumidityModelPreprocessor.java    |  3 +-
 .../tasks/DeleteAllExpiredUserUuidsTask.java  |  2 -
 ...castConfigurationsForOrganizationTask.java |  5 +-
 .../RunAllForecastConfigurationsTask.java     |  5 +-
 .../RunForecastConfigurationsByIdTask.java    |  4 +-
 .../scheduling/tasks/RunGridModelsTask.java   |  2 -
 .../SendForecastEventNotificationsTask.java   |  2 -
 .../UpdateForecastResultCacheTableTask.java   |  2 -
 .../tasks/UpdateForecastSummaryTableTask.java |  2 -
 .../tasks/UpdateModelInformationTask.java     |  2 -
 .../logic/service/AuthenticationService.java  | 24 +++---
 .../nibio/vips/logic/service/JSONBConfig.java | 19 +++--
 .../vips/logic/service/JacksonConfig.java     | 11 ++-
 .../vips/logic/service/LogicService.java      | 30 ++++----
 .../vips/logic/service/ModelFormService.java  | 12 +--
 .../logic/service/ObservationService.java     | 37 +++++----
 .../nibio/vips/logic/service/POIService.java  | 22 +++---
 .../vips/logic/service/VIPSMobileService.java | 18 ++---
 .../vips/logic/startup/StartupListener.java   |  8 +-
 .../vips/logic/util/CorsProxyServlet.java     |  8 +-
 .../util/PostgresJSONStringConverter.java     |  4 +-
 .../vips/logic/util/RESTAuthenticator.java    |  8 +-
 .../vips/logic/util/SimpleMailSender.java     | 12 +--
 .../vips/logic/web/TemplateConfigFilter.java  | 16 ++--
 .../vips/logic/web/js/JSEnvironment.java      |  8 +-
 .../observationdata/ObservationDataBean.java  | 10 +--
 .../ObservationDataSchema.java                | 14 ++--
 .../ObservationDataSchemaPK.java              |  8 +-
 .../ObservationDataService.java               | 22 +++---
 .../java/no/nibio/web/forms/FormUtil.java     | 11 +--
 .../no/nibio/web/forms/FormValidator.java     |  6 +-
 .../messaging/UniversalMessagingTest.java     |  4 +-
 174 files changed, 1438 insertions(+), 1590 deletions(-)

diff --git a/pom.xml b/pom.xml
index 8980e03d..9dc16958 100755
--- a/pom.xml
+++ b/pom.xml
@@ -86,9 +86,9 @@
             </exclusions>
         </dependency>
         <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>javax.servlet-api</artifactId>
-            <version>4.0.1</version>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <version>6.0.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -217,20 +217,24 @@
         <dependency>
             <groupId>no.nibio.vips</groupId>
             <artifactId>VIPSCommon</artifactId>
-            <version>2022.1</version>
+            <version>2023.1</version>
         </dependency>
         <dependency>
-            <groupId>javax</groupId>
-            <artifactId>javaee-web-api</artifactId>
-            <version>8.0.1</version>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>jakarta.mail</artifactId>
+            <version>2.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.platform</groupId>
+            <artifactId>jakarta.jakartaee-web-api</artifactId>
+            <version>10.0.0</version>
             <type>jar</type>
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>javax</groupId>
-            <artifactId>javaee-api</artifactId>
-            <version>8.0.1</version>
-            <type>jar</type>
+            <groupId>jakarta.platform</groupId>
+            <artifactId>jakarta.jakartaee-api</artifactId>
+            <version>10.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -253,28 +257,13 @@
             <artifactId>google-api-client</artifactId>
             <version>2.2.0</version>
         </dependency>
-        <!--dependency>
-            <groupId>edu.vt.middleware</groupId>
-            <artifactId>vt-password</artifactId>
-            <version>3.1.2</version>
-        </dependency-->
-        <dependency>
-            <groupId>commons-fileupload</groupId>
-            <artifactId>commons-fileupload</artifactId>
-            <version>1.4</version>
-        </dependency>
+
         <dependency>
             <groupId>com.ibm.icu</groupId>
             <artifactId>icu4j</artifactId>
             <version>72.1</version>
         </dependency>
-        
-        <!--dependency>
-                <groupId>org.postgresql</groupId>
-                <artifactId>postgresql</artifactId>
-                <version>9.4-1211</version>
-                <scope>provided</scope>
-        </dependency-->
+
         <dependency>
             <groupId>org.openjdk.jol</groupId>
             <artifactId>jol-core</artifactId>
diff --git a/src/main/java/no/nibio/vips/logic/VIPSLogicApplication.java b/src/main/java/no/nibio/vips/logic/VIPSLogicApplication.java
index bf95d87c..a824f3e7 100755
--- a/src/main/java/no/nibio/vips/logic/VIPSLogicApplication.java
+++ b/src/main/java/no/nibio/vips/logic/VIPSLogicApplication.java
@@ -20,8 +20,8 @@
 package no.nibio.vips.logic;
 
 import java.util.Set;
-import javax.ws.rs.ApplicationPath;
-import javax.ws.rs.core.Application;
+import jakarta.ws.rs.ApplicationPath;
+import jakarta.ws.rs.core.Application;
 
 /**
  * Responsible for adding REST resources
@@ -70,7 +70,6 @@ public class VIPSLogicApplication extends Application
      */
     private void addRestResourceClasses(Set<Class<?>> resources) {
 
-        resources.add(com.webcohesion.enunciate.rt.EnunciateJaxbContextResolver.class);
         resources.add(no.nibio.vips.logic.messaging.sms.SMSHandlingService.class);
         resources.add(no.nibio.vips.logic.modules.applefruitmoth.AppleFruitMothService.class);
         resources.add(no.nibio.vips.logic.modules.barkbeetle.BarkbeetleService.class);
@@ -85,36 +84,5 @@ public class VIPSLogicApplication extends Application
         resources.add(no.nibio.vips.logic.service.POIService.class);
         resources.add(no.nibio.vips.logic.service.VIPSMobileService.class);
         resources.add(no.nibio.vips.observationdata.ObservationDataService.class);
-        resources.add(org.jboss.resteasy.core.AcceptHeaderByFileSuffixFilter.class);
-        resources.add(org.jboss.resteasy.core.AsynchronousDispatcher.class);
-        resources.add(org.jboss.resteasy.plugins.interceptors.AcceptEncodingGZIPFilter.class);
-        resources.add(org.jboss.resteasy.plugins.interceptors.GZIPDecodingInterceptor.class);
-        resources.add(org.jboss.resteasy.plugins.interceptors.GZIPEncodingInterceptor.class);
-        resources.add(org.jboss.resteasy.plugins.interceptors.MessageSanitizerContainerResponseFilter.class);
-        resources.add(org.jboss.resteasy.plugins.providers.AsyncStreamingOutputProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.ByteArrayProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.DataSourceProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.DefaultBooleanWriter.class);
-        resources.add(org.jboss.resteasy.plugins.providers.DefaultNumberWriter.class);
-        resources.add(org.jboss.resteasy.plugins.providers.DefaultTextPlain.class);
-        resources.add(org.jboss.resteasy.plugins.providers.DocumentProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.FileProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.FileRangeWriter.class);
-        resources.add(org.jboss.resteasy.plugins.providers.FormUrlEncodedProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.IIOImageProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.InputStreamProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.JaxrsFormProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.JaxrsServerFormUrlEncodedProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.MultiValuedParamConverterProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.ReaderProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.SourceProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.StreamingOutputProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.StringTextStar.class);
-        resources.add(org.jboss.resteasy.plugins.providers.jackson.Jackson2JsonpInterceptor.class);
-        resources.add(org.jboss.resteasy.plugins.providers.jackson.PatchMethodFilter.class);
-        resources.add(org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.jackson.UnrecognizedPropertyExceptionHandler.class);
-        resources.add(org.jboss.resteasy.plugins.providers.sse.SseEventProvider.class);
-        resources.add(org.jboss.resteasy.plugins.providers.sse.SseEventSinkInterceptor.class);
     }
 }
\ No newline at end of file
diff --git a/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java b/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java
index aeb950d2..c4e54872 100755
--- a/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java
+++ b/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java
@@ -23,11 +23,11 @@ package no.nibio.vips.logic.authenticate;
 import java.io.IOException;
 import java.net.URLEncoder;
 import java.util.UUID;
-import javax.ejb.EJB;
-import javax.servlet.*;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.servlet.*;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.VipsLogicUser;
 import no.nibio.vips.logic.util.Globals;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java
index f174c13f..807e055f 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java
@@ -23,11 +23,11 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import javax.ejb.EJB;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.CropCategory;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java
index 412e4c54..fb59d51d 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java
@@ -29,13 +29,13 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.UserBean;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/FrontpageController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/FrontpageController.java
index e8227423..dfa817c9 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/FrontpageController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/FrontpageController.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.controller.servlet;
 
 import java.io.IOException;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/HttpErrorServlet.java b/src/main/java/no/nibio/vips/logic/controller/servlet/HttpErrorServlet.java
index 8fc80543..259cffe9 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/HttpErrorServlet.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/HttpErrorServlet.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.controller.servlet;
 
 import java.io.IOException;
-import java.util.Enumeration;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 /**
  *
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
index f490cbcb..47e0d93f 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
@@ -38,15 +38,14 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
-import javax.ejb.EJB;
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.ws.rs.core.Response;
 
-import com.google.api.client.json.gson.GsonFactory;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.UserAuthenticationType;
 import no.nibio.vips.logic.entity.UserUuid;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java
index 5aefe7f7..498e0c8b 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java
@@ -27,15 +27,17 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.annotation.MultipartConfig;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.Part;
 import no.nibio.vips.logic.controller.session.MessageBean;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.Message;
@@ -52,15 +54,15 @@ import no.nibio.web.forms.FormUtil;
 import no.nibio.web.forms.FormValidation;
 import no.nibio.web.forms.FormValidationException;
 import no.nibio.web.forms.FormValidator;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
+
 
 /**
  * @copyright 2014-2022 <a href="http://www.nibio.no/">NIBIO</a>
  * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
  */
+@MultipartConfig(fileSizeThreshold = 1024 * 1024,
+        maxFileSize = 1024 * 1024 * 10,
+        maxRequestSize = 1024 * 1024 * 10 * 5)
 public class MessageController extends HttpServlet {
    
     @PersistenceContext(unitName="VIPSLogic-PU")
@@ -74,7 +76,15 @@ public class MessageController extends HttpServlet {
     
     @EJB
     MessagingBean messagingBean;
-    
+
+    private String getFileName(Part part) {
+        for (String content : part.getHeader("content-disposition").split(";")) {
+            if (content.trim().startsWith("filename"))
+                return content.substring(content.indexOf("=") + 2, content.length() - 1);
+        }
+        return null;
+    }
+
     /** 
      * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
      * @param request servlet request
@@ -268,29 +278,8 @@ public class MessageController extends HttpServlet {
         {
             try
             {
-                Map<String,String[]> parameterMap;
-                List<FileItem> items = null;
-                if(ServletFileUpload.isMultipartContent(request))
-                {
-                    // Create a factory for disk-based file items
-                    DiskFileItemFactory factory = new DiskFileItemFactory();
-
-                    // Configure a repository (to ensure a secure temp location is used)
-                    ServletContext servletContext = this.getServletConfig().getServletContext();
-                    File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
-                    factory.setRepository(repository);
-
-                    // Create a new file upload handler
-                    ServletFileUpload upload = new ServletFileUpload(factory);
+                Map<String,String[]> parameterMap = request.getParameterMap();
 
-                    // Parse the request
-                    items = upload.parseRequest(request);
-                    parameterMap = FormUtil.getParameterMap(items,"UTF-8");
-                }
-                else
-                {
-                    parameterMap = request.getParameterMap();
-                }
                 
                 // Validate form fields (except uploaded file)
                 FormValidation formValidation = FormValidator.validateForm("messageForm", parameterMap,SessionLocaleUtil.getI18nBundle(request),getServletContext());
@@ -313,16 +302,11 @@ public class MessageController extends HttpServlet {
                         message = messageBean.deleteMessageIllustration(message);
                     }
                     // Store the new illustration (replaces former illustration if not already deleted)
-                    if(items != null)
+                    Part illustration = request.getPart("illustration");
+                    if(illustration != null && illustration.getSize() > 0)
                     {
-                        for(FileItem item:items)
-                        {
-                            if(!item.isFormField() && item.getSize() > 0)
-                            {
-                                message = messageBean.storeMessageIllustration(message, item);
-                            }
-                        }
-                    }   
+                                message = messageBean.storeMessageIllustration(message, illustration);
+                    }
                     // If an illustration is attached to the message, update the caption
                     messageBean.updateMessageIllustrationCaption(message, 
                                 formValidation.getFormField("messageIllustrationCaptionLocale").getWebValue(),
@@ -364,7 +348,7 @@ public class MessageController extends HttpServlet {
                     request.getRequestDispatcher("/messageForm.ftl").forward(request, response);
                 }
             }
-            catch(NullPointerException | NumberFormatException | FormValidationException | FileUploadException  ex)
+            catch(NullPointerException | NumberFormatException | FormValidationException   ex)
             {
                 ex.printStackTrace();
                 response.sendError(500, ExceptionUtil.getStackTrace(ex));
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java
index 64a65fe4..68bba832 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java
@@ -23,13 +23,13 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.util.List;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.PointOfInterestBean;
 import no.nibio.vips.logic.controller.session.UserBean;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
index 8cdcbb17..be7f70d0 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
@@ -33,14 +33,15 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.Part;
 import no.nibio.vips.logic.controller.session.ObservationBean;
 import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.PointOfInterestBean;
@@ -66,13 +67,10 @@ import no.nibio.web.forms.FormUtil;
 import no.nibio.web.forms.FormValidation;
 import no.nibio.web.forms.FormValidationException;
 import no.nibio.web.forms.FormValidator;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
+
 
 /**
- * @copyright 2014-2022 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2014-2023 <a href="http://www.nibio.no/">NIBIO</a>
  * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
  */
 public class ObservationController extends HttpServlet {
@@ -409,29 +407,8 @@ public class ObservationController extends HttpServlet {
                 {
                     try
                     {
-                        Map<String,String[]> parameterMap;
-                        List<FileItem> items = null;
-                        if(ServletFileUpload.isMultipartContent(request))
-                        {
-                            // Create a factory for disk-based file items
-                            DiskFileItemFactory factory = new DiskFileItemFactory();
-
-                            // Configure a repository (to ensure a secure temp location is used)
-                            ServletContext servletContext = this.getServletConfig().getServletContext();
-                            File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
-                            factory.setRepository(repository);
+                        Map<String,String[]> parameterMap = request.getParameterMap();
 
-                            // Create a new file upload handler
-                            ServletFileUpload upload = new ServletFileUpload(factory);
-
-                            // Parse the request
-                            items = upload.parseRequest(request);
-                            parameterMap = FormUtil.getParameterMap(items,"UTF-8");
-                        }
-                        else
-                        {
-                            parameterMap = request.getParameterMap();
-                        }
                         FormValidation formValidation = FormValidator.validateForm("observationForm", parameterMap, SessionLocaleUtil.getI18nBundle(request), getServletContext());
                         Integer observationId = formValidation.getFormField("observationId").getValueAsInteger();
                         Observation observation = observationId > 0 ? em.find(Observation.class, observationId) : new Observation();
@@ -519,14 +496,12 @@ public class ObservationController extends HttpServlet {
                             }
 
                             // Store the new illustration (replaces former illustration if not already deleted)
-                            if(items != null)
+                            List<Part> fileItems = request.getParts().stream().filter(p->p.getName().equals("illustration") && p.getSize() >0).collect(Collectors.toList());
+                            if(fileItems != null)
                             {
-                                for(FileItem item:items)
+                                for(Part item:fileItems)
                                 {
-                                    if(!item.isFormField() && item.getSize() > 0)
-                                    {
-                                        observation = observationBean.storeObservationIllustration(observation, item);
-                                    }
+                                    observation = observationBean.storeObservationIllustration(observation, item);
                                 }
                             }
                             
@@ -564,7 +539,7 @@ public class ObservationController extends HttpServlet {
                         }
 
                     }
-                    catch(NullPointerException | NumberFormatException | FormValidationException | FileUploadException ex)
+                    catch(NullPointerException | NumberFormatException | FormValidationException ex)
                     {
                         response.sendError(500, ExceptionUtil.getStackTrace(ex));
                     }
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java
index 4fe1f614..27b581a7 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java
@@ -24,13 +24,13 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.entity.CropPest;
 import no.nibio.vips.logic.entity.Organism;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
index d1398554..0cf7f3c2 100644
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
@@ -23,11 +23,11 @@ import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
 import java.util.TimeZone;
-import javax.ejb.EJB;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.gis.GISUtil;
 import no.nibio.vips.gis.LonLatStringFormatException;
 import no.nibio.vips.logic.controller.session.UserBean;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java
index cbca3e42..270ab43a 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java
@@ -20,11 +20,11 @@ package no.nibio.vips.logic.controller.servlet;
 
 import java.io.IOException;
 import java.util.List;
-import javax.ejb.EJB;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.Organization;
 import no.nibio.vips.logic.entity.OrganizationGroup;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
index 1f3d4026..32f581f6 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
@@ -28,13 +28,13 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.entity.Country;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.ModelInformation;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java
index 9f64ce0d..e0a3e0ef 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java
@@ -28,13 +28,13 @@ import java.text.MessageFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.SchedulingBean;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.TaskHistory;
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java
index fc9eeadf..66138628 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java
@@ -30,18 +30,16 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.NonUniqueResultException;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import no.nibio.vips.i18n.LanguageUtil;
+
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.NonUniqueResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.DeleteUserException;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.Organization;
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
index 215e0815..5321daa8 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
@@ -45,17 +45,17 @@ import java.util.UUID;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.GenericType;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.coremanager.service.ManagerResource;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.ModelRunRequest;
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/MessageBean.java b/src/main/java/no/nibio/vips/logic/controller/session/MessageBean.java
index e0d08001..d4d0f079 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/MessageBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/MessageBean.java
@@ -27,11 +27,12 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.servlet.http.Part;
 import no.nibio.vips.logic.entity.Message;
 import no.nibio.vips.logic.entity.MessageIllustration;
 import no.nibio.vips.logic.entity.MessageIllustrationCaptionLocale;
@@ -44,11 +45,10 @@ import no.nibio.vips.logic.entity.Organization;
 import no.nibio.vips.logic.entity.VipsLogicUser;
 import no.nibio.vips.logic.util.SystemTime;
 import no.nibio.web.forms.FormField;
-import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.io.FilenameUtils;
 
 /**
- * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2014-2023 <a href="http://www.nibio.no/">NIBIO</a>
  * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
  */
 @Stateless
@@ -203,17 +203,17 @@ public class MessageBean {
                         + message.getOrganizationId();
     }
     
-    public Message storeMessageIllustration(Message message, FileItem item) throws Exception {
+    public Message storeMessageIllustration(Message message, Part item) throws Exception {
         // Create a candidate filename
         // [MESSAGE_ILLUSTRATION_PATH]/[ORGANIZATION_ID]/[MESSAGE_ID]_illustration.[fileExtension]
         String filePath = this.getFilePath(message);
-        String fileName = message.getMessageId() + "_illustration." + FilenameUtils.getExtension(item.getName());
+        String fileName = message.getMessageId() + "_illustration." + FilenameUtils.getExtension(item.getSubmittedFileName());
         // Check availability, and adapt filename until available
         Integer fileNameSuffix = 1;
         File illustration = new File(filePath + "/" + fileName);
         while(illustration.exists())
         {
-            fileName = message.getMessageId() + "_illustration_" + fileNameSuffix + "." + FilenameUtils.getExtension(item.getName());
+            fileName = message.getMessageId() + "_illustration_" + fileNameSuffix + "." + FilenameUtils.getExtension(item.getSubmittedFileName());
             illustration = new File(filePath + "/" + fileName);
             fileNameSuffix++;
         }
@@ -225,7 +225,7 @@ public class MessageBean {
         }
 
         // Store file
-        item.write(illustration);
+        item.write(illustration.getAbsolutePath());
         
         // Update MessageIllustrations
         message = em.merge(message);
@@ -357,7 +357,7 @@ public class MessageBean {
     /**
      * Based on given ids from form, returns a double set of tags:
      * the ones selected (key="selected") and the ones not selected ("notSelected")
-     * @param parameterValues
+     * @param selectedFilterMessageTagIds
      * @return 
      */
     public Map<String, List<MessageTag>> getFilterMessageTags(List<Integer> selectedFilterMessageTagIds) {
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java
index e7ce0624..ea9e340b 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java
@@ -43,13 +43,14 @@ import java.util.Map.Entry;
 import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.ejb.EJB;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.Part;
 import no.nibio.vips.logic.entity.CropCategory;
 import no.nibio.vips.logic.entity.Gis;
 import no.nibio.vips.logic.entity.Observation;
@@ -67,7 +68,6 @@ import no.nibio.vips.logic.util.SystemTime;
 import org.apache.commons.codec.binary.Base64;
 import no.nibio.vips.observationdata.ObservationDataSchema;
 import no.nibio.vips.observationdata.ObservationDataSchemaPK;
-import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.io.FilenameUtils;
 import org.wololo.geojson.Feature;
 import org.wololo.geojson.FeatureCollection;
@@ -431,17 +431,17 @@ public class ObservationBean {
 		catch(IOException ex) {ex.printStackTrace(); return observation;}
     }
 
-    public Observation storeObservationIllustration(Observation observation, FileItem item) throws Exception {
+    public Observation storeObservationIllustration(Observation observation, Part item) throws Exception {
         // Create a candidate filename
         // [OBSERVATION_ILLUSTRATION_PATH]/[ORGANIZATION_ID]/[OBSERVATION_ID]_illustration.[fileExtension]
         String filePath = this.getFilePath(observation);
-        String fileName = observation.getObservationId() + "_illustration." + FilenameUtils.getExtension(item.getName());
+        String fileName = observation.getObservationId() + "_illustration." + FilenameUtils.getExtension(item.getSubmittedFileName());
         // Check availability, and adapt filename until available
         Integer fileNameSuffix = 1;
         File illustration = new File(filePath + "/" + fileName);
         while(illustration.exists())
         {
-            fileName = observation.getObservationId() + "_illustration_" + fileNameSuffix + "." + FilenameUtils.getExtension(item.getName());
+            fileName = observation.getObservationId() + "_illustration_" + fileNameSuffix + "." + FilenameUtils.getExtension(item.getSubmittedFileName());
             illustration = new File(filePath + "/" + fileName);
             fileNameSuffix++;
         }
@@ -453,7 +453,7 @@ public class ObservationBean {
         }
 
         // Store file
-        item.write(illustration);
+        item.write(illustration.getAbsolutePath());
         
         // Update MessageIllustrations
         observation = em.merge(observation);
@@ -842,7 +842,6 @@ public class ObservationBean {
      * If no existing schema, returns the standard (Requring just a number)
      * @param organizationId
      * @param organismId
-     * @param httpServletRequest
      * @return 
      */
     public ObservationDataSchema getObservationDataSchema(Integer organizationId, Integer organismId)
@@ -865,8 +864,9 @@ public class ObservationBean {
     
     /**
      * If there exist title translations for this schema, it
-     * @param schema
+     * @param ods
      * @param httpServletRequest
+     * @param locale
      * @return 
      */
     public ObservationDataSchema getLocalizedObservationDataSchema(ObservationDataSchema ods, HttpServletRequest httpServletRequest, ULocale locale) throws IOException
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/OrganismBean.java b/src/main/java/no/nibio/vips/logic/controller/session/OrganismBean.java
index 88676131..968abef1 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/OrganismBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/OrganismBean.java
@@ -19,8 +19,6 @@
 
 package no.nibio.vips.logic.controller.session;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ibm.icu.util.ULocale;
 
 import java.time.Instant;
@@ -34,11 +32,11 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
 import no.nibio.vips.logic.entity.CropCategory;
 import no.nibio.vips.logic.entity.CropPest;
 import no.nibio.vips.logic.entity.DbUpdate;
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java b/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java
index 6f624f3d..96a17e2a 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java
@@ -33,13 +33,13 @@ import java.util.List;
 import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
-import javax.ejb.LocalBean;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
+import jakarta.ejb.EJB;
+import jakarta.ejb.LocalBean;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
 import no.nibio.vips.logic.entity.ExternalResource;
 import no.nibio.vips.logic.entity.ExternalResourceType;
 import no.nibio.vips.logic.entity.Organization;
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
index a0131b2d..2424205a 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
@@ -38,16 +38,16 @@ import java.util.Set;
 import java.util.SortedMap;
 import java.util.TimeZone;
 import java.util.TreeMap;
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.GenericType;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.coremanager.service.ManagerResource;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.ModelRunRequest;
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java b/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java
index 557e418a..9fc44ff9 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java
@@ -41,18 +41,18 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import javax.ejb.EJB;
-import javax.ejb.LocalBean;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.NonUniqueResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.servlet.http.HttpServletRequest;
-import javax.validation.ConstraintViolation;
-import javax.validation.ConstraintViolationException;
-import javax.ws.rs.core.HttpHeaders;
+import jakarta.ejb.EJB;
+import jakarta.ejb.LocalBean;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.NonUniqueResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.ConstraintViolationException;
+import jakarta.ws.rs.core.HttpHeaders;
 
 import no.nibio.vips.logic.authenticate.PasswordValidationException;
 import no.nibio.vips.logic.entity.Country;
diff --git a/src/main/java/no/nibio/vips/logic/entity/Country.java b/src/main/java/no/nibio/vips/logic/entity/Country.java
index e4aec681..77fbcbf5 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Country.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Country.java
@@ -22,21 +22,21 @@ package no.nibio.vips.logic.entity;
 import java.io.Serializable;
 import java.util.Locale;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/CropCategory.java b/src/main/java/no/nibio/vips/logic/entity/CropCategory.java
index dcaea235..660da343 100755
--- a/src/main/java/no/nibio/vips/logic/entity/CropCategory.java
+++ b/src/main/java/no/nibio/vips/logic/entity/CropCategory.java
@@ -24,19 +24,19 @@ import java.io.Serializable;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import no.nibio.vips.logic.util.IntegerArrayUserType;
 import org.hibernate.annotations.Type;
 
diff --git a/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocal.java b/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocal.java
index 32fe771b..8e70b954 100755
--- a/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocal.java
+++ b/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocal.java
@@ -20,14 +20,14 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocalPK.java b/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocalPK.java
index e4c8aa4f..54ce96d4 100755
--- a/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocalPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/CropCategoryLocalPK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/CropPest.java b/src/main/java/no/nibio/vips/logic/entity/CropPest.java
index 7b72b171..b5567ed1 100755
--- a/src/main/java/no/nibio/vips/logic/entity/CropPest.java
+++ b/src/main/java/no/nibio/vips/logic/entity/CropPest.java
@@ -20,15 +20,15 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import no.nibio.vips.logic.util.IntegerArrayUserType;
 import org.hibernate.annotations.Type;
 
diff --git a/src/main/java/no/nibio/vips/logic/entity/Currency.java b/src/main/java/no/nibio/vips/logic/entity/Currency.java
index 3a685a00..4f35bca5 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Currency.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Currency.java
@@ -20,19 +20,17 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import java.util.Collection;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/DbUpdate.java b/src/main/java/no/nibio/vips/logic/entity/DbUpdate.java
index d0c10cce..8fc4af2b 100644
--- a/src/main/java/no/nibio/vips/logic/entity/DbUpdate.java
+++ b/src/main/java/no/nibio/vips/logic/entity/DbUpdate.java
@@ -21,18 +21,18 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2021 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ExternalResource.java b/src/main/java/no/nibio/vips/logic/entity/ExternalResource.java
index eeb49f0c..591aa84c 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ExternalResource.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ExternalResource.java
@@ -21,23 +21,23 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToMany;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/ExternalResourceType.java b/src/main/java/no/nibio/vips/logic/entity/ExternalResourceType.java
index 228c4935..b25b9e39 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ExternalResourceType.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ExternalResourceType.java
@@ -20,18 +20,18 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java b/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java
index 6b800a15..ad418902 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java
@@ -21,29 +21,29 @@ package no.nibio.vips.logic.entity;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.util.List;
 import java.util.TimeZone;
-import javax.persistence.Transient;
+import jakarta.persistence.Transient;
 import no.nibio.vips.logic.util.IntegerArrayUserType;
 import no.nibio.vips.util.WeatherUtil;
 import org.hibernate.annotations.Type;
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfiguration.java b/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfiguration.java
index aa14a6a3..b9d9b1fa 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfiguration.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfiguration.java
@@ -20,17 +20,17 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfigurationPK.java b/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfigurationPK.java
index 78b778a4..52cec563 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfigurationPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastModelConfigurationPK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java b/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
index d886aa58..d6fc17a6 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
@@ -27,19 +27,19 @@ import java.util.Map;
 import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Transient;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import no.nibio.vips.entity.Result;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastSummary.java b/src/main/java/no/nibio/vips/logic/entity/ForecastSummary.java
index 15f347d7..33ed2cb6 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastSummary.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastSummary.java
@@ -21,15 +21,15 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastSummaryPK.java b/src/main/java/no/nibio/vips/logic/entity/ForecastSummaryPK.java
index f17218ad..435537eb 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastSummaryPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastSummaryPK.java
@@ -21,12 +21,12 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/Gis.java b/src/main/java/no/nibio/vips/logic/entity/Gis.java
index 7ee47bb6..14ef58f3 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Gis.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Gis.java
@@ -23,16 +23,16 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.locationtech.jts.geom.Coordinate;
 import org.locationtech.jts.geom.Geometry;
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlRootElement;
 //import org.hibernate.annotations.Type;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/HierarchyCategory.java b/src/main/java/no/nibio/vips/logic/entity/HierarchyCategory.java
index 39731548..b48fafbe 100755
--- a/src/main/java/no/nibio/vips/logic/entity/HierarchyCategory.java
+++ b/src/main/java/no/nibio/vips/logic/entity/HierarchyCategory.java
@@ -21,20 +21,20 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocale.java b/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocale.java
index b570d4de..44ae372a 100755
--- a/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocale.java
+++ b/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocale.java
@@ -20,16 +20,14 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocalePK.java b/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocalePK.java
index 7e7a73d7..e30812ce 100755
--- a/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocalePK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/HierarchyCategoryLocalePK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/MapLayer.java b/src/main/java/no/nibio/vips/logic/entity/MapLayer.java
index 286f5593..159b1920 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MapLayer.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MapLayer.java
@@ -19,19 +19,18 @@
 
 package no.nibio.vips.logic.entity;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/Message.java b/src/main/java/no/nibio/vips/logic/entity/Message.java
index 566c2bf3..622c19ef 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Message.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Message.java
@@ -25,25 +25,25 @@ import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Transient;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import no.nibio.vips.logic.util.IntegerArrayUserType;
 import org.hibernate.annotations.Type;
 
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageIllustration.java b/src/main/java/no/nibio/vips/logic/entity/MessageIllustration.java
index 067da725..af9d535b 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageIllustration.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageIllustration.java
@@ -21,17 +21,17 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocale.java b/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocale.java
index 132227d4..619081de 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocale.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocale.java
@@ -20,18 +20,18 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinColumns;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinColumns;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocalePK.java b/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocalePK.java
index 0cdaf3b5..fea6dd95 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocalePK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationCaptionLocalePK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationPK.java b/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationPK.java
index f412d7d1..96acf38e 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageIllustrationPK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageLocale.java b/src/main/java/no/nibio/vips/logic/entity/MessageLocale.java
index e0d568a4..f4472f64 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageLocale.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageLocale.java
@@ -21,21 +21,21 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageLocalePK.java b/src/main/java/no/nibio/vips/logic/entity/MessageLocalePK.java
index 908b8b0a..cfb364a6 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageLocalePK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageLocalePK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageTag.java b/src/main/java/no/nibio/vips/logic/entity/MessageTag.java
index 8c96c11b..c065c56a 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageTag.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageTag.java
@@ -21,22 +21,22 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.ManyToMany;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageTagLocale.java b/src/main/java/no/nibio/vips/logic/entity/MessageTagLocale.java
index 781f2bcd..20699bbe 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageTagLocale.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageTagLocale.java
@@ -20,17 +20,15 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/MessageTagLocalePK.java b/src/main/java/no/nibio/vips/logic/entity/MessageTagLocalePK.java
index d81eab9c..ac2c706a 100755
--- a/src/main/java/no/nibio/vips/logic/entity/MessageTagLocalePK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/MessageTagLocalePK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ModelInformation.java b/src/main/java/no/nibio/vips/logic/entity/ModelInformation.java
index 54859b14..6af1e0c0 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ModelInformation.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ModelInformation.java
@@ -21,18 +21,18 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/Observation.java b/src/main/java/no/nibio/vips/logic/entity/Observation.java
index 6f50d16b..bc39b52d 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Observation.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Observation.java
@@ -20,32 +20,32 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import javax.validation.constraints.NotNull;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.NotNull;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import javax.persistence.CascadeType;
-import javax.persistence.FetchType;
-import javax.persistence.OneToMany;
-import javax.validation.constraints.Size;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.OneToMany;
+import jakarta.validation.constraints.Size;
 import no.nibio.vips.logic.util.GISEntityUtil;
 import no.nibio.vips.gis.GISUtil;
 import no.nibio.vips.logic.entity.rest.ObservationListItem;
diff --git a/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcut.java b/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcut.java
index 350cb424..d378c476 100644
--- a/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcut.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcut.java
@@ -21,20 +21,20 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2017 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcutLocale.java b/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcutLocale.java
index 470eaeba..4e311076 100644
--- a/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcutLocale.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ObservationFormShortcutLocale.java
@@ -20,17 +20,17 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2017 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ObservationIllustration.java b/src/main/java/no/nibio/vips/logic/entity/ObservationIllustration.java
index 6bd1c630..6679ed97 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ObservationIllustration.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ObservationIllustration.java
@@ -20,13 +20,13 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ObservationIllustrationPK.java b/src/main/java/no/nibio/vips/logic/entity/ObservationIllustrationPK.java
index ebbc9246..8ad04aa4 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ObservationIllustrationPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ObservationIllustrationPK.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ObservationMethod.java b/src/main/java/no/nibio/vips/logic/entity/ObservationMethod.java
index 52e80081..983e2983 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ObservationMethod.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ObservationMethod.java
@@ -20,20 +20,17 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/ObservationStatusType.java b/src/main/java/no/nibio/vips/logic/entity/ObservationStatusType.java
index 1d36fe45..bf983747 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ObservationStatusType.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ObservationStatusType.java
@@ -20,16 +20,16 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/Organism.java b/src/main/java/no/nibio/vips/logic/entity/Organism.java
index 612cfaec..b0079c3d 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Organism.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Organism.java
@@ -24,22 +24,22 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013-2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResource.java b/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResource.java
index d88fe971..3aabe19b 100755
--- a/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResource.java
+++ b/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResource.java
@@ -21,18 +21,18 @@ package no.nibio.vips.logic.entity;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResourcePK.java b/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResourcePK.java
index fa621067..32f8bb10 100755
--- a/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResourcePK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/OrganismExternalResourcePK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/OrganismLocale.java b/src/main/java/no/nibio/vips/logic/entity/OrganismLocale.java
index 92d95108..faa791bf 100755
--- a/src/main/java/no/nibio/vips/logic/entity/OrganismLocale.java
+++ b/src/main/java/no/nibio/vips/logic/entity/OrganismLocale.java
@@ -20,14 +20,14 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013-2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/OrganismLocalePK.java b/src/main/java/no/nibio/vips/logic/entity/OrganismLocalePK.java
index 985a98d6..e251e038 100755
--- a/src/main/java/no/nibio/vips/logic/entity/OrganismLocalePK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/OrganismLocalePK.java
@@ -19,11 +19,11 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/Organization.java b/src/main/java/no/nibio/vips/logic/entity/Organization.java
index aaa394b8..a1678197 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Organization.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Organization.java
@@ -22,25 +22,24 @@ package no.nibio.vips.logic.entity;
 import org.locationtech.jts.geom.Point;
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import javax.persistence.FetchType;
-import javax.persistence.OneToOne;
-import org.hibernate.annotations.Type;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.OneToOne;
 
 /**
  * @copyright 2019 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/OrganizationGroup.java b/src/main/java/no/nibio/vips/logic/entity/OrganizationGroup.java
index 09e386d9..83af2d3a 100755
--- a/src/main/java/no/nibio/vips/logic/entity/OrganizationGroup.java
+++ b/src/main/java/no/nibio/vips/logic/entity/OrganizationGroup.java
@@ -20,17 +20,17 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java
index db7fc933..e6ffeb2d 100755
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java
@@ -22,31 +22,31 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.DiscriminatorColumn;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.DiscriminatorColumn;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Inheritance;
+import jakarta.persistence.InheritanceType;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.locationtech.jts.geom.Geometry;
 import java.util.Set;
-import javax.persistence.CascadeType;
-import javax.persistence.DiscriminatorType;
-import javax.persistence.DiscriminatorValue;
-import javax.persistence.FetchType;
-import javax.persistence.OneToMany;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.DiscriminatorType;
+import jakarta.persistence.DiscriminatorValue;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.OneToMany;
 import no.nibio.vips.gis.GISUtil;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResource.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResource.java
index ca355c3e..5c2574a4 100755
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResource.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResource.java
@@ -21,19 +21,19 @@ package no.nibio.vips.logic.entity;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 
 /**
  * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResourcePK.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResourcePK.java
index b023906a..a23bcbe1 100755
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResourcePK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestExternalResourcePK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestType.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestType.java
index ee2a94eb..512e03b1 100755
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestType.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestType.java
@@ -20,19 +20,19 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.DiscriminatorColumn;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.DiscriminatorColumn;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Inheritance;
+import jakarta.persistence.InheritanceType;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeFarm.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeFarm.java
index 2ba5ad33..7e5b1437 100644
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeFarm.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeFarm.java
@@ -20,9 +20,9 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.DiscriminatorValue;
-import javax.persistence.Entity;
-import javax.persistence.Table;
+import jakarta.persistence.DiscriminatorValue;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
 
 /**
  * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeField.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeField.java
index 651a4324..139a4192 100644
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeField.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeField.java
@@ -20,9 +20,9 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.DiscriminatorValue;
-import javax.persistence.Entity;
-import javax.persistence.Table;
+import jakarta.persistence.DiscriminatorValue;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
 
 /**
  * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeRegion.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeRegion.java
index 20ea5b4d..dcfe4685 100644
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeRegion.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeRegion.java
@@ -20,9 +20,9 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.DiscriminatorValue;
-import javax.persistence.Entity;
-import javax.persistence.Table;
+import jakarta.persistence.DiscriminatorValue;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
 
 /**
  * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestWeatherStation.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestWeatherStation.java
index 85804f24..a68f203d 100755
--- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestWeatherStation.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestWeatherStation.java
@@ -20,19 +20,19 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.DiscriminatorValue;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.DiscriminatorValue;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import javax.persistence.Transient;
+import jakarta.persistence.Transient;
 
 /**
  * Extension of {@see PointOfInterest}, with additional info for weather stations
diff --git a/src/main/java/no/nibio/vips/logic/entity/PolygonService.java b/src/main/java/no/nibio/vips/logic/entity/PolygonService.java
index 609bd3a7..a86b175d 100644
--- a/src/main/java/no/nibio/vips/logic/entity/PolygonService.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PolygonService.java
@@ -20,17 +20,17 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2019 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/Preparation.java b/src/main/java/no/nibio/vips/logic/entity/Preparation.java
index fd56a79d..dd85e110 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Preparation.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Preparation.java
@@ -21,19 +21,19 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.math.BigInteger;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/PreparationType.java b/src/main/java/no/nibio/vips/logic/entity/PreparationType.java
index 623c0234..26ccf81f 100755
--- a/src/main/java/no/nibio/vips/logic/entity/PreparationType.java
+++ b/src/main/java/no/nibio/vips/logic/entity/PreparationType.java
@@ -22,18 +22,18 @@ package no.nibio.vips.logic.entity;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.io.Serializable;
 import java.util.Collection;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/TaskHistory.java b/src/main/java/no/nibio/vips/logic/entity/TaskHistory.java
index 5b5d334d..ccc8d6c7 100755
--- a/src/main/java/no/nibio/vips/logic/entity/TaskHistory.java
+++ b/src/main/java/no/nibio/vips/logic/entity/TaskHistory.java
@@ -21,21 +21,21 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/TaskHistoryStatus.java b/src/main/java/no/nibio/vips/logic/entity/TaskHistoryStatus.java
index 256c1077..47a498f0 100755
--- a/src/main/java/no/nibio/vips/logic/entity/TaskHistoryStatus.java
+++ b/src/main/java/no/nibio/vips/logic/entity/TaskHistoryStatus.java
@@ -21,18 +21,18 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/UserAuthentication.java b/src/main/java/no/nibio/vips/logic/entity/UserAuthentication.java
index 64e0ef26..72657681 100755
--- a/src/main/java/no/nibio/vips/logic/entity/UserAuthentication.java
+++ b/src/main/java/no/nibio/vips/logic/entity/UserAuthentication.java
@@ -21,18 +21,18 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationPK.java b/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationPK.java
index 1c0219ab..fe694beb 100755
--- a/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationPK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationType.java b/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationType.java
index 6f3603d2..11495c78 100755
--- a/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationType.java
+++ b/src/main/java/no/nibio/vips/logic/entity/UserAuthenticationType.java
@@ -21,19 +21,19 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterest.java b/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterest.java
index ed7912e7..c3316856 100755
--- a/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterest.java
+++ b/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterest.java
@@ -20,14 +20,14 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterestPK.java b/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterestPK.java
index b7000ad4..e3bd1533 100755
--- a/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterestPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/UserPointOfInterestPK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/UserUuid.java b/src/main/java/no/nibio/vips/logic/entity/UserUuid.java
index 654d9a25..fad91b73 100755
--- a/src/main/java/no/nibio/vips/logic/entity/UserUuid.java
+++ b/src/main/java/no/nibio/vips/logic/entity/UserUuid.java
@@ -22,15 +22,15 @@ package no.nibio.vips.logic.entity;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/UserUuidPK.java b/src/main/java/no/nibio/vips/logic/entity/UserUuidPK.java
index e0363d1b..023861c9 100755
--- a/src/main/java/no/nibio/vips/logic/entity/UserUuidPK.java
+++ b/src/main/java/no/nibio/vips/logic/entity/UserUuidPK.java
@@ -21,10 +21,10 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.UUID;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/VipsLogicRole.java b/src/main/java/no/nibio/vips/logic/entity/VipsLogicRole.java
index aa5f3406..999e5f6c 100755
--- a/src/main/java/no/nibio/vips/logic/entity/VipsLogicRole.java
+++ b/src/main/java/no/nibio/vips/logic/entity/VipsLogicRole.java
@@ -20,16 +20,16 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
index ef85a502..24bbdbbb 100755
--- a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
+++ b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
@@ -20,27 +20,27 @@ package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Pattern;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Pattern;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.util.UUID;
 
diff --git a/src/main/java/no/nibio/vips/logic/entity/WeatherForecastProvider.java b/src/main/java/no/nibio/vips/logic/entity/WeatherForecastProvider.java
index c5459b80..734fc571 100755
--- a/src/main/java/no/nibio/vips/logic/entity/WeatherForecastProvider.java
+++ b/src/main/java/no/nibio/vips/logic/entity/WeatherForecastProvider.java
@@ -20,16 +20,16 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/WeatherStationDataSource.java b/src/main/java/no/nibio/vips/logic/entity/WeatherStationDataSource.java
index 265b0a62..aad80c24 100755
--- a/src/main/java/no/nibio/vips/logic/entity/WeatherStationDataSource.java
+++ b/src/main/java/no/nibio/vips/logic/entity/WeatherStationDataSource.java
@@ -20,17 +20,17 @@
 package no.nibio.vips.logic.entity;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/entity/rest/PointMappingRequest.java b/src/main/java/no/nibio/vips/logic/entity/rest/PointMappingRequest.java
index 3a5750ad..0f96b4f1 100644
--- a/src/main/java/no/nibio/vips/logic/entity/rest/PointMappingRequest.java
+++ b/src/main/java/no/nibio/vips/logic/entity/rest/PointMappingRequest.java
@@ -21,7 +21,7 @@ package no.nibio.vips.logic.entity.rest;
 
 import java.io.Serializable;
 import java.util.List;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2019 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java b/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java
index 6589880e..c120d443 100755
--- a/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java
+++ b/src/main/java/no/nibio/vips/logic/gis/GeometryEntity.java
@@ -21,12 +21,11 @@ package no.nibio.vips.logic.gis;
 
 import org.locationtech.jts.geom.Geometry;
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import org.hibernate.annotations.Type;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
 
 /**
  * This entity enables native querying of PostGIS Geometry elements in the database, 
diff --git a/src/main/java/no/nibio/vips/logic/i18n/CharacterEncodingFilter.java b/src/main/java/no/nibio/vips/logic/i18n/CharacterEncodingFilter.java
index f8415ccc..57121cad 100755
--- a/src/main/java/no/nibio/vips/logic/i18n/CharacterEncodingFilter.java
+++ b/src/main/java/no/nibio/vips/logic/i18n/CharacterEncodingFilter.java
@@ -20,12 +20,12 @@
 package no.nibio.vips.logic.i18n;
 
 import java.io.IOException;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 /**
  * <p>
diff --git a/src/main/java/no/nibio/vips/logic/i18n/LocalizationFilter.java b/src/main/java/no/nibio/vips/logic/i18n/LocalizationFilter.java
index 1300da9c..8a57ca6a 100755
--- a/src/main/java/no/nibio/vips/logic/i18n/LocalizationFilter.java
+++ b/src/main/java/no/nibio/vips/logic/i18n/LocalizationFilter.java
@@ -21,18 +21,16 @@ package no.nibio.vips.logic.i18n;
 
 import com.ibm.icu.util.ULocale;
 import java.io.IOException;
-import java.util.Arrays;
 import java.util.List;
-import static java.util.stream.Collectors.toList;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
 import no.nibio.vips.i18n.LanguageUtil;
-import no.nibio.vips.logic.util.SystemTime;
 
 /**
  * This filter checks if there are any changes in locale requests, and
diff --git a/src/main/java/no/nibio/vips/logic/i18n/ResourceBundleJSServlet.java b/src/main/java/no/nibio/vips/logic/i18n/ResourceBundleJSServlet.java
index 8fe10c00..bbabb007 100755
--- a/src/main/java/no/nibio/vips/logic/i18n/ResourceBundleJSServlet.java
+++ b/src/main/java/no/nibio/vips/logic/i18n/ResourceBundleJSServlet.java
@@ -22,10 +22,10 @@ package no.nibio.vips.logic.i18n;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ResourceBundle;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import org.apache.commons.lang.StringEscapeUtils;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/i18n/SessionLocaleUtil.java b/src/main/java/no/nibio/vips/logic/i18n/SessionLocaleUtil.java
index 22309666..29295070 100755
--- a/src/main/java/no/nibio/vips/logic/i18n/SessionLocaleUtil.java
+++ b/src/main/java/no/nibio/vips/logic/i18n/SessionLocaleUtil.java
@@ -21,7 +21,7 @@ package no.nibio.vips.logic.i18n;
 
 import com.ibm.icu.util.ULocale;
 import java.util.ResourceBundle;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
 
 /**
  * Presents a uniform way of getting locale information
diff --git a/src/main/java/no/nibio/vips/logic/messaging/ForecastEvent.java b/src/main/java/no/nibio/vips/logic/messaging/ForecastEvent.java
index 3f5ac9bc..2d2ecc44 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/ForecastEvent.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/ForecastEvent.java
@@ -20,16 +20,16 @@
 package no.nibio.vips.logic.messaging;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/messaging/ForecastEventNotificationSubscription.java b/src/main/java/no/nibio/vips/logic/messaging/ForecastEventNotificationSubscription.java
index eab276aa..db9f4355 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/ForecastEventNotificationSubscription.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/ForecastEventNotificationSubscription.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.messaging;
 
 import java.util.List;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
 import no.nibio.vips.logic.util.IntegerArrayUserType;
 import org.hibernate.annotations.Type;
 
diff --git a/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLog.java b/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLog.java
index a1f97004..27e5bc8c 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLog.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLog.java
@@ -21,15 +21,15 @@ package no.nibio.vips.logic.messaging;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLogPK.java b/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLogPK.java
index eda72b87..65219d24 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLogPK.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/ForecastNotificationLogPK.java
@@ -21,12 +21,12 @@ package no.nibio.vips.logic.messaging;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/messaging/MessageNotificationSubscription.java b/src/main/java/no/nibio/vips/logic/messaging/MessageNotificationSubscription.java
index 7bb4a8b1..126e343c 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/MessageNotificationSubscription.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/MessageNotificationSubscription.java
@@ -21,11 +21,11 @@ package no.nibio.vips.logic.messaging;
 
 import java.io.Serializable;
 import java.util.List;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
 import no.nibio.vips.logic.util.IntegerArrayUserType;
 import org.hibernate.annotations.Type;
 
diff --git a/src/main/java/no/nibio/vips/logic/messaging/MessageRecipient.java b/src/main/java/no/nibio/vips/logic/messaging/MessageRecipient.java
index 05cdf485..a5a1b76a 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/MessageRecipient.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/MessageRecipient.java
@@ -20,9 +20,9 @@
 package no.nibio.vips.logic.messaging;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java b/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
index 4b249b51..3038ffff 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
@@ -19,8 +19,6 @@
 
 package no.nibio.vips.logic.messaging;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ibm.icu.text.MessageFormat;
 import com.ibm.icu.util.ULocale;
 import java.text.SimpleDateFormat;
@@ -32,12 +30,11 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.ResourceBundle;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
 import no.nibio.vips.entity.Result;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.ForecastResult;
@@ -49,11 +46,7 @@ import no.nibio.vips.logic.messaging.distribution.IVipsMessageHandler;
 import no.nibio.vips.logic.messaging.distribution.VipsMessageInputHandler;
 import no.nibio.vips.logic.messaging.distribution.entity.VipsMessage;
 import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.RESTAuthenticator;
 import no.nibio.vips.logic.util.SystemTime;
-import org.jboss.resteasy.client.jaxrs.ResteasyClient;
-import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
-import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
 
 /**
  * @copyright 2015-2022 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/messaging/ObservationNotificationSubscription.java b/src/main/java/no/nibio/vips/logic/messaging/ObservationNotificationSubscription.java
index 4bd02e33..8864dcd4 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/ObservationNotificationSubscription.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/ObservationNotificationSubscription.java
@@ -21,11 +21,11 @@ package no.nibio.vips.logic.messaging;
 
 import java.io.Serializable;
 import java.util.List;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
 import no.nibio.vips.logic.util.IntegerArrayUserType;
 import org.hibernate.annotations.Type;
 
diff --git a/src/main/java/no/nibio/vips/logic/messaging/UniversalMessage.java b/src/main/java/no/nibio/vips/logic/messaging/UniversalMessage.java
index 60b9d803..85ca8ab5 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/UniversalMessage.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/UniversalMessage.java
@@ -32,19 +32,19 @@ import java.util.List;
 import java.util.ResourceBundle;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Transient;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import com.ibm.icu.util.ULocale;
 import no.nibio.vips.logic.util.StringJsonUserType;
diff --git a/src/main/java/no/nibio/vips/logic/messaging/UniversalMessageFormat.java b/src/main/java/no/nibio/vips/logic/messaging/UniversalMessageFormat.java
index c95a6e32..f2c43875 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/UniversalMessageFormat.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/UniversalMessageFormat.java
@@ -20,12 +20,12 @@
 package no.nibio.vips.logic.messaging;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/messaging/UniversalMessagingServiceClient.java b/src/main/java/no/nibio/vips/logic/messaging/UniversalMessagingServiceClient.java
index 3c5bf66e..ea39a43b 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/UniversalMessagingServiceClient.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/UniversalMessagingServiceClient.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.messaging;
 
 import com.webcohesion.enunciate.metadata.Facet;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Response;
 
 /**
  * @copyright 2015 <a href="http://www.bioforsk.no/">Bioforsk</a>
diff --git a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java
index f4da6f78..f984e3e2 100644
--- a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java
@@ -23,12 +23,12 @@ import java.text.MessageFormat;
 import java.util.Date;
 import java.util.Properties;
 
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeUtility;
+import jakarta.mail.Message;
+import jakarta.mail.MessagingException;
+import jakarta.mail.Session;
+import jakarta.mail.internet.InternetAddress;
+import jakarta.mail.internet.MimeMessage;
+import jakarta.mail.internet.MimeUtility;
 
 import com.sun.mail.smtp.SMTPTransport;
 import no.nibio.vips.logic.messaging.distribution.entity.DistributionTypeEnum;
diff --git a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java
index 74af3dfa..1b7e4f2f 100644
--- a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java
@@ -28,7 +28,7 @@ import java.net.URLConnection;
 import java.net.URLEncoder;
 import java.text.MessageFormat;
 
-import javax.mail.MessagingException;
+import jakarta.mail.MessagingException;
 import no.nibio.vips.logic.messaging.distribution.entity.MsgReceiver;
 import no.nibio.vips.logic.messaging.distribution.entity.MsgToSend;
 import no.nibio.vips.logic.messaging.distribution.entity.VipsMessage;
diff --git a/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java b/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java
index 313db176..b0ed644c 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java
@@ -20,11 +20,11 @@
 package no.nibio.vips.logic.messaging.sms;
 
 import com.webcohesion.enunciate.metadata.Facet;
-import javax.ejb.EJB;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
+import jakarta.ejb.EJB;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.VipsLogicUser;
 
diff --git a/src/main/java/no/nibio/vips/logic/messaging/sms/ViaNettCustomerReply.java b/src/main/java/no/nibio/vips/logic/messaging/sms/ViaNettCustomerReply.java
index f8f2288f..8a6ac610 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/sms/ViaNettCustomerReply.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/sms/ViaNettCustomerReply.java
@@ -19,10 +19,10 @@
 
 package no.nibio.vips.logic.messaging.sms;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java
index eb017ef9..e7710500 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java
@@ -33,12 +33,12 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import javax.ejb.LocalBean;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
+import jakarta.ejb.LocalBean;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
 import no.nibio.vips.logic.util.Globals;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
index 8287b9cd..3cb6c946 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
@@ -29,11 +29,11 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import javax.ejb.EJB;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.VipsLogicRole;
 import no.nibio.vips.logic.entity.VipsLogicUser;
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
index d133c654..9a575a6d 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
@@ -22,15 +22,15 @@ package no.nibio.vips.logic.modules.applefruitmoth;
 import com.webcohesion.enunciate.metadata.Facet;
 import de.micromata.opengis.kml.v_2_2_0.Kml;
 import java.util.Calendar;
-import javax.ejb.EJB;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.logic.util.SystemTime;
 import no.nibio.vips.util.ServletUtil;
 
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
index 845c2694..1b49241d 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
@@ -19,29 +19,28 @@
 
 package no.nibio.vips.logic.modules.applefruitmoth;
 
-import org.locationtech.jts.geom.Geometry;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import no.nibio.vips.logic.entity.Gis;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePoint.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePoint.java
index bf4d5c39..c2df5a52 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePoint.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePoint.java
@@ -21,26 +21,24 @@ package no.nibio.vips.logic.modules.applefruitmoth;
 
 import java.io.Serializable;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import no.nibio.vips.logic.entity.Gis;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonData.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonData.java
index 7dc10583..5c5c6c36 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonData.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonData.java
@@ -20,19 +20,18 @@
 package no.nibio.vips.logic.modules.applefruitmoth;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.util.Date;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonDataPK.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonDataPK.java
index 80cdcd06..d47e2f53 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonDataPK.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSitePointSeasonDataPK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.modules.applefruitmoth;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonData.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonData.java
index fbe051b1..264089cc 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonData.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonData.java
@@ -20,19 +20,18 @@
 package no.nibio.vips.logic.modules.applefruitmoth;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.util.Date;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonDataPK.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonDataPK.java
index ea6e557c..681d598b 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonDataPK.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSiteSeasonCommonDataPK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.modules.applefruitmoth;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
index 64a6f555..4d4fae87 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
@@ -40,14 +40,14 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
+import jakarta.ejb.EJB;
 
-import javax.ejb.LocalBean;
-import javax.ejb.Stateless;
+import jakarta.ejb.LocalBean;
+import jakarta.ejb.Stateless;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.geotools.geometry.jts.JTS;
 import org.geotools.referencing.CRS;
@@ -56,7 +56,6 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
 import org.opengis.referencing.operation.MathTransform;
 import org.opengis.referencing.operation.TransformException;
 
-import no.nibio.vips.logic.controller.session.SchedulingBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.Organization;
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java
index 11f03f60..bdfc941a 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java
@@ -34,12 +34,12 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.gis.GISUtil;
 import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.VipsLogicRole;
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java
index 19b398ec..d1dc949e 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java
@@ -19,27 +19,26 @@
 
 package no.nibio.vips.logic.modules.barkbeetle;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.GET;
-import javax.ws.rs.PATCH;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.PATCH;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
 
 import org.jboss.resteasy.annotations.GZIP;
 
-import com.ibm.icu.util.Calendar;
 import com.webcohesion.enunciate.metadata.Facet;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import javax.ejb.EJB;
+import jakarta.ejb.EJB;
 
 import no.nibio.vips.logic.util.SystemTime;
 import no.nibio.vips.util.ServletUtil;
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/RegistrationStatusType.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/RegistrationStatusType.java
index b38270ae..f3e9b034 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/RegistrationStatusType.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/RegistrationStatusType.java
@@ -20,16 +20,16 @@
 package no.nibio.vips.logic.modules.barkbeetle;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsite.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsite.java
index 94c85054..c4ac554f 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsite.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsite.java
@@ -21,7 +21,6 @@ package no.nibio.vips.logic.modules.barkbeetle;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.io.Serializable;
-import java.time.Instant;
 import java.time.LocalDate;
 import java.time.ZoneId;
 import java.time.temporal.WeekFields;
@@ -31,29 +30,28 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.PrimaryKeyJoinColumn;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.PrimaryKeyJoinColumn;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import no.nibio.vips.logic.entity.VipsLogicUser;
 import no.nibio.vips.logic.util.SystemTime;
 import org.locationtech.jts.geom.Geometry;
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsiteBivolt.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsiteBivolt.java
index 5e7d2926..294ea99c 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsiteBivolt.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/SeasonTrapsiteBivolt.java
@@ -20,22 +20,21 @@
 package no.nibio.vips.logic.modules.barkbeetle;
 
 import java.io.Serializable;
-import java.math.BigInteger;
 import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.MapsId;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.MapsId;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.validation.constraints.NotNull;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2021 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java
index 26213d9d..e2b6a7bf 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java
@@ -21,19 +21,19 @@ package no.nibio.vips.logic.modules.barkbeetle;
 
 import java.io.Serializable;
 import java.util.Date;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Transient;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistrationPK.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistrationPK.java
index 1466e4e1..925fc397 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistrationPK.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistrationPK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.logic.modules.barkbeetle;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteType.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteType.java
index 8f918e1a..7e9c6fbf 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteType.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteType.java
@@ -20,16 +20,16 @@
 package no.nibio.vips.logic.modules.barkbeetle;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java
index 5035869e..9f35ef56 100755
--- a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java
@@ -25,16 +25,16 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.Result;
 import no.nibio.vips.entity.WeatherObservation;
diff --git a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/Factors.java b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/Factors.java
index dac7aa5c..a0c768d7 100755
--- a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/Factors.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/Factors.java
@@ -21,16 +21,16 @@ package no.nibio.vips.logic.modules.barleynetblotch;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.math.BigInteger;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.xml.bind.annotation.XmlRootElement;
+
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/PreparationEffectFactor.java b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/PreparationEffectFactor.java
index 13e72af5..7c12c3dd 100755
--- a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/PreparationEffectFactor.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/PreparationEffectFactor.java
@@ -21,15 +21,15 @@ package no.nibio.vips.logic.modules.barleynetblotch;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 /**
  * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java b/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java
index bc4d9511..ef8d50eb 100755
--- a/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java
@@ -31,18 +31,17 @@ import java.util.List;
 import java.util.Map;
 import java.util.TimeZone;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
+import jakarta.ejb.EJB;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.Result;
 import no.nibio.vips.entity.WeatherObservation;
@@ -523,7 +522,7 @@ public class RoughageService {
             @QueryParam("precipitationLastDayBeforeHarvest") Double precipitationLastDayBeforeHarvest
     )
     {
-        Calendar cal = javax.xml.bind.DatatypeConverter.parseDateTime(timeOfHarvestStr);
+        Calendar cal = jakarta.xml.bind.DatatypeConverter.parseDateTime(timeOfHarvestStr);
         Date timeOfHarvest = cal.getTime();
         // timeOfHarvest can't be later than "today"
         if(timeOfHarvest.after(new Date()))
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java b/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java
index 59add8ba..ccce743e 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java
@@ -22,7 +22,7 @@ package no.nibio.vips.logic.scheduling;
 import it.sauronsoftware.cron4j.Scheduler;
 import it.sauronsoftware.cron4j.SchedulerListener;
 import it.sauronsoftware.cron4j.TaskExecutor;
-import javax.ejb.EJB;
+import jakarta.ejb.EJB;
 import no.nibio.vips.logic.controller.session.SchedulingBean;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
index 6e68fa6b..01c1f85f 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
@@ -29,7 +29,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
-import javax.ejb.EJB;
+import jakarta.ejb.EJB;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.PointWeatherObservationList;
 import no.nibio.vips.entity.WeatherObservation;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java
index 7232e113..098cafdc 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java
@@ -32,10 +32,9 @@ import java.util.List;
 import java.util.TimeZone;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import javax.ejb.EJB;
+
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.WeatherObservation;
-import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java
index c466ae05..f25741c7 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java
@@ -25,10 +25,8 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
-import javax.ejb.EJB;
+
 import no.nibio.vips.entity.ModelConfiguration;
-import no.nibio.vips.logic.controller.session.ObservationBean;
-import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.Organism;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java
index 4d542645..e8f1863b 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java
@@ -23,10 +23,8 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
-import javax.ejb.EJB;
+
 import no.nibio.vips.entity.ModelConfiguration;
-import no.nibio.vips.logic.controller.session.ObservationBean;
-import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.Organism;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java
index 3830cdfa..cf2cc443 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java
@@ -26,12 +26,9 @@ import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
 
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.WeatherObservation;
-import no.nibio.vips.logic.controller.session.ObservationBean;
-import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.Organism;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java
index 730705ab..0936b29d 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java
@@ -26,10 +26,9 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
-import javax.ejb.EJB;
+
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.WeatherObservation;
-import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java
index 58dfc705..650e7fe2 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java
@@ -20,10 +20,8 @@
 package no.nibio.vips.logic.scheduling.tasks;
 
 import it.sauronsoftware.cron4j.TaskExecutionContext;
-import javax.ejb.EJB;
 
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
-import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.scheduling.VipsLogicTask;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java
index 50d41e06..b303f7f2 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java
@@ -23,12 +23,9 @@ import it.sauronsoftware.cron4j.TaskExecutionContext;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import javax.ejb.EJB;
+
 import no.nibio.vips.i18n.I18nImpl;
-import no.nibio.vips.logic.controller.session.ForecastBean;
-import no.nibio.vips.logic.controller.session.PointOfInterestBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
-import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.ModelInformation;
 import no.nibio.vips.logic.entity.PointOfInterest;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java
index 6594f5b1..643b8b1d 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java
@@ -24,12 +24,9 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import javax.ejb.EJB;
+
 import no.nibio.vips.i18n.I18nImpl;
-import no.nibio.vips.logic.controller.session.ForecastBean;
-import no.nibio.vips.logic.controller.session.PointOfInterestBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
-import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.ModelInformation;
 import no.nibio.vips.logic.entity.Organization;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java
index 1dd93a7d..6cff717f 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java
@@ -21,11 +21,9 @@ package no.nibio.vips.logic.scheduling.tasks;
 
 import it.sauronsoftware.cron4j.TaskExecutionContext;
 import java.util.Map;
-import javax.ejb.EJB;
+
 import no.nibio.vips.i18n.I18nImpl;
-import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
-import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.ModelInformation;
 import no.nibio.vips.logic.scheduling.SchedulingUtil;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java
index 3f35c795..83366f29 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java
@@ -20,8 +20,6 @@
 package no.nibio.vips.logic.scheduling.tasks;
 
 import it.sauronsoftware.cron4j.TaskExecutionContext;
-import javax.ejb.EJB;
-import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.scheduling.SchedulingUtil;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java
index 181e3a36..cd5bb88c 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java
@@ -20,10 +20,8 @@
 package no.nibio.vips.logic.scheduling.tasks;
 
 import it.sauronsoftware.cron4j.TaskExecutionContext;
-import javax.ejb.EJB;
 
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
-import no.nibio.vips.logic.messaging.MessagingBean;
 import no.nibio.vips.logic.scheduling.VipsLogicTask;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java
index 9c33ab89..6db663ec 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java
@@ -20,8 +20,6 @@
 package no.nibio.vips.logic.scheduling.tasks;
 
 import it.sauronsoftware.cron4j.TaskExecutionContext;
-import javax.ejb.EJB;
-import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.scheduling.VipsLogicTask;
 
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java
index 934812b9..32ec81fe 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java
@@ -20,8 +20,6 @@
 package no.nibio.vips.logic.scheduling.tasks;
 
 import it.sauronsoftware.cron4j.TaskExecutionContext;
-import javax.ejb.EJB;
-import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.scheduling.VipsLogicTask;
 import no.nibio.vips.logic.util.SystemTime;
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java
index 8211bfc5..f0146e32 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java
@@ -20,8 +20,6 @@
 package no.nibio.vips.logic.scheduling.tasks;
 
 import it.sauronsoftware.cron4j.TaskExecutionContext;
-import javax.ejb.EJB;
-import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.scheduling.VipsLogicTask;
 
diff --git a/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java b/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java
index 114ffc24..1901faf3 100644
--- a/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java
+++ b/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java
@@ -22,24 +22,24 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.webcohesion.enunciate.metadata.rs.TypeHint;
-import javax.ejb.EJB;
+import jakarta.ejb.EJB;
 import no.nibio.vips.logic.controller.session.UserBean;
 
 import no.nibio.vips.logic.entity.UserUuid;
diff --git a/src/main/java/no/nibio/vips/logic/service/JSONBConfig.java b/src/main/java/no/nibio/vips/logic/service/JSONBConfig.java
index 47cb1ef4..331ea533 100644
--- a/src/main/java/no/nibio/vips/logic/service/JSONBConfig.java
+++ b/src/main/java/no/nibio/vips/logic/service/JSONBConfig.java
@@ -19,15 +19,14 @@
 
 package no.nibio.vips.logic.service;
 
-import javax.json.bind.Jsonb;
-import javax.json.bind.JsonbBuilder;
-import javax.json.bind.JsonbConfig;
-import javax.json.bind.annotation.JsonbDateFormat;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.ext.ContextResolver;
-import javax.ws.rs.ext.Provider;
+import jakarta.json.bind.Jsonb;
+import jakarta.json.bind.JsonbBuilder;
+import jakarta.json.bind.JsonbConfig;
+import jakarta.json.bind.annotation.JsonbDateFormat;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.ext.ContextResolver;
+import jakarta.ws.rs.ext.Provider;
 
 import java.util.logging.Level;  
 import java.util.logging.Logger; 
@@ -41,7 +40,7 @@ import java.util.logging.Logger;
 @Provider
 @Produces(MediaType.APPLICATION_JSON)
 //@Consumes(MediaType.APPLICATION_JSON)
-public class JSONBConfig implements ContextResolver<javax.json.bind.Jsonb>
+public class JSONBConfig implements ContextResolver<jakarta.json.bind.Jsonb>
 {
     //private final ObjectMapper objectMapper;
     private final Jsonb jsonB;  
diff --git a/src/main/java/no/nibio/vips/logic/service/JacksonConfig.java b/src/main/java/no/nibio/vips/logic/service/JacksonConfig.java
index 36f6ccfa..c55a953d 100755
--- a/src/main/java/no/nibio/vips/logic/service/JacksonConfig.java
+++ b/src/main/java/no/nibio/vips/logic/service/JacksonConfig.java
@@ -20,17 +20,16 @@
 package no.nibio.vips.logic.service;
 
 import com.bedatadriven.jackson.datatype.jts.JtsModule;
-import com.fasterxml.jackson.databind.DeserializationConfig;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import java.text.SimpleDateFormat;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.ext.ContextResolver;
-import javax.ws.rs.ext.Provider;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.ext.ContextResolver;
+import jakarta.ws.rs.ext.Provider;
 
 /**
  * Add this to no.nibio.vips.logic.VIPSLogicApplication if you want all
diff --git a/src/main/java/no/nibio/vips/logic/service/LogicService.java b/src/main/java/no/nibio/vips/logic/service/LogicService.java
index 8e424b90..5fd6b087 100755
--- a/src/main/java/no/nibio/vips/logic/service/LogicService.java
+++ b/src/main/java/no/nibio/vips/logic/service/LogicService.java
@@ -35,21 +35,21 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ejb.EJB;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 import no.nibio.vips.coremanager.service.ManagerResource;
 import no.nibio.vips.entity.WeatherObservation;
 import no.nibio.vips.logic.authenticate.PasswordValidationException;
diff --git a/src/main/java/no/nibio/vips/logic/service/ModelFormService.java b/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
index 8e2ba459..c5888ae9 100644
--- a/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
@@ -27,12 +27,12 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.TimeZone;
-import javax.ejb.EJB;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.Result;
 import no.nibio.vips.entity.WeatherObservation;
diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationService.java b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
index a817a8da..d1c52c09 100755
--- a/src/main/java/no/nibio/vips/logic/service/ObservationService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
@@ -38,24 +38,24 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
-import javax.ejb.EJB;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-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.QueryParam;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ejb.EJB;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+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.QueryParam;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 import no.nibio.vips.logic.controller.session.ObservationBean;
 import no.nibio.vips.logic.controller.session.OrganismBean;
 import no.nibio.vips.logic.controller.session.UserBean;
@@ -72,7 +72,6 @@ import org.wololo.geojson.Feature;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.wololo.geojson.FeatureCollection;
 import org.wololo.geojson.GeoJSON;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/service/POIService.java b/src/main/java/no/nibio/vips/logic/service/POIService.java
index 62da58eb..c2b4e9e2 100644
--- a/src/main/java/no/nibio/vips/logic/service/POIService.java
+++ b/src/main/java/no/nibio/vips/logic/service/POIService.java
@@ -26,17 +26,17 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import javax.servlet.http.HttpServletRequest;
-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.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.servlet.http.HttpServletRequest;
+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.Context;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.jboss.resteasy.spi.HttpRequest;
 import org.locationtech.jts.geom.Coordinate;
diff --git a/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java b/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java
index d358d330..d593366c 100755
--- a/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java
+++ b/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java
@@ -31,15 +31,15 @@ import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
 import java.util.TimeZone;
-import javax.ejb.EJB;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.entity.Result;
 import no.nibio.vips.logic.controller.session.ForecastBean;
 import no.nibio.vips.logic.controller.session.MessageBean;
diff --git a/src/main/java/no/nibio/vips/logic/startup/StartupListener.java b/src/main/java/no/nibio/vips/logic/startup/StartupListener.java
index 867b1309..5c3a1247 100755
--- a/src/main/java/no/nibio/vips/logic/startup/StartupListener.java
+++ b/src/main/java/no/nibio/vips/logic/startup/StartupListener.java
@@ -19,9 +19,9 @@
 
 package no.nibio.vips.logic.startup;
 
-import javax.annotation.Resource;
-import javax.ejb.EJB;
-import javax.servlet.ServletContextEvent;
+import jakarta.annotation.Resource;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletContextEvent;
 import javax.sql.DataSource;
 import no.nibio.vips.logic.controller.session.SchedulingBean;
 import org.flywaydb.core.Flyway;
@@ -33,7 +33,7 @@ import org.flywaydb.core.Flyway;
  * @copyright 2013-2022 {@link http://www.nibio.no NIBIO}
  * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
  */
-public class StartupListener implements javax.servlet.ServletContextListener{
+public class StartupListener implements jakarta.servlet.ServletContextListener{
 
     @Resource(lookup="java:/jboss/datasources/vipslogic")
     DataSource vipslogicDS;
diff --git a/src/main/java/no/nibio/vips/logic/util/CorsProxyServlet.java b/src/main/java/no/nibio/vips/logic/util/CorsProxyServlet.java
index 19986673..0e0befb4 100644
--- a/src/main/java/no/nibio/vips/logic/util/CorsProxyServlet.java
+++ b/src/main/java/no/nibio/vips/logic/util/CorsProxyServlet.java
@@ -26,10 +26,10 @@ import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 /**
  * Simple HTTP(S) proxy to avoid the CORS issues with using external web services
diff --git a/src/main/java/no/nibio/vips/logic/util/PostgresJSONStringConverter.java b/src/main/java/no/nibio/vips/logic/util/PostgresJSONStringConverter.java
index 7faae61a..6e9bc7a5 100755
--- a/src/main/java/no/nibio/vips/logic/util/PostgresJSONStringConverter.java
+++ b/src/main/java/no/nibio/vips/logic/util/PostgresJSONStringConverter.java
@@ -20,8 +20,8 @@
 package no.nibio.vips.logic.util;
 
 import java.sql.SQLException;
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 import org.postgresql.util.PGobject;
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/util/RESTAuthenticator.java b/src/main/java/no/nibio/vips/logic/util/RESTAuthenticator.java
index 0c2f05c2..4b31ba2f 100755
--- a/src/main/java/no/nibio/vips/logic/util/RESTAuthenticator.java
+++ b/src/main/java/no/nibio/vips/logic/util/RESTAuthenticator.java
@@ -21,10 +21,10 @@ package no.nibio.vips.logic.util;
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.ws.rs.client.ClientRequestContext;
+import jakarta.ws.rs.client.ClientRequestFilter;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.xml.bind.DatatypeConverter;
 
 
 /**
diff --git a/src/main/java/no/nibio/vips/logic/util/SimpleMailSender.java b/src/main/java/no/nibio/vips/logic/util/SimpleMailSender.java
index dcdf58f3..e0195840 100755
--- a/src/main/java/no/nibio/vips/logic/util/SimpleMailSender.java
+++ b/src/main/java/no/nibio/vips/logic/util/SimpleMailSender.java
@@ -22,8 +22,8 @@ package no.nibio.vips.logic.util;
 
 import java.util.Iterator;
 import java.util.List;
-import javax.mail.*;
-import javax.mail.internet.*;
+import jakarta.mail.*;
+import jakarta.mail.internet.*;
 import java.util.Properties;
 
 
@@ -71,8 +71,8 @@ public class SimpleMailSender {
 
             Transport.send(message);
         }
-        catch(javax.mail.internet.AddressException ae){ae.printStackTrace();}
-        catch(javax.mail.MessagingException me) {me.printStackTrace();}
+        catch(jakarta.mail.internet.AddressException ae){ae.printStackTrace();}
+        catch(jakarta.mail.MessagingException me) {me.printStackTrace();}
     }
 
     /**
@@ -107,8 +107,8 @@ public class SimpleMailSender {
 
             Transport.send(message);
         }
-        catch(javax.mail.internet.AddressException ae){ae.printStackTrace();}
-        catch(javax.mail.MessagingException me) {me.printStackTrace();}
+        catch(jakarta.mail.internet.AddressException ae){ae.printStackTrace();}
+        catch(jakarta.mail.MessagingException me) {me.printStackTrace();}
     }
     
 }
\ No newline at end of file
diff --git a/src/main/java/no/nibio/vips/logic/web/TemplateConfigFilter.java b/src/main/java/no/nibio/vips/logic/web/TemplateConfigFilter.java
index 09f06bec..6cb2646c 100755
--- a/src/main/java/no/nibio/vips/logic/web/TemplateConfigFilter.java
+++ b/src/main/java/no/nibio/vips/logic/web/TemplateConfigFilter.java
@@ -20,14 +20,14 @@
 package no.nibio.vips.logic.web;
 
 import java.io.IOException;
-import java.util.Date;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
 import no.nibio.vips.logic.util.SystemTime;
 import no.nibio.vips.util.ServletUtil;
 
diff --git a/src/main/java/no/nibio/vips/logic/web/js/JSEnvironment.java b/src/main/java/no/nibio/vips/logic/web/js/JSEnvironment.java
index 2db214be..706a6034 100755
--- a/src/main/java/no/nibio/vips/logic/web/js/JSEnvironment.java
+++ b/src/main/java/no/nibio/vips/logic/web/js/JSEnvironment.java
@@ -21,10 +21,10 @@ package no.nibio.vips.logic.web.js;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import no.nibio.vips.logic.i18n.SessionLocaleUtil;
 
 /**
diff --git a/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java b/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java
index f8e1d2ee..6fcc1338 100644
--- a/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java
+++ b/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java
@@ -7,11 +7,11 @@ import java.util.Map;
 import java.util.ResourceBundle;
 import java.util.Map.Entry;
 
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.ejb.Stateless;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.http.HttpServletRequest;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
diff --git a/src/main/java/no/nibio/vips/observationdata/ObservationDataSchema.java b/src/main/java/no/nibio/vips/observationdata/ObservationDataSchema.java
index 4c4a1eda..0a7899a2 100755
--- a/src/main/java/no/nibio/vips/observationdata/ObservationDataSchema.java
+++ b/src/main/java/no/nibio/vips/observationdata/ObservationDataSchema.java
@@ -20,13 +20,13 @@
 package no.nibio.vips.observationdata;
 
 import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.EmbeddedId;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlRootElement;
 import no.nibio.vips.logic.util.StringJsonUserType;
 import org.hibernate.annotations.Type;
 
diff --git a/src/main/java/no/nibio/vips/observationdata/ObservationDataSchemaPK.java b/src/main/java/no/nibio/vips/observationdata/ObservationDataSchemaPK.java
index 14ff5197..d9b43ee2 100755
--- a/src/main/java/no/nibio/vips/observationdata/ObservationDataSchemaPK.java
+++ b/src/main/java/no/nibio/vips/observationdata/ObservationDataSchemaPK.java
@@ -20,10 +20,10 @@
 package no.nibio.vips.observationdata;
 
 import java.io.Serializable;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.validation.constraints.NotNull;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.validation.constraints.NotNull;
 
 /**
  * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
diff --git a/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java b/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java
index d4475d13..b2ef0999 100755
--- a/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java
+++ b/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java
@@ -22,17 +22,17 @@ package no.nibio.vips.observationdata;
 import com.ibm.icu.util.ULocale;
 import com.webcohesion.enunciate.metadata.Facet;
 import java.io.IOException;
-import javax.ejb.EJB;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.EJB;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.PersistenceContext;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.logic.controller.session.ObservationBean;
 import no.nibio.vips.logic.controller.session.UserBean;
 
diff --git a/src/main/java/no/nibio/web/forms/FormUtil.java b/src/main/java/no/nibio/web/forms/FormUtil.java
index 77d25896..a917aa7a 100755
--- a/src/main/java/no/nibio/web/forms/FormUtil.java
+++ b/src/main/java/no/nibio/web/forms/FormUtil.java
@@ -30,8 +30,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+
 import no.nibio.vips.logic.util.Globals;
-import org.apache.commons.fileupload.FileItem;
+
 
 /**
  * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
@@ -46,11 +47,11 @@ public class FormUtil {
      * @param items
      * @return
      * @throws UnsupportedEncodingException 
-     */
-    public static Map<String, String[]> getParameterMap(List<FileItem> items, String encoding) throws UnsupportedEncodingException
+     *
+    public static Map<String, String[]> getParameterMap(List<Part> items, String encoding) throws UnsupportedEncodingException
     {
         Map<String, String[]> retVal = new HashMap<>();
-        for(FileItem item:items)
+        for(Part item:items)
         {
             if(item.isFormField())
             {
@@ -70,7 +71,7 @@ public class FormUtil {
             }
         }
         return retVal;
-    }
+    }*/
     
     /**
      * 
diff --git a/src/main/java/no/nibio/web/forms/FormValidator.java b/src/main/java/no/nibio/web/forms/FormValidator.java
index 34a34910..9a207b0d 100755
--- a/src/main/java/no/nibio/web/forms/FormValidator.java
+++ b/src/main/java/no/nibio/web/forms/FormValidator.java
@@ -37,9 +37,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
-import javax.ejb.EJB;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.ejb.EJB;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.http.HttpServletRequest;
 import no.nibio.vips.logic.authenticate.PasswordValidationException;
 import no.nibio.vips.logic.controller.session.SessionControllerGetter;
 import no.nibio.vips.logic.controller.session.UserBean;
diff --git a/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java b/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java
index abaca850..478f1c80 100755
--- a/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java
+++ b/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java
@@ -23,7 +23,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
 import no.nibio.vips.logic.util.RESTAuthenticator;
 import org.jboss.resteasy.client.jaxrs.ResteasyClient;
 import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
@@ -32,7 +32,7 @@ import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
-import org.junit.Test;
+
 import static org.junit.Assert.*;
 
 /**
-- 
GitLab