diff --git a/CHANGELOG.md b/CHANGELOG.md
index e647b600..8d5d306a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,20 @@ on [Keep a CHANGELOG](http://keepachangelog.com/). This project adheres to
## [Unreleased]
+## [21.0.0-SNAPSHOT] - 2026-04-14
+### Changed
+- Bumped version to `21.0.0-SNAPSHOT` for Java 21 / WildFly 34 migration
+- Updated parent and all 50 child module POMs to `21.0.0-SNAPSHOT`
+- Updated `cpp.common-bom.version`, `framework-libraries.version`, `framework.version`, and `event-store.version` to `21.0.0-SNAPSHOT`
+- Updated `referencedata.version`: `17.103.129` → `17.103.131`
+- Migrated all Java source files (158 files) from `javax.*` to `jakarta.*` EE imports for compatibility with Jakarta EE 10
+- Replaced `javax:javaee-api` with `jakarta.platform:jakarta.jakartaee-api` in all 30 child module POMs that declared it as a dependency
+- Replaced `org.glassfish:javax.json` with `org.glassfish:jakarta.json` in 8 test POMs to align with Jakarta JSON-P 2.x
+- Fixed `ProviderAnnotationScanner`: replaced removed `BeanManager.fireEvent()` (CDI 4.0) with `BeanManager.getEvent().fire(event)`
+- Updated `ProviderAnnotationScannerTest` to use the CDI 4.0 `BeanManager.getEvent()` API
+- Reverted `activiti-embedded-rest` to use `javax.servlet.*` and `javax.transaction.*` imports (Activiti 5.22.0 depends on Spring 4.x which is bound to the `javax.*` namespace); added `javax:javaee-api:8.0.1` as a provided compilation dependency for that module
+- Fixed `DefaultSystemIdMapperClientTest`: updated `ZonedDateTime` assertions from `ZoneId.of("UTC")` to `ZoneOffset.UTC` to match Jackson 2.21.x deserialisation of the `"Z"` timezone token
+
# [17.105.0-M10] - 2026-04-02
### Changed
- Update microservice-framework to 17.105.0-M6 and event-store to 17.105.0-M19 for:
diff --git a/README.md b/README.md
index a1ca18ec..45a46a36 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,55 @@
-# Platform Libraries
+# cpp-platform-libraries
-Common internal libraries used by all [Microservice Framework](https://github.com/CJSCommonPlatform/microservice_framework) based contexts
+`uk.gov.moj.platform.libraries:platform-libraries-parent-pom`
-## CPP Internal Library Projects
+Shared internal libraries used by all CPP bounded-context services. This project provides cross-cutting platform concerns — access control, auditing, feature flags, metrics, search, health checks — as versioned, reusable library JARs consumed by the `cpp-context-*` services through `platform-libraries-bom`.
-All internal library projects have been brought in to be sub projects of this one, with a common version number to ease releases
+## Position in the hierarchy
-# [Access Control](./access-control-parent)
-# [Audit Library](./audit-library-parent)
-# [Authorisation](./authorisation-parent)
-# [Library Utils](./cpp-platform-library-utils)
-# [Id Mapper Client](./id-mapper-client)
-# [Service-Components](./service-components)
-# [System Document Generator Client](./system-documentgenerator-client)
-# [System Users Library](./system-users-library)
-# [Unified Search](./unifiedsearch-library-parent)
-# [Activiti](./activiti-parent)
+```
+cpp-platform-maven-parent-pom
+└── cpp-platform-libraries ← this project
+ └── cpp-platform-maven-service-parent-pom
+ └── [all cpp-context-* bounded-context services]
+```
+`cpp-platform-maven-service-parent-pom` inherits from this project and imports `platform-libraries-bom`, making all platform library versions available to every context service.
+
+## Maven coordinates
+
+| Property | Value |
+|---|---|
+| `groupId` | `uk.gov.moj.platform.libraries` |
+| `artifactId` | `platform-libraries-parent-pom` |
+| Parent | `uk.gov.moj.cpp.common:parent-pom` (cpp-platform-maven-parent-pom) |
+
+## Modules
+
+| Module | Artifact group | Description |
+|---|---|---|
+| `access-control-parent` | `access-control-*` | Drools-based access control evaluation. Loads `.drl` rule files from the classpath to enforce role-based access on incoming requests. Requires a `CJSCPPUID` header. |
+| `audit-library-parent` | `audit-*` | Audit recording — writes an audit trail of commands and queries to the audit event store via JMS. Configurable action blacklist via `audit.blacklist` JNDI key. |
+| `feature-control` | `feature-control-*` | Remote feature-flag control. Fetches flag values from a remote source and caches them locally. Master switch: `feature-control.enabled` JNDI key. |
+| `metrics-micrometer` | `metrics-micrometer` | Micrometer metrics integration for context services — publishes to Azure Monitor. Configured via `micrometer.metrics.*` JNDI keys. |
+| `healthchecks-parent` | `healthchecks-*` | MicroProfile health check base classes and WildFly probe registration. |
+| `service-components` | `service-components` | Defines the `@ServiceComponent` values specific to the platform tier (beyond the core framework components). |
+| `access-control-parent` | | |
+| `id-mapper-client` | `id-mapper-client` | REST client for the ID mapper service — maps internal IDs to external references. |
+| `system-documentgenerator-client` | `system-documentgenerator-client` | REST client for the document generator service. |
+| `system-users-library` | `system-users-library` | Utilities for resolving user identity and roles from the `CJSCPPUID` session token. |
+| `unifiedsearch-library-parent` | `unifiedsearch-*` | Client library for the unified search service (Elasticsearch-backed). |
+| `activiti-parent` | `activiti-*` | Integration layer for Activiti BPMN workflow engine used in some bounded contexts. |
+| `cpp-platform-library-utils` | `cpp-platform-library-utils` | Shared low-level utilities (string helpers, date converters, reflection utilities). |
+| `platform-libraries-bom` | `platform-libraries-bom` | BOM that imports all platform library artifacts at a consistent version. |
+
+## Build
+
+```bash
+mvn clean install -Denforcer.skip=true
+```
+
+The `enforce-moj-latest-interfaces` rule checks that MOJ interface JAR versions are current. During active development use `-Denforcer.skip=true`; this flag skips the standard `enforce-rules` execution but not rules with `false` hardcoded.
+
+## JNDI configuration
+
+See the `cp-microservice-framework` [jndi-configuration.md](../cp-microservice-framework/jndi-configuration.md) for `feature-control`, `audit.blacklist`, `micrometer.metrics.*`, and CORS keys — these originate in classes within `cp-microservice-framework` but apply to platform services using this library.
diff --git a/access-control-parent/access-control-drools/pom.xml b/access-control-parent/access-control-drools/pom.xml
index fbf6c0d6..15ca77b4 100644
--- a/access-control-parent/access-control-drools/pom.xml
+++ b/access-control-parent/access-control-drools/pom.xml
@@ -5,20 +5,21 @@
uk.gov.moj.cpp.access-control
access-control-parent
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
access-control-drools
- javax
- javaee-api
+ uk.gov.justice.framework-api
+ framework-api-core
provided
+
- uk.gov.justice.framework-api
- framework-api-core
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -37,6 +38,17 @@
org.drools
drools-mvel
+
+ org.drools
+ drools-xml-support
+
+
+
+
+ org.drools
+ drools-commands
+ test
+
org.junit.jupiter
junit-jupiter-api
diff --git a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/Action.java b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/Action.java
index 2f30c0fa..2da364e7 100644
--- a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/Action.java
+++ b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/Action.java
@@ -5,7 +5,7 @@
import java.util.Optional;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
/**
* Representation of an action for convenience use with drools integration.
diff --git a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieContainerProvider.java b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieContainerProvider.java
index 262dfee1..647f655f 100644
--- a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieContainerProvider.java
+++ b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieContainerProvider.java
@@ -1,6 +1,6 @@
package uk.gov.moj.cpp.accesscontrol.drools;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
diff --git a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactory.java b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactory.java
index ab03c83c..342f933e 100644
--- a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactory.java
+++ b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactory.java
@@ -11,11 +11,11 @@
import java.util.HashMap;
import java.util.Map;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.enterprise.inject.spi.Bean;
+import jakarta.enterprise.inject.spi.BeanManager;
+import jakarta.inject.Inject;
import org.kie.api.builder.model.KieBaseModel;
import org.kie.api.builder.model.KieSessionModel;
diff --git a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluator.java b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluator.java
index df6b7ebe..e79222eb 100644
--- a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluator.java
+++ b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluator.java
@@ -8,10 +8,10 @@
import java.util.List;
import java.util.Optional;
-import javax.annotation.Priority;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
import org.kie.api.command.Command;
import org.kie.api.runtime.ExecutionResults;
diff --git a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/Provider.java b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/Provider.java
index caeb9875..a9784756 100644
--- a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/Provider.java
+++ b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/Provider.java
@@ -6,7 +6,7 @@
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
/**
* Identifies provider classes, which are used by the access-control module to inject information
diff --git a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScanner.java b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScanner.java
index 51663df8..b9bfa6d0 100644
--- a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScanner.java
+++ b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScanner.java
@@ -9,11 +9,11 @@
import java.util.List;
import java.util.stream.Stream;
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.spi.AfterDeploymentValidation;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.enterprise.inject.spi.Extension;
+import jakarta.enterprise.event.Observes;
+import jakarta.enterprise.inject.spi.AfterDeploymentValidation;
+import jakarta.enterprise.inject.spi.Bean;
+import jakarta.enterprise.inject.spi.BeanManager;
+import jakarta.enterprise.inject.spi.Extension;
import org.slf4j.Logger;
@@ -41,7 +41,7 @@ private void processBean(final Bean> bean) {
}
private void fireAllCollectedEvents(final BeanManager beanManager) {
- events.forEach(beanManager::fireEvent);
+ events.forEach(event -> beanManager.getEvent().fire(event));
}
private boolean isProvider(final Bean> bean) {
diff --git a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderFoundEvent.java b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderFoundEvent.java
index 560f917d..cd22b701 100644
--- a/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderFoundEvent.java
+++ b/access-control-parent/access-control-drools/src/main/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderFoundEvent.java
@@ -1,6 +1,6 @@
package uk.gov.moj.cpp.accesscontrol.providers;
-import javax.enterprise.inject.spi.Bean;
+import jakarta.enterprise.inject.spi.Bean;
/**
* Event representing the occurrence of a class with an annotation having been
diff --git a/access-control-parent/access-control-drools/src/main/resources/META-INF/beans.xml b/access-control-parent/access-control-drools/src/main/resources/META-INF/beans.xml
index cc3f8d28..be799004 100644
--- a/access-control-parent/access-control-drools/src/main/resources/META-INF/beans.xml
+++ b/access-control-parent/access-control-drools/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="all">
\ No newline at end of file
diff --git a/access-control-parent/access-control-drools/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/access-control-parent/access-control-drools/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
similarity index 100%
rename from access-control-parent/access-control-drools/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
rename to access-control-parent/access-control-drools/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
diff --git a/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactoryTest.java b/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactoryTest.java
index 33d60966..ae849e92 100644
--- a/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactoryTest.java
+++ b/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/KieSessionFactoryTest.java
@@ -17,10 +17,10 @@
import java.util.List;
import java.util.Map;
-import javax.enterprise.context.spi.Context;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
+import jakarta.enterprise.context.spi.Context;
+import jakarta.enterprise.context.spi.CreationalContext;
+import jakarta.enterprise.inject.spi.Bean;
+import jakarta.enterprise.inject.spi.BeanManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluatorTest.java b/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluatorTest.java
index e8d7c718..a580446c 100644
--- a/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluatorTest.java
+++ b/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/drools/LocalRulesDroolsAccessPolicyEvaluatorTest.java
@@ -16,8 +16,8 @@
import java.util.Map;
import java.util.Optional;
-import org.drools.core.command.runtime.BatchExecutionCommandImpl;
-import org.drools.core.command.runtime.rule.InsertObjectCommand;
+import org.drools.commands.runtime.BatchExecutionCommandImpl;
+import org.drools.commands.runtime.rule.InsertObjectCommand;
import org.hamcrest.collection.IsCollectionWithSize;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScannerTest.java b/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScannerTest.java
index 8c58cb05..df08dd1b 100644
--- a/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScannerTest.java
+++ b/access-control-parent/access-control-drools/src/test/java/uk/gov/moj/cpp/accesscontrol/providers/ProviderAnnotationScannerTest.java
@@ -10,14 +10,13 @@
import java.util.HashSet;
-import javax.enterprise.inject.spi.AfterDeploymentValidation;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
+import jakarta.enterprise.event.Event;
+import jakarta.enterprise.inject.spi.AfterDeploymentValidation;
+import jakarta.enterprise.inject.spi.Bean;
+import jakarta.enterprise.inject.spi.BeanManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.hamcrest.MatcherAssert.assertThat;
-
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
@@ -35,11 +34,14 @@ public class ProviderAnnotationScannerTest {
@Mock
private BeanManager beanManager;
+ @Mock
+ private Event
-
org.mockito
mockito-core
@@ -110,7 +109,7 @@
org.glassfish
- javax.json
+ jakarta.json
test
diff --git a/access-control-parent/access-control-providers/access-control-common-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProvider.java b/access-control-parent/access-control-providers/access-control-common-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProvider.java
index 8e692e65..12a6d9b2 100644
--- a/access-control-parent/access-control-providers/access-control-common-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProvider.java
+++ b/access-control-parent/access-control-providers/access-control-common-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProvider.java
@@ -13,11 +13,11 @@
import uk.gov.moj.cpp.accesscontrol.drools.ExpectedPermission;
import uk.gov.moj.cpp.accesscontrol.providers.Provider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
diff --git a/access-control-parent/access-control-providers/access-control-common-providers/src/main/resources/META-INF/beans.xml b/access-control-parent/access-control-providers/access-control-common-providers/src/main/resources/META-INF/beans.xml
index cc3f8d28..be799004 100644
--- a/access-control-parent/access-control-providers/access-control-common-providers/src/main/resources/META-INF/beans.xml
+++ b/access-control-parent/access-control-providers/access-control-common-providers/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="all">
\ No newline at end of file
diff --git a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderIT.java b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderIT.java
index b123eb28..8b9f5640 100644
--- a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderIT.java
+++ b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderIT.java
@@ -7,9 +7,9 @@
import java.util.Optional;
import java.util.Properties;
import java.util.UUID;
-import javax.annotation.Priority;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
import org.apache.openejb.OpenEjbContainer;
import org.apache.openejb.jee.Application;
import org.apache.openejb.jee.WebApp;
@@ -74,8 +74,8 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static java.lang.String.format;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder.envelope;
diff --git a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderTest.java b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderTest.java
index 3330618c..d9a3c938 100644
--- a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderTest.java
+++ b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/common/providers/UserAndGroupProviderTest.java
@@ -34,7 +34,7 @@
import java.util.Collections;
import java.util.List;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.BeforeEach;
diff --git a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/GroupsJsonBuilder.java b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/GroupsJsonBuilder.java
index 851b27c6..6b19d681 100644
--- a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/GroupsJsonBuilder.java
+++ b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/GroupsJsonBuilder.java
@@ -3,9 +3,9 @@
import java.util.ArrayList;
import java.util.List;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
diff --git a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/PermissionJsonBuilder.java b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/PermissionJsonBuilder.java
index cdc70a95..e3e5c4aa 100644
--- a/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/PermissionJsonBuilder.java
+++ b/access-control-parent/access-control-providers/access-control-common-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/test/util/PermissionJsonBuilder.java
@@ -6,9 +6,9 @@
import java.util.ArrayList;
import java.util.List;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
public class PermissionJsonBuilder {
diff --git a/access-control-parent/access-control-providers/access-control-hearing-providers/pom.xml b/access-control-parent/access-control-providers/access-control-hearing-providers/pom.xml
index 0527c6b9..71192835 100644
--- a/access-control-parent/access-control-providers/access-control-hearing-providers/pom.xml
+++ b/access-control-parent/access-control-providers/access-control-hearing-providers/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.access-control
access-control-providers
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
access-control-hearing-providers
@@ -17,8 +17,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
runtime
@@ -59,8 +59,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -101,7 +101,7 @@
org.glassfish
- javax.json
+ jakarta.json
test
diff --git a/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProvider.java b/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProvider.java
index 24766d52..1ac4ef62 100644
--- a/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProvider.java
+++ b/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProvider.java
@@ -7,10 +7,10 @@
import uk.gov.moj.cpp.accesscontrol.drools.Action;
import uk.gov.moj.cpp.accesscontrol.providers.Provider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonString;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonString;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
diff --git a/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/resources/META-INF/beans.xml b/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/resources/META-INF/beans.xml
index cc3f8d28..be799004 100644
--- a/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/resources/META-INF/beans.xml
+++ b/access-control-parent/access-control-providers/access-control-hearing-providers/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="all">
\ No newline at end of file
diff --git a/access-control-parent/access-control-providers/access-control-hearing-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProviderTest.java b/access-control-parent/access-control-providers/access-control-hearing-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProviderTest.java
index 568c5b0c..061bbc63 100644
--- a/access-control-parent/access-control-providers/access-control-hearing-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProviderTest.java
+++ b/access-control-parent/access-control-providers/access-control-hearing-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/hearing/providers/HearingProviderTest.java
@@ -13,7 +13,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.accesscontrol.drools.Action;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
diff --git a/access-control-parent/access-control-providers/access-control-progression-providers/pom.xml b/access-control-parent/access-control-providers/access-control-progression-providers/pom.xml
index 5b81c0a1..8bfbd309 100644
--- a/access-control-parent/access-control-providers/access-control-progression-providers/pom.xml
+++ b/access-control-parent/access-control-providers/access-control-progression-providers/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.access-control
access-control-providers
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
access-control-progression-providers
@@ -17,8 +17,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
runtime
@@ -59,8 +59,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -74,7 +74,6 @@
${project.version}
-
org.junit.jupiter
junit-jupiter-api
@@ -112,7 +111,7 @@
org.glassfish
- javax.json
+ jakarta.json
test
diff --git a/access-control-parent/access-control-providers/access-control-progression-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProvider.java b/access-control-parent/access-control-providers/access-control-progression-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProvider.java
index f866bb92..57d3fa31 100644
--- a/access-control-parent/access-control-providers/access-control-progression-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProvider.java
+++ b/access-control-parent/access-control-providers/access-control-progression-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProvider.java
@@ -7,16 +7,16 @@
import uk.gov.moj.cpp.accesscontrol.drools.Action;
import uk.gov.moj.cpp.accesscontrol.providers.Provider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonString;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonString;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import static java.lang.String.format;
import static java.util.Optional.ofNullable;
-import static javax.json.JsonValue.ValueType.NULL;
+import static jakarta.json.JsonValue.ValueType.NULL;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
import static uk.gov.justice.services.messaging.JsonEnvelope.metadataBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
diff --git a/access-control-parent/access-control-providers/access-control-progression-providers/src/main/resources/META-INF/beans.xml b/access-control-parent/access-control-providers/access-control-progression-providers/src/main/resources/META-INF/beans.xml
index cc3f8d28..be799004 100644
--- a/access-control-parent/access-control-providers/access-control-progression-providers/src/main/resources/META-INF/beans.xml
+++ b/access-control-parent/access-control-providers/access-control-progression-providers/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="all">
\ No newline at end of file
diff --git a/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProviderIT.java b/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProviderIT.java
index 0c38fbb9..35cfc661 100644
--- a/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProviderIT.java
+++ b/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/providers/ProgressionProviderIT.java
@@ -5,9 +5,9 @@
import java.util.Optional;
import java.util.Properties;
import java.util.UUID;
-import javax.annotation.Priority;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
import org.apache.openejb.OpenEjbContainer;
import org.apache.openejb.jee.Application;
import org.apache.openejb.jee.WebApp;
@@ -71,7 +71,7 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static java.lang.String.format;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder.envelope;
diff --git a/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/test/util/ProgressionSearchCaseByMaterialIdJsonResponseBuilder.java b/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/test/util/ProgressionSearchCaseByMaterialIdJsonResponseBuilder.java
index 3dd68048..8206e4c3 100644
--- a/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/test/util/ProgressionSearchCaseByMaterialIdJsonResponseBuilder.java
+++ b/access-control-parent/access-control-providers/access-control-progression-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/progression/test/util/ProgressionSearchCaseByMaterialIdJsonResponseBuilder.java
@@ -3,8 +3,8 @@
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/pom.xml b/access-control-parent/access-control-providers/access-control-refdata-providers/pom.xml
index bfe32d19..2ad5ec60 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/pom.xml
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.access-control
access-control-providers
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
access-control-refdata-providers
@@ -21,8 +21,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
runtime
@@ -46,8 +46,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -96,7 +96,7 @@
org.glassfish
- javax.json
+ jakarta.json
test
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProvider.java b/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProvider.java
index 256d3761..7c05fb78 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProvider.java
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProvider.java
@@ -10,11 +10,11 @@
import uk.gov.moj.cpp.accesscontrol.drools.Action;
import uk.gov.moj.cpp.accesscontrol.providers.Provider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
import java.time.LocalDate;
import java.util.List;
import java.util.Optional;
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/resources/META-INF/beans.xml b/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/resources/META-INF/beans.xml
index cc3f8d28..be799004 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/resources/META-INF/beans.xml
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="all">
\ No newline at end of file
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderBaseTest.java b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderBaseTest.java
index f0aad246..a1e26603 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderBaseTest.java
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderBaseTest.java
@@ -16,9 +16,9 @@
import uk.gov.justice.services.test.utils.core.messaging.MetadataBuilderFactory;
import uk.gov.moj.cpp.accesscontrol.drools.Action;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
-import javax.json.JsonValue;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonValue;
import java.io.StringReader;
import java.nio.charset.Charset;
import java.util.Map;
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDeleteDocumentAccessTest.java b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDeleteDocumentAccessTest.java
index 652f9747..1234ecfa 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDeleteDocumentAccessTest.java
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDeleteDocumentAccessTest.java
@@ -16,7 +16,7 @@
import java.util.HashMap;
import java.util.Map;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDownloadDocumentAccessTest.java b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDownloadDocumentAccessTest.java
index 6cdcf3a1..c015179b 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDownloadDocumentAccessTest.java
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForDownloadDocumentAccessTest.java
@@ -17,7 +17,7 @@
import java.util.HashMap;
import java.util.Map;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForReadDocumentAccessTest.java b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForReadDocumentAccessTest.java
index 65c70314..a4ad9eff 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForReadDocumentAccessTest.java
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForReadDocumentAccessTest.java
@@ -16,7 +16,7 @@
import java.util.HashMap;
import java.util.Map;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForUploadDocumentAccessTest.java b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForUploadDocumentAccessTest.java
index 3b5c6389..9d85c6d6 100644
--- a/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForUploadDocumentAccessTest.java
+++ b/access-control-parent/access-control-providers/access-control-refdata-providers/src/test/java/uk/gov/moj/cpp/accesscontrol/refdata/providers/RbacProviderForUploadDocumentAccessTest.java
@@ -16,7 +16,7 @@
import java.util.HashMap;
import java.util.Map;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/access-control-parent/access-control-providers/access-control-sjp-providers/pom.xml b/access-control-parent/access-control-providers/access-control-sjp-providers/pom.xml
index adf7a69f..8c4f435e 100644
--- a/access-control-parent/access-control-providers/access-control-sjp-providers/pom.xml
+++ b/access-control-parent/access-control-providers/access-control-sjp-providers/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.access-control
access-control-providers
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
access-control-sjp-providers
@@ -17,8 +17,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
runtime
@@ -53,8 +53,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -95,7 +95,7 @@
org.glassfish
- javax.json
+ jakarta.json
test
diff --git a/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/ProsecutingAuthorityProvider.java b/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/ProsecutingAuthorityProvider.java
index f466eb5e..a5b8a731 100644
--- a/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/ProsecutingAuthorityProvider.java
+++ b/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/ProsecutingAuthorityProvider.java
@@ -7,11 +7,11 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.accesscontrol.providers.Provider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
import static java.lang.Boolean.valueOf;
import static uk.gov.moj.cpp.accesscontrol.drools.constants.AccessControlFrameworkComponent.ACCESS_CONTROL;
diff --git a/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/SjpProvider.java b/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/SjpProvider.java
index 0e210556..92abaa9c 100644
--- a/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/SjpProvider.java
+++ b/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/java/uk/gov/moj/cpp/accesscontrol/sjp/providers/SjpProvider.java
@@ -7,11 +7,11 @@
import uk.gov.moj.cpp.accesscontrol.drools.Action;
import uk.gov.moj.cpp.accesscontrol.providers.Provider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.Json;
-import javax.json.JsonBuilderFactory;
-import javax.json.JsonValue;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.Json;
+import jakarta.json.JsonBuilderFactory;
+import jakarta.json.JsonValue;
import java.util.UUID;
import static java.lang.String.format;
diff --git a/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/resources/META-INF/beans.xml b/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/resources/META-INF/beans.xml
index cc3f8d28..be799004 100644
--- a/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/resources/META-INF/beans.xml
+++ b/access-control-parent/access-control-providers/access-control-sjp-providers/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="all">
\ No newline at end of file
diff --git a/access-control-parent/access-control-providers/pom.xml b/access-control-parent/access-control-providers/pom.xml
index 9f22e8d2..992491bb 100644
--- a/access-control-parent/access-control-providers/pom.xml
+++ b/access-control-parent/access-control-providers/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.access-control
access-control-parent
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
access-control-providers
diff --git a/access-control-parent/access-control-test-utils/pom.xml b/access-control-parent/access-control-test-utils/pom.xml
index 455a7738..6637fcab 100644
--- a/access-control-parent/access-control-test-utils/pom.xml
+++ b/access-control-parent/access-control-test-utils/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.access-control
access-control-parent
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
access-control-test-utils
diff --git a/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/BaseDroolsAccessControlTest.java b/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/BaseDroolsAccessControlTest.java
index ffcdc3a3..b6de4ec7 100644
--- a/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/BaseDroolsAccessControlTest.java
+++ b/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/BaseDroolsAccessControlTest.java
@@ -12,15 +12,26 @@
import uk.gov.moj.cpp.accesscontrol.drools.Action;
import uk.gov.moj.cpp.accesscontrol.drools.Outcome;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.UUID;
import org.junit.jupiter.api.BeforeEach;
-import static org.hamcrest.MatcherAssert.assertThat;
import org.kie.api.KieServices;
+import org.kie.api.builder.KieBuilder;
+import org.kie.api.builder.KieFileSystem;
+import org.kie.api.builder.Message;
+import org.kie.api.builder.Results;
import org.kie.api.command.Command;
import org.kie.api.runtime.ExecutionResults;
import org.kie.api.runtime.KieContainer;
@@ -46,10 +57,45 @@ public BaseDroolsAccessControlTest(final String kSessionName) {
protected StatelessKieSession kSession;
@BeforeEach
- public void setup() {
+ public void setup() throws Exception {
jsonEnvelopeBuilder = envelope();
final KieServices kieServices = KieServices.get();
- final KieContainer kieContainer = kieServices.getKieClasspathContainer();
+ final ClassLoader classLoader = getClass().getClassLoader();
+
+ final URL kmoduleUrl = classLoader.getResource("META-INF/kmodule.xml");
+ if (kmoduleUrl == null) {
+ throw new IllegalStateException("No META-INF/kmodule.xml found on classpath");
+ }
+
+ // Use KieFileSystem to build the KieContainer. Drools 10.x classpath scanning via
+ // ClassLoader.getResources() does not work correctly when surefire uses a manifest-only
+ // JAR classpath. Loading DRL files explicitly from the classpath root directory works
+ // around this limitation.
+ final KieFileSystem kfs = kieServices.newKieFileSystem();
+
+ try (InputStream is = classLoader.getResourceAsStream("META-INF/kmodule.xml")) {
+ kfs.writeKModuleXML(new String(is.readAllBytes(), StandardCharsets.UTF_8));
+ }
+
+ // Derive the classpath root from the kmodule.xml URL and walk it for DRL files.
+ // This works for file: URLs (i.e. target/classes directories in Maven builds).
+ final String kmoduleUrlStr = kmoduleUrl.toExternalForm();
+ if (kmoduleUrlStr.startsWith("file:")) {
+ final String rootUrlStr = kmoduleUrlStr.substring(0, kmoduleUrlStr.length() - "META-INF/kmodule.xml".length());
+ final File rootDir = new File(new URI(rootUrlStr));
+ addDrlFilesToKfs(kfs, rootDir, rootDir);
+ }
+
+ final KieBuilder kieBuilder = kieServices.newKieBuilder(kfs, classLoader);
+ kieBuilder.buildAll();
+
+ final Results results = kieBuilder.getResults();
+ for (final Message msg : results.getMessages(Message.Level.ERROR)) {
+ throw new IllegalStateException("Drools build error in " + msg.getPath() + ": " + msg.getText());
+ }
+
+ final KieContainer kieContainer = kieServices.newKieContainer(
+ kieServices.getRepository().getDefaultReleaseId(), classLoader);
final KieSessionConfiguration sessionConfiguration = kieContainer.getKieSessionConfiguration(kSessionName);
kSession = kieContainer.newStatelessKieSession(kSessionName, sessionConfiguration);
@@ -57,6 +103,18 @@ public void setup() {
injectProviderMocks();
}
+ private void addDrlFilesToKfs(final KieFileSystem kfs, final File rootDir, final File currentDir) throws IOException {
+ for (final File file : Objects.requireNonNull(currentDir.listFiles())) {
+ if (file.isDirectory()) {
+ addDrlFilesToKfs(kfs, rootDir, file);
+ } else if (file.getName().endsWith(".drl")) {
+ // KieFileSystem expects DRL files under src/main/resources/ so that
+ // KieBuilderImpl.copySourceToTarget() strips this prefix when processing
+ final String relativePath = "src/main/resources/" + rootDir.toURI().relativize(file.toURI()).toString();
+ kfs.write(relativePath, new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8));
+ }
+ }
+ }
/**
* A map of providers that are to be injected into the kie session as global entities.
@@ -80,8 +138,6 @@ protected Action createActionFor(final String actionName) {
}
protected Action createActionFor(final Map metadata) {
- // TODO - This needs to be updated to use the commented out line when the library is referncing the new framework version.
-// return new Action(jsonEnvelopeBuilder.withMetadataOf(metadata).build();
return new Action(jsonEnvelopeBuilder.with(metadataOf(UUID.randomUUID().toString(), metadata.get("name"))).build());
}
diff --git a/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/UsersAndGroupsWiremockStub.java b/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/UsersAndGroupsWiremockStub.java
index a2895e8d..15006a1e 100644
--- a/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/UsersAndGroupsWiremockStub.java
+++ b/access-control-parent/access-control-test-utils/src/main/java/uk/gov/moj/cpp/accesscontrol/test/utils/UsersAndGroupsWiremockStub.java
@@ -10,7 +10,7 @@
import static java.lang.String.format;
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static uk.gov.justice.service.wiremock.testutil.InternalEndpointMockUtils.stubPingFor;
import static uk.gov.justice.services.common.http.HeaderConstants.ID;
import static uk.gov.justice.services.test.utils.common.host.TestHostProvider.getHost;
diff --git a/access-control-parent/pom.xml b/access-control-parent/pom.xml
index 9e7bf175..694c0c3d 100644
--- a/access-control-parent/pom.xml
+++ b/access-control-parent/pom.xml
@@ -4,7 +4,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.access-control
diff --git a/activiti-parent/activiti-embedded-rest-example/pom.xml b/activiti-parent/activiti-embedded-rest-example/pom.xml
index d86909d0..4c5acd75 100644
--- a/activiti-parent/activiti-embedded-rest-example/pom.xml
+++ b/activiti-parent/activiti-embedded-rest-example/pom.xml
@@ -3,7 +3,7 @@
activiti-parent
uk.gov.moj.cpp.activiti
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/activiti-parent/activiti-embedded-rest/pom.xml b/activiti-parent/activiti-embedded-rest/pom.xml
index fd838503..2c0227d1 100644
--- a/activiti-parent/activiti-embedded-rest/pom.xml
+++ b/activiti-parent/activiti-embedded-rest/pom.xml
@@ -3,13 +3,18 @@
activiti-parent
uk.gov.moj.cpp.activiti
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
activiti-embedded-rest
+
+ jakarta.platform
+ jakarta.jakartaee-api
+ provided
+
javax
javaee-api
@@ -60,9 +65,18 @@
test
- javax.xml.bind
- jaxb-api
- ${jaxb-api.version}
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ test
+
+
+ org.eclipse.parsson
+ parsson
+ test
+
+
+ org.jboss.resteasy
+ resteasy-core
test
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ActivitiServicesProducer.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ActivitiServicesProducer.java
new file mode 100644
index 00000000..f1695076
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ActivitiServicesProducer.java
@@ -0,0 +1,51 @@
+package uk.gov.moj.cpp.activiti.cdi;
+
+import java.util.Comparator;
+import java.util.ServiceLoader;
+import java.util.stream.StreamSupport;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+
+import org.activiti.cdi.spi.ProcessEngineLookup;
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.ManagementService;
+import org.activiti.engine.RuntimeService;
+
+/**
+ * CDI producer for Activiti engine services.
+ *
+ * Bridges the Spring-managed Activiti ProcessEngine to CDI injection points.
+ * The ProcessEngine is created by Spring (via ActivitiEngineConfiguration) and
+ * made available via the ProxyProcessEngineLookup SPI. This producer exposes
+ * the resulting services as CDI application-scoped beans.
+ */
+@ApplicationScoped
+public class ActivitiServicesProducer {
+
+ @Produces
+ @ApplicationScoped
+ public RuntimeService runtimeService() {
+ return processEngineLookup().getProcessEngine().getRuntimeService();
+ }
+
+ @Produces
+ @ApplicationScoped
+ public HistoryService historyService() {
+ return processEngineLookup().getProcessEngine().getHistoryService();
+ }
+
+ @Produces
+ @ApplicationScoped
+ public ManagementService managementService() {
+ return processEngineLookup().getProcessEngine().getManagementService();
+ }
+
+ private ProcessEngineLookup processEngineLookup() {
+ final ServiceLoader loader = ServiceLoader.load(
+ ProcessEngineLookup.class, Thread.currentThread().getContextClassLoader());
+ return StreamSupport.stream(loader.spliterator(), false)
+ .max(Comparator.comparingInt(ProcessEngineLookup::getPrecedence))
+ .orElseThrow(() -> new IllegalStateException("No ProcessEngineLookup implementation found on classpath"));
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ActivitiSpringContextStartup.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ActivitiSpringContextStartup.java
new file mode 100644
index 00000000..f6bafc4f
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ActivitiSpringContextStartup.java
@@ -0,0 +1,39 @@
+package uk.gov.moj.cpp.activiti.cdi;
+
+import uk.gov.moj.cpp.activiti.spring.conf.ApplicationConfiguration;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.Initialized;
+import jakarta.enterprise.event.Observes;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+/**
+ * CDI startup bean that initialises the Activiti Spring application context.
+ *
+ * Replaces the former WebConfigurer @WebListener approach, which relied on javax.servlet APIs
+ * incompatible with Jakarta EE 10. A plain AnnotationConfigApplicationContext is used so that
+ * no servlet layer is required. The Activiti REST management API (/internal/activiti/service/*)
+ * is not registered here; add a separate servlet registration if it is needed.
+ *
+ * Spring scans ProxyProcessEngineLookup (@Component) and calls setApplicationContext() on it,
+ * which sets the static HANDLER.processEngine so that CDI injection of RuntimeService works.
+ */
+@ApplicationScoped
+public class ActivitiSpringContextStartup {
+
+ private final Logger log = LoggerFactory.getLogger(ActivitiSpringContextStartup.class);
+
+ void onStartup(@Observes @Initialized(ApplicationScoped.class) Object event) {
+ log.debug("Initialising Activiti Spring application context");
+ try {
+ new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
+ log.debug("Activiti Spring application context fully initialised");
+ } catch (final Exception e) {
+ log.error("Failed to initialise Activiti Spring application context", e);
+ throw new RuntimeException("Failed to initialise Activiti Spring application context", e);
+ }
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ProcessManagerService.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ProcessManagerService.java
index 430afb55..20c56a95 100644
--- a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ProcessManagerService.java
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/cdi/ProcessManagerService.java
@@ -4,8 +4,8 @@
import java.util.Map;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.RuntimeService;
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/ActivitiRestApplication.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/ActivitiRestApplication.java
new file mode 100644
index 00000000..7d6b4ae4
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/ActivitiRestApplication.java
@@ -0,0 +1,17 @@
+package uk.gov.moj.cpp.activiti.rest;
+
+import jakarta.ws.rs.ApplicationPath;
+import jakarta.ws.rs.core.Application;
+
+/**
+ * JAX-RS application that exposes the Activiti management REST API.
+ *
+ * Replaces the former Spring DispatcherServlet approach (WebConfigurer) which
+ * relied on javax.servlet APIs incompatible with Jakarta EE 10. Resources in
+ * this application delegate directly to the CDI-injected Activiti engine services.
+ *
+ * Deployed at: /{context-root}/internal/activiti/service/
+ */
+@ApplicationPath("/internal/activiti/service")
+public class ActivitiRestApplication extends Application {
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/HistoricProcessInstancesResource.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/HistoricProcessInstancesResource.java
new file mode 100644
index 00000000..31bf4394
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/HistoricProcessInstancesResource.java
@@ -0,0 +1,53 @@
+package uk.gov.moj.cpp.activiti.rest.resource;
+
+import java.util.List;
+
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.inject.Inject;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+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.MediaType;
+
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.history.HistoricProcessInstance;
+
+@RequestScoped
+@Path("/history/historic-process-instances")
+public class HistoricProcessInstancesResource {
+
+ @Inject
+ private HistoryService historyService;
+
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public JsonObject getHistoricProcessInstances(
+ @QueryParam("processDefinitionKey") final String processDefinitionKey,
+ @QueryParam("businessKey") final String businessKey) {
+
+ final List instances = historyService.createHistoricProcessInstanceQuery()
+ .processDefinitionKey(processDefinitionKey)
+ .processInstanceBusinessKey(businessKey)
+ .list();
+
+ final JsonArrayBuilder data = Json.createArrayBuilder();
+ for (final HistoricProcessInstance instance : instances) {
+ final JsonObjectBuilder entry = Json.createObjectBuilder()
+ .add("id", instance.getId());
+ if (instance.getDeleteReason() != null) {
+ entry.add("deleteReason", instance.getDeleteReason());
+ }
+ data.add(entry);
+ }
+
+ return Json.createObjectBuilder()
+ .add("data", data)
+ .add("total", instances.size())
+ .build();
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/JobsResource.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/JobsResource.java
new file mode 100644
index 00000000..b9743920
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/JobsResource.java
@@ -0,0 +1,60 @@
+package uk.gov.moj.cpp.activiti.rest.resource;
+
+import java.util.List;
+
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.inject.Inject;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+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.QueryParam;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+
+import org.activiti.engine.ManagementService;
+import org.activiti.engine.runtime.Job;
+
+@RequestScoped
+@Path("/management/jobs")
+public class JobsResource {
+
+ @Inject
+ private ManagementService managementService;
+
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public JsonObject getJobs(
+ @QueryParam("timersOnly") final boolean timersOnly,
+ @QueryParam("processInstanceId") final String processInstanceId) {
+
+ final List jobs = managementService.createJobQuery()
+ .timers()
+ .processInstanceId(processInstanceId)
+ .list();
+
+ final JsonArrayBuilder data = Json.createArrayBuilder();
+ for (final Job job : jobs) {
+ data.add(Json.createObjectBuilder()
+ .add("id", job.getId()));
+ }
+
+ return Json.createObjectBuilder()
+ .add("data", data)
+ .add("total", jobs.size())
+ .build();
+ }
+
+ @POST
+ @Path("/{jobId}")
+ @Consumes(MediaType.APPLICATION_JSON)
+ public Response executeJob(@PathParam("jobId") final String jobId, final JsonObject body) {
+ managementService.executeJob(jobId);
+ return Response.ok().build();
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/ProcessInstancesResource.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/ProcessInstancesResource.java
new file mode 100644
index 00000000..95493e08
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/rest/resource/ProcessInstancesResource.java
@@ -0,0 +1,49 @@
+package uk.gov.moj.cpp.activiti.rest.resource;
+
+import java.util.List;
+
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.inject.Inject;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+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.MediaType;
+
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.runtime.ProcessInstance;
+
+@RequestScoped
+@Path("/runtime/process-instances")
+public class ProcessInstancesResource {
+
+ @Inject
+ private RuntimeService runtimeService;
+
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public JsonObject getProcessInstances(
+ @QueryParam("processDefinitionKey") final String processDefinitionKey,
+ @QueryParam("businessKey") final String businessKey) {
+
+ final List instances = runtimeService.createProcessInstanceQuery()
+ .processDefinitionKey(processDefinitionKey)
+ .processInstanceBusinessKey(businessKey)
+ .list();
+
+ final JsonArrayBuilder data = Json.createArrayBuilder();
+ for (final ProcessInstance instance : instances) {
+ data.add(Json.createObjectBuilder()
+ .add("id", instance.getId())
+ .add("processDefinitionKey", processDefinitionKey));
+ }
+
+ return Json.createObjectBuilder()
+ .add("data", data)
+ .add("total", instances.size())
+ .build();
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/ActivitiEngineConfiguration.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/ActivitiEngineConfiguration.java
index cd6b7031..d8806b14 100644
--- a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/ActivitiEngineConfiguration.java
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/ActivitiEngineConfiguration.java
@@ -6,12 +6,9 @@
import java.io.IOException;
-import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
-import javax.transaction.TransactionManager;
-import org.activiti.cdi.CdiExpressionManager;
import org.activiti.engine.FormService;
import org.activiti.engine.HistoryService;
import org.activiti.engine.IdentityService;
@@ -29,7 +26,6 @@
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jndi.JndiTemplate;
import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.jta.JtaTransactionManager;
@Configuration
public class ActivitiEngineConfiguration {
@@ -61,9 +57,12 @@ public DataSource dataSource() throws NamingException {
}
@Bean(name = "transactionManager")
- public PlatformTransactionManager transactionManager() throws NamingException {
- final TransactionManager transactionManager = InitialContext.doLookup("java:jboss/TransactionManager");
- return new JtaTransactionManager(transactionManager);
+ public PlatformTransactionManager transactionManager() {
+ // Activiti is configured with transactionsExternallyManaged=true, so WildFly's JTA
+ // container controls transactions — the PlatformTransactionManager is wired by Spring
+ // but never called for commit/rollback. A no-op avoids the javax.transaction dependency
+ // which is absent from WildFly 32 / Jakarta EE 10.
+ return new NoOpPlatformTransactionManager();
}
@Bean(name="processEngineFactoryBean")
@@ -99,11 +98,11 @@ public ProcessEngineConfigurationImpl processEngineConfiguration() {
processEngineConfiguration.setAsyncExecutorEnabled(asyncExecutorEnabled);
processEngineConfiguration.setAsyncExecutorActivate(asyncExecutorActivate);
processEngineConfiguration.setHistoryLevel(AUDIT);
- processEngineConfiguration.setExpressionManager(new CdiExpressionManager());
processEngineConfiguration.setDeploymentName(appName);
processEngineConfiguration.setDeploymentResources(resources);
processEngineConfiguration.setDeploymentMode("custom");
processEngineConfiguration.setCreateDiagramOnDeploy(createDiagramOnDeploy);
+ processEngineConfiguration.setExpressionManager(new CdiAwareExpressionManager());
return processEngineConfiguration;
} catch (IOException|NamingException e ) {
throw new ActivitiEngineConfigException("Problems while configuring Activiti Engine", e);
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareELResolver.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareELResolver.java
new file mode 100644
index 00000000..ac17e6e7
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareELResolver.java
@@ -0,0 +1,63 @@
+package uk.gov.moj.cpp.activiti.spring.conf;
+
+import java.beans.FeatureDescriptor;
+import java.util.Iterator;
+
+import jakarta.enterprise.inject.spi.CDI;
+
+import org.activiti.engine.impl.javax.el.ELContext;
+import org.activiti.engine.impl.javax.el.ELResolver;
+
+/**
+ * EL resolver that looks up CDI beans by name using jakarta.enterprise.inject.spi.CDI.
+ *
+ * Activiti 5.x bundles its own javax.el implementation under org.activiti.engine.impl.javax.el,
+ * so this resolver extends that bundled ELResolver rather than javax.el.ELResolver.
+ * This avoids the javax.el dependency that is absent from WildFly 32 / Jakarta EE 10.
+ *
+ * When Activiti evaluates a delegateExpression like ${uploadFile}, it calls getValue with
+ * base=null and property="uploadFile". This resolver looks that name up as a CDI bean.
+ */
+public class CdiAwareELResolver extends ELResolver {
+
+ @Override
+ public Object getValue(final ELContext context, final Object base, final Object property) {
+ if (base != null || property == null) {
+ return null;
+ }
+ final String beanName = property.toString();
+ try {
+ final Object bean = CDI.current().select(Object.class,
+ jakarta.enterprise.inject.literal.NamedLiteral.of(beanName)).get();
+ context.setPropertyResolved(true);
+ return bean;
+ } catch (final Exception e) {
+ return null;
+ }
+ }
+
+ @Override
+ public Class> getType(final ELContext context, final Object base, final Object property) {
+ return null;
+ }
+
+ @Override
+ public void setValue(final ELContext context, final Object base, final Object property, final Object value) {
+ // read-only resolver
+ }
+
+ @Override
+ public boolean isReadOnly(final ELContext context, final Object base, final Object property) {
+ return true;
+ }
+
+ @Override
+ public Iterator getFeatureDescriptors(final ELContext context, final Object base) {
+ return null;
+ }
+
+ @Override
+ public Class> getCommonPropertyType(final ELContext context, final Object base) {
+ return Object.class;
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareExpressionManager.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareExpressionManager.java
new file mode 100644
index 00000000..54b89e00
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareExpressionManager.java
@@ -0,0 +1,42 @@
+package uk.gov.moj.cpp.activiti.spring.conf;
+
+import org.activiti.engine.delegate.VariableScope;
+import org.activiti.engine.impl.el.ExpressionManager;
+import org.activiti.engine.impl.el.VariableScopeElResolver;
+import org.activiti.engine.impl.javax.el.ArrayELResolver;
+import org.activiti.engine.impl.javax.el.BeanELResolver;
+import org.activiti.engine.impl.javax.el.CompositeELResolver;
+import org.activiti.engine.impl.javax.el.DynamicBeanPropertyELResolver;
+import org.activiti.engine.impl.javax.el.ELResolver;
+import org.activiti.engine.impl.javax.el.JsonNodeELResolver;
+import org.activiti.engine.impl.javax.el.ListELResolver;
+import org.activiti.engine.impl.javax.el.MapELResolver;
+import org.activiti.engine.impl.bpmn.data.ItemInstance;
+
+/**
+ * ExpressionManager that resolves CDI beans in Activiti BPMN expressions.
+ *
+ * Overrides createElResolver to insert a CdiAwareELResolver into the chain, allowing
+ * delegateExpression values like ${uploadFile} to resolve CDI beans by name.
+ * Uses only bundled org.activiti.engine.impl.javax.el classes to avoid the
+ * javax.el dependency absent from WildFly 32 / Jakarta EE 10.
+ */
+public class CdiAwareExpressionManager extends ExpressionManager {
+
+ @Override
+ protected ELResolver createElResolver(final VariableScope variableScope) {
+ final CompositeELResolver composite = new CompositeELResolver();
+ composite.add(new VariableScopeElResolver(variableScope));
+ composite.add(new CdiAwareELResolver());
+ if (getBeans() != null) {
+ composite.add(new org.activiti.engine.impl.el.ReadOnlyMapELResolver(getBeans()));
+ }
+ composite.add(new ArrayELResolver());
+ composite.add(new ListELResolver());
+ composite.add(new MapELResolver());
+ composite.add(new JsonNodeELResolver());
+ composite.add(new DynamicBeanPropertyELResolver(ItemInstance.class, "getFieldValue", "setFieldValue"));
+ composite.add(new BeanELResolver());
+ return composite;
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/NoOpPlatformTransactionManager.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/NoOpPlatformTransactionManager.java
new file mode 100644
index 00000000..55dd32f9
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/conf/NoOpPlatformTransactionManager.java
@@ -0,0 +1,68 @@
+package uk.gov.moj.cpp.activiti.spring.conf;
+
+import java.util.List;
+
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionDefinition;
+import org.springframework.transaction.TransactionException;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.SimpleTransactionStatus;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
+
+/**
+ * PlatformTransactionManager for use with Activiti when transactionsExternallyManaged=true.
+ *
+ * WildFly's JTA container manages the real database transaction. Spring's
+ * TransactionSynchronizationManager is used by Activiti's SpringTransactionContext to register
+ * post-commit listeners (e.g. to fire JMS events after a timer job). This implementation
+ * initialises Spring's thread-local synchronisation state so those listeners can be registered,
+ * and then fires them when the command finishes (commit).
+ *
+ * When synchronisation is already active (nested command), it is left in place and the inner
+ * commit is a no-op so only the outermost commit fires and clears the synchronisations.
+ */
+public class NoOpPlatformTransactionManager implements PlatformTransactionManager {
+
+ @Override
+ public TransactionStatus getTransaction(final TransactionDefinition definition) throws TransactionException {
+ final boolean initiatedSync = !TransactionSynchronizationManager.isSynchronizationActive();
+ if (initiatedSync) {
+ TransactionSynchronizationManager.initSynchronization();
+ }
+ return new SimpleTransactionStatus(initiatedSync);
+ }
+
+ @Override
+ public void commit(final TransactionStatus status) throws TransactionException {
+ if (status.isNewTransaction() && TransactionSynchronizationManager.isSynchronizationActive()) {
+ final List syncs =
+ TransactionSynchronizationManager.getSynchronizations();
+ syncs.forEach(sync -> {
+ try { sync.beforeCommit(false); } catch (final Exception ignored) {}
+ });
+ syncs.forEach(sync -> {
+ try { sync.beforeCompletion(); } catch (final Exception ignored) {}
+ });
+ syncs.forEach(sync -> {
+ try { sync.afterCommit(); } catch (final Exception ignored) {}
+ });
+ syncs.forEach(sync -> {
+ try { sync.afterCompletion(TransactionSynchronization.STATUS_COMMITTED); } catch (final Exception ignored) {}
+ });
+ TransactionSynchronizationManager.clearSynchronization();
+ }
+ }
+
+ @Override
+ public void rollback(final TransactionStatus status) throws TransactionException {
+ if (status.isNewTransaction() && TransactionSynchronizationManager.isSynchronizationActive()) {
+ final List syncs =
+ TransactionSynchronizationManager.getSynchronizations();
+ syncs.forEach(sync -> {
+ try { sync.afterCompletion(TransactionSynchronization.STATUS_ROLLED_BACK); } catch (final Exception ignored) {}
+ });
+ TransactionSynchronizationManager.clearSynchronization();
+ }
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/servlet/WebConfigurer.java b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/servlet/WebConfigurer.java
index 230eec65..a448f20d 100644
--- a/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/servlet/WebConfigurer.java
+++ b/activiti-parent/activiti-embedded-rest/src/main/java/uk/gov/moj/cpp/activiti/spring/servlet/WebConfigurer.java
@@ -1,80 +1,12 @@
package uk.gov.moj.cpp.activiti.spring.servlet;
-import uk.gov.moj.cpp.activiti.spring.conf.ApplicationConfiguration;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletRegistration;
-import javax.servlet.annotation.WebListener;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.context.WebApplicationContext;
-import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
-import org.springframework.web.context.support.WebApplicationContextUtils;
-import org.springframework.web.servlet.DispatcherServlet;
-
/**
- * Configuration of web application with Servlet 3.0 APIs.
+ * Formerly a @WebListener that bootstrapped the Activiti Spring context via the servlet container.
+ *
+ * Replaced by ActivitiSpringContextStartup, a CDI @ApplicationScoped startup observer, because
+ * Spring 4.x uses javax.servlet APIs which are incompatible with Jakarta EE 10 / WildFly 32.
+ * This class is retained as an empty stub to avoid ClassNotFoundException in any existing
+ * references, but it performs no work.
*/
-@WebListener
-public class WebConfigurer implements ServletContextListener {
-
- private final Logger log = LoggerFactory.getLogger(WebConfigurer.class);
-
- public AnnotationConfigWebApplicationContext context;
-
- public void setContext(final AnnotationConfigWebApplicationContext context) {
- this.context = context;
- }
-
- @Override
- public void contextInitialized(final ServletContextEvent sce) {
- ServletContext servletContext = sce.getServletContext();
-
- log.debug("Configuring Activiti Spring root application context");
-
- AnnotationConfigWebApplicationContext rootContext = null;
-
- if (context == null) {
- rootContext = new AnnotationConfigWebApplicationContext();
- rootContext.register(ApplicationConfiguration.class);
- rootContext.refresh();
- } else {
- rootContext = context;
- }
-
- servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, rootContext);
- initSpring(servletContext, rootContext);
-
- log.debug("Activiti application context fully configured");
- }
-
- /**
- * Initializes Spring and Spring MVC.
- */
- private ServletRegistration.Dynamic initSpring(ServletContext servletContext, AnnotationConfigWebApplicationContext rootContext) {
- log.debug("Configuring Spring Web application context for Activiti");
- AnnotationConfigWebApplicationContext dispatcherServletConfiguration = new AnnotationConfigWebApplicationContext();
- dispatcherServletConfiguration.setParent(rootContext);
- dispatcherServletConfiguration.register(DispatcherServletConfiguration.class);
-
- log.debug("Registering Spring MVC Servlet for Activiti REST API");
- ServletRegistration.Dynamic dispatcherServlet = servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherServletConfiguration));
- dispatcherServlet.addMapping("/internal/activiti/service/*");
- dispatcherServlet.setLoadOnStartup(1);
- dispatcherServlet.setAsyncSupported(true);
-
- return dispatcherServlet;
- }
-
- @Override
- public void contextDestroyed(ServletContextEvent sce) {
- log.info("Destroying Activiti web application");
- WebApplicationContext ac = WebApplicationContextUtils.getRequiredWebApplicationContext(sce.getServletContext());
- AnnotationConfigWebApplicationContext gwac = (AnnotationConfigWebApplicationContext) ac;
- gwac.close();
- log.debug("Activiti web application destroyed");
- }
+public class WebConfigurer {
}
diff --git a/activiti-parent/activiti-embedded-rest/src/main/resources/META-INF/beans.xml b/activiti-parent/activiti-embedded-rest/src/main/resources/META-INF/beans.xml
index 794b8b5f..26dc70a1 100644
--- a/activiti-parent/activiti-embedded-rest/src/main/resources/META-INF/beans.xml
+++ b/activiti-parent/activiti-embedded-rest/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="annotated">
diff --git a/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/HistoricProcessInstancesResourceTest.java b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/HistoricProcessInstancesResourceTest.java
new file mode 100644
index 00000000..9ba237bf
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/HistoricProcessInstancesResourceTest.java
@@ -0,0 +1,82 @@
+package uk.gov.moj.cpp.activiti.rest.resource;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.List;
+
+import jakarta.json.JsonObject;
+
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.history.HistoricProcessInstance;
+import org.activiti.engine.history.HistoricProcessInstanceQuery;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+@ExtendWith(MockitoExtension.class)
+class HistoricProcessInstancesResourceTest {
+
+ @Mock
+ private HistoryService historyService;
+
+ @InjectMocks
+ private HistoricProcessInstancesResource resource;
+
+ @Test
+ void shouldReturnHistoricProcessInstancesMatchingKeyAndBusinessKey() {
+ final String processDefinitionKey = "pendingMaterialExpiration";
+ final String businessKey = "upload-123";
+
+ final HistoricProcessInstance instance = mock(HistoricProcessInstance.class);
+ when(instance.getId()).thenReturn("hist-proc-id-1");
+ when(instance.getDeleteReason()).thenReturn(null);
+
+ final HistoricProcessInstanceQuery query = mock(HistoricProcessInstanceQuery.class);
+ when(historyService.createHistoricProcessInstanceQuery()).thenReturn(query);
+ when(query.processDefinitionKey(processDefinitionKey)).thenReturn(query);
+ when(query.processInstanceBusinessKey(businessKey)).thenReturn(query);
+ when(query.list()).thenReturn(List.of(instance));
+
+ final JsonObject result = resource.getHistoricProcessInstances(processDefinitionKey, businessKey);
+
+ assertThat(result.getJsonArray("data").size(), is(1));
+ assertThat(result.getJsonArray("data").getJsonObject(0).getString("id"), is("hist-proc-id-1"));
+ assertThat(result.getInt("total"), is(1));
+ }
+
+ @Test
+ void shouldIncludeDeleteReasonWhenPresent() {
+ final HistoricProcessInstance instance = mock(HistoricProcessInstance.class);
+ when(instance.getId()).thenReturn("hist-proc-id-2");
+ when(instance.getDeleteReason()).thenReturn("cancelled");
+
+ final HistoricProcessInstanceQuery query = mock(HistoricProcessInstanceQuery.class);
+ when(historyService.createHistoricProcessInstanceQuery()).thenReturn(query);
+ when(query.processDefinitionKey("myKey")).thenReturn(query);
+ when(query.processInstanceBusinessKey("myBk")).thenReturn(query);
+ when(query.list()).thenReturn(List.of(instance));
+
+ final JsonObject result = resource.getHistoricProcessInstances("myKey", "myBk");
+
+ assertThat(result.getJsonArray("data").getJsonObject(0).getString("deleteReason"), is("cancelled"));
+ }
+
+ @Test
+ void shouldReturnEmptyDataArrayWhenNoHistoricInstancesFound() {
+ final HistoricProcessInstanceQuery query = mock(HistoricProcessInstanceQuery.class);
+ when(historyService.createHistoricProcessInstanceQuery()).thenReturn(query);
+ when(query.processDefinitionKey("unknown")).thenReturn(query);
+ when(query.processInstanceBusinessKey("unknown")).thenReturn(query);
+ when(query.list()).thenReturn(List.of());
+
+ final JsonObject result = resource.getHistoricProcessInstances("unknown", "unknown");
+
+ assertThat(result.getJsonArray("data").size(), is(0));
+ assertThat(result.getInt("total"), is(0));
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/JobsResourceTest.java b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/JobsResourceTest.java
new file mode 100644
index 00000000..38b11f82
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/JobsResourceTest.java
@@ -0,0 +1,76 @@
+package uk.gov.moj.cpp.activiti.rest.resource;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.List;
+
+import jakarta.json.Json;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
+
+import org.activiti.engine.ManagementService;
+import org.activiti.engine.runtime.Job;
+import org.activiti.engine.runtime.JobQuery;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+@ExtendWith(MockitoExtension.class)
+class JobsResourceTest {
+
+ @Mock
+ private ManagementService managementService;
+
+ @InjectMocks
+ private JobsResource resource;
+
+ @Test
+ void shouldReturnJobsMatchingProcessInstanceId() {
+ final String processInstanceId = "proc-inst-id-1";
+
+ final Job job = mock(Job.class);
+ when(job.getId()).thenReturn("job-id-1");
+
+ final JobQuery query = mock(JobQuery.class);
+ when(managementService.createJobQuery()).thenReturn(query);
+ when(query.timers()).thenReturn(query);
+ when(query.processInstanceId(processInstanceId)).thenReturn(query);
+ when(query.list()).thenReturn(List.of(job));
+
+ final JsonObject result = resource.getJobs(true, processInstanceId);
+
+ assertThat(result.getJsonArray("data").size(), is(1));
+ assertThat(result.getJsonArray("data").getJsonObject(0).getString("id"), is("job-id-1"));
+ assertThat(result.getInt("total"), is(1));
+ }
+
+ @Test
+ void shouldReturnEmptyDataArrayWhenNoJobsFound() {
+ final JobQuery query = mock(JobQuery.class);
+ when(managementService.createJobQuery()).thenReturn(query);
+ when(query.timers()).thenReturn(query);
+ when(query.processInstanceId("unknown")).thenReturn(query);
+ when(query.list()).thenReturn(List.of());
+
+ final JsonObject result = resource.getJobs(true, "unknown");
+
+ assertThat(result.getJsonArray("data").size(), is(0));
+ assertThat(result.getInt("total"), is(0));
+ }
+
+ @Test
+ void shouldExecuteJobAndReturnOkResponse() {
+ final String jobId = "job-id-1";
+
+ final Response response = resource.executeJob(jobId, Json.createObjectBuilder().build());
+
+ verify(managementService).executeJob(jobId);
+ assertThat(response.getStatus(), is(Response.Status.OK.getStatusCode()));
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/ProcessInstancesResourceTest.java b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/ProcessInstancesResourceTest.java
new file mode 100644
index 00000000..49536268
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/rest/resource/ProcessInstancesResourceTest.java
@@ -0,0 +1,64 @@
+package uk.gov.moj.cpp.activiti.rest.resource;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.List;
+
+import jakarta.json.JsonObject;
+
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
+import org.activiti.engine.runtime.ProcessInstanceQuery;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+@ExtendWith(MockitoExtension.class)
+class ProcessInstancesResourceTest {
+
+ @Mock
+ private RuntimeService runtimeService;
+
+ @InjectMocks
+ private ProcessInstancesResource resource;
+
+ @Test
+ void shouldReturnProcessInstancesMatchingKeyAndBusinessKey() {
+ final String processDefinitionKey = "pendingMaterialExpiration";
+ final String businessKey = "upload-123";
+
+ final ExecutionEntity instance = mock(ExecutionEntity.class);
+ when(instance.getId()).thenReturn("proc-inst-id-1");
+
+ final ProcessInstanceQuery query = mock(ProcessInstanceQuery.class);
+ when(runtimeService.createProcessInstanceQuery()).thenReturn(query);
+ when(query.processDefinitionKey(processDefinitionKey)).thenReturn(query);
+ when(query.processInstanceBusinessKey(businessKey)).thenReturn(query);
+ when(query.list()).thenReturn(List.of(instance));
+
+ final JsonObject result = resource.getProcessInstances(processDefinitionKey, businessKey);
+
+ assertThat(result.getJsonArray("data").size(), is(1));
+ assertThat(result.getJsonArray("data").getJsonObject(0).getString("id"), is("proc-inst-id-1"));
+ assertThat(result.getInt("total"), is(1));
+ }
+
+ @Test
+ void shouldReturnEmptyDataArrayWhenNoProcessInstancesFound() {
+ final ProcessInstanceQuery query = mock(ProcessInstanceQuery.class);
+ when(runtimeService.createProcessInstanceQuery()).thenReturn(query);
+ when(query.processDefinitionKey("unknown")).thenReturn(query);
+ when(query.processInstanceBusinessKey("unknown")).thenReturn(query);
+ when(query.list()).thenReturn(List.of());
+
+ final JsonObject result = resource.getProcessInstances("unknown", "unknown");
+
+ assertThat(result.getJsonArray("data").size(), is(0));
+ assertThat(result.getInt("total"), is(0));
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareELResolverTest.java b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareELResolverTest.java
new file mode 100644
index 00000000..17655b82
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareELResolverTest.java
@@ -0,0 +1,116 @@
+package uk.gov.moj.cpp.activiti.spring.conf;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import jakarta.enterprise.inject.Instance;
+import jakarta.enterprise.inject.spi.CDI;
+
+import org.activiti.engine.impl.javax.el.ELContext;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.MockedStatic;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+@ExtendWith(MockitoExtension.class)
+public class CdiAwareELResolverTest {
+
+ private CdiAwareELResolver resolver;
+
+ @BeforeEach
+ public void createResolver() {
+ resolver = new CdiAwareELResolver();
+ }
+
+ @Test
+ public void shouldResolveCdiBeanByNameWhenBaseIsNull() {
+ final Object expectedBean = new Object();
+ final ELContext context = mock(ELContext.class);
+
+ try (MockedStatic mockedCdi = mockStatic(CDI.class)) {
+ final CDI cdiInstance = mock(CDI.class);
+ final Instance instance = mock(Instance.class);
+
+ mockedCdi.when(CDI::current).thenReturn(cdiInstance);
+ when(cdiInstance.select(eq(Object.class), any())).thenReturn(instance);
+ when(instance.get()).thenReturn(expectedBean);
+
+ final Object result = resolver.getValue(context, null, "uploadFile");
+
+ assertThat(result, is(expectedBean));
+ verify(context).setPropertyResolved(true);
+ }
+ }
+
+ @Test
+ public void shouldReturnNullWhenBaseIsNotNull() {
+ final ELContext context = mock(ELContext.class);
+ final Object base = new Object();
+
+ final Object result = resolver.getValue(context, base, "uploadFile");
+
+ assertThat(result, is(nullValue()));
+ verify(context, never()).setPropertyResolved(true);
+ }
+
+ @Test
+ public void shouldReturnNullWhenPropertyIsNull() {
+ final ELContext context = mock(ELContext.class);
+
+ final Object result = resolver.getValue(context, null, null);
+
+ assertThat(result, is(nullValue()));
+ verify(context, never()).setPropertyResolved(true);
+ }
+
+ @Test
+ public void shouldReturnNullWhenCdiLookupFails() {
+ final ELContext context = mock(ELContext.class);
+
+ try (MockedStatic mockedCdi = mockStatic(CDI.class)) {
+ mockedCdi.when(CDI::current).thenThrow(new IllegalStateException("No CDI context"));
+
+ final Object result = resolver.getValue(context, null, "unknownBean");
+
+ assertThat(result, is(nullValue()));
+ verify(context, never()).setPropertyResolved(true);
+ }
+ }
+
+ @Test
+ public void shouldBeReadOnly() {
+ final ELContext context = mock(ELContext.class);
+
+ assertThat(resolver.isReadOnly(context, null, "anyBean"), is(true));
+ }
+
+ @Test
+ public void shouldReturnObjectClassAsCommonPropertyType() {
+ final ELContext context = mock(ELContext.class);
+
+ assertThat(resolver.getCommonPropertyType(context, null), is(Object.class));
+ }
+
+ @Test
+ public void shouldReturnNullForType() {
+ final ELContext context = mock(ELContext.class);
+
+ assertThat(resolver.getType(context, null, "anyBean"), is(nullValue()));
+ }
+
+ @Test
+ public void shouldReturnNullForFeatureDescriptors() {
+ final ELContext context = mock(ELContext.class);
+
+ assertThat(resolver.getFeatureDescriptors(context, null), is(nullValue()));
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareExpressionManagerTest.java b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareExpressionManagerTest.java
new file mode 100644
index 00000000..1bc7857f
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/CdiAwareExpressionManagerTest.java
@@ -0,0 +1,77 @@
+package uk.gov.moj.cpp.activiti.spring.conf;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.when;
+
+import jakarta.enterprise.inject.Instance;
+import jakarta.enterprise.inject.spi.CDI;
+
+import org.activiti.engine.delegate.VariableScope;
+import org.activiti.engine.impl.el.ActivitiElContext;
+import org.activiti.engine.impl.javax.el.CompositeELResolver;
+import org.activiti.engine.impl.javax.el.ELContext;
+import org.activiti.engine.impl.javax.el.ELResolver;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.MockedStatic;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+@ExtendWith(MockitoExtension.class)
+public class CdiAwareExpressionManagerTest {
+
+ private CdiAwareExpressionManager manager;
+
+ @BeforeEach
+ public void createManager() {
+ manager = new CdiAwareExpressionManager();
+ }
+
+ @Test
+ public void shouldReturnNonNullResolverFromCreateElResolver() {
+ final VariableScope variableScope = mock(VariableScope.class);
+
+ final ELResolver resolver = manager.createElResolver(variableScope);
+
+ assertThat(resolver, is(notNullValue()));
+ }
+
+ @Test
+ public void shouldReturnCompositeELResolver() {
+ final VariableScope variableScope = mock(VariableScope.class);
+
+ final ELResolver resolver = manager.createElResolver(variableScope);
+
+ assertThat(resolver, is(instanceOf(CompositeELResolver.class)));
+ }
+
+ @Test
+ public void shouldResolveCdiBeanViaCompositeResolver() {
+ final VariableScope variableScope = mock(VariableScope.class);
+ final Object expectedBean = new Object();
+ // ActivitiElContext has concrete isPropertyResolved() tracking needed by CompositeELResolver
+ final ELContext context = new ActivitiElContext(mock(ELResolver.class));
+
+ try (MockedStatic mockedCdi = mockStatic(CDI.class)) {
+ final CDI cdiInstance = mock(CDI.class);
+ @SuppressWarnings("unchecked")
+ final Instance instance = mock(Instance.class);
+
+ mockedCdi.when(CDI::current).thenReturn(cdiInstance);
+ when(cdiInstance.select(eq(Object.class), any())).thenReturn(instance);
+ when(instance.get()).thenReturn(expectedBean);
+
+ final ELResolver resolver = manager.createElResolver(variableScope);
+ final Object result = resolver.getValue(context, null, "uploadFile");
+
+ assertThat(result, is(expectedBean));
+ }
+ }
+}
diff --git a/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/NoOpPlatformTransactionManagerTest.java b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/NoOpPlatformTransactionManagerTest.java
new file mode 100644
index 00000000..c149bdae
--- /dev/null
+++ b/activiti-parent/activiti-embedded-rest/src/test/java/uk/gov/moj/cpp/activiti/spring/conf/NoOpPlatformTransactionManagerTest.java
@@ -0,0 +1,90 @@
+package uk.gov.moj.cpp.activiti.spring.conf;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InOrder;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
+
+class NoOpPlatformTransactionManagerTest {
+
+ private final NoOpPlatformTransactionManager manager = new NoOpPlatformTransactionManager();
+
+ @AfterEach
+ void clearSynchronization() {
+ if (TransactionSynchronizationManager.isSynchronizationActive()) {
+ TransactionSynchronizationManager.clearSynchronization();
+ }
+ }
+
+ @Test
+ void getTransactionShouldInitialiseSynchronisationWhenNotAlreadyActive() {
+ final TransactionStatus status = manager.getTransaction(null);
+
+ assertThat(TransactionSynchronizationManager.isSynchronizationActive(), is(true));
+ assertThat(status.isNewTransaction(), is(true));
+ }
+
+ @Test
+ void getTransactionShouldNotReinitialiseWhenSynchronisationAlreadyActive() {
+ TransactionSynchronizationManager.initSynchronization();
+
+ final TransactionStatus status = manager.getTransaction(null);
+
+ assertThat(status.isNewTransaction(), is(false));
+ assertThat(TransactionSynchronizationManager.isSynchronizationActive(), is(true));
+ }
+
+ @Test
+ void commitShouldFireSynchronisationCallbacksInOrderAndClearState() {
+ final TransactionStatus status = manager.getTransaction(null);
+
+ final TransactionSynchronization sync = mock(TransactionSynchronization.class);
+ TransactionSynchronizationManager.registerSynchronization(sync);
+
+ manager.commit(status);
+
+ final InOrder order = inOrder(sync);
+ order.verify(sync).beforeCommit(false);
+ order.verify(sync).beforeCompletion();
+ order.verify(sync).afterCommit();
+ order.verify(sync).afterCompletion(TransactionSynchronization.STATUS_COMMITTED);
+
+ assertThat(TransactionSynchronizationManager.isSynchronizationActive(), is(false));
+ }
+
+ @Test
+ void commitShouldNotFireCallbacksWhenNotNewTransaction() {
+ TransactionSynchronizationManager.initSynchronization();
+ final TransactionStatus status = manager.getTransaction(null);
+
+ final TransactionSynchronization sync = mock(TransactionSynchronization.class);
+ TransactionSynchronizationManager.registerSynchronization(sync);
+
+ manager.commit(status);
+
+ verify(sync, never()).afterCommit();
+ assertThat(TransactionSynchronizationManager.isSynchronizationActive(), is(true));
+ }
+
+ @Test
+ void rollbackShouldFireRollbackCallbackAndClearState() {
+ final TransactionStatus status = manager.getTransaction(null);
+
+ final TransactionSynchronization sync = mock(TransactionSynchronization.class);
+ TransactionSynchronizationManager.registerSynchronization(sync);
+
+ manager.rollback(status);
+
+ verify(sync).afterCompletion(TransactionSynchronization.STATUS_ROLLED_BACK);
+ assertThat(TransactionSynchronizationManager.isSynchronizationActive(), is(false));
+ }
+}
diff --git a/activiti-parent/pom.xml b/activiti-parent/pom.xml
index d0b4dd1c..291069d2 100644
--- a/activiti-parent/pom.xml
+++ b/activiti-parent/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.activiti
diff --git a/audit-library-parent/audit-client/pom.xml b/audit-library-parent/audit-client/pom.xml
index ae1b618e..534c7845 100644
--- a/audit-library-parent/audit-client/pom.xml
+++ b/audit-library-parent/audit-client/pom.xml
@@ -3,7 +3,7 @@
audit-library-parent
uk.gov.moj.cpp.audit
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -53,7 +53,6 @@
-
org.junit.jupiter
junit-jupiter-api
@@ -90,8 +89,8 @@
test
- javax.xml.bind
- jaxb-api
+ jakarta.xml.bind
+ jakarta.xml.bind-api
test
@@ -163,8 +162,8 @@
${jaxb-api.version}
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
runtime
diff --git a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditEntryContentCreator.java b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditEntryContentCreator.java
index cf6982d9..9f8a3a34 100644
--- a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditEntryContentCreator.java
+++ b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditEntryContentCreator.java
@@ -6,13 +6,13 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
diff --git a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditMetricsRecorder.java b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditMetricsRecorder.java
index 85bcdb0e..08d58066 100644
--- a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditMetricsRecorder.java
+++ b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AuditMetricsRecorder.java
@@ -2,8 +2,8 @@
import uk.gov.justice.services.metrics.micrometer.prometheus.TimerRegistrar;
-import javax.enterprise.context.Dependent;
-import javax.inject.Inject;
+import jakarta.enterprise.context.Dependent;
+import jakarta.inject.Inject;
import io.micrometer.core.instrument.Timer;
import io.micrometer.prometheusmetrics.PrometheusMeterRegistry;
diff --git a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AzureDataLakeServiceClient.java b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AzureDataLakeServiceClient.java
index ce7d8006..605cfd5e 100644
--- a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AzureDataLakeServiceClient.java
+++ b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/AzureDataLakeServiceClient.java
@@ -7,7 +7,7 @@
import java.io.IOException;
import java.io.InputStream;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.azure.storage.common.StorageSharedKeyCredential;
import com.azure.storage.file.datalake.DataLakeDirectoryClient;
diff --git a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/DataLakeFileObject.java b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/DataLakeFileObject.java
index 5b717c93..7cbd189b 100644
--- a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/DataLakeFileObject.java
+++ b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/DataLakeFileObject.java
@@ -6,7 +6,7 @@
import java.time.format.DateTimeFormatter;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class DataLakeFileObject {
diff --git a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/HybridAuditClient.java b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/HybridAuditClient.java
index c6e72fbd..0e883463 100644
--- a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/HybridAuditClient.java
+++ b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/HybridAuditClient.java
@@ -7,11 +7,11 @@
import uk.gov.justice.services.core.audit.AuditClient;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.annotation.Priority;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import io.micrometer.core.instrument.Timer;
import org.slf4j.Logger;
diff --git a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/RemoteAuditClient.java b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/RemoteAuditClient.java
index 9bfbc2d7..fb0cfbd8 100644
--- a/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/RemoteAuditClient.java
+++ b/audit-library-parent/audit-client/src/main/java/uk/gov/justice/services/audit/client/RemoteAuditClient.java
@@ -11,14 +11,14 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.annotation.Priority;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
import java.util.function.Function;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
diff --git a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/AuditEntryContentCreatorTest.java b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/AuditEntryContentCreatorTest.java
index c94ab515..3f11bceb 100644
--- a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/AuditEntryContentCreatorTest.java
+++ b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/AuditEntryContentCreatorTest.java
@@ -12,8 +12,8 @@
import uk.gov.justice.services.messaging.spi.DefaultJsonEnvelopeProvider;
import uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import java.time.ZonedDateTime;
import static java.util.UUID.randomUUID;
diff --git a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/HybridAuditClientTest.java b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/HybridAuditClientTest.java
index 35dc58f9..ebebdc01 100644
--- a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/HybridAuditClientTest.java
+++ b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/HybridAuditClientTest.java
@@ -15,7 +15,7 @@
import uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder;
import uk.gov.justice.services.test.utils.core.reflection.ReflectionUtil;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import static java.util.UUID.randomUUID;
import static org.hamcrest.CoreMatchers.is;
diff --git a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientIT.java b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientIT.java
index d4c20c8b..00f3ead8 100644
--- a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientIT.java
+++ b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientIT.java
@@ -4,15 +4,15 @@
import java.util.Optional;
import java.util.Properties;
import java.util.UUID;
-import javax.annotation.Priority;
-import javax.annotation.Resource;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.JMSException;
-import javax.jms.Session;
-import javax.jms.Topic;
+import jakarta.annotation.Priority;
+import jakarta.annotation.Resource;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
+import jakarta.jms.Connection;
+import jakarta.jms.ConnectionFactory;
+import jakarta.jms.JMSException;
+import jakarta.jms.Session;
+import jakarta.jms.Topic;
import org.apache.openejb.OpenEjbContainer;
import org.apache.openejb.jee.WebApp;
import org.apache.openejb.junit.ApplicationComposer;
diff --git a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientTest.java b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientTest.java
index 016483ed..2c4464d4 100644
--- a/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientTest.java
+++ b/audit-library-parent/audit-client/src/test/java/uk/gov/justice/services/audit/client/RemoteAuditClientTest.java
@@ -16,14 +16,14 @@
import uk.gov.justice.services.test.utils.common.helper.StoppedClock;
import uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
import java.util.UUID;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.time.ZoneOffset.UTC;
import static java.time.ZonedDateTime.now;
import static java.util.UUID.randomUUID;
-import static javax.json.JsonValue.NULL;
+import static jakarta.json.JsonValue.NULL;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
diff --git a/audit-library-parent/pom.xml b/audit-library-parent/pom.xml
index 3b8b4c55..4693212d 100644
--- a/audit-library-parent/pom.xml
+++ b/audit-library-parent/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.audit
diff --git a/cpp-platform-library-utils/cpp-platform-azure-utils/pom.xml b/cpp-platform-library-utils/cpp-platform-azure-utils/pom.xml
index d5f4bb0d..4292136a 100644
--- a/cpp-platform-library-utils/cpp-platform-azure-utils/pom.xml
+++ b/cpp-platform-library-utils/cpp-platform-azure-utils/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.common.library.utils
cpp-platform-library-utils
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -41,43 +41,13 @@
guava-testlib
test
-
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-api
- test
-
-
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-openejb
- test
-
-
- org.apache.tomee
- openejb-core
- test
-
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-api
- test
-
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-impl
- test
-
com.h2database
h2
test
- org.hibernate
- hibernate-entitymanager
- test
-
-
- org.hibernate
+ org.hibernate.orm
hibernate-core
test
@@ -87,14 +57,13 @@
compile
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
com.microsoft.azure
azure-storage
- ${azure-storage-version}
uk.gov.justice.services
diff --git a/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/APIMService.java b/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/APIMService.java
index 9dd49530..3cc8b1b6 100644
--- a/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/APIMService.java
+++ b/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/APIMService.java
@@ -2,9 +2,9 @@
import java.util.concurrent.TimeUnit;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/AzureBlobClientService.java b/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/AzureBlobClientService.java
index 1aa7b244..57f08888 100644
--- a/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/AzureBlobClientService.java
+++ b/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/AzureBlobClientService.java
@@ -11,8 +11,8 @@
import java.net.URISyntaxException;
import java.security.InvalidKeyException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.json.JsonObject;
import com.google.common.base.Stopwatch;
import com.microsoft.azure.storage.CloudStorageAccount;
diff --git a/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientService.java b/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientService.java
index 6f682859..a4521b59 100644
--- a/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientService.java
+++ b/cpp-platform-library-utils/cpp-platform-azure-utils/src/main/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientService.java
@@ -2,13 +2,13 @@
import java.util.Map;
-import javax.enterprise.context.ApplicationScoped;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.Response;
import com.google.common.collect.ImmutableMap;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
diff --git a/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/APIMServiceTest.java b/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/APIMServiceTest.java
index fa4f8d7d..4fdeabe3 100644
--- a/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/APIMServiceTest.java
+++ b/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/APIMServiceTest.java
@@ -3,7 +3,7 @@
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientServiceTest.java b/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientServiceTest.java
index cf791fb1..c3bbc187 100644
--- a/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientServiceTest.java
+++ b/cpp-platform-library-utils/cpp-platform-azure-utils/src/test/java/uk/gov/moj/cpp/platform/azure/utils/RestEasyClientServiceTest.java
@@ -1,14 +1,14 @@
package uk.gov.moj.cpp.platform.azure.utils;
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-import static javax.ws.rs.core.Response.Status.OK;
-import static javax.ws.rs.core.Response.status;
+import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON;
+import static jakarta.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.status;
import static org.mockito.Mockito.when;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
-import javax.json.JsonObject;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.Response;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
import org.junit.jupiter.api.Test;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/pom.xml b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/pom.xml
index 68ec1186..b313323f 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/pom.xml
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/pom.xml
@@ -4,19 +4,19 @@
uk.gov.moj.cpp.common.library.utils
cpp-platform-data-utils
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
cpp-platform-data-utils-persistence
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
- org.hibernate
+ org.hibernate.orm
hibernate-jpamodelgen
provided
@@ -33,9 +33,8 @@
commons-csv
- javax.xml.bind
- jaxb-api
- ${jaxb-api.version}
+ jakarta.xml.bind
+ jakarta.xml.bind-api
@@ -69,46 +68,15 @@
guava-testlib
test
-
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-api
- test
-
-
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-openejb
- test
-
-
- org.apache.tomee
- openejb-core
- test
-
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-api
- test
-
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-impl
- test
-
-
com.h2database
h2
test
- org.hibernate
- hibernate-entitymanager
- test
-
-
- org.hibernate
+ org.hibernate.orm
hibernate-core
- test
+ provided
org.slf4j
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactory.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactory.java
index 2c5174a3..348d420d 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactory.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactory.java
@@ -9,9 +9,9 @@
import java.util.Optional;
import java.util.Set;
-import javax.annotation.PostConstruct;
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.inject.Instance;
+import jakarta.inject.Inject;
public class DataQueryFactory {
private static final String ALL_COLUMNS = "*";
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/repository/DataRepository.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/repository/DataRepository.java
index e009270d..94e9ca98 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/repository/DataRepository.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/main/java/uk/gov/moj/cpp/platform/data/utils/persistence/repository/DataRepository.java
@@ -16,9 +16,9 @@
import java.time.LocalDate;
import java.util.Set;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import javax.sql.DataSource;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/test/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactoryTest.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/test/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactoryTest.java
index e680fff0..ff37cef1 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/test/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactoryTest.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-persistence/src/test/java/uk/gov/moj/cpp/platform/data/utils/persistence/factory/DataQueryFactoryTest.java
@@ -10,7 +10,7 @@
import java.util.Optional;
-import javax.enterprise.inject.Instance;
+import jakarta.enterprise.inject.Instance;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/pom.xml b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/pom.xml
index 4b09d563..b65522b9 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/pom.xml
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.common.library.utils
cpp-platform-data-utils
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -21,8 +21,8 @@
compile
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -47,8 +47,8 @@
test
- javax.servlet
- javax.servlet-api
+ jakarta.servlet
+ jakarta.servlet-api
test
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/main/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientService.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/main/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientService.java
index 3aedd6b3..cb6c19f9 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/main/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientService.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/main/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientService.java
@@ -5,11 +5,11 @@
import static java.lang.Integer.parseInt;
import static java.util.UUID.randomUUID;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static javax.ws.rs.HttpMethod.DELETE;
-import static javax.ws.rs.client.Entity.entity;
-import static javax.ws.rs.core.HttpHeaders.ACCEPT;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
+import static jakarta.ws.rs.HttpMethod.DELETE;
+import static jakarta.ws.rs.client.Entity.entity;
+import static jakarta.ws.rs.core.HttpHeaders.ACCEPT;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
+import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
import uk.gov.justice.services.common.configuration.Value;
import org.jboss.resteasy.client.jaxrs.internal.ResteasyClientBuilderImpl;
@@ -17,13 +17,13 @@
import java.util.Collections;
import java.util.Map;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.Response;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.PreDestroy;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpStatus;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/test/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientServiceTest.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/test/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientServiceTest.java
index 85786ba8..4ff26b3f 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/test/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientServiceTest.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-rest/src/test/java/uk/gov/moj/cpp/platform/data/utils/rest/service/RestClientServiceTest.java
@@ -10,20 +10,20 @@
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import javax.json.JsonObject;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.Response;
import java.util.Map;
import static com.google.common.net.MediaType.JSON_UTF_8;
-import static javax.ws.rs.HttpMethod.DELETE;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.HttpMethod.DELETE;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.mockito.ArgumentMatchers.any;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/pom.xml b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/pom.xml
index 3a562bcb..f69a4fef 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/pom.xml
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/pom.xml
@@ -5,15 +5,15 @@
uk.gov.moj.cpp.common.library.utils
cpp-platform-data-utils
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
cpp-platform-data-utils-service
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -31,11 +31,7 @@
commons-io
- uk.gov.justice.services
- persistence-deltaspike
-
-
- org.hibernate
+ org.hibernate.orm
hibernate-jpamodelgen
provided
@@ -73,45 +69,15 @@
guava-testlib
test
-
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-api
- test
-
-
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-openejb
- test
-
-
- org.apache.tomee
- openejb-core
- test
-
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-api
- test
-
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-impl
- test
-
com.h2database
h2
test
- org.hibernate
- hibernate-entitymanager
- test
-
-
- org.hibernate
+ org.hibernate.orm
hibernate-core
- test
+ provided
org.hamcrest
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/converter/DataTableToCsvConverter.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/converter/DataTableToCsvConverter.java
index 147b48c8..2bd79519 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/converter/DataTableToCsvConverter.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/converter/DataTableToCsvConverter.java
@@ -8,7 +8,7 @@
import java.io.StringWriter;
import java.util.List;
-import javax.enterprise.inject.Typed;
+import jakarta.enterprise.inject.Typed;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePrecondition.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePrecondition.java
index 490f47c2..abed9f80 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePrecondition.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePrecondition.java
@@ -11,8 +11,8 @@
import java.time.temporal.ChronoUnit;
import java.util.Optional;
-import javax.json.JsonObject;
-import javax.ws.rs.BadRequestException;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.BadRequestException;
public final class ApiDatePrecondition {
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidator.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidator.java
index 2dca9306..75ab73c7 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidator.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidator.java
@@ -11,7 +11,7 @@
import java.time.format.DateTimeParseException;
import java.util.Optional;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/service/DataServiceImpl.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/service/DataServiceImpl.java
index d5299e8f..90a7302b 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/service/DataServiceImpl.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/main/java/uk/gov/moj/cpp/platform/data/utils/service/DataServiceImpl.java
@@ -12,7 +12,7 @@
import java.util.Map;
import java.util.Set;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
public class DataServiceImpl implements DataService {
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePreconditionTest.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePreconditionTest.java
index fcf4617e..68f5168a 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePreconditionTest.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/ApiDatePreconditionTest.java
@@ -3,7 +3,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.test.utils.core.enveloper.EnvelopeFactory;
-import javax.ws.rs.BadRequestException;
+import jakarta.ws.rs.BadRequestException;
import org.junit.jupiter.api.Test;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidatorTest.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidatorTest.java
index 540429e7..772e9e09 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidatorTest.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-service/src/test/java/uk/gov/moj/cpp/platform/data/utils/date/DateValidatorTest.java
@@ -4,7 +4,7 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/pom.xml b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/pom.xml
index 85e0a430..92b62523 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/pom.xml
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.common.library.utils
cpp-platform-data-utils
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
cpp-platform-data-utils-test-utils
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/FileUtil.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/FileUtil.java
index f366cf0d..5e19665b 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/FileUtil.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/FileUtil.java
@@ -4,8 +4,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.Charset;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/ZipTestUtil.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/ZipTestUtil.java
index 45f00a1c..af745f78 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/ZipTestUtil.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/ZipTestUtil.java
@@ -1,6 +1,6 @@
package uk.gov.moj.cpp.platform.data.utils.testutils;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static uk.gov.justice.services.common.http.HeaderConstants.USER_ID;
@@ -16,9 +16,9 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
import com.google.common.net.MediaType;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/jms/TopicChecker.java b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/jms/TopicChecker.java
index cb6e213b..e57abf60 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/jms/TopicChecker.java
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/cpp-platform-data-utils-test-utils/src/main/java/uk/gov/moj/cpp/platform/data/utils/testutils/jms/TopicChecker.java
@@ -5,10 +5,10 @@
import uk.gov.justice.services.test.utils.common.host.TestHostProvider;
import uk.gov.justice.services.test.utils.core.rest.RestClient;
-import javax.json.JsonArray;
-import javax.json.JsonNumber;
-import javax.json.JsonReader;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonNumber;
+import jakarta.json.JsonReader;
+import jakarta.ws.rs.core.Response;
import java.io.StringReader;
import java.time.Duration;
diff --git a/cpp-platform-library-utils/cpp-platform-data-utils/pom.xml b/cpp-platform-library-utils/cpp-platform-data-utils/pom.xml
index d344a9e3..692671ac 100644
--- a/cpp-platform-library-utils/cpp-platform-data-utils/pom.xml
+++ b/cpp-platform-library-utils/cpp-platform-data-utils/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.common.library.utils
cpp-platform-library-utils
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
cpp-platform-data-utils
diff --git a/cpp-platform-library-utils/cpp-platform-test-utils/pom.xml b/cpp-platform-library-utils/cpp-platform-test-utils/pom.xml
index 0b48a8d3..c940c4ea 100644
--- a/cpp-platform-library-utils/cpp-platform-test-utils/pom.xml
+++ b/cpp-platform-library-utils/cpp-platform-test-utils/pom.xml
@@ -3,7 +3,7 @@
cpp-platform-library-utils
uk.gov.moj.cpp.common.library.utils
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -40,12 +40,12 @@
compile
- javax.annotation
- javax.annotation-api
+ jakarta.annotation
+ jakarta.annotation-api
- javax.xml.bind
- jaxb-api
+ jakarta.xml.bind
+ jakarta.xml.bind-api
org.glassfish.jaxb
diff --git a/cpp-platform-library-utils/cpp-platform-test-utils/src/main/java/uk/gov/moj/cpp/platform/test/feature/toggle/FeatureStubber.java b/cpp-platform-library-utils/cpp-platform-test-utils/src/main/java/uk/gov/moj/cpp/platform/test/feature/toggle/FeatureStubber.java
index 92b29669..d054715c 100644
--- a/cpp-platform-library-utils/cpp-platform-test-utils/src/main/java/uk/gov/moj/cpp/platform/test/feature/toggle/FeatureStubber.java
+++ b/cpp-platform-library-utils/cpp-platform-test-utils/src/main/java/uk/gov/moj/cpp/platform/test/feature/toggle/FeatureStubber.java
@@ -7,8 +7,8 @@
import uk.gov.justice.services.jmx.system.command.client.TestSystemCommanderClientFactory;
import uk.gov.justice.services.jmx.system.command.client.connection.JmxParameters;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
import java.util.Map;
import java.util.UUID;
@@ -17,7 +17,7 @@
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
import static java.lang.String.format;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static uk.gov.justice.services.jmx.api.mbean.CommandRunMode.FORCED;
import static uk.gov.justice.services.jmx.system.command.client.connection.JmxParametersBuilder.jmxParameters;
import static uk.gov.justice.services.management.suspension.commands.RefreshFeatureControlCacheCommand.REFRESH_FEATURE_CACHE;
diff --git a/cpp-platform-library-utils/pom.xml b/cpp-platform-library-utils/pom.xml
index 6e99a64e..75c046db 100644
--- a/cpp-platform-library-utils/pom.xml
+++ b/cpp-platform-library-utils/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.common.library.utils
diff --git a/feature-control/pom.xml b/feature-control/pom.xml
index 03563f1f..3fa298e9 100644
--- a/feature-control/pom.xml
+++ b/feature-control/pom.xml
@@ -3,7 +3,7 @@
platform-libraries-parent-pom
uk.gov.moj.platform.libraries
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -36,8 +36,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClient.java b/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClient.java
index 8a43fc56..5370cf2c 100644
--- a/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClient.java
+++ b/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClient.java
@@ -7,9 +7,9 @@
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import java.io.IOException;
import java.io.StringReader;
diff --git a/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureSignedRequest.java b/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureSignedRequest.java
index 283ddcea..7c681778 100644
--- a/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureSignedRequest.java
+++ b/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/AzureSignedRequest.java
@@ -14,7 +14,7 @@
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.client.methods.HttpGet;
diff --git a/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/DefaultAzureFeatureFetcher.java b/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/DefaultAzureFeatureFetcher.java
index b36a0bad..a6f61355 100644
--- a/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/DefaultAzureFeatureFetcher.java
+++ b/feature-control/src/main/java/uk/gov/moj/cpp/featurecontrol/remote/DefaultAzureFeatureFetcher.java
@@ -7,11 +7,11 @@
import uk.gov.justice.services.core.featurecontrol.FeatureFetcher;
import uk.gov.justice.services.core.featurecontrol.domain.Feature;
-import javax.annotation.Priority;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import java.io.StringReader;
import java.util.List;
import java.util.Optional;
diff --git a/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClientTest.java b/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClientTest.java
index 3695704c..c623a43e 100644
--- a/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClientTest.java
+++ b/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/AzureRestClientTest.java
@@ -12,7 +12,7 @@
import java.io.IOException;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
diff --git a/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/utils/StubFileReader.java b/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/utils/StubFileReader.java
index fa914c15..ae7cee10 100644
--- a/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/utils/StubFileReader.java
+++ b/feature-control/src/test/java/uk/gov/moj/cpp/featurecontrol/remote/utils/StubFileReader.java
@@ -4,8 +4,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import java.io.StringReader;
import java.nio.charset.Charset;
diff --git a/healthchecks-parent/pom.xml b/healthchecks-parent/pom.xml
index 1e393b25..073ac33d 100644
--- a/healthchecks-parent/pom.xml
+++ b/healthchecks-parent/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.healthchecks
diff --git a/healthchecks-parent/unifiedsearch-healthchecks/pom.xml b/healthchecks-parent/unifiedsearch-healthchecks/pom.xml
index 71ce14bc..c3562536 100644
--- a/healthchecks-parent/unifiedsearch-healthchecks/pom.xml
+++ b/healthchecks-parent/unifiedsearch-healthchecks/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.healthchecks
healthchecks-parent
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/healthchecks-parent/unifiedsearch-healthchecks/src/main/java/uk/gov/justice/services/unifiedsearch/healthchecks/ElasticSearchHealthcheck.java b/healthchecks-parent/unifiedsearch-healthchecks/src/main/java/uk/gov/justice/services/unifiedsearch/healthchecks/ElasticSearchHealthcheck.java
index 9c92f567..a5918f35 100644
--- a/healthchecks-parent/unifiedsearch-healthchecks/src/main/java/uk/gov/justice/services/unifiedsearch/healthchecks/ElasticSearchHealthcheck.java
+++ b/healthchecks-parent/unifiedsearch-healthchecks/src/main/java/uk/gov/justice/services/unifiedsearch/healthchecks/ElasticSearchHealthcheck.java
@@ -12,8 +12,8 @@
import java.io.IOException;
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import org.elasticsearch.client.RestHighLevelClient;
diff --git a/healthchecks-parent/workmanagement-healthchecks/pom.xml b/healthchecks-parent/workmanagement-healthchecks/pom.xml
index ae3985dd..ec41b3f0 100644
--- a/healthchecks-parent/workmanagement-healthchecks/pom.xml
+++ b/healthchecks-parent/workmanagement-healthchecks/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.healthchecks
healthchecks-parent
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/CamundaDatabaseHealthcheck.java b/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/CamundaDatabaseHealthcheck.java
index 833927a9..8f66bf14 100644
--- a/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/CamundaDatabaseHealthcheck.java
+++ b/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/CamundaDatabaseHealthcheck.java
@@ -11,7 +11,7 @@
import java.sql.SQLException;
import java.util.List;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import javax.sql.DataSource;
import org.slf4j.Logger;
diff --git a/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/WorkManagementJdbcDataSourceProvider.java b/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/WorkManagementJdbcDataSourceProvider.java
index 7a0c33cd..6cd5ab02 100644
--- a/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/WorkManagementJdbcDataSourceProvider.java
+++ b/healthchecks-parent/workmanagement-healthchecks/src/main/java/uk/gov/moj/cpp/workmanagement/healthchecks/WorkManagementJdbcDataSourceProvider.java
@@ -4,7 +4,7 @@
import uk.gov.justice.services.jdbc.persistence.JdbcRepositoryException;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
diff --git a/id-mapper-client/pom.xml b/id-mapper-client/pom.xml
index a85009b9..2c9d050c 100644
--- a/id-mapper-client/pom.xml
+++ b/id-mapper-client/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.system.id-mapper
@@ -15,8 +15,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -61,7 +61,7 @@
org.glassfish
- javax.json
+ jakarta.json
test
@@ -100,7 +100,6 @@
-
org.junit.jupiter
junit-jupiter-api
diff --git a/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/DefaultSystemIdMapperClient.java b/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/DefaultSystemIdMapperClient.java
index 1758b1c7..59822a2e 100644
--- a/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/DefaultSystemIdMapperClient.java
+++ b/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/DefaultSystemIdMapperClient.java
@@ -8,9 +8,9 @@
import uk.gov.justice.services.common.converter.StringToJsonObjectConverter;
import uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.util.Arrays;
import java.util.Optional;
@@ -20,8 +20,8 @@
import static com.jayway.jsonpath.Configuration.defaultConfiguration;
import static java.lang.String.format;
import static java.util.Optional.empty;
-import static javax.ws.rs.client.Entity.entity;
-import static javax.ws.rs.core.Response.Status.fromStatusCode;
+import static jakarta.ws.rs.client.Entity.entity;
+import static jakarta.ws.rs.core.Response.Status.fromStatusCode;
import static uk.gov.justice.services.common.http.HeaderConstants.USER_ID;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
diff --git a/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/SystemIdMapperClientProducer.java b/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/SystemIdMapperClientProducer.java
index 5e4467d0..576bd296 100644
--- a/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/SystemIdMapperClientProducer.java
+++ b/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/SystemIdMapperClientProducer.java
@@ -4,9 +4,9 @@
import uk.gov.justice.services.common.rest.ServerPortProvider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Produces;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/WebTargetFactory.java b/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/WebTargetFactory.java
index f48b8fdd..30e90724 100644
--- a/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/WebTargetFactory.java
+++ b/id-mapper-client/src/main/java/uk/gov/moj/cpp/systemidmapper/client/WebTargetFactory.java
@@ -1,7 +1,7 @@
package uk.gov.moj.cpp.systemidmapper.client;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.WebTarget;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.WebTarget;
public class WebTargetFactory {
diff --git a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/DefaultSystemIdMapperClientTest.java b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/DefaultSystemIdMapperClientTest.java
index 157ce428..b55e92fb 100644
--- a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/DefaultSystemIdMapperClientTest.java
+++ b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/DefaultSystemIdMapperClientTest.java
@@ -14,12 +14,12 @@
import static java.lang.String.format;
import static java.util.Optional.empty;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.HttpHeaders.ACCEPT;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.CONFLICT;
-import static javax.ws.rs.core.Response.Status.NOT_FOUND;
-import static javax.ws.rs.core.Response.Status.OK;
-import static javax.ws.rs.core.Response.Status.SERVICE_UNAVAILABLE;
+import static jakarta.ws.rs.core.HttpHeaders.ACCEPT;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.CONFLICT;
+import static jakarta.ws.rs.core.Response.Status.NOT_FOUND;
+import static jakarta.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.SERVICE_UNAVAILABLE;
import static org.apache.openejb.util.NetworkUtil.getNextAvailablePort;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
@@ -36,7 +36,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.github.tomakehurst.wiremock.junit5.WireMockTest;
import org.junit.jupiter.api.Test;
@@ -151,7 +151,7 @@ public void shouldGetMappingByMappingId() throws Exception {
assertThat(systemIdMap.getSourceType(), is(sourceType));
assertThat(systemIdMap.getTargetId(), is(targetId));
assertThat(systemIdMap.getTargetType(), is(targetType));
- assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2016, 9, 7, 14, 30, 53, 0, ZoneId.of("UTC"))));
+ assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2016, 9, 7, 14, 30, 53, 0, java.time.ZoneOffset.UTC)));
}
@Test
@@ -256,7 +256,7 @@ public void shouldFindMappingByTargetIdAndTargetType() throws Exception {
assertThat(systemIdMap.getSourceType(), is(sourceType));
assertThat(systemIdMap.getTargetId(), is(targetId));
assertThat(systemIdMap.getTargetType(), is(targetType));
- assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2016, 10, 8, 15, 31, 54, 0, ZoneId.of("UTC"))));
+ assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2016, 10, 8, 15, 31, 54, 0, java.time.ZoneOffset.UTC)));
}
@@ -322,7 +322,7 @@ public void shouldFindMappingBySourceIdSourceTypeAndTargetType() {
assertThat(systemIdMap.getSourceType(), is(sourceType));
assertThat(systemIdMap.getTargetId(), is(targetId));
assertThat(systemIdMap.getTargetType(), is(targetType));
- assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2015, 9, 7, 14, 30, 53, 0, ZoneId.of("UTC"))));
+ assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2015, 9, 7, 14, 30, 53, 0, java.time.ZoneOffset.UTC)));
}
@@ -393,7 +393,7 @@ public void shouldFindMappingBySourceIdAndTargetType() {
assertThat(systemIdMap.getSourceType(), is(sourceType));
assertThat(systemIdMap.getTargetId(), is(targetId));
assertThat(systemIdMap.getTargetType(), is("CASE-ID"));
- assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2019, 10, 7, 14, 30, 53, 0, ZoneId.of("UTC"))));
+ assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2019, 10, 7, 14, 30, 53, 0, java.time.ZoneOffset.UTC)));
}
@@ -426,7 +426,7 @@ public void shouldFindMappingBySourceIdAndMultipleTargetType() {
assertThat(systemIdMap.getSourceType(), is(sourceType));
assertThat(systemIdMap.getTargetId(), is(targetId));
assertThat(systemIdMap.getTargetType(), is("CASE-ID"));
- assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2019, 10, 7, 14, 30, 53, 0, ZoneId.of("UTC"))));
+ assertThat(systemIdMap.getCreatedAt(), is(ZonedDateTime.of(2019, 10, 7, 14, 30, 53, 0, java.time.ZoneOffset.UTC)));
}
@Test
diff --git a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/FileUtil.java b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/FileUtil.java
index 9d322602..f356a624 100644
--- a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/FileUtil.java
+++ b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/FileUtil.java
@@ -1,7 +1,7 @@
package uk.gov.moj.cpp.systemidmapper.client;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import java.io.IOException;
import java.io.InputStream;
diff --git a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerInjectionTest.java b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerInjectionTest.java
index 610f0414..bcea9c32 100644
--- a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerInjectionTest.java
+++ b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerInjectionTest.java
@@ -8,7 +8,7 @@
import uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer;
import uk.gov.justice.services.common.http.DefaultServerPortProvider;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.apache.openejb.jee.Application;
import org.apache.openejb.jee.WebApp;
diff --git a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerTest.java b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerTest.java
index 6a662442..6e3f79c7 100644
--- a/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerTest.java
+++ b/id-mapper-client/src/test/java/uk.gov.moj.cpp.systemidmapper.client/SystemIdMapperClientProducerTest.java
@@ -8,7 +8,7 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
import static com.github.tomakehurst.wiremock.client.WireMock.verify;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.when;
diff --git a/metrics-micrometer/pom.xml b/metrics-micrometer/pom.xml
index d9b05e98..a3c66ba0 100644
--- a/metrics-micrometer/pom.xml
+++ b/metrics-micrometer/pom.xml
@@ -4,7 +4,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
metrics-micrometer
@@ -12,8 +12,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/AllMeterRegistrar.java b/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/AllMeterRegistrar.java
index f88cc416..d36835ba 100644
--- a/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/AllMeterRegistrar.java
+++ b/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/AllMeterRegistrar.java
@@ -4,7 +4,7 @@
import uk.gov.justice.services.eventstore.metrics.tags.TagProvider;
import uk.gov.justice.services.metrics.micrometer.counters.CounterMeterFactory;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
import uk.gov.justice.services.metrics.micrometer.meters.SourceComponentPair;
diff --git a/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsBootstrapper.java b/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsBootstrapper.java
index 187cf40c..c8a9921e 100644
--- a/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsBootstrapper.java
+++ b/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsBootstrapper.java
@@ -3,7 +3,7 @@
import uk.gov.justice.services.eventstore.metrics.tags.TagProvider;
import uk.gov.justice.services.metrics.micrometer.registry.MetricsRegistrar;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
import org.slf4j.Logger;
diff --git a/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtension.java b/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtension.java
index e6498b91..977042f1 100644
--- a/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtension.java
+++ b/metrics-micrometer/src/main/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtension.java
@@ -3,10 +3,10 @@
import uk.gov.justice.services.framework.utilities.cdi.CdiInstanceResolver;
import uk.gov.justice.services.metrics.micrometer.config.MetricsConfiguration;
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.spi.AfterDeploymentValidation;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.enterprise.inject.spi.Extension;
+import jakarta.enterprise.event.Observes;
+import jakarta.enterprise.inject.spi.AfterDeploymentValidation;
+import jakarta.enterprise.inject.spi.BeanManager;
+import jakarta.enterprise.inject.spi.Extension;
import com.google.common.annotations.VisibleForTesting;
diff --git a/metrics-micrometer/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/metrics-micrometer/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
similarity index 100%
rename from metrics-micrometer/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
rename to metrics-micrometer/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
diff --git a/metrics-micrometer/src/test/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtensionTest.java b/metrics-micrometer/src/test/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtensionTest.java
index 53ac2130..45fbc19b 100644
--- a/metrics-micrometer/src/test/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtensionTest.java
+++ b/metrics-micrometer/src/test/java/uk/gov/justice/services/metrics/micrometer/bootstrap/MicrometerMetricsWildflyExtensionTest.java
@@ -8,8 +8,8 @@
import uk.gov.justice.services.framework.utilities.cdi.CdiInstanceResolver;
import uk.gov.justice.services.metrics.micrometer.config.MetricsConfiguration;
-import javax.enterprise.inject.spi.AfterDeploymentValidation;
-import javax.enterprise.inject.spi.BeanManager;
+import jakarta.enterprise.inject.spi.AfterDeploymentValidation;
+import jakarta.enterprise.inject.spi.BeanManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/platform-libraries-bom/pom.xml b/platform-libraries-bom/pom.xml
index d19defae..e45332bd 100644
--- a/platform-libraries-bom/pom.xml
+++ b/platform-libraries-bom/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/pom.xml b/pom.xml
index 83b75c54..d8f20a64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,13 +5,13 @@
uk.gov.moj.cpp.common
parent-pom
- 17.10.12
+ 21.0.0-SNAPSHOT
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
cpp.platform.libraries
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
pom
@@ -37,27 +37,25 @@
2. While release through ADO pipeline, for white listed release branches (main/release-8.x.x) it's done through git hook (legacy solution) via azure pipeline code
3. While release through ADO pipeline, for branches other than white listed release branches, it's done through versions:set command via azure pipeline code
-->
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
- 17.104.0
- 17.104.0
+ 21.0.0-SNAPSHOT
+ 21.0.0-SNAPSHOT
- 17.105.0-M2
- 17.105.0-M6
- 17.105.0-M19
+ 21.0.0-SNAPSHOT
+ 21.0.0-SNAPSHOT
+ 21.0.0-SNAPSHOT
${framework.version}
8.0.5
- 17.104.46
- 17.0.240
+ 17.104.48
+ 17.0.252
17.0.144
- 17.0.129
- 17.103.129
- 2.3.1
- 8.4.0
+ 17.103.169
+ 17.103.131
2.15.0
@@ -77,16 +75,6 @@
pom
import
-
- javax.xml.bind
- jaxb-api
- ${jaxb-api.version}
-
-
- com.microsoft.azure
- azure-storage
- ${azure-storage-version}
-
diff --git a/service-components/command/command-api/pom.xml b/service-components/command/command-api/pom.xml
index acc74a5d..f945bcf2 100644
--- a/service-components/command/command-api/pom.xml
+++ b/service-components/command/command-api/pom.xml
@@ -3,7 +3,7 @@
command
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -66,8 +66,8 @@
schema-service
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiDebugLoggingInterceptor.java b/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiDebugLoggingInterceptor.java
index 02e88a3b..234e1160 100644
--- a/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiDebugLoggingInterceptor.java
+++ b/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiDebugLoggingInterceptor.java
@@ -7,7 +7,7 @@
import uk.gov.justice.services.core.interceptor.InterceptorContext;
import uk.gov.justice.services.messaging.logging.DebugLogger;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
diff --git a/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiInterceptorChainProvider.java b/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiInterceptorChainProvider.java
index c8607d6b..c8cbfa24 100644
--- a/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiInterceptorChainProvider.java
+++ b/service-components/command/command-api/src/main/java/uk/gov/justice/services/components/command/api/interceptors/CommandApiInterceptorChainProvider.java
@@ -14,8 +14,8 @@
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
public class CommandApiInterceptorChainProvider implements InterceptorChainEntryProvider {
diff --git a/service-components/command/command-controller/pom.xml b/service-components/command/command-controller/pom.xml
index d46afaa7..bb6cd128 100644
--- a/service-components/command/command-controller/pom.xml
+++ b/service-components/command/command-controller/pom.xml
@@ -3,7 +3,7 @@
command
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -60,8 +60,8 @@
schema-service
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/command/command-controller/src/main/java/uk/gov/justice/services/components/command/controller/interceptors/CommandControllerInterceptorChainProvider.java b/service-components/command/command-controller/src/main/java/uk/gov/justice/services/components/command/controller/interceptors/CommandControllerInterceptorChainProvider.java
index b037298e..3660f69d 100644
--- a/service-components/command/command-controller/src/main/java/uk/gov/justice/services/components/command/controller/interceptors/CommandControllerInterceptorChainProvider.java
+++ b/service-components/command/command-controller/src/main/java/uk/gov/justice/services/components/command/controller/interceptors/CommandControllerInterceptorChainProvider.java
@@ -14,8 +14,8 @@
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
public class CommandControllerInterceptorChainProvider implements InterceptorChainEntryProvider {
diff --git a/service-components/command/command-handler/pom.xml b/service-components/command/command-handler/pom.xml
index e97f5db2..37d9ada2 100644
--- a/service-components/command/command-handler/pom.xml
+++ b/service-components/command/command-handler/pom.xml
@@ -3,7 +3,7 @@
command
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -95,8 +95,8 @@
${project.version}
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/command/command-handler/src/main/java/uk/gov/justice/services/components/command/handler/interceptors/CommandHandlerInterceptorChainProvider.java b/service-components/command/command-handler/src/main/java/uk/gov/justice/services/components/command/handler/interceptors/CommandHandlerInterceptorChainProvider.java
index b6456bb3..262ad059 100644
--- a/service-components/command/command-handler/src/main/java/uk/gov/justice/services/components/command/handler/interceptors/CommandHandlerInterceptorChainProvider.java
+++ b/service-components/command/command-handler/src/main/java/uk/gov/justice/services/components/command/handler/interceptors/CommandHandlerInterceptorChainProvider.java
@@ -14,8 +14,8 @@
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
public class CommandHandlerInterceptorChainProvider implements InterceptorChainEntryProvider {
diff --git a/service-components/command/pom.xml b/service-components/command/pom.xml
index 39a940b7..7549160e 100644
--- a/service-components/command/pom.xml
+++ b/service-components/command/pom.xml
@@ -3,7 +3,7 @@
service-components
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/service-components/event/event-api/pom.xml b/service-components/event/event-api/pom.xml
index 6da99554..b77cac7f 100644
--- a/service-components/event/event-api/pom.xml
+++ b/service-components/event/event-api/pom.xml
@@ -3,7 +3,7 @@
event
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -56,8 +56,8 @@
schema-service
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/event/event-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/EventApiInterceptorChainProvider.java b/service-components/event/event-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/EventApiInterceptorChainProvider.java
index 4d881755..d3491791 100644
--- a/service-components/event/event-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/EventApiInterceptorChainProvider.java
+++ b/service-components/event/event-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/EventApiInterceptorChainProvider.java
@@ -14,8 +14,8 @@
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
public class EventApiInterceptorChainProvider implements InterceptorChainEntryProvider {
diff --git a/service-components/event/event-indexer/pom.xml b/service-components/event/event-indexer/pom.xml
index 7e17730d..41d8001b 100644
--- a/service-components/event/event-indexer/pom.xml
+++ b/service-components/event/event-indexer/pom.xml
@@ -3,7 +3,7 @@
event
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/service-components/event/event-listener/pom.xml b/service-components/event/event-listener/pom.xml
index ae27c823..7b6d6cf0 100644
--- a/service-components/event/event-listener/pom.xml
+++ b/service-components/event/event-listener/pom.xml
@@ -3,7 +3,7 @@
event
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -65,8 +65,8 @@
event-buffer-core
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/event/event-listener/src/main/java/uk/gov/justice/services/components/event/listener/interceptors/EventListenerDebugLoggingInterceptor.java b/service-components/event/event-listener/src/main/java/uk/gov/justice/services/components/event/listener/interceptors/EventListenerDebugLoggingInterceptor.java
index 1d2ddf7a..abebfb82 100644
--- a/service-components/event/event-listener/src/main/java/uk/gov/justice/services/components/event/listener/interceptors/EventListenerDebugLoggingInterceptor.java
+++ b/service-components/event/event-listener/src/main/java/uk/gov/justice/services/components/event/listener/interceptors/EventListenerDebugLoggingInterceptor.java
@@ -7,7 +7,7 @@
import uk.gov.justice.services.core.interceptor.InterceptorContext;
import uk.gov.justice.services.messaging.logging.DebugLogger;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
diff --git a/service-components/event/event-processor/pom.xml b/service-components/event/event-processor/pom.xml
index 0990c7b6..f65c8d08 100644
--- a/service-components/event/event-processor/pom.xml
+++ b/service-components/event/event-processor/pom.xml
@@ -3,7 +3,7 @@
event
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/service-components/event/pom.xml b/service-components/event/pom.xml
index fbc0cf8c..d76fd81f 100644
--- a/service-components/event/pom.xml
+++ b/service-components/event/pom.xml
@@ -3,7 +3,7 @@
service-components
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/service-components/pom.xml b/service-components/pom.xml
index 6939c7c6..15303dea 100644
--- a/service-components/pom.xml
+++ b/service-components/pom.xml
@@ -4,7 +4,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/service-components/query/pom.xml b/service-components/query/pom.xml
index 22051f00..cd69b128 100644
--- a/service-components/query/pom.xml
+++ b/service-components/query/pom.xml
@@ -3,7 +3,7 @@
service-components
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
diff --git a/service-components/query/query-api/pom.xml b/service-components/query/query-api/pom.xml
index ec1f47fa..986e51f4 100644
--- a/service-components/query/query-api/pom.xml
+++ b/service-components/query/query-api/pom.xml
@@ -3,7 +3,7 @@
query
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -60,8 +60,8 @@
schema-service
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiDebugLoggingInterceptor.java b/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiDebugLoggingInterceptor.java
index cdcde670..bdeb4592 100644
--- a/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiDebugLoggingInterceptor.java
+++ b/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiDebugLoggingInterceptor.java
@@ -7,7 +7,7 @@
import uk.gov.justice.services.core.interceptor.InterceptorContext;
import uk.gov.justice.services.messaging.logging.DebugLogger;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
diff --git a/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiInterceptorChainProvider.java b/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiInterceptorChainProvider.java
index dbbd1c73..756e756e 100644
--- a/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiInterceptorChainProvider.java
+++ b/service-components/query/query-api/src/main/java/uk/gov/justice/services/components/query/api/interceptors/QueryApiInterceptorChainProvider.java
@@ -13,8 +13,8 @@
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
public class QueryApiInterceptorChainProvider implements InterceptorChainEntryProvider {
diff --git a/service-components/query/query-controller/pom.xml b/service-components/query/query-controller/pom.xml
index 8e81d593..b7498dfd 100644
--- a/service-components/query/query-controller/pom.xml
+++ b/service-components/query/query-controller/pom.xml
@@ -3,7 +3,7 @@
query
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -60,8 +60,8 @@
schema-service
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/query/query-controller/src/main/java/uk/gov/justice/services/components/query/controller/interceptors/QueryControllerInterceptorChainProvider.java b/service-components/query/query-controller/src/main/java/uk/gov/justice/services/components/query/controller/interceptors/QueryControllerInterceptorChainProvider.java
index cb8e9b83..62fc9b77 100644
--- a/service-components/query/query-controller/src/main/java/uk/gov/justice/services/components/query/controller/interceptors/QueryControllerInterceptorChainProvider.java
+++ b/service-components/query/query-controller/src/main/java/uk/gov/justice/services/components/query/controller/interceptors/QueryControllerInterceptorChainProvider.java
@@ -14,8 +14,8 @@
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
public class QueryControllerInterceptorChainProvider implements InterceptorChainEntryProvider {
diff --git a/service-components/query/query-view/pom.xml b/service-components/query/query-view/pom.xml
index c75ace00..3eb2312a 100644
--- a/service-components/query/query-view/pom.xml
+++ b/service-components/query/query-view/pom.xml
@@ -3,7 +3,7 @@
query
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -46,8 +46,8 @@
schema-service
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/query/query-view/src/main/java/uk/gov/justice/services/components/query/view/interceptors/QueryViewInterceptorChainProvider.java b/service-components/query/query-view/src/main/java/uk/gov/justice/services/components/query/view/interceptors/QueryViewInterceptorChainProvider.java
index 8b0c98f3..afc05714 100644
--- a/service-components/query/query-view/src/main/java/uk/gov/justice/services/components/query/view/interceptors/QueryViewInterceptorChainProvider.java
+++ b/service-components/query/query-view/src/main/java/uk/gov/justice/services/components/query/view/interceptors/QueryViewInterceptorChainProvider.java
@@ -13,8 +13,8 @@
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
public class QueryViewInterceptorChainProvider implements InterceptorChainEntryProvider {
diff --git a/service-components/service-component-config/pom.xml b/service-components/service-component-config/pom.xml
index 409dc817..209c682f 100644
--- a/service-components/service-component-config/pom.xml
+++ b/service-components/service-component-config/pom.xml
@@ -3,7 +3,7 @@
service-components
uk.gov.moj.cpp.common
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/service-components/service-component-config/src/main/java/uk/gov/justice/services/components/configuration/ServiceComponentJndiConfig.java b/service-components/service-component-config/src/main/java/uk/gov/justice/services/components/configuration/ServiceComponentJndiConfig.java
index ada9bc37..0393d8e5 100644
--- a/service-components/service-component-config/src/main/java/uk/gov/justice/services/components/configuration/ServiceComponentJndiConfig.java
+++ b/service-components/service-component-config/src/main/java/uk/gov/justice/services/components/configuration/ServiceComponentJndiConfig.java
@@ -4,7 +4,7 @@
import uk.gov.justice.services.common.configuration.Value;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
public class ServiceComponentJndiConfig {
diff --git a/system-documentgenerator-client/pom.xml b/system-documentgenerator-client/pom.xml
index e50112d6..8e903e41 100644
--- a/system-documentgenerator-client/pom.xml
+++ b/system-documentgenerator-client/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.system.documentgenerator
@@ -15,8 +15,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -57,8 +57,8 @@
compile
- javax.servlet
- javax.servlet-api
+ jakarta.servlet
+ jakarta.servlet-api
test
diff --git a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClient.java b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClient.java
index 09fb70a1..42a3343c 100644
--- a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClient.java
+++ b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClient.java
@@ -3,19 +3,19 @@
import org.apache.commons.io.IOUtils;
import uk.gov.justice.services.core.dispatcher.SystemUserProvider;
-import javax.json.JsonObject;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
import static java.lang.String.format;
-import static javax.ws.rs.client.Entity.entity;
-import static javax.ws.rs.core.Response.Status.OK;
-import static javax.ws.rs.core.Response.Status.fromStatusCode;
+import static jakarta.ws.rs.client.Entity.entity;
+import static jakarta.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.fromStatusCode;
import static uk.gov.justice.services.common.http.HeaderConstants.USER_ID;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonBuilderFactory;
diff --git a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClient.java b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClient.java
index 0959b06d..217772ec 100644
--- a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClient.java
+++ b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClient.java
@@ -3,7 +3,7 @@
import java.io.IOException;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public interface DocumentGeneratorClient {
diff --git a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClientProducer.java b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClientProducer.java
index 6f57246c..41096284 100644
--- a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClientProducer.java
+++ b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/DocumentGeneratorClientProducer.java
@@ -5,9 +5,9 @@
import uk.gov.justice.services.common.rest.ServerPortProvider;
import uk.gov.justice.services.core.dispatcher.SystemUserProvider;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.Produces;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.Produces;
@SuppressWarnings("CdiInjectionPointsInspection")
@ApplicationScoped
diff --git a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactory.java b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactory.java
index 01f07817..e46d6320 100644
--- a/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactory.java
+++ b/system-documentgenerator-client/src/main/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactory.java
@@ -2,7 +2,7 @@
import uk.gov.justice.services.clients.core.webclient.WebTargetFactory;
-import javax.ws.rs.client.Client;
+import jakarta.ws.rs.client.Client;
public class HttpClientFactory {
diff --git a/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClientTest.java b/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClientTest.java
index d65be098..484541de 100644
--- a/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClientTest.java
+++ b/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/DefaultDocumentGeneratorClientTest.java
@@ -10,11 +10,11 @@
import org.mockito.junit.jupiter.MockitoExtension;
import uk.gov.justice.services.core.dispatcher.SystemUserProvider;
-import javax.json.JsonObject;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.Response;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
diff --git a/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactoryTest.java b/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactoryTest.java
index 1fbd938b..d6585cd5 100644
--- a/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactoryTest.java
+++ b/system-documentgenerator-client/src/test/java/uk/gov/moj/cpp/system/documentgenerator/client/HttpClientFactoryTest.java
@@ -4,7 +4,7 @@
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNot.not;
-import javax.ws.rs.client.Client;
+import jakarta.ws.rs.client.Client;
import org.junit.jupiter.api.Test;
diff --git a/system-users-library/pom.xml b/system-users-library/pom.xml
index f605fbb7..4cc7fefa 100644
--- a/system-users-library/pom.xml
+++ b/system-users-library/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.common
@@ -15,8 +15,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/system-users-library/src/main/java/uk/gov/moj/cpp/systemusers/ServiceContextSystemUserProvider.java b/system-users-library/src/main/java/uk/gov/moj/cpp/systemusers/ServiceContextSystemUserProvider.java
index 3bba4aea..37df2bde 100644
--- a/system-users-library/src/main/java/uk/gov/moj/cpp/systemusers/ServiceContextSystemUserProvider.java
+++ b/system-users-library/src/main/java/uk/gov/moj/cpp/systemusers/ServiceContextSystemUserProvider.java
@@ -9,11 +9,11 @@
import java.util.Optional;
import java.util.UUID;
-import javax.annotation.PostConstruct;
-import javax.annotation.Priority;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Alternative;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.Priority;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.inject.Inject;
import javax.naming.InitialContext;
import javax.naming.NamingException;
diff --git a/unifiedsearch-library-parent/pom.xml b/unifiedsearch-library-parent/pom.xml
index c32c3b85..f38452b1 100644
--- a/unifiedsearch-library-parent/pom.xml
+++ b/unifiedsearch-library-parent/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.platform.libraries
platform-libraries-parent-pom
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
uk.gov.moj.cpp.unifiedsearch
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/pom.xml b/unifiedsearch-library-parent/unifiedsearch-client/pom.xml
index 275785c5..085c065d 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/pom.xml
+++ b/unifiedsearch-library-parent/unifiedsearch-client/pom.xml
@@ -3,7 +3,7 @@
unifiedsearch-library-parent
uk.gov.moj.cpp.unifiedsearch
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/GetRequestFactory.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/GetRequestFactory.java
index d2150e84..08f50e49 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/GetRequestFactory.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/GetRequestFactory.java
@@ -2,7 +2,7 @@
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import org.elasticsearch.action.get.GetRequest;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactory.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactory.java
index 25a16b89..eb37a1f8 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactory.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactory.java
@@ -5,9 +5,9 @@
import uk.gov.justice.services.unifiedsearch.client.index.UnifiedSearchIndexerHelper;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.elasticsearch.action.index.IndexRequest;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/UpdateRequestFactory.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/UpdateRequestFactory.java
index f3d036a8..df3ced56 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/UpdateRequestFactory.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/factory/UpdateRequestFactory.java
@@ -3,7 +3,7 @@
import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.NONE;
import static org.elasticsearch.xcontent.XContentType.JSON;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.update.UpdateRequest;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/AbstractSearchIndexer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/AbstractSearchIndexer.java
index ea6bd084..82d104bd 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/AbstractSearchIndexer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/AbstractSearchIndexer.java
@@ -3,8 +3,8 @@
import uk.gov.justice.services.messaging.Envelope;
import uk.gov.justice.services.unifiedsearch.client.validation.JsonDocumentValidator;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
public abstract class AbstractSearchIndexer {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsCaseDocumentService.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsCaseDocumentService.java
index 1a5f18d6..f6ca759c 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsCaseDocumentService.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsCaseDocumentService.java
@@ -7,10 +7,10 @@
import java.io.IOException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.json.JsonObject;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.RestHighLevelClient;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexer.java
index 7273979c..0e94c3c5 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexer.java
@@ -3,7 +3,7 @@
import uk.gov.justice.services.unifiedsearch.UnifiedSearchIndexer;
import uk.gov.justice.services.unifiedsearch.client.utils.IndexInfo;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class CpsSearchIndexer extends AbstractSearchIndexer implements UnifiedSearchIndexer {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CrimeCaseDocumentService.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CrimeCaseDocumentService.java
index afb42d01..9fc560df 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CrimeCaseDocumentService.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/CrimeCaseDocumentService.java
@@ -7,10 +7,10 @@
import java.io.IOException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.json.JsonObject;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.RestHighLevelClient;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexer.java
index ee9366cd..56bda7fd 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexer.java
@@ -3,7 +3,7 @@
import uk.gov.justice.services.unifiedsearch.UnifiedSearchIndexer;
import uk.gov.justice.services.unifiedsearch.client.utils.IndexInfo;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class DefaultUnifiedSearchIndexer extends AbstractSearchIndexer implements
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexer.java
index 72238b01..e321861a 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexer.java
@@ -5,9 +5,9 @@
import java.io.IOException;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.elasticsearch.ElasticsearchException;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentSelector.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentSelector.java
index c60d248a..d2b41360 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentSelector.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentSelector.java
@@ -1,9 +1,9 @@
package uk.gov.justice.services.unifiedsearch.client.index;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Any;
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Any;
+import jakarta.enterprise.inject.Instance;
+import jakarta.inject.Inject;
@ApplicationScoped
public class DocumentSelector {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentService.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentService.java
index f1b3dcd9..e662ee5a 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentService.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentService.java
@@ -10,8 +10,8 @@
import java.io.IOException;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.action.get.GetRequest;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/HighLevelRestClientFactory.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/HighLevelRestClientFactory.java
index 39490d5b..c80e0668 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/HighLevelRestClientFactory.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/HighLevelRestClientFactory.java
@@ -4,7 +4,7 @@
import static org.apache.http.impl.nio.reactor.IOReactorConfig.custom;
import static org.elasticsearch.client.RestClient.builder;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import org.apache.http.client.CredentialsProvider;
import org.elasticsearch.client.RestClientBuilder;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexType.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexType.java
index c980788e..2cc3ff24 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexType.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexType.java
@@ -5,7 +5,7 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import javax.inject.Qualifier;
+import jakarta.inject.Qualifier;
@Qualifier
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexTypeLiteral.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexTypeLiteral.java
index 4d1b6e58..aedc11de 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexTypeLiteral.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/IndexTypeLiteral.java
@@ -1,6 +1,6 @@
package uk.gov.justice.services.unifiedsearch.client.index;
-import javax.enterprise.util.AnnotationLiteral;
+import jakarta.enterprise.util.AnnotationLiteral;
public class IndexTypeLiteral extends AnnotationLiteral implements IndexType {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexer.java
index cc6fdd10..2c32f05b 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexer.java
@@ -1,10 +1,10 @@
package uk.gov.justice.services.unifiedsearch.client.index;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
@ApplicationScoped
public class SearchIndexer {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelper.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelper.java
index d9b7ddae..772a16b1 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelper.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelper.java
@@ -7,8 +7,8 @@
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.json.JsonObject;
@ApplicationScoped
public class UnifiedSearchIndexerHelper {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducer.java
index faa82068..a36eeada 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducer.java
@@ -9,10 +9,10 @@
import uk.gov.justice.services.unifiedsearch.UnifiedSearchName;
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchClientException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Produces;
-import javax.enterprise.inject.spi.InjectionPoint;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.enterprise.inject.spi.InjectionPoint;
+import jakarta.inject.Inject;
@ApplicationScoped
public class UnifiedSearchIndexerProducer {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/HighLevelRestClientProvider.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/HighLevelRestClientProvider.java
index acd9576d..a0ec1659 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/HighLevelRestClientProvider.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/HighLevelRestClientProvider.java
@@ -2,8 +2,8 @@
import uk.gov.justice.services.unifiedsearch.client.index.HighLevelRestClientFactory;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.apache.http.client.CredentialsProvider;
import org.elasticsearch.client.RestHighLevelClient;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/RestClientConfiguration.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/RestClientConfiguration.java
index b82ee26a..2bcd86ab 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/RestClientConfiguration.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/RestClientConfiguration.java
@@ -4,8 +4,8 @@
import uk.gov.justice.services.common.configuration.GlobalValue;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
@ApplicationScoped
public class RestClientConfiguration {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProvider.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProvider.java
index c0cc573e..75f7c12e 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProvider.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProvider.java
@@ -23,8 +23,8 @@
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchClientException;
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchSecurityConstants;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchHighLevelRestClientProducer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchHighLevelRestClientProducer.java
index c8a5a22e..5ec41a90 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchHighLevelRestClientProducer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchHighLevelRestClientProducer.java
@@ -6,10 +6,10 @@
import static uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchSecurityConstants.READ_USER;
import static uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchSecurityConstants.WRITE_USER;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Produces;
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
import org.elasticsearch.client.RestHighLevelClient;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/IngestionResponseVerifier.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/IngestionResponseVerifier.java
index 41840c37..ff1b0f63 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/IngestionResponseVerifier.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/IngestionResponseVerifier.java
@@ -8,7 +8,7 @@
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.update.UpdateResponse;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/UnifiedSearchIngestionRetryInterceptor.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/UnifiedSearchIngestionRetryInterceptor.java
index 12569eaa..1b7ca6bd 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/UnifiedSearchIngestionRetryInterceptor.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/retry/UnifiedSearchIngestionRetryInterceptor.java
@@ -11,8 +11,8 @@
import uk.gov.justice.services.core.interceptor.InterceptorContext;
import uk.gov.justice.services.unifiedsearch.client.index.UnifiedSearchIngestionException;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchService.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchService.java
index d4d943de..92830cf5 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchService.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchService.java
@@ -12,12 +12,12 @@
import uk.gov.justice.services.unifiedsearch.client.utils.IndexInfo;
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchClientException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import java.io.IOException;
import static java.lang.String.format;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchRequestFactory.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchRequestFactory.java
index e047f73d..f45dbb8d 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchRequestFactory.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchRequestFactory.java
@@ -6,8 +6,8 @@
import uk.gov.justice.services.common.configuration.GlobalValue;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.index.query.QueryBuilder;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverter.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverter.java
index b8ffd02e..763bc1bb 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverter.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverter.java
@@ -6,11 +6,11 @@
import uk.gov.justice.services.common.converter.ObjectToJsonObjectConverter;
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchClientException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
import java.io.IOException;
import java.util.Map;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/UnifiedSearchService.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/UnifiedSearchService.java
index aa9f00cd..3ca73081 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/UnifiedSearchService.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/search/UnifiedSearchService.java
@@ -1,6 +1,6 @@
package uk.gov.justice.services.unifiedsearch.client.search;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformer.java
index 0d5bfaa2..6c76b162 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformer.java
@@ -3,8 +3,8 @@
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toSet;
import static org.apache.commons.lang3.StringUtils.isBlank;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import uk.gov.justice.services.unifiedsearch.client.domain.Address;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformer.java
index 44041002..1b757d70 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformer.java
@@ -4,9 +4,9 @@
import java.io.IOException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.action.get.GetResponse;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformer.java
index ed0e6518..fbf90b59 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformer.java
@@ -16,7 +16,7 @@
import java.util.Set;
import java.util.function.BiFunction;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class CpsCaseDetailsNestedTransformer {
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformer.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformer.java
index f12b5c30..37ca00d0 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformer.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformer.java
@@ -7,9 +7,9 @@
import java.io.IOException;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.action.get.GetResponse;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidator.java b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidator.java
index 4289e925..e6f708ea 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidator.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/main/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidator.java
@@ -3,9 +3,9 @@
import java.io.IOException;
import java.io.InputStream;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.everit.json.schema.Schema;
import org.everit.json.schema.ValidationException;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactoryTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactoryTest.java
index 4b1bcc49..4dea2332 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactoryTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/factory/IndexRequestFactoryTest.java
@@ -12,7 +12,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.elasticsearch.action.index.IndexRequest;
import org.junit.jupiter.api.Test;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexerTest.java
index cbf823d2..3c9ae485 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/CpsSearchIndexerTest.java
@@ -9,7 +9,7 @@
import uk.gov.justice.services.unifiedsearch.client.utils.IndexInfo;
import uk.gov.justice.services.unifiedsearch.client.validation.JsonDocumentValidator;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexerTest.java
index 1ab5979f..479c58a6 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DefaultUnifiedSearchIndexerTest.java
@@ -9,7 +9,7 @@
import uk.gov.justice.services.unifiedsearch.client.utils.IndexInfo;
import uk.gov.justice.services.unifiedsearch.client.validation.JsonDocumentValidator;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexerTest.java
index 42399384..beb1c913 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentIndexerTest.java
@@ -9,7 +9,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentServiceTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentServiceTest.java
index e5da6cde..3f1739f9 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentServiceTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/DocumentServiceTest.java
@@ -26,7 +26,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.action.get.GetRequest;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexerTest.java
index c1f2a7c9..8139fb8f 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/SearchIndexerTest.java
@@ -7,8 +7,8 @@
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelperTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelperTest.java
index 8e115add..c2041aa2 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelperTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerHelperTest.java
@@ -3,8 +3,8 @@
import org.junit.jupiter.api.Test;
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchClientException;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import java.util.UUID;
import static java.util.UUID.randomUUID;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducerTest.java
index 6fef1729..2b806869 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/index/UnifiedSearchIndexerProducerTest.java
@@ -12,7 +12,7 @@
import uk.gov.justice.services.unifiedsearch.client.utils.IndexInfo;
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchClientException;
-import javax.enterprise.inject.spi.InjectionPoint;
+import jakarta.enterprise.inject.spi.InjectionPoint;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProviderTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProviderTest.java
index e7ffd0b9..d4d398a1 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProviderTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/restclient/UnifiedSearchCredentialsProviderTest.java
@@ -25,7 +25,7 @@
import uk.gov.justice.services.common.configuration.GlobalValue;
import uk.gov.justice.services.unifiedsearch.client.utils.UnifiedSearchClientException;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.apache.http.auth.Credentials;
import org.apache.http.client.CredentialsProvider;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchServiceTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchServiceTest.java
index 96f46401..9a0dfbf6 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchServiceTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/DefaultUnifiedSearchServiceTest.java
@@ -27,8 +27,8 @@
import java.io.IOException;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.apache.lucene.search.TotalHits;
import org.elasticsearch.action.get.GetRequest;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverterTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverterTest.java
index bcff7bbe..d14df1bf 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverterTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/search/SearchResultConverterTest.java
@@ -17,8 +17,8 @@
import java.io.IOException;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonGenerator;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsJsonHelper.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsJsonHelper.java
index feacc113..f0f69062 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsJsonHelper.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsJsonHelper.java
@@ -2,10 +2,10 @@
import org.apache.commons.collections.CollectionUtils;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformerTest.java
index a9df1e56..409c90d9 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsNestedTransformerTest.java
@@ -20,7 +20,7 @@
import java.util.Set;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformerTest.java
index 83b47706..749286b1 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/CaseDetailsTransformerTest.java
@@ -13,7 +13,7 @@
import java.util.List;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.action.get.GetResponse;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsJsonHelper.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsJsonHelper.java
index 151c8f36..09882525 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsJsonHelper.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsJsonHelper.java
@@ -1,8 +1,8 @@
package uk.gov.justice.services.unifiedsearch.client.transformer.cps;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import java.util.List;
import java.util.Optional;
import java.util.Set;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformerTest.java
index 46a7b6a0..3a8d50f9 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsNestedTransformerTest.java
@@ -14,7 +14,7 @@
import java.util.HashSet;
import java.util.Set;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformerTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformerTest.java
index 53c883d2..eaa777f6 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformerTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/transformer/cps/CpsCaseDetailsTransformerTest.java
@@ -11,7 +11,7 @@
import org.junit.jupiter.api.extension.ExtendWith;
import uk.gov.justice.services.unifiedsearch.client.domain.cps.CaseDetails;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.action.get.GetResponse;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/CrimeCaseIndexJsonSchemaTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/CrimeCaseIndexJsonSchemaTest.java
index 32d860b8..4dbdabd8 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/CrimeCaseIndexJsonSchemaTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/CrimeCaseIndexJsonSchemaTest.java
@@ -5,7 +5,7 @@
import static uk.gov.justice.services.test.utils.core.reflection.ReflectionUtil.setField;
import static uk.gov.justice.services.unifiedsearch.client.validation.JsonUtils.jsonObjectFromFile;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidatorTest.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidatorTest.java
index abc571f3..1420d375 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidatorTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonDocumentValidatorTest.java
@@ -9,7 +9,7 @@
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import java.io.IOException;
import static org.codehaus.groovy.runtime.InvokerHelper.asList;
diff --git a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonUtils.java b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonUtils.java
index 12b1b3cc..d0776868 100644
--- a/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonUtils.java
+++ b/unifiedsearch-library-parent/unifiedsearch-client/src/test/java/uk/gov/justice/services/unifiedsearch/client/validation/JsonUtils.java
@@ -1,7 +1,7 @@
package uk.gov.justice.services.unifiedsearch.client.validation;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import java.io.IOException;
import java.io.InputStream;
diff --git a/unifiedsearch-library-parent/unifiedsearch-test-utils/pom.xml b/unifiedsearch-library-parent/unifiedsearch-test-utils/pom.xml
index 14ff367f..d79a24ce 100644
--- a/unifiedsearch-library-parent/unifiedsearch-test-utils/pom.xml
+++ b/unifiedsearch-library-parent/unifiedsearch-test-utils/pom.xml
@@ -3,7 +3,7 @@
unifiedsearch-library-parent
uk.gov.moj.cpp.unifiedsearch
- 17.105.0-M11-SNAPSHOT
+ 21.0.0-SNAPSHOT
4.0.0
@@ -55,7 +55,7 @@
org.glassfish
- javax.json
+ jakarta.json
test
diff --git a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtil.java b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtil.java
index 8b96d63c..f3ad60a2 100644
--- a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtil.java
+++ b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtil.java
@@ -8,9 +8,9 @@
import org.elasticsearch.search.builder.SearchSourceBuilder;
import uk.gov.moj.cpp.unifiedsearch.test.util.constant.IndexInfo;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
import java.io.IOException;
import static org.elasticsearch.client.RequestOptions.DEFAULT;
diff --git a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/IngesterUtil.java b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/IngesterUtil.java
index 96477759..5bfdbddd 100644
--- a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/IngesterUtil.java
+++ b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/IngesterUtil.java
@@ -2,8 +2,8 @@
import uk.gov.justice.services.test.utils.core.messaging.Poller;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import java.io.StringReader;
import static uk.gov.justice.services.messaging.JsonObjects.getJsonReaderFactory;
diff --git a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/UnifiedSearchIndexSearchHelper.java b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/UnifiedSearchIndexSearchHelper.java
index 147dcada..cecb3f31 100644
--- a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/UnifiedSearchIndexSearchHelper.java
+++ b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/main/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/UnifiedSearchIndexSearchHelper.java
@@ -11,10 +11,10 @@
import java.io.IOException;
import java.util.Optional;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import org.hamcrest.Matcher;
diff --git a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/test/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtilTest.java b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/test/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtilTest.java
index 723b148e..7a7e0309 100644
--- a/unifiedsearch-library-parent/unifiedsearch-test-utils/src/test/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtilTest.java
+++ b/unifiedsearch-library-parent/unifiedsearch-test-utils/src/test/java/uk/gov/moj/cpp/unifiedsearch/test/util/ingest/ElasticSearchIndexFinderUtilTest.java
@@ -23,8 +23,8 @@
import java.io.IOException;
-import javax.json.JsonNumber;
-import javax.json.JsonObject;
+import jakarta.json.JsonNumber;
+import jakarta.json.JsonObject;
import org.apache.lucene.search.TotalHits;
import org.elasticsearch.action.search.SearchRequest;