From f25db7bc6eab263f17ace0d6b7deb9e8e7acf409 Mon Sep 17 00:00:00 2001
From: Maxim Thomas <maxim.thomas@gmail.com>
Date: Thu, 18 Sep 2025 08:14:31 +0000
Subject: [PATCH] Update target JDK to 11 and move to JakartaEE 9 (#532)

---
 opendj-packages/opendj-docker/pom.xml                                                                                      |    2 
 opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java                                                  |    3 
 opendj-embedded/pom.xml                                                                                                    |    2 
 .github/workflows/deploy.yml                                                                                               |    2 
 opendj-packages/opendj-svr4/pom.xml                                                                                        |    2 
 opendj-rest2ldap/pom.xml                                                                                                   |    2 
 opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java                                                |   26 +-
 opendj-packages/opendj-rpm/opendj-rpm-standard/pom.xml                                                                     |    2 
 opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/package-info.java                                            |   17 ++
 opendj-ldap-sdk-examples/pom.xml                                                                                           |    2 
 opendj-server-legacy/pom.xml                                                                                               |   11 
 opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java                                                    |    2 
 opendj-ldap-toolkit/pom.xml                                                                                                |    2 
 opendj-core/src/main/java/org/forgerock/opendj/ldap/Base64.java                                                            |    1 
 opendj-cli/pom.xml                                                                                                         |    2 
 opendj-doc-maven-plugin/pom.xml                                                                                            |    2 
 README.md                                                                                                                  |    2 
 opendj-dsml-servlet/pom.xml                                                                                                |   12 -
 .github/workflows/release.yml                                                                                              |    4 
 .github/workflows/build.yml                                                                                                |    4 
 opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/OpenDJServiceProvider.java                                   |   67 +++++++++
 opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java                                               |    2 
 opendj-packages/opendj-deb/resources/control/control                                                                       |    2 
 opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/api/AbortedChangelogCursorException.java |    2 
 opendj-embedded-server-examples/pom.xml                                                                                    |    2 
 SECURITY.md                                                                                                                |   11 
 opendj-rest2ldap-servlet/pom.xml                                                                                           |    5 
 opendj-legacy/pom.xml                                                                                                      |    2 
 opendj-packages/opendj-docker/Dockerfile-alpine                                                                            |    2 
 opendj-packages/opendj-msi/opendj-msi-standard/pom.xml                                                                     |    2 
 opendj-doc-generated-ref/pom.xml                                                                                           |    4 
 opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-upgrade.adoc                                                 |   10 
 opendj-packages/opendj-msi/pom.xml                                                                                         |    2 
 opendj-packages/opendj-svr4/opendj-svr4-standard/pom.xml                                                                   |    4 
 pom.xml                                                                                                                    |   42 +++--
 opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java                                              |    1 
 opendj-grizzly/pom.xml                                                                                                     |   14 +
 opendj-maven-plugin/pom.xml                                                                                                |    2 
 opendj-server-example-plugin/pom.xml                                                                                       |    2 
 opendj-config/pom.xml                                                                                                      |    2 
 opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-install.adoc                                                 |    2 
 opendj-packages/pom.xml                                                                                                    |    2 
 opendj-server-msad-plugin/pom.xml                                                                                          |    2 
 opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Utils.java                                                   |    1 
 opendj-openidm-account-change-notification-handler/pom.xml                                                                 |    2 
 opendj-server/pom.xml                                                                                                      |   20 +-
 opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java                                                |   22 +-
 opendj-packages/opendj-deb/opendj-deb-standard/pom.xml                                                                     |    2 
 opendj-packages/opendj-deb/pom.xml                                                                                         |    2 
 opendj-server-legacy/src/main/resources/META-INF/services/org.slf4j.spi.SLF4JServiceProvider                               |    1 
 opendj-core/pom.xml                                                                                                        |   21 --
 opendj-packages/opendj-rpm/pom.xml                                                                                         |    2 
 52 files changed, 225 insertions(+), 136 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 723d8ab..8f90cb2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,7 +10,7 @@
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        java: [ '8','11','17','21','25']
+        java: [ '11','17','21','25']
         os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
       fail-fast: false
     steps:
@@ -230,7 +230,7 @@
           file: ./opendj-packages/opendj-docker/Dockerfile-alpine
           build-args: |
             VERSION=${{ env.release_version }}
-          platforms: linux/amd64,linux/arm64/8, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6, linux/ppc64le
+          platforms: linux/amd64, linux/arm64/8, linux/s390x, linux/ppc64le
           push: true
           tags: ${{ steps.meta.outputs.tags }}
           labels: ${{ steps.meta.outputs.labels }}
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 510734e..61ab3e4 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -35,7 +35,7 @@
       - name: Set up Java for publishing to Maven Central Repository OSS
         uses: actions/setup-java@v4
         with:
-          java-version: ${{ github.event.workflow_run.head_branch == 'release/5.0.0-SNAPSHOT' && '11' || '8'}}
+          java-version: '11'
           distribution: 'temurin'
           server-id: ossrh
           server-username: MAVEN_USERNAME
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f1d9e94..bd65b99 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -38,7 +38,7 @@
       - name: Set up Java for publishing to Maven Central Repository OSS
         uses: actions/setup-java@v4
         with:
-          java-version: '8'
+          java-version: '11'
           distribution: 'temurin'
           server-id: ossrh
           server-username: MAVEN_USERNAME
@@ -222,7 +222,7 @@
           file: ./opendj-packages/opendj-docker/Dockerfile-alpine
           build-args: |
             VERSION=${{ github.event.inputs.releaseVersion }}
-          platforms: linux/amd64,linux/arm64/8, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6, linux/ppc64le
+          platforms: linux/amd64, linux/arm64/8, linux/s390x, linux/ppc64le
           push: true
           tags: ${{ steps.meta.outputs.tags }}
           labels: ${{ steps.meta.outputs.labels }}
diff --git a/README.md b/README.md
index d4073da..d4d1fa0 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@
 * [OpenDJ Docker](https://hub.docker.com/r/openidentityplatform/opendj/) (All OS) 
   * [OpenDJ OpenShift](https://github.com/OpenIdentityPlatform/OpenDJ/tree/master/opendj-packages/opendj-openshift-template)
 
-Java 1.8+ required
+Java 11 or later required
 
 ## How-to build
 For windows use:
diff --git a/SECURITY.md b/SECURITY.md
index bb3b15b..0ab26ba 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -2,11 +2,12 @@
 
 ## Supported Versions
 
-| Version | Supported          |
-| ------- | ------------------ |
-| Open Identity Platform Community OpenDJ 4.x.x   | :white_check_mark: |
-| Forgerock OpenDJ 3.x.x   | :x: : upgrade to  Open Identity Platform Community OpenDJ 4.x.x     |
-| Forgerock OpenDJ 2.x.x   | :x:  : upgrade to  Open Identity Platform Community OpenDJ 4.x.x      |
+| Version                                       | Java Versions Support | EE         | Supported                                                                                                                                  |
+|-----------------------------------------------|-----------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------|
+| Open Identity Platform Community OpenDJ 5.x.x | 11 and later          | Jakarta EE | :white_check_mark: Community support, [approved vendor support](https://github.com/OpenIdentityPlatform/.github/wiki/Approved-Vendor-List) |
+| Open Identity Platform Community OpenDJ 4.x.x | 8 and later           | Java EE    | :white_check_mark: [Approved vendor support](https://github.com/OpenIdentityPlatform/.github/wiki/Approved-Vendor-List)                    |
+| Forgerock OpenDJ 3.x.x                        | 1.6, 1.7              | Java EE    | :x: : upgrade to Open Identity Platform Community OpenDJ 5.x.x                                                                             |
+| Forgerock OpenDJ 2.x.x                        | 1.6, 1.7              | Java EE    | :x: : upgrade to Open Identity Platform Community OpenDJ 5.x.x                                                                             |
 
 ## Reporting a Vulnerability
 
diff --git a/opendj-cli/pom.xml b/opendj-cli/pom.xml
index 184f32c..66aaf6b 100644
--- a/opendj-cli/pom.xml
+++ b/opendj-cli/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-cli</artifactId>
diff --git a/opendj-config/pom.xml b/opendj-config/pom.xml
index 9c6bcd3..ae18149 100644
--- a/opendj-config/pom.xml
+++ b/opendj-config/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
   <artifactId>opendj-config</artifactId>
   <name>OpenDJ Configuration API</name>
diff --git a/opendj-core/pom.xml b/opendj-core/pom.xml
index fd67202..6d31842 100644
--- a/opendj-core/pom.xml
+++ b/opendj-core/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-core</artifactId>
@@ -68,8 +68,8 @@
         </dependency>
 
         <dependency>
-          <groupId>com.github.stephenc.jcip</groupId>
-          <artifactId>jcip-annotations</artifactId>
+            <groupId>com.io7m.jcip</groupId>
+            <artifactId>com.io7m.jcip.annotations</artifactId>
         </dependency>
 
         <dependency>
@@ -213,21 +213,6 @@
 
     <profiles>
         <profile>
-            <id>set-compiler-release</id>
-            <activation>
-                <jdk>[9,)</jdk>
-            </activation>
-            <properties>
-                <maven.compiler.release>8</maven.compiler.release>
-                <!--
-                -release 8 dont allow hidden packages
-                package sun.security.tools.keytool does not exist
-                package sun.security.x509 does not exist
-                -->
-                <maven.compiler.testRelease />
-            </properties>
-        </profile>
-        <profile>
             <!-- This profile provides API/ABI compatiblity checks and reports via Clirr -->
             <id>clirr</id>
             <activation>
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/Base64.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/Base64.java
index aa0b5ee..2607aac 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/Base64.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/Base64.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2006-2009 Sun Microsystems, Inc.
  * Portions copyright 2012-2016 ForgeRock AS.
+ * Portions copyright 2025 3A Systems LLC.
  */
 package org.forgerock.opendj.ldap;
 
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java
index e761742..39bd7e9 100644
--- a/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/ByteSequenceTestCase.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2010 Sun Microsystems, Inc.
  * Portions copyright 2014 ForgeRock AS.
+ * Portions Copyright 2025 3A Systems LLC.
  */
 package org.forgerock.opendj.ldap;
 
diff --git a/opendj-doc-generated-ref/pom.xml b/opendj-doc-generated-ref/pom.xml
index 955c601..8e6821f 100644
--- a/opendj-doc-generated-ref/pom.xml
+++ b/opendj-doc-generated-ref/pom.xml
@@ -13,7 +13,7 @@
   ~ information: "Portions Copyright [year] [name of copyright owner]".
   ~
   ~ Copyright 2016 ForgeRock AS.
-  ~ Portions Copyright 2024 3A Systems LLC.
+  ~ Portions Copyright 2024-2025 3A Systems LLC.
   -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-doc-generated-ref</artifactId>
diff --git a/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-install.adoc b/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-install.adoc
index 96f1e46..9d0847c 100644
--- a/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-install.adoc
+++ b/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-install.adoc
@@ -997,7 +997,7 @@
 By default, the log level is set to `INFO`, and the gateway logs HTTP request-related messages. To have the gateway log LDAP request-related messages, set the log level to `FINEST` in one of the following ways:
 +
 
-* If the REST to LDAP gateway runs in Apache Tomcat, edit `WEB-INF/classes/logging.properties` to set `org.forgerock.opendj.rest2ldap.level = FINEST`. For details on Tomcat's implementation of the logging API, see link:https://tomcat.apache.org/tomcat-8.0-doc/logging.html#Java_logging_API_%E2%80%94_java.util.logging[Logging in Tomcat, window=\_blank].
+* If the REST to LDAP gateway runs in Apache Tomcat, edit `WEB-INF/classes/logging.properties` to set `org.forgerock.opendj.rest2ldap.level = FINEST`. For details on Tomcat's implementation of the logging API, see link:https://tomcat.apache.org/tomcat-10.1-doc/logging.html#Java_logging_API_%E2%80%94_java.util.logging[Logging in Tomcat, window=\_blank].
 +
 Messages are written to `CATALINA_BASE/logs/rest2ldap.yyyy-MM-dd.log`.
 
diff --git a/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-upgrade.adoc b/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-upgrade.adoc
index 59addb2..0443cfb 100644
--- a/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-upgrade.adoc
+++ b/opendj-doc-generated-ref/src/main/asciidoc/install-guide/chap-upgrade.adoc
@@ -121,7 +121,7 @@
 
 [NOTE]
 ======
-When you upgrade to OpenDJ 4.9 from an OpenDJ 3 or earlier, the upgrade procedure leaves the HTTP connection handler disabled.
+When you upgrade to OpenDJ 5.0 from an OpenDJ 3 or earlier, the upgrade procedure leaves the HTTP connection handler disabled.
 The newer configuration supports inheritance and subsresources, but is not compatible with the previous configuration.
 You must rewrite your configuration to the version described in xref:../reference/appendix-rest2ldap.adoc#appendix-rest2ldap["REST to LDAP Configuration"] in the __Reference__, and then reconfigure the server to use the new configuration. For details, see xref:../admin-guide/chap-connection-handlers.adoc#setup-rest2ldap["RESTful Client Access Over HTTP"] in the __Administration Guide__.
 ======
@@ -137,14 +137,14 @@
 ====
 
 [#upgrade-zip-example]
-.Upgrading to OpenDJ 4.9
+.Upgrading to OpenDJ 5.0
 ====
-The following example upgrades an OpenDJ 2.6.3 directory server, backing up the current server directory in case the upgrade process fails. In this example, the server properties are updated to use Java 8, and the Local DB backend is migrated to a JE backend:
+The following example upgrades an OpenDJ 2.6.3 directory server, backing up the current server directory in case the upgrade process fails. In this example, the server properties are updated to use Java 11, and the Local DB backend is migrated to a JE backend:
 
 [source, console, subs="attributes"]
 ----
 $ cd /path/to/
-$ sed -e "s/default.java-home=.*/default.java-home=\/path\/to\/jdk1.8/" \
+$ sed -e "s/default.java-home=.*/default.java-home=\/path\/to\/jdk11/" \
  opendj/config/java.properties \
  > opendj/config/java.properties.new ; \
  mv opendj/config/java.properties.new opendj/config/java.properties
@@ -226,7 +226,7 @@
   Archiving concatenated schema.......................................   100%
 
 >>>> OpenDJ was successfully upgraded from version 2.6.3.12667 to
-4.9.1.build-hash
+5.0.0.build-hash
 
 
 >>>> Performing post upgrade tasks
diff --git a/opendj-doc-maven-plugin/pom.xml b/opendj-doc-maven-plugin/pom.xml
index f435c89..9631209 100644
--- a/opendj-doc-maven-plugin/pom.xml
+++ b/opendj-doc-maven-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-doc-maven-plugin</artifactId>
diff --git a/opendj-dsml-servlet/pom.xml b/opendj-dsml-servlet/pom.xml
index 98fe29c..d9729db 100644
--- a/opendj-dsml-servlet/pom.xml
+++ b/opendj-dsml-servlet/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-parent</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-dsml-servlet</artifactId>
@@ -39,9 +39,8 @@
     <dependencies>
     	<!-- Servlet API -->
         <dependency>
-      		<groupId>javax.servlet</groupId>
-      		<artifactId>javax.servlet-api</artifactId>
-      		<version>3.1.0</version>
+      		<groupId>jakarta.servlet</groupId>
+      		<artifactId>jakarta.servlet-api</artifactId>
             <scope>provided</scope>
     	</dependency>
 
@@ -83,7 +82,7 @@
         <dependency>
         	<groupId>com.sun.xml.ws</groupId>
 		    <artifactId>jaxws-ri</artifactId>
-		    <version>2.3.7</version>
+		    <version>4.0.3</version>
 		    <type>pom</type>
         </dependency>
 
@@ -313,7 +312,6 @@
             <plugin>
 		      <groupId>org.codehaus.cargo</groupId>
 	          <artifactId>cargo-maven3-plugin</artifactId>
-	          <version>1.10.9</version>
 	          <extensions>true</extensions>
 			  <executions>
 				    <execution>
@@ -333,7 +331,7 @@
 				</executions>
 	            <configuration>
 	                <container>
-	                    <containerId>tomcat9x</containerId>
+                        <containerId>${maven.cargo.containerId}</containerId>
 	                    <type>embedded</type>
 	                    <systemProperties>
 	                        <file.encoding>UTF-8</file.encoding>
diff --git a/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java b/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java
index ac7802b..b93de93 100644
--- a/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java
+++ b/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java
@@ -44,11 +44,11 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import javax.xml.XMLConstants;
 import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
@@ -59,14 +59,14 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParserFactory;
-import javax.xml.soap.MessageFactory;
-import javax.xml.soap.MimeHeaders;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPConstants;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPHeader;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.MessageFactory;
+import jakarta.xml.soap.MimeHeaders;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPConstants;
+import jakarta.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPHeader;
+import jakarta.xml.soap.SOAPMessage;
 import javax.xml.validation.Schema;
 import javax.xml.validation.SchemaFactory;
 
diff --git a/opendj-embedded-server-examples/pom.xml b/opendj-embedded-server-examples/pom.xml
index 6e35860..7a8b8f6 100644
--- a/opendj-embedded-server-examples/pom.xml
+++ b/opendj-embedded-server-examples/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-embedded-server-examples</artifactId>
diff --git a/opendj-embedded/pom.xml b/opendj-embedded/pom.xml
index 02a493b..34e90d3 100644
--- a/opendj-embedded/pom.xml
+++ b/opendj-embedded/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-parent</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
     <name>OpenDJ Embedded Server</name>
     <artifactId>opendj-embedded</artifactId>
diff --git a/opendj-grizzly/pom.xml b/opendj-grizzly/pom.xml
index b4c5806..b1d670e 100644
--- a/opendj-grizzly/pom.xml
+++ b/opendj-grizzly/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-grizzly</artifactId>
@@ -33,6 +33,7 @@
         <opendj.osgi.import.additional>
             org.forgerock.opendj.*;provide:=true
         </opendj.osgi.import.additional>
+        <osgi.grizzly.import.version>[3.0,5)</osgi.grizzly.import.version>
     </properties>
 
     <dependencies>
@@ -127,6 +128,17 @@
                 <artifactId>maven-bundle-plugin</artifactId>
                 <configuration>
                     <instructions>
+                        <Import-Package>
+                            org.glassfish.grizzly;version="${osgi.grizzly.import.version}",
+                            org.glassfish.grizzly.attributes;version="${osgi.grizzly.import.version}",
+                            org.glassfish.grizzly.filterchain;version="${osgi.grizzly.import.version}",
+                            org.glassfish.grizzly.memory;version="${osgi.grizzly.import.version}",
+                            org.glassfish.grizzly.nio.transport;version="${osgi.grizzly.import.version}",
+                            org.glassfish.grizzly.ssl;version="${osgi.grizzly.import.version}",
+                            org.glassfish.grizzly.strategies;version="${osgi.grizzly.import.version}",
+                            org.glassfish.grizzly.threadpool;version="${osgi.grizzly.import.version}",
+                            *
+                        </Import-Package>
                         <!-- Export only public APIs of this module-->
                         <Export-Package>
                             com.forgerock.opendj.grizzly*,
diff --git a/opendj-ldap-sdk-examples/pom.xml b/opendj-ldap-sdk-examples/pom.xml
index 7044b39..44c326d 100644
--- a/opendj-ldap-sdk-examples/pom.xml
+++ b/opendj-ldap-sdk-examples/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-ldap-sdk-examples</artifactId>
diff --git a/opendj-ldap-toolkit/pom.xml b/opendj-ldap-toolkit/pom.xml
index eff14e6..a9bac62 100644
--- a/opendj-ldap-toolkit/pom.xml
+++ b/opendj-ldap-toolkit/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-ldap-toolkit</artifactId>
diff --git a/opendj-legacy/pom.xml b/opendj-legacy/pom.xml
index 896a368..1f409e3 100644
--- a/opendj-legacy/pom.xml
+++ b/opendj-legacy/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
   <artifactId>opendj-legacy</artifactId>
   <name>OpenDJ Legacy</name>
diff --git a/opendj-maven-plugin/pom.xml b/opendj-maven-plugin/pom.xml
index 1570f04..b9cfb4f 100644
--- a/opendj-maven-plugin/pom.xml
+++ b/opendj-maven-plugin/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>opendj-maven-plugin</artifactId>
diff --git a/opendj-openidm-account-change-notification-handler/pom.xml b/opendj-openidm-account-change-notification-handler/pom.xml
index 9250db7..fc1f731 100644
--- a/opendj-openidm-account-change-notification-handler/pom.xml
+++ b/opendj-openidm-account-change-notification-handler/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
   <artifactId>opendj-openidm-account-change-notification-handler</artifactId>
   <name>OpenDJ account change notification handler for OpenIDM</name>
diff --git a/opendj-packages/opendj-deb/opendj-deb-standard/pom.xml b/opendj-packages/opendj-deb/opendj-deb-standard/pom.xml
index 6fea6a3..1b515b9 100644
--- a/opendj-packages/opendj-deb/opendj-deb-standard/pom.xml
+++ b/opendj-packages/opendj-deb/opendj-deb-standard/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-deb</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-deb-standard</artifactId>
diff --git a/opendj-packages/opendj-deb/pom.xml b/opendj-packages/opendj-deb/pom.xml
index b94684c..a4d607b 100644
--- a/opendj-packages/opendj-deb/pom.xml
+++ b/opendj-packages/opendj-deb/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-packages</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <profiles>
diff --git a/opendj-packages/opendj-deb/resources/control/control b/opendj-packages/opendj-deb/resources/control/control
index 4e8d87d..4e372a1 100644
--- a/opendj-packages/opendj-deb/resources/control/control
+++ b/opendj-packages/opendj-deb/resources/control/control
@@ -3,7 +3,7 @@
 Section: misc
 Priority: optional
 Architecture: all
-Depends: default-jre-headless | default-jre | java6-runtime | java7-runtime
+Depends: default-jre-headless | default-jre | java11-runtime | java17-runtime | java21-runtime
 Homepage: [[deb.doc.homepage.url]]
 Maintainer: [[deb.maintainer]]
 Description: [[deb.product.name]]
diff --git a/opendj-packages/opendj-docker/Dockerfile-alpine b/opendj-packages/opendj-docker/Dockerfile-alpine
index eccca03..a6b191a 100644
--- a/opendj-packages/opendj-docker/Dockerfile-alpine
+++ b/opendj-packages/opendj-docker/Dockerfile-alpine
@@ -25,7 +25,7 @@
 
 RUN apk add --update --no-cache --virtual builddeps curl unzip \
  && apk upgrade --update --no-cache \
- && apk add bash openjdk8 \
+ && apk add bash openjdk11 \
  && if [ -z "$VERSION" ] ; then VERSION="$(curl -i -o - --silent https://api.github.com/repos/OpenIdentityPlatform/OpenDJ/releases/latest | grep -m1 "\"name\"" | cut -d\" -f4)"; fi \
  && curl -L https://github.com/OpenIdentityPlatform/OpenDJ/releases/download/$VERSION/opendj-$VERSION.zip --output opendj-$VERSION.zip \
  && unzip opendj-$VERSION.zip \
diff --git a/opendj-packages/opendj-docker/pom.xml b/opendj-packages/opendj-docker/pom.xml
index e3cbb99..65c6222 100644
--- a/opendj-packages/opendj-docker/pom.xml
+++ b/opendj-packages/opendj-docker/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-packages</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <profiles>
diff --git a/opendj-packages/opendj-msi/opendj-msi-standard/pom.xml b/opendj-packages/opendj-msi/opendj-msi-standard/pom.xml
index f737dbc..57ea39b 100644
--- a/opendj-packages/opendj-msi/opendj-msi-standard/pom.xml
+++ b/opendj-packages/opendj-msi/opendj-msi-standard/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-msi</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-msi-standard</artifactId>
diff --git a/opendj-packages/opendj-msi/pom.xml b/opendj-packages/opendj-msi/pom.xml
index 4dc389c..ee0a16e 100644
--- a/opendj-packages/opendj-msi/pom.xml
+++ b/opendj-packages/opendj-msi/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-packages</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-msi</artifactId>
diff --git a/opendj-packages/opendj-rpm/opendj-rpm-standard/pom.xml b/opendj-packages/opendj-rpm/opendj-rpm-standard/pom.xml
index 1f4e7e0..53022d4 100644
--- a/opendj-packages/opendj-rpm/opendj-rpm-standard/pom.xml
+++ b/opendj-packages/opendj-rpm/opendj-rpm-standard/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-rpm</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-rpm-standard</artifactId>
diff --git a/opendj-packages/opendj-rpm/pom.xml b/opendj-packages/opendj-rpm/pom.xml
index c6a5190..c9114dd 100644
--- a/opendj-packages/opendj-rpm/pom.xml
+++ b/opendj-packages/opendj-rpm/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-packages</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <packaging>pom</packaging>
diff --git a/opendj-packages/opendj-svr4/opendj-svr4-standard/pom.xml b/opendj-packages/opendj-svr4/opendj-svr4-standard/pom.xml
index c2a3761..f9d24bf 100644
--- a/opendj-packages/opendj-svr4/opendj-svr4-standard/pom.xml
+++ b/opendj-packages/opendj-svr4/opendj-svr4-standard/pom.xml
@@ -20,15 +20,13 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-svr4</artifactId>
-        <version>4.0.0-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-svr4-sandard</artifactId>
     <packaging>pom</packaging>
     <name>OpenDJ SVR4 Standard Package</name>
 
-    <packaging>pom</packaging>
-
     <description>
         This module generates a standard SVR4 OpenDJ version.
     </description>
diff --git a/opendj-packages/opendj-svr4/pom.xml b/opendj-packages/opendj-svr4/pom.xml
index f768571..d83d2b8 100644
--- a/opendj-packages/opendj-svr4/pom.xml
+++ b/opendj-packages/opendj-svr4/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-packages</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-svr4</artifactId>
diff --git a/opendj-packages/pom.xml b/opendj-packages/pom.xml
index 1ae2eb0..3253479 100644
--- a/opendj-packages/pom.xml
+++ b/opendj-packages/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-parent</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-packages</artifactId>
diff --git a/opendj-rest2ldap-servlet/pom.xml b/opendj-rest2ldap-servlet/pom.xml
index 2c5d992..e5275fc 100644
--- a/opendj-rest2ldap-servlet/pom.xml
+++ b/opendj-rest2ldap-servlet/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>opendj-rest2ldap-servlet</artifactId>
@@ -101,7 +101,6 @@
       <plugin>
 	      <groupId>org.codehaus.cargo</groupId>
           <artifactId>cargo-maven3-plugin</artifactId>
-          <version>1.10.9</version>
           <extensions>true</extensions>
 		  <executions>
 			    <execution>
@@ -121,7 +120,7 @@
 			</executions>
             <configuration>
                 <container>
-                    <containerId>tomcat9x</containerId>
+                    <containerId>${maven.cargo.containerId}</containerId>
                     <type>embedded</type>
                     <systemProperties>
                         <file.encoding>UTF-8</file.encoding>
diff --git a/opendj-rest2ldap/pom.xml b/opendj-rest2ldap/pom.xml
index 584a0d7..5c57617 100644
--- a/opendj-rest2ldap/pom.xml
+++ b/opendj-rest2ldap/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>opendj-parent</artifactId>
         <groupId>org.openidentityplatform.opendj</groupId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 	
     <artifactId>opendj-rest2ldap</artifactId>
diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Utils.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Utils.java
index dc52087..5a0d487 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Utils.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Utils.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2012-2016 ForgeRock AS.
+ * Portions Copyright 2025 3A Systems LLC.
  */
 package org.forgerock.opendj.rest2ldap;
 
diff --git a/opendj-server-example-plugin/pom.xml b/opendj-server-example-plugin/pom.xml
index ebe0c6d..9a0a2c0 100644
--- a/opendj-server-example-plugin/pom.xml
+++ b/opendj-server-example-plugin/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
   <artifactId>opendj-server-example-plugin</artifactId>
   <name>OpenDJ Server Example Plugin</name>
diff --git a/opendj-server-legacy/pom.xml b/opendj-server-legacy/pom.xml
index 121d60b..d1c6d33 100644
--- a/opendj-server-legacy/pom.xml
+++ b/opendj-server-legacy/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
   <artifactId>opendj-server-legacy</artifactId>
   <packaging>jar</packaging>
@@ -208,7 +208,7 @@
     <!-- mail -->
     <dependency>
       <groupId>com.sun.mail</groupId>
-      <artifactId>javax.mail</artifactId>
+      <artifactId>jakarta.mail</artifactId>
     </dependency>
 
     <dependency>
@@ -231,8 +231,8 @@
     </dependency>
 
     <dependency>
-      <groupId>com.github.stephenc.jcip</groupId>
-      <artifactId>jcip-annotations</artifactId>
+      <groupId>com.io7m.jcip</groupId>
+      <artifactId>com.io7m.jcip.annotations</artifactId>
     </dependency>
 
     <dependency>
@@ -712,7 +712,7 @@
                 <Embed-Dependency>
                   org.openidentityplatform.commons.persistit:core,
                   <!--je,-->
-                  jcip-annotations
+                  com.io7m.jcip.annotations
                 </Embed-Dependency>
               </instructions>
             </configuration>
@@ -828,6 +828,7 @@
               <includes>
                 <include>**/org/slf4j/**</include>
                 <include>**/org/opends/server/loggers/slf4j/**</include>
+                <include>**/META-INF/services/org.slf4j.spi.SLF4JServiceProvider</include>
               </includes>
               <archive>
                 <index>false</index>
diff --git a/opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/OpenDJServiceProvider.java b/opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/OpenDJServiceProvider.java
new file mode 100644
index 0000000..6ddabe0
--- /dev/null
+++ b/opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/OpenDJServiceProvider.java
@@ -0,0 +1,67 @@
+/*
+ * The contents of this file are subject to the terms of the Common Development and
+ * Distribution License (the License). You may not use this file except in compliance with the
+ * License.
+ *
+ * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
+ * specific language governing permission and limitations under the License.
+ *
+ * When distributing Covered Software, include this CDDL Header Notice in each file and include
+ * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
+ * Header, with the fields enclosed by brackets [] replaced by your own identifying
+ * information: "Portions Copyrighted [year] [name of copyright owner]".
+ *
+ * Copyright 2025 3A SystemS LLC
+ */
+
+package org.forgerock.opendj.slf4j;
+
+import org.opends.server.loggers.slf4j.OpenDJLoggerFactory;
+import org.slf4j.ILoggerFactory;
+import org.slf4j.IMarkerFactory;
+import org.slf4j.helpers.BasicMDCAdapter;
+import org.slf4j.helpers.BasicMarkerFactory;
+import org.slf4j.spi.MDCAdapter;
+import org.slf4j.spi.SLF4JServiceProvider;
+
+public class OpenDJServiceProvider implements SLF4JServiceProvider {
+    public static String REQUESTED_API_VERSION = "2.0.99"; // !final
+
+    // LoggerFactory expects providers to initialize markerFactory as early as possible.
+    private final IMarkerFactory markerFactory;
+    // LoggerFactory expects providers to initialize their MDCAdapter field
+    // as early as possible, preferably at construction time.
+    private final MDCAdapter mdcAdapter;
+
+    private ILoggerFactory loggerFactory;
+
+    public OpenDJServiceProvider() {
+        markerFactory = new BasicMarkerFactory();
+        mdcAdapter = new BasicMDCAdapter();
+    }
+
+    @Override
+    public ILoggerFactory getLoggerFactory() {
+        return loggerFactory;
+    }
+
+    @Override
+    public IMarkerFactory getMarkerFactory() {
+        return markerFactory;
+    }
+
+    @Override
+    public MDCAdapter getMDCAdapter() {
+        return mdcAdapter;
+    }
+
+    @Override
+    public String getRequestedApiVersion() {
+        return REQUESTED_API_VERSION;
+    }
+
+    @Override
+    public void initialize() {
+        loggerFactory = new OpenDJLoggerFactory();
+    }
+}
diff --git a/opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/package-info.java b/opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/package-info.java
new file mode 100644
index 0000000..310f483
--- /dev/null
+++ b/opendj-server-legacy/src/main/java/org/forgerock/opendj/slf4j/package-info.java
@@ -0,0 +1,17 @@
+/*
+ * The contents of this file are subject to the terms of the Common Development and
+ * Distribution License (the License). You may not use this file except in compliance with the
+ * License.
+ *
+ * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
+ * specific language governing permission and limitations under the License.
+ *
+ * When distributing Covered Software, include this CDDL Header Notice in each file and include
+ * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
+ * Header, with the fields enclosed by brackets [] replaced by your own identifying
+ * information: "Portions Copyright [year] [name of copyright owner]".
+ *
+ * Copyright 2025 3A Systems LLC
+ */
+
+package org.forgerock.opendj.slf4j;
\ No newline at end of file
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java
index 607bc47..22ca0da 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java
@@ -27,7 +27,7 @@
 import java.util.TimeZone;
 import java.util.UUID;
 
-import javax.mail.MessagingException;
+import jakarta.mail.MessagingException;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg2;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java b/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
index b452231..8e06561 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
@@ -13,7 +13,7 @@
  *
  * Portions Copyright 2006-2007-2008 Sun Microsystems, Inc.
  * Portions Copyright 2013-2016 ForgeRock AS.
- * Portions Copyright 2023-2024 3A Systems LLC.
+ * Portions Copyright 2023-2025 3A Systems LLC.
  */
 package org.opends.server.config;
 
@@ -51,7 +51,6 @@
 import static org.opends.server.util.ServerConstants.MBEAN_BASE_DOMAIN;
 import static org.opends.server.util.StaticUtils.isAlpha;
 import static org.opends.server.util.StaticUtils.isDigit;
-import static org.opends.server.schema.SchemaConstants.SYNTAX_INTEGER_OID;
 
 /**
  * This class defines a JMX MBean that can be registered with the Directory
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/api/AbortedChangelogCursorException.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/api/AbortedChangelogCursorException.java
index 48f2937..26d4e0a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/api/AbortedChangelogCursorException.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/api/AbortedChangelogCursorException.java
@@ -15,7 +15,7 @@
  */
 package org.opends.server.replication.server.changelog.api;
 
-import javax.annotation.Generated;
+import jakarta.annotation.Generated;
 
 import org.forgerock.i18n.LocalizableMessage;
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java b/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java
index 560705c..99121e1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/EMailMessage.java
@@ -35,16 +35,16 @@
 import java.util.List;
 import java.util.Properties;
 
-import javax.activation.DataHandler;
-import javax.activation.FileDataSource;
-import javax.mail.MessagingException;
-import javax.mail.SendFailedException;
-import javax.mail.Session;
-import javax.mail.Transport;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
+import jakarta.activation.DataHandler;
+import jakarta.activation.FileDataSource;
+import jakarta.mail.MessagingException;
+import jakarta.mail.SendFailedException;
+import jakarta.mail.Session;
+import jakarta.mail.Transport;
+import jakarta.mail.internet.InternetAddress;
+import jakarta.mail.internet.MimeBodyPart;
+import jakarta.mail.internet.MimeMessage;
+import jakarta.mail.internet.MimeMultipart;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -410,7 +410,7 @@
         }
       }
       message.setRecipients(
-              javax.mail.Message.RecipientType.TO,
+              jakarta.mail.Message.RecipientType.TO,
               recipientAddresses);
 
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java b/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java
index 6192516..543f5f9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java
@@ -63,7 +63,7 @@
   private static final PlatformIMPL IMPL;
 
   /** The minimum java supported version. */
-  public static final String JAVA_MINIMUM_VERSION_NUMBER = "8";
+  public static final String JAVA_MINIMUM_VERSION_NUMBER = "11";
 
   static
   {
diff --git a/opendj-server-legacy/src/main/resources/META-INF/services/org.slf4j.spi.SLF4JServiceProvider b/opendj-server-legacy/src/main/resources/META-INF/services/org.slf4j.spi.SLF4JServiceProvider
new file mode 100644
index 0000000..a4e286c
--- /dev/null
+++ b/opendj-server-legacy/src/main/resources/META-INF/services/org.slf4j.spi.SLF4JServiceProvider
@@ -0,0 +1 @@
+org.forgerock.opendj.slf4j.OpenDJServiceProvider
\ No newline at end of file
diff --git a/opendj-server-msad-plugin/pom.xml b/opendj-server-msad-plugin/pom.xml
index a0b4f24..f2e5cfd 100644
--- a/opendj-server-msad-plugin/pom.xml
+++ b/opendj-server-msad-plugin/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.openidentityplatform.opendj</groupId>
         <artifactId>opendj-parent</artifactId>
-        <version>4.10.3-SNAPSHOT</version>
+        <version>5.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>opendj-server-msad-plugin</artifactId>
diff --git a/opendj-server/pom.xml b/opendj-server/pom.xml
index 9522981..d161948 100644
--- a/opendj-server/pom.xml
+++ b/opendj-server/pom.xml
@@ -19,14 +19,14 @@
   <parent>
     <groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-    <version>4.10.3-SNAPSHOT</version>
+    <version>5.0.0-SNAPSHOT</version>
   </parent>
   <artifactId>opendj-server</artifactId>
   <name>OpenDJ Server NG</name>
   <description>
     OpenDJ LDAP embedded directory server.
   </description>
-  <packaging>jar</packaging>
+  <packaging>bundle</packaging>
   <properties>
     <!-- Product information properties -->
     <patchFixIds />
@@ -74,14 +74,14 @@
       <artifactId>opendj-cli</artifactId>
     </dependency>
     <dependency>
-    	<groupId>javax.annotation</groupId>
-    	<artifactId>javax.annotation-api</artifactId>
-    	<version>1.3.2</version>
+      <groupId>jakarta.annotation</groupId>
+      <artifactId>jakarta.annotation-api</artifactId>
+      <version>2.0.0</version>
     </dependency>
     <dependency>
-      <groupId>com.sun.activation</groupId>
-      <artifactId>javax.activation</artifactId>
-      <version>1.2.0</version>
+      <groupId>jakarta.activation</groupId>
+      <artifactId>jakarta.activation-api</artifactId>
+      <version>2.0.1</version>
     </dependency>
   </dependencies>
   <build><finalName>${project.groupId}.${project.artifactId}</finalName>
@@ -126,6 +126,10 @@
         </executions>
       </plugin>
       <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
       </plugin>
diff --git a/pom.xml b/pom.xml
index 1eb96b3..efc4a92 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
     <modelVersion>4.0.0</modelVersion>
 	<groupId>org.openidentityplatform.opendj</groupId>
     <artifactId>opendj-parent</artifactId>
-	  <version>4.10.3-SNAPSHOT</version>
+	  <version>5.0.0-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <name>OpenDJ Directory Services Project</name>
@@ -35,11 +35,11 @@
         <product.locales>ca_ES,es,de,fr,ja,ko,pl,zh_CN,zh_TW</product.locales>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <localized.jars.classifier>i18n</localized.jars.classifier>
-        <commons.version>2.4.1</commons.version>
+        <commons.version>3.0.0-SNAPSHOT</commons.version>
         <freemarker.version>2.3.34</freemarker.version>
         <metrics-core.version>4.2.30</metrics-core.version>
-        <maven.compiler.target>8</maven.compiler.target>
-        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>11</maven.compiler.source>
         <!-- OSGi bundles properties -->
         <opendj.osgi.import.additional />
         <!--
@@ -57,6 +57,7 @@
         <checkstyleVersion>5.5</checkstyleVersion>
         <ant.contrib.version>1.0b3</ant.contrib.version>
         <argLine>-Xmx512m</argLine>
+        <maven.cargo.containerId>tomcat10x</maven.cargo.containerId>
 
         <docHomepageUrl>https://doc.openidentityplatform.org/opendj/</docHomepageUrl>
         <docWikiUrl>https://github.com/OpenIdentityPlatform/OpenDJ/wiki</docWikiUrl>
@@ -149,10 +150,11 @@
         		<type>pom</type>
         		<scope>import</scope>
         	</dependency>
+
             <dependency>
-                <groupId>com.github.stephenc.jcip</groupId>
-                <artifactId>jcip-annotations</artifactId>
-                <version>1.0-1</version>
+                <groupId>com.io7m.jcip</groupId>
+                <artifactId>com.io7m.jcip.annotations</artifactId>
+                <version>2.0.0</version>
             </dependency>
 
             <!-- OpenDJ SDK -->
@@ -334,6 +336,10 @@
                         <fork>true</fork>
                         <compilerArgs>
                         	<arg>-XDignore.symbol.file</arg>
+                            <arg>--add-exports</arg>
+                            <arg>java.base/sun.security.x509=ALL-UNNAMED</arg>
+                            <arg>--add-exports</arg>
+                            <arg>java.base/sun.security.tools.keytool=ALL-UNNAMED</arg>
                         </compilerArgs>
                     </configuration>
                 </plugin>
@@ -651,6 +657,12 @@
                         </lifecycleMappingMetadata>
                     </configuration>
                 </plugin>
+                <plugin>
+                    <groupId>org.codehaus.cargo</groupId>
+                    <artifactId>cargo-maven3-plugin</artifactId>
+                    <version>1.10.20</version>
+                    <extensions>true</extensions>
+                </plugin>
             </plugins>
         </pluginManagement>
     </build>
@@ -669,22 +681,14 @@
                 <module>opendj-packages</module>
             </modules>
         </profile>
-        <profile>
-            <id>set-compiler-release</id>
-            <activation>
-                <jdk>[9,)</jdk>
-            </activation>
-            <properties>
-                <maven.compiler.release>8</maven.compiler.release>
-            </properties>
-        </profile>
 		<profile>
-	      <id>jdk16.options</id>
+	      <id>jdk17.options</id>
 	      <activation>
-	        <jdk>[16,)</jdk>
+	        <jdk>[17,)</jdk>
 	      </activation>
 	      <properties>
-	        <argLine>-Xmx512m --add-exports java.base/sun.security.x509=ALL-UNNAMED --add-exports java.base/sun.security.tools.keytool=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED  --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util.regex=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.naming/javax.naming.spi=ALL-UNNAMED</argLine>
+              <argLine>-Xmx512m --add-exports java.base/sun.security.x509=ALL-UNNAMED --add-exports java.base/sun.security.tools.keytool=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED  --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util.regex=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.naming/javax.naming.spi=ALL-UNNAMED</argLine>
+              <maven.cargo.containerId>tomcat11x</maven.cargo.containerId>
 	      </properties>
 	    </profile>
 		<profile>

--
Gitblit v1.10.0