This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch spring6
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/spring6 by this push:
     new ef4efa562d ISIS-3275: migrate persistence
ef4efa562d is described below

commit ef4efa562d450b203b4a310c8948aa536a8e4799
Author: Andi Huber <[email protected]>
AuthorDate: Sun Nov 13 12:15:40 2022 +0100

    ISIS-3275: migrate persistence
---
 bom/pom.xml                                        |   2 +-
 core/pom.xml                                       |   6 +-
 .../changetracking/EntityChangeTrackerDefault.java |   8 +-
 .../jpa/integration/changetracking/_Xray.java      |   2 +-
 .../jdo/applib/types/LogicalTypeName.java          |   2 +-
 .../persistence/jdo/applib/types/Money.java        |   6 +-
 .../jdo/applib/types/ObjectIdentifier.java         |   2 +-
 .../persistence/jdo/applib/types/Percentage.java   |   6 +-
 .../datanucleus/config/DatanucleusSettings.java    |   4 +-
 .../jdosupport/JdoSupportServiceDefault.java       |   6 +-
 .../metamodel/facets/entity/JdoEntityFacet.java    |   2 +-
 .../mixins/Persistable_downloadJdoMetadata.java    |   4 +-
 .../valuetypes/DnByteIdValueSemantics.java         |   2 +-
 .../valuetypes/DnCharIdValueSemantics.java         |   4 +-
 .../DnDatastoreIdImplValueSemantics.java           |   2 +-
 .../DnDatastoreUniqueLongIdValueSemantics.java     |   2 +-
 .../valuetypes/DnIntIdValueSemantics.java          |   2 +-
 .../valuetypes/DnLongIdValueSemantics.java         |   2 +-
 .../valuetypes/DnObjectIdValueSemantics.java       |   2 +-
 .../valuetypes/DnShortIdValueSemantics.java        |   2 +-
 .../valuetypes/DnStringIdValueSemantics.java       |   4 +-
 .../valuetypes/JdoByteIdentityValueSemantics.java  |   2 +-
 .../valuetypes/JdoCharIdentityValueSemantics.java  |   4 +-
 .../valuetypes/JdoDatastoreIdValueSemantics.java   |   2 +-
 .../valuetypes/JdoIntIdentityValueSemantics.java   |   2 +-
 .../valuetypes/JdoLongIdentityValueSemantics.java  |   2 +-
 .../JdoObjectIdentityValueSemantics.java           |   2 +-
 .../valuetypes/JdoShortIdentityValueSemantics.java |   2 +-
 .../JdoStringIdentityValueSemantics.java           |   4 +-
 .../datanucleus/test/ConfigurationExample3.java    |   4 +-
 .../jdo/datanucleus/test/ConfigurationTest3.java   |   4 +-
 .../jdo/datanucleus/test/JdoSettingsBean.java      |   2 +-
 ...JdoDatastoreIdentityAnnotationFacetFactory.java |   2 +-
 .../JdoPersistenceCapableFacetFactory.java         |   6 +-
 .../JdoPersistenceCapableFacetFromAnnotation.java  |   4 +-
 .../query/JdoQueryAnnotationFacetFactory.java      |   2 +-
 .../version/JdoVersionAnnotationFacetFactory.java  |   2 +-
 ...BigDecimalFromColumnAnnotationFacetFactory.java |   2 +-
 .../MandatoryFromColumnAnnotationFacetFactory.java |   2 +-
 .../MaxFractionalDigitsFacetFromJdoColumn.java     |   2 +-
 .../MaxLengthFacetFromJdoColumnAnnotation.java     |   2 +-
 ...xLengthFromJdoColumnAnnotationFacetFactory.java |   2 +-
 ...MaxTotalDigitsFacetFromJdoColumnAnnotation.java |   2 +-
 .../metamodel/facets/prop/column/_ColumnUtil.java  |   6 +-
 .../JdoNotPersistentAnnotationFacetFactory.java    |   4 +-
 .../JdoPrimaryKeyAnnotationFacetFactory.java       |   2 +-
 .../jdo/metamodel/menu/JdoMetamodelMenu.java       |   6 +-
 persistence/jdo/spring/pom.xml                     |   4 +-
 .../LocalPersistenceManagerFactoryBean.java        |   2 +-
 .../OpenPersistenceManagerInViewFilter.java        |   8 +-
 .../integration/JdoTransactionManagerTests.java    | 365 ++++++++-------------
 .../test/integration/MockJtaTransaction.java       |  13 +-
 .../support/OpenPersistenceManagerInViewTests.java |   8 +-
 .../applib/integration/CausewayEntityListener.java |  20 +-
 .../jpa/applib/services/JpaSupportService.java     |   2 +-
 .../jpa/applib/types/BlobJpaEmbeddable.java        |  10 +-
 .../jpa/applib/types/ClobJpaEmbeddable.java        |  10 +-
 persistence/jpa/eclipselink/pom.xml                |   4 +-
 .../CausewayModulePersistenceJpaEclipselink.java   |   4 +-
 .../jpa/eclipselink/config/ElSettings.java         |   8 +-
 .../inject/BeanManagerForEntityListeners.java      | 154 ++++-----
 .../persistence/jpa/eclipselink/inject/_Util.java  |  19 +-
 .../jpa/integration/entity/JpaEntityFacet.java     |  10 +-
 .../integration/entity/JpaEntityFacetFactory.java  |   4 +-
 .../services/JpaSupportServiceUsingSpring.java     |   4 +-
 .../applib/CausewayBookmarkConverter.java          |   4 +-
 .../applib/CausewayLocalResourcePathConverter.java |   4 +-
 .../applib/CausewayMarkupConverter.java            |   4 +-
 .../applib/CausewayPasswordConverter.java          |   4 +-
 .../JavaAwtBufferedImageByteArrayConverter.java    |   8 +-
 .../java/time/OffsetDateTimeConverterForJpa.java   |   4 +-
 .../java/time/OffsetTimeConverterForJpa.java       |   4 +-
 .../java/time/ZonedDateTimeConverterForJpa.java    |   4 +-
 .../java/util/JavaUtilUuidConverter.java           |   4 +-
 .../schema/v2/CausewayChangesDtoConverter.java     |   4 +-
 .../schema/v2/CausewayCommandDtoConverter.java     |   4 +-
 .../schema/v2/CausewayInteractionDtoConverter.java |   4 +-
 .../schema/v2/CausewayOidDtoConverter.java         |   4 +-
 ...DecimalFromJpaColumnAnnotationFacetFactory.java |   4 +-
 ...ndatoryFromJpaColumnAnnotationFacetFactory.java |   6 +-
 ...actionalDigitsFacetFromJpaColumnAnnotation.java |   2 +-
 ...MaxTotalDigitsFacetFromJpaColumnAnnotation.java |   2 +-
 .../JpaTransientAnnotationFacetFactory.java        |   4 +-
 .../table/JpaTableAnnotationFacetFactory.java      |   4 +-
 .../object/table/JpaTableFacetAnnotation.java      |   2 +-
 85 files changed, 399 insertions(+), 478 deletions(-)

diff --git a/bom/pom.xml b/bom/pom.xml
index 785764b226..14683d2c2f 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -363,7 +363,7 @@ It is therefore a copy of org.apache:apache, with 
customisations clearly identif
         <jakartaee.version>10.0.0</jakartaee.version>
         <javafaker.version>1.0.2</javafaker.version>
         <javassist.version>3.29.2-GA</javassist.version>
-        <javax-servlet.version>4.0.1</javax-servlet.version>
+        <jakarta-servlet.version>6.0.0</jakarta-servlet.version>
         <jaxb-impl.version>4.0.1</jaxb-impl.version>
         <jaxws-ri.version>4.0.0</jaxws-ri.version>
 
diff --git a/core/pom.xml b/core/pom.xml
index dcc3354224..e55932c205 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -868,9 +868,9 @@
                        </dependency>
 
                        <dependency>
-                               <groupId>javax.servlet</groupId>
-                               <artifactId>javax.servlet-api</artifactId>
-                               <version>${javax-servlet.version}</version>
+                               <groupId>jakarta.servlet</groupId>
+                               <artifactId>jakarta.servlet-api</artifactId>
+                               <version>${jakarta-servlet.version}</version>
                        </dependency>
 
                        <!-- 3.2 not available yet, instead use 
org.datanucleus:javax.jdo
diff --git 
a/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
 
b/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
index 54ed0b64bb..764d3e9c3f 100644
--- 
a/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
+++ 
b/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
@@ -26,10 +26,10 @@ import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.LongAdder;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Provider;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.inject.Provider;
 
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.event.EventListener;
diff --git 
a/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java
 
b/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java
index 6684f40287..74b5f0041f 100644
--- 
a/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java
+++ 
b/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java
@@ -21,7 +21,7 @@ package 
org.apache.causeway.persistence.jpa.integration.changetracking;
 
 import java.awt.Color;
 
-import javax.inject.Provider;
+import jakarta.inject.Provider;
 
 import org.apache.causeway.applib.services.iactn.InteractionProvider;
 import org.apache.causeway.commons.internal.debug._XrayEvent;
diff --git 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/LogicalTypeName.java
 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/LogicalTypeName.java
index a343c5ad1c..5a80cae52f 100644
--- 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/LogicalTypeName.java
+++ 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/LogicalTypeName.java
@@ -23,7 +23,7 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import javax.inject.Named;
+import jakarta.inject.Named;
 
 import org.springframework.core.annotation.AliasFor;
 
diff --git 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Money.java
 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Money.java
index 25a9226df3..b2caa165a7 100644
--- 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Money.java
+++ 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Money.java
@@ -47,7 +47,7 @@ import org.apache.causeway.applib.annotation.PropertyLayout;
 )
 @ParameterLayout(
 )
[email protected](
[email protected](
         integer = Money.INTEGER,
         fraction = Money.FRACTION
 )
@@ -69,11 +69,11 @@ public @interface Money {
     int columnScale() default Money.FRACTION;
 
     int INTEGER = 10;
-    @AliasFor( annotation = javax.validation.constraints.Digits.class, 
attribute = "integer")
+    @AliasFor( annotation = jakarta.validation.constraints.Digits.class, 
attribute = "integer")
     int digitsInteger() default Money.INTEGER;
 
     int FRACTION = 2;
-    @AliasFor( annotation = javax.validation.constraints.Digits.class, 
attribute = "fraction")
+    @AliasFor( annotation = jakarta.validation.constraints.Digits.class, 
attribute = "fraction")
     int digitsFraction() default Money.FRACTION;
 
 }
diff --git 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/ObjectIdentifier.java
 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/ObjectIdentifier.java
index 204cb8d8bd..d2b0340d4a 100644
--- 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/ObjectIdentifier.java
+++ 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/ObjectIdentifier.java
@@ -23,7 +23,7 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import javax.inject.Named;
+import jakarta.inject.Named;
 
 import org.springframework.core.annotation.AliasFor;
 
diff --git 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Percentage.java
 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Percentage.java
index bd828bf9f1..fba1539ec5 100644
--- 
a/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Percentage.java
+++ 
b/persistence/jdo/applib/src/main/java/org/apache/causeway/persistence/jdo/applib/types/Percentage.java
@@ -47,7 +47,7 @@ import org.apache.causeway.applib.annotation.PropertyLayout;
 )
 @ParameterLayout(
 )
[email protected](
[email protected](
         integer = Percentage.INTEGER,
         fraction = Percentage.FRACTION
 )
@@ -69,11 +69,11 @@ public @interface Percentage {
     int columnScale() default Percentage.FRACTION;
 
     int INTEGER = 3;
-    @AliasFor( annotation = javax.validation.constraints.Digits.class, 
attribute = "integer")
+    @AliasFor( annotation = jakarta.validation.constraints.Digits.class, 
attribute = "integer")
     int digitsInteger() default Percentage.INTEGER;
 
     int FRACTION = 2;
-    @AliasFor( annotation = javax.validation.constraints.Digits.class, 
attribute = "fraction")
+    @AliasFor( annotation = jakarta.validation.constraints.Digits.class, 
attribute = "fraction")
     int digitsFraction() default Percentage.FRACTION;
 
 }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/config/DatanucleusSettings.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/config/DatanucleusSettings.java
index 19dc920c89..3b6fcc39a1 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/config/DatanucleusSettings.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/config/DatanucleusSettings.java
@@ -22,8 +22,8 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.annotation.Priority;
-import javax.inject.Named;
+import jakarta.annotation.Priority;
+import jakarta.inject.Named;
 
 import org.datanucleus.PropertyNames;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java
index 710369a849..fd21b2e08c 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java
@@ -27,9 +27,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
 import javax.jdo.Extent;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.PersistenceManagerFactory;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
index 3d807d72a5..065fb50347 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
@@ -25,7 +25,7 @@ import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Supplier;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.FetchGroup;
 import javax.jdo.PersistenceManager;
 
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
index f0c9ef39c6..d177051d64 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
@@ -21,10 +21,10 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.mixins;
 
 import java.io.IOException;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.metadata.TypeMetadata;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
 
 import org.datanucleus.enhancement.Persistable;
 
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
index 65d8ace463..1987647ebd 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.ByteId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
index 34f0e596c8..167962205c 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
 
 import org.datanucleus.identity.CharId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
index be08612fe8..edb0bd5746 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.DatastoreIdImpl;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
index a2139ed19a..23ccf8c6f4 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.DatastoreUniqueLongId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
index bb4736291c..055ad12c99 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.IntId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
index 143803e13a..03381cafac 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.LongId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
index b82d38cc0d..e9a0f2d549 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
 import java.util.UUID;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.ObjectId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
index cf4a578d4e..3da7b2378e 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.ShortId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
index 7e31fc60da..edbea5d98f 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
 
 import org.datanucleus.identity.StringId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
index da2dbc369b..cdf71a1f40 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 import javax.jdo.identity.ByteIdentity;
 
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
index 5e92374065..9a39c6398e 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
 import javax.jdo.identity.CharIdentity;
 
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
index f80affe8bb..880a01be3b 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
 import java.lang.reflect.Constructor;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 
 import org.datanucleus.identity.DatastoreId;
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
index 8689d6aa4a..1ed1d4c074 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 import javax.jdo.identity.IntIdentity;
 
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
index bd9db134f2..c384ae3974 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 import javax.jdo.identity.LongIdentity;
 
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
index f1784f0d3f..7829c5368e 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
 import java.util.UUID;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 import javax.jdo.identity.ObjectIdentity;
 
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
index c3f014089a..d629e5402b 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
+import jakarta.annotation.Priority;
 import javax.jdo.identity.ShortIdentity;
 
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
index 03e21ed42e..e191057762 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
 import javax.jdo.identity.StringIdentity;
 
 import org.springframework.stereotype.Component;
diff --git 
a/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationExample3.java
 
b/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationExample3.java
index 9cc4f9977c..d0b3bd11d8 100644
--- 
a/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationExample3.java
+++ 
b/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationExample3.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.test;
 
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
 import javax.jdo.PersistenceManagerFactory;
 import javax.sql.DataSource;
 
diff --git 
a/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationTest3.java
 
b/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationTest3.java
index e307a048d8..3803d424e0 100644
--- 
a/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationTest3.java
+++ 
b/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/ConfigurationTest3.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jdo.datanucleus.test;
 
-import javax.inject.Inject;
-import javax.inject.Provider;
+import jakarta.inject.Inject;
+import jakarta.inject.Provider;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
diff --git 
a/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/JdoSettingsBean.java
 
b/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/JdoSettingsBean.java
index 56ce4762d3..1611bd0a33 100644
--- 
a/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/JdoSettingsBean.java
+++ 
b/persistence/jdo/datanucleus/src/test/java/org/apache/causeway/persistence/jdo/datanucleus/test/JdoSettingsBean.java
@@ -21,7 +21,7 @@ package org.apache.causeway.persistence.jdo.datanucleus.test;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.inject.Named;
+import jakarta.inject.Named;
 
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityAnnotationFacetFactory.java
index 34c1486c86..50e0141ec0 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/datastoreidentity/JdoDatastoreIdentityAnnotationFacetFactory.java
@@ -19,7 +19,7 @@
 package 
org.apache.causeway.persistence.jdo.metamodel.facets.object.datastoreidentity;
 
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.DatastoreIdentity;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
index e590e5cbeb..8eb552137c 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
@@ -19,11 +19,11 @@
 package 
org.apache.causeway.persistence.jdo.metamodel.facets.object.persistencecapable;
 
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.EmbeddedOnly;
 import javax.jdo.annotations.PersistenceCapable;
-import javax.persistence.Entity;
-import javax.persistence.Table;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.facetapi.FacetUtil;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFromAnnotation.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFromAnnotation.java
index 6c39e6e97b..9de7b46fc3 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFromAnnotation.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFromAnnotation.java
@@ -24,8 +24,8 @@ import java.util.function.BiConsumer;
 import javax.jdo.annotations.EmbeddedOnly;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
-import javax.persistence.Entity;
-import javax.persistence.Table;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
 
 import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.core.metamodel.facetapi.FacetAbstract;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java
index 0da090cc89..75d4c33061 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java
@@ -21,7 +21,7 @@ package 
org.apache.causeway.persistence.jdo.metamodel.facets.object.query;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.Queries;
 import javax.jdo.annotations.Query;
 
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java
index ba12d121ed..12d1f7b3a7 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.metamodel.facets.object.version;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.Version;
 
 import org.apache.causeway.commons.internal.collections._Maps;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/BigDecimalFromColumnAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/BigDecimalFromColumnAnnotationFacetFactory.java
index 827b1a7725..aba62a2d51 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/BigDecimalFromColumnAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/BigDecimalFromColumnAnnotationFacetFactory.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jdo.metamodel.facets.prop.column;
 
 import java.math.BigDecimal;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.IdentityType;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MandatoryFromColumnAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MandatoryFromColumnAnnotationFacetFactory.java
index a97e9545f1..78d44054f7 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MandatoryFromColumnAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MandatoryFromColumnAnnotationFacetFactory.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jdo.metamodel.facets.prop.column;
 
 import java.util.stream.Stream;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.IdentityType;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJdoColumn.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJdoColumn.java
index b150bef8cd..0e87f481c1 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJdoColumn.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJdoColumn.java
@@ -42,7 +42,7 @@ extends MaxFractionalDigitsFacetAbstract {
     }
 
     public static Optional<MaxFractionalDigitsFacet> createJpa(
-            final Optional<javax.persistence.Column> jdoColumnIfAny,
+            final Optional<jakarta.persistence.Column> jdoColumnIfAny,
             final FacetHolder holder) {
 
         return jdoColumnIfAny
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFacetFromJdoColumnAnnotation.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFacetFromJdoColumnAnnotation.java
index 4ca01d5fbb..c82c57381e 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFacetFromJdoColumnAnnotation.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFacetFromJdoColumnAnnotation.java
@@ -40,7 +40,7 @@ extends MaxLengthFacetAbstract {
     }
 
     public static Optional<MaxLengthFacet> createJpa(
-            final Optional<javax.persistence.Column> jpaColumnIfAny,
+            final Optional<jakarta.persistence.Column> jpaColumnIfAny,
             final FacetHolder holder) {
 
         return jpaColumnIfAny
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFromJdoColumnAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFromJdoColumnAnnotationFacetFactory.java
index 3ec42519ff..ad566e06ce 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFromJdoColumnAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxLengthFromJdoColumnAnnotationFacetFactory.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jdo.metamodel.facets.prop.column;
 
 import java.util.stream.Stream;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.IdentityType;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJdoColumnAnnotation.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJdoColumnAnnotation.java
index 11b7edc5ba..aebfdc51ce 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJdoColumnAnnotation.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJdoColumnAnnotation.java
@@ -41,7 +41,7 @@ extends MaxTotalDigitsFacetAbstract {
     }
 
     public static Optional<MaxTotalDigitsFacet> createJpa(
-            final Optional<javax.persistence.Column> jpaColumnIfAny,
+            final Optional<jakarta.persistence.Column> jpaColumnIfAny,
             final FacetHolder holder) {
 
         return jpaColumnIfAny
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/_ColumnUtil.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/_ColumnUtil.java
index 4027c6c356..f2e6121cbe 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/_ColumnUtil.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/column/_ColumnUtil.java
@@ -37,13 +37,13 @@ class _ColumnUtil {
 
     void processColumnAnnotations(final ProcessMethodContext 
processMethodContext,
             final Consumer<Optional<javax.jdo.annotations.Column>> onJdoColumn,
-            final Consumer<Optional<javax.persistence.Column>> onJpaColumn) {
+            final Consumer<Optional<jakarta.persistence.Column>> onJpaColumn) {
 
         val jdoColumnIfAny = 
processMethodContext.synthesizeOnMethod(javax.jdo.annotations.Column.class);
         if(jdoColumnIfAny.isPresent()) {
             onJdoColumn.accept(jdoColumnIfAny);
         } else {
-            val jpaColumnIfAny = 
processMethodContext.synthesizeOnMethod(javax.persistence.Column.class);
+            val jpaColumnIfAny = 
processMethodContext.synthesizeOnMethod(jakarta.persistence.Column.class);
             if(jpaColumnIfAny.isPresent()) {
                 onJpaColumn.accept(jpaColumnIfAny);
             }
@@ -59,7 +59,7 @@ class _ColumnUtil {
             onColumnPresent.accept(inferSemantics(processMethodContext, 
jdoColumnIfAny));
             return;
         }
-        val jpaColumnIfAny = 
processMethodContext.synthesizeOnMethod(javax.persistence.Column.class);
+        val jpaColumnIfAny = 
processMethodContext.synthesizeOnMethod(jakarta.persistence.Column.class);
         if(jpaColumnIfAny.isPresent()) {
             
onColumnPresent.accept(Semantics.of(!jpaColumnIfAny.get().nullable()));
             return;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
index a5fac061bf..f502233863 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
@@ -18,9 +18,9 @@
  */
 package 
org.apache.causeway.persistence.jdo.metamodel.facets.prop.notpersistent;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.NotPersistent;
-import javax.persistence.Transient;
+import jakarta.persistence.Transient;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.facetapi.FacetUtil;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java
index eddbc5b68c..d4bc27b0cb 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jdo.metamodel.facets.prop.primarykey;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.jdo.annotations.PrimaryKey;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java
index 947b9ad886..da93ee37c0 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/causeway/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jdo.metamodel.menu;
 
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
 import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.metadata.TypeMetadata;
 
@@ -48,7 +48,7 @@ import lombok.val;
         menuBar = DomainServiceLayout.MenuBar.SECONDARY,
         named = "Prototyping"
 )
[email protected](PriorityPrecedence.EARLY)
[email protected](PriorityPrecedence.EARLY)
 @RequiredArgsConstructor(onConstructor_ = { @Inject })
 public class JdoMetamodelMenu {
 
diff --git a/persistence/jdo/spring/pom.xml b/persistence/jdo/spring/pom.xml
index 6e9ff00de1..10801fb03b 100644
--- a/persistence/jdo/spring/pom.xml
+++ b/persistence/jdo/spring/pom.xml
@@ -80,8 +80,8 @@
                </dependency>
 
                <dependency>
-                       <groupId>javax.servlet</groupId>
-                       <artifactId>javax.servlet-api</artifactId>
+                       <groupId>jakarta.servlet</groupId>
+                       <artifactId>jakarta.servlet-api</artifactId>
                        <scope>provided</scope>
                </dependency>
 
diff --git 
a/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/integration/LocalPersistenceManagerFactoryBean.java
 
b/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/integration/LocalPersistenceManagerFactoryBean.java
index 9298089b4c..6f270de191 100644
--- 
a/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/integration/LocalPersistenceManagerFactoryBean.java
+++ 
b/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/integration/LocalPersistenceManagerFactoryBean.java
@@ -48,7 +48,7 @@ import org.springframework.util.CollectionUtils;
  * PersistenceManagerFactory instance is just a matter of configuration!
  *
  * <p><b>NOTE: This class requires JDO 3.0 or higher, as of Spring 4.0.</b>
- * It will also expose the JPA {@link javax.persistence.EntityManagerFactory} 
as long
+ * It will also expose the JPA {@link 
jakarta.persistence.EntityManagerFactory} as long
  * as the JDO provider creates a {@link javax.jdo.JDOEntityManagerFactory} 
reference
  * underneath, which means that this class can be used as a replacement for
  * {@link org.springframework.orm.jpa.LocalEntityManagerFactoryBean} in such a 
scenario.
diff --git 
a/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/support/OpenPersistenceManagerInViewFilter.java
 
b/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/support/OpenPersistenceManagerInViewFilter.java
index c3a9c690f1..7b477a7234 100644
--- 
a/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/support/OpenPersistenceManagerInViewFilter.java
+++ 
b/persistence/jdo/spring/src/main/java/org/apache/causeway/persistence/jdo/spring/support/OpenPersistenceManagerInViewFilter.java
@@ -22,10 +22,10 @@ import java.io.IOException;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.PersistenceManagerFactory;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import 
org.springframework.transaction.support.TransactionSynchronizationManager;
 import org.springframework.web.context.WebApplicationContext;
diff --git 
a/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java
 
b/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java
index 339b5f37d8..2b5e1e22ff 100644
--- 
a/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java
+++ 
b/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java
@@ -30,9 +30,6 @@ import javax.jdo.PersistenceManager;
 import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.Transaction;
 import javax.sql.DataSource;
-import javax.transaction.Status;
-import javax.transaction.TransactionManager;
-import javax.transaction.UserTransaction;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -44,7 +41,6 @@ import 
org.springframework.transaction.PlatformTransactionManager;
 import org.springframework.transaction.TransactionDefinition;
 import org.springframework.transaction.TransactionStatus;
 import org.springframework.transaction.jta.JtaTransactionManager;
-import org.springframework.transaction.support.TransactionCallback;
 import 
org.springframework.transaction.support.TransactionCallbackWithoutResult;
 import 
org.springframework.transaction.support.TransactionSynchronizationManager;
 import org.springframework.transaction.support.TransactionTemplate;
@@ -70,6 +66,9 @@ import 
org.apache.causeway.persistence.jdo.spring.integration.TransactionAwarePe
 import 
org.apache.causeway.persistence.jdo.spring.support.SpringPersistenceManagerProxyBean;
 import 
org.apache.causeway.persistence.jdo.spring.support.StandardPersistenceManagerProxyBean;
 
+import jakarta.transaction.Status;
+import jakarta.transaction.TransactionManager;
+import jakarta.transaction.UserTransaction;
 import lombok.val;
 
 class JdoTransactionManagerTests {
@@ -109,36 +108,33 @@ class JdoTransactionManagerTests {
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
                
assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA 
synchronizations not active");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-
-                               TransactionAwarePersistenceManagerFactoryProxy 
proxyFactory =
-                                               new 
TransactionAwarePersistenceManagerFactoryProxy(mmc);
-                               
proxyFactory.setTargetPersistenceManagerFactory(pmf);
-                               PersistenceManagerFactory pmfProxy = 
proxyFactory.getObject();
-                               assertEquals(pm.toString(), 
pmfProxy.getPersistenceManager().toString());
-                               pmfProxy.getPersistenceManager().flush();
-                               pmfProxy.getPersistenceManager().close();
-
-                               SpringPersistenceManagerProxyBean proxyBean = 
new SpringPersistenceManagerProxyBean();
-                               proxyBean.setPersistenceManagerFactory(pmf);
-                               proxyBean.afterPropertiesSet();
-                               PersistenceManager pmProxy = 
proxyBean.getObject();
-                               assertSame(pmf, 
pmProxy.getPersistenceManagerFactory());
-                               pmProxy.flush();
-                               pmProxy.close();
-
-                               StandardPersistenceManagerProxyBean 
stdProxyBean = new StandardPersistenceManagerProxyBean();
-                               stdProxyBean.setPersistenceManagerFactory(pmf);
-                               PersistenceManager stdPmProxy = 
stdProxyBean.getObject();
-                               stdPmProxy.flush();
-
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+
+               TransactionAwarePersistenceManagerFactoryProxy proxyFactory =
+                               new 
TransactionAwarePersistenceManagerFactoryProxy(mmc);
+               proxyFactory.setTargetPersistenceManagerFactory(pmf);
+               PersistenceManagerFactory pmfProxy = proxyFactory.getObject();
+               assertEquals(pm.toString(), 
pmfProxy.getPersistenceManager().toString());
+               pmfProxy.getPersistenceManager().flush();
+               pmfProxy.getPersistenceManager().close();
+
+               SpringPersistenceManagerProxyBean proxyBean = new 
SpringPersistenceManagerProxyBean();
+               proxyBean.setPersistenceManagerFactory(pmf);
+               proxyBean.afterPropertiesSet();
+               PersistenceManager pmProxy = proxyBean.getObject();
+               assertSame(pmf, pmProxy.getPersistenceManagerFactory());
+               pmProxy.flush();
+               pmProxy.close();
+
+               StandardPersistenceManagerProxyBean stdProxyBean = new 
StandardPersistenceManagerProxyBean();
+               stdProxyBean.setPersistenceManagerFactory(pmf);
+               PersistenceManager stdPmProxy = stdProxyBean.getObject();
+               stdPmProxy.flush();
+
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               return l;
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
@@ -162,14 +158,11 @@ class JdoTransactionManagerTests {
                
assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA 
synchronizations not active");
 
                try {
-                       tt.execute(new TransactionCallback<Object>() {
-                               @Override
-                               public Object doInTransaction(final 
TransactionStatus status) {
-                                       
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                                       
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-                                       throw new RuntimeException("application 
exception");
-                               }
-                       });
+                       tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+               throw new RuntimeException("application exception");
+            });
                        fail("Should have thrown RuntimeException");
                }
                catch (RuntimeException ex) {
@@ -195,14 +188,11 @@ class JdoTransactionManagerTests {
                
assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA 
synchronizations not active");
 
                try {
-                       tt.execute(new TransactionCallback<Object>() {
-                               @Override
-                               public Object doInTransaction(final 
TransactionStatus status) {
-                                       
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                                       
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-                                       throw new RuntimeException("application 
exception");
-                               }
-                       });
+                       tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+               throw new RuntimeException("application exception");
+            });
                        fail("Should have thrown RuntimeException");
                }
                catch (RuntimeException ex) {
@@ -226,15 +216,12 @@ class JdoTransactionManagerTests {
                TransactionTemplate tt = new TransactionTemplate(tm);
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
 
-               tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                               status.setRollbackOnly();
-                               return null;
-                       }
-               });
+               tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               status.setRollbackOnly();
+               return null;
+        });
 
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
 
@@ -255,19 +242,10 @@ class JdoTransactionManagerTests {
                val l = new ArrayList<Object>();
                l.add("test");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-
-                               return tt.execute(new 
TransactionCallback<Object>() {
-                                       @Override
-                                       public Object doInTransaction(final 
TransactionStatus status) {
-                                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                                               return l;
-                                       }
-                               });
-                       }
-               });
+               Object result = tt.execute(status -> tt.execute(status1 -> {
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               return l;
+        }));
                assertTrue(result == l, "Correct result list");
 
                verify(pm).flush();
@@ -284,18 +262,10 @@ class JdoTransactionManagerTests {
                PlatformTransactionManager tm = new JdoTransactionManager(pmf);
                final TransactionTemplate tt = new TransactionTemplate(tm);
                try {
-                       tt.execute(new TransactionCallback<Object>() {
-                               @Override
-                               public Object doInTransaction(final 
TransactionStatus status) {
-                                       return tt.execute(new 
TransactionCallback<Object>() {
-                                               @Override
-                                               public Object 
doInTransaction(final TransactionStatus status) {
-                                                       
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-                                                       throw new 
RuntimeException("application exception");
-                                               }
-                                       });
-                               }
-                       });
+                       tt.execute(status -> tt.execute(status1 -> {
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+               throw new RuntimeException("application exception");
+            }));
                        fail("Should have thrown RuntimeException");
                }
                catch (RuntimeException ex) {
@@ -321,19 +291,11 @@ class JdoTransactionManagerTests {
                l.add("test");
 
                try {
-                       tt.execute(new TransactionCallback<Object>() {
-                               @Override
-                               public Object doInTransaction(final 
TransactionStatus status) {
-                                       return tt.execute(new 
TransactionCallback<Object>() {
-                                               @Override
-                                               public Object 
doInTransaction(final TransactionStatus status) {
-                                                       
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                                                       
status.setRollbackOnly();
-                                                       return null;
-                                               }
-                                       });
-                               }
-                       });
+                       tt.execute(status -> tt.execute(status1 -> {
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               status1.setRollbackOnly();
+               return null;
+            }));
                        fail("Should have thrown JdoResourceFailureException");
                }
                catch (JdoResourceFailureException ex) {
@@ -357,18 +319,10 @@ class JdoTransactionManagerTests {
                val l = new ArrayList<Object>();
                l.add("test");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               return tt.execute(new 
TransactionCallback<Object>() {
-                                       @Override
-                                       public Object doInTransaction(final 
TransactionStatus status) {
-                                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                                               return l;
-                                       }
-                               });
-                       }
-               });
+               Object result = tt.execute(status -> tt.execute(status1 -> {
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               return l;
+        }));
                assertTrue(result == l, "Correct result list");
                verify(tx, times(2)).begin();
                verify(tx, times(2)).commit();
@@ -391,20 +345,14 @@ class JdoTransactionManagerTests {
                TransactionSynchronizationManager.bindResource(pmf, new 
PersistenceManagerHolder(pm));
                assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-
-                               return tt.execute(new 
TransactionCallback<Object>() {
-                                       @Override
-                                       public Object doInTransaction(final 
TransactionStatus status) {
-                                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                                               return l;
-                                       }
-                               });
-                       }
-               });
+               Object result = tt.execute(status -> {
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+
+               return tt.execute(status1 -> {
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               return l;
+            });
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
@@ -430,17 +378,14 @@ class JdoTransactionManagerTests {
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
                
assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA 
synchronizations not active");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.isSynchronizationActive(), "JTA 
synchronizations active");
-                               
assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread 
pm");
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               
assertTrue(TransactionSynchronizationManager.isSynchronizationActive(), "JTA 
synchronizations active");
+               assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               return l;
+        });
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
                assertTrue(result == l, "Correct result list");
 
@@ -472,27 +417,21 @@ class JdoTransactionManagerTests {
                TransactionSynchronizationManager.bindResource(pmf, new 
PersistenceManagerHolder(pm));
                assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               try {
-                                       MockJtaTransaction transaction = new 
MockJtaTransaction();
-                                       
given(tm.suspend()).willReturn(transaction);
-                               }
-                               catch (Exception ex) {
-                               }
-
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-
-                               return tt.execute(new 
TransactionCallback<Object>() {
-                                       @Override
-                                       public Object doInTransaction(final 
TransactionStatus status) {
-                                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                                               return l;
-                                       }
-                               });
-                       }
-               });
+               Object result = tt.execute(status -> {
+               try {
+                       MockJtaTransaction transaction = new 
MockJtaTransaction();
+                       given(tm.suspend()).willReturn(transaction);
+               }
+               catch (Exception ex) {
+               }
+
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+
+               return tt.execute(status1 -> {
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               return l;
+            });
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
@@ -515,15 +454,12 @@ class JdoTransactionManagerTests {
                l.add("test");
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread 
pm");
-                               assertTrue(!status.isNewTransaction(), "Is not 
new transaction");
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
+               assertTrue(!status.isNewTransaction(), "Is not new 
transaction");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+               return l;
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
@@ -560,14 +496,11 @@ class JdoTransactionManagerTests {
                TransactionSynchronizationManager.bindResource(pmf, new 
PersistenceManagerHolder(pm));
                assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+               return l;
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
@@ -599,15 +532,12 @@ class JdoTransactionManagerTests {
                l.add("test");
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                               
assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread con");
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               assertTrue(TransactionSynchronizationManager.hasResource(ds), 
"Has thread con");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+               return l;
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
@@ -642,15 +572,12 @@ class JdoTransactionManagerTests {
                l.add("test");
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                               
assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread con");
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               assertTrue(TransactionSynchronizationManager.hasResource(ds), 
"Has thread con");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
+               return l;
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
@@ -683,15 +610,12 @@ class JdoTransactionManagerTests {
                l.add("test");
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                               
assertTrue(!TransactionSynchronizationManager.hasResource(ds), "Hasn't thread 
con");
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               assertTrue(!TransactionSynchronizationManager.hasResource(ds), 
"Hasn't thread con");
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               return l;
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
@@ -744,29 +668,26 @@ class JdoTransactionManagerTests {
                l.add("test");
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
 
-               Object result = tt.execute(new TransactionCallback<Object>() {
-                       @Override
-                       public Object doInTransaction(final TransactionStatus 
status) {
-                               
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
-                               
assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread con");
-                               if (manualSavepoint) {
-                                       Object savepoint = 
status.createSavepoint();
-                                       status.rollbackToSavepoint(savepoint);
-                               }
-                               else {
-                                       tt.execute(new 
TransactionCallbackWithoutResult() {
-                                               @Override
-                                               protected void 
doInTransactionWithoutResult(final TransactionStatus status) {
-                                                       
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread 
session");
-                                                       
assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread 
connection");
-                                                       
status.setRollbackOnly();
-                                               }
-                                       });
-                               }
-                               
PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-                               return l;
-                       }
-               });
+               Object result = tt.execute(status -> {
+               assertTrue(TransactionSynchronizationManager.hasResource(pmf), 
"Has thread pm");
+               assertTrue(TransactionSynchronizationManager.hasResource(ds), 
"Has thread con");
+               if (manualSavepoint) {
+                       Object savepoint = status.createSavepoint();
+                       status.rollbackToSavepoint(savepoint);
+               }
+               else {
+                       tt.execute(new TransactionCallbackWithoutResult() {
+                               @Override
+                               protected void 
doInTransactionWithoutResult(final TransactionStatus status) {
+                                       
assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread 
session");
+                                       
assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread 
connection");
+                                       status.setRollbackOnly();
+                               }
+                       });
+               }
+               PersistenceManagerFactoryUtils.getPersistenceManager(pmf, 
true).flush();
+               return l;
+        });
                assertTrue(result == l, "Correct result list");
 
                assertTrue(!TransactionSynchronizationManager.hasResource(pmf), 
"Hasn't thread pm");
diff --git 
a/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/MockJtaTransaction.java
 
b/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/MockJtaTransaction.java
index 4f10109fb9..6c32150f66 100644
--- 
a/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/MockJtaTransaction.java
+++ 
b/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/integration/MockJtaTransaction.java
@@ -18,11 +18,12 @@
  */
 package org.apache.causeway.persistence.jdo.spring.test.integration;
 
-import javax.transaction.Status;
-import javax.transaction.Synchronization;
 import javax.transaction.xa.XAResource;
 
-class MockJtaTransaction implements javax.transaction.Transaction {
+import jakarta.transaction.Status;
+import jakarta.transaction.Synchronization;
+
+class MockJtaTransaction implements jakarta.transaction.Transaction {
 
     private Synchronization synchronization;
 
@@ -32,7 +33,7 @@ class MockJtaTransaction implements 
javax.transaction.Transaction {
     }
 
     @Override
-    public void registerSynchronization(Synchronization synchronization) {
+    public void registerSynchronization(final Synchronization synchronization) 
{
         this.synchronization = synchronization;
     }
 
@@ -41,12 +42,12 @@ class MockJtaTransaction implements 
javax.transaction.Transaction {
     }
 
     @Override
-    public boolean enlistResource(XAResource xaResource) {
+    public boolean enlistResource(final XAResource xaResource) {
         return false;
     }
 
     @Override
-    public boolean delistResource(XAResource xaResource, int i) {
+    public boolean delistResource(final XAResource xaResource, final int i) {
         return false;
     }
 
diff --git 
a/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/support/OpenPersistenceManagerInViewTests.java
 
b/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/support/OpenPersistenceManagerInViewTests.java
index ec27542caa..8851da803d 100644
--- 
a/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/support/OpenPersistenceManagerInViewTests.java
+++ 
b/persistence/jdo/spring/src/test/java/org/apache/causeway/persistence/jdo/spring/test/support/OpenPersistenceManagerInViewTests.java
@@ -22,10 +22,10 @@ import java.io.IOException;
 
 import javax.jdo.PersistenceManager;
 import javax.jdo.PersistenceManagerFactory;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.mock.web.MockFilterConfig;
diff --git 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/integration/CausewayEntityListener.java
 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/integration/CausewayEntityListener.java
index d21bb867af..33a71679b8 100644
--- 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/integration/CausewayEntityListener.java
+++ 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/integration/CausewayEntityListener.java
@@ -18,15 +18,15 @@
  */
 package org.apache.causeway.persistence.jpa.applib.integration;
 
-import javax.inject.Inject;
-import javax.inject.Provider;
-import javax.persistence.PostLoad;
-import javax.persistence.PostPersist;
-import javax.persistence.PostRemove;
-import javax.persistence.PostUpdate;
-import javax.persistence.PrePersist;
-import javax.persistence.PreRemove;
-import javax.persistence.PreUpdate;
+import jakarta.inject.Inject;
+import jakarta.inject.Provider;
+import jakarta.persistence.PostLoad;
+import jakarta.persistence.PostPersist;
+import jakarta.persistence.PostRemove;
+import jakarta.persistence.PostUpdate;
+import jakarta.persistence.PrePersist;
+import jakarta.persistence.PreRemove;
+import jakarta.persistence.PreUpdate;
 
 import org.eclipse.persistence.sessions.UnitOfWork;
 import org.eclipse.persistence.sessions.changesets.DirectToFieldChangeRecord;
@@ -45,7 +45,7 @@ import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
 /**
- * EntityListener class for listing with the {@link 
javax.persistence.EntityListeners} annotation, to
+ * EntityListener class for listing with the {@link 
jakarta.persistence.EntityListeners} annotation, to
  * support injection point resolving for entities, and to notify {@link 
ObjectLifecyclePublisher} of changes.
  *
  * <p>
diff --git 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/services/JpaSupportService.java
 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/services/JpaSupportService.java
index f9a25e9f62..cef41b645e 100644
--- 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/services/JpaSupportService.java
+++ 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/services/JpaSupportService.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jpa.applib.services;
 
-import javax.persistence.EntityManager;
+import jakarta.persistence.EntityManager;
 
 import org.apache.causeway.commons.functional.Try;
 
diff --git 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/BlobJpaEmbeddable.java
 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/BlobJpaEmbeddable.java
index 5b0d21e218..ce7c9179c6 100644
--- 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/BlobJpaEmbeddable.java
+++ 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/BlobJpaEmbeddable.java
@@ -21,10 +21,10 @@ package org.apache.causeway.persistence.jpa.applib.types;
 import java.util.Arrays;
 import java.util.Optional;
 
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.persistence.Lob;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.persistence.Lob;
 
 import org.apache.causeway.applib.value.Blob;
 
@@ -70,7 +70,7 @@ import lombok.val;
  * </p>
  *
  * <p>
- *     Lastly; note that {@link javax.persistence.AttributeOverrides} and 
{@link javax.persistence.AttributeOverride}
+ *     Lastly; note that {@link jakarta.persistence.AttributeOverrides} and 
{@link jakarta.persistence.AttributeOverride}
  *     provide a standardised way of fine-tuning the column definitions.
  * </p>
  *
diff --git 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/ClobJpaEmbeddable.java
 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/ClobJpaEmbeddable.java
index ac8218b830..f681c0f589 100644
--- 
a/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/ClobJpaEmbeddable.java
+++ 
b/persistence/jpa/applib/src/main/java/org/apache/causeway/persistence/jpa/applib/types/ClobJpaEmbeddable.java
@@ -21,10 +21,10 @@ package org.apache.causeway.persistence.jpa.applib.types;
 import java.util.Objects;
 import java.util.Optional;
 
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-import javax.persistence.Lob;
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import jakarta.persistence.Lob;
 
 import org.apache.causeway.applib.value.Clob;
 
@@ -69,7 +69,7 @@ import lombok.val;
  * </p>
  *
  * <p>
- *     Lastly; note that {@link javax.persistence.AttributeOverrides} and 
{@link javax.persistence.AttributeOverride}
+ *     Lastly; note that {@link jakarta.persistence.AttributeOverrides} and 
{@link jakarta.persistence.AttributeOverride}
  *     provide a standardised way of fine-tuning the column definitions.
  * </p>
  *
diff --git a/persistence/jpa/eclipselink/pom.xml 
b/persistence/jpa/eclipselink/pom.xml
index 1d5dfd4007..febeb6f01f 100644
--- a/persistence/jpa/eclipselink/pom.xml
+++ b/persistence/jpa/eclipselink/pom.xml
@@ -84,7 +84,7 @@
                <dependency>
                        <groupId>org.eclipse.persistence</groupId>
                        <artifactId>org.eclipse.persistence.jpa</artifactId>
-                       <version>2.7.11</version>
+                       <version>4.0.0</version>
                        <exclusions>
                                <exclusion>
                                        <groupId>org.ow2.asm</groupId>
@@ -96,7 +96,7 @@
                <!-- provides javax.el.* -->
                    <groupId>jakarta.el</groupId>
                    <artifactId>jakarta.el-api</artifactId>
-                   <version>3.0.3</version> <!-- do not upgrade before Spring 
6 -->
+                   <version>5.0.1</version>
                </dependency>
 
                <dependency>
diff --git 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/CausewayModulePersistenceJpaEclipselink.java
 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/CausewayModulePersistenceJpaEclipselink.java
index d90763efbf..886f33c614 100644
--- 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/CausewayModulePersistenceJpaEclipselink.java
+++ 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/CausewayModulePersistenceJpaEclipselink.java
@@ -21,7 +21,7 @@ package org.apache.causeway.persistence.jpa.eclipselink;
 import java.sql.SQLException;
 import java.util.Map;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 import javax.sql.DataSource;
 
 import org.springframework.beans.factory.ObjectProvider;
@@ -180,7 +180,7 @@ public class CausewayModulePersistenceJpaEclipselink 
extends JpaBaseConfiguratio
 
                 }
 
-                // (null-able) converts javax.persistence exceptions to 
Spring's hierarchy
+                // (null-able) converts jakarta.persistence exceptions to 
Spring's hierarchy
                 val translatedEx = super.translateExceptionIfPossible(ex);
 
                 if((translatedEx==null
diff --git 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/config/ElSettings.java
 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/config/ElSettings.java
index c35e89f31e..36761b679c 100644
--- 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/config/ElSettings.java
+++ 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/config/ElSettings.java
@@ -22,10 +22,10 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Provider;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.inject.Provider;
 
 import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/BeanManagerForEntityListeners.java
 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/BeanManagerForEntityListeners.java
index ee23089e32..e0396ffa95 100644
--- 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/BeanManagerForEntityListeners.java
+++ 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/BeanManagerForEntityListeners.java
@@ -23,43 +23,41 @@ import java.lang.reflect.Type;
 import java.util.List;
 import java.util.Set;
 
-import javax.el.ELResolver;
-import javax.el.ExpressionFactory;
-import javax.enterprise.context.spi.Context;
-import javax.enterprise.context.spi.Contextual;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.event.Event;
-import javax.enterprise.inject.Instance;
-import javax.enterprise.inject.spi.AnnotatedField;
-import javax.enterprise.inject.spi.AnnotatedMember;
-import javax.enterprise.inject.spi.AnnotatedMethod;
-import javax.enterprise.inject.spi.AnnotatedParameter;
-import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanAttributes;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.enterprise.inject.spi.Decorator;
-import javax.enterprise.inject.spi.Extension;
-import javax.enterprise.inject.spi.InjectionPoint;
-import javax.enterprise.inject.spi.InjectionTarget;
-import javax.enterprise.inject.spi.InjectionTargetFactory;
-import javax.enterprise.inject.spi.InterceptionFactory;
-import javax.enterprise.inject.spi.InterceptionType;
-import javax.enterprise.inject.spi.Interceptor;
-import javax.enterprise.inject.spi.ObserverMethod;
-import javax.enterprise.inject.spi.ProducerFactory;
-import javax.inject.Provider;
-
 import org.apache.causeway.applib.services.inject.ServiceInjector;
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 
+import jakarta.el.ELResolver;
+import jakarta.el.ExpressionFactory;
+import jakarta.enterprise.context.spi.Context;
+import jakarta.enterprise.context.spi.Contextual;
+import jakarta.enterprise.context.spi.CreationalContext;
+import jakarta.enterprise.event.Event;
+import jakarta.enterprise.inject.Instance;
+import jakarta.enterprise.inject.spi.AnnotatedField;
+import jakarta.enterprise.inject.spi.AnnotatedMember;
+import jakarta.enterprise.inject.spi.AnnotatedMethod;
+import jakarta.enterprise.inject.spi.AnnotatedParameter;
+import jakarta.enterprise.inject.spi.AnnotatedType;
+import jakarta.enterprise.inject.spi.Bean;
+import jakarta.enterprise.inject.spi.BeanAttributes;
+import jakarta.enterprise.inject.spi.BeanManager;
+import jakarta.enterprise.inject.spi.Decorator;
+import jakarta.enterprise.inject.spi.Extension;
+import jakarta.enterprise.inject.spi.InjectionPoint;
+import jakarta.enterprise.inject.spi.InjectionTargetFactory;
+import jakarta.enterprise.inject.spi.InterceptionFactory;
+import jakarta.enterprise.inject.spi.InterceptionType;
+import jakarta.enterprise.inject.spi.Interceptor;
+import jakarta.enterprise.inject.spi.ObserverMethod;
+import jakarta.enterprise.inject.spi.ProducerFactory;
+import jakarta.inject.Provider;
 import lombok.RequiredArgsConstructor;
 
 /**
  * Incomplete implementation of a {@link BeanManager}, solely for the purpose 
of enabling
- * injection point resolving on javax.persistence.EntityListeners.
+ * injection point resolving on jakarta.persistence.EntityListeners.
  * <p>
- * Classes listed with the {@link javax.persistence.EntityListeners} 
annotation are not managed
+ * Classes listed with the {@link jakarta.persistence.EntityListeners} 
annotation are not managed
  * by Spring, hence injection point resolving for these is not supported out 
of the box. However,
  * EclipseLink allows to configure a {@link BeanManager}, that is used for 
injection point
  * resolving. This implementation is limited to support only no-arg 
constructors.
@@ -72,161 +70,163 @@ public class BeanManagerForEntityListeners implements 
BeanManager {
     private final Provider<ServiceInjector> serviceInjectorProvider;
 
     @Override
-    public <T> CreationalContext<T> createCreationalContext(Contextual<T> 
contextual) {
+    public <T> CreationalContext<T> createCreationalContext(final 
Contextual<T> contextual) {
         return _Util.createCreationalContext(contextual);
     }
 
     @Override
-    public <T> AnnotatedType<T> createAnnotatedType(Class<T> type) {
+    public <T> AnnotatedType<T> createAnnotatedType(final Class<T> type) {
         return _Util.createAnnotatedType(type);
     }
 
-    @Override
-    public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> type) 
{
-        return _Util.createInjectionTarget(type, serviceInjectorProvider);
-    }
+//TODO[ISIS-3275] investigate this removal
+//    @Override
+//    public <T> InjectionTarget<T> createInjectionTarget(final 
AnnotatedType<T> type) {
+//        return _Util.createInjectionTarget(type, serviceInjectorProvider);
+//    }
 
     // -- IGNORED
 
     @Override
-    public Object getReference(Bean<?> bean, Type beanType, 
CreationalContext<?> ctx) {
+    public Object getReference(final Bean<?> bean, final Type beanType, final 
CreationalContext<?> ctx) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public Object getInjectableReference(InjectionPoint ij, 
CreationalContext<?> ctx) {
+    public Object getInjectableReference(final InjectionPoint ij, final 
CreationalContext<?> ctx) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public Set<Bean<?>> getBeans(Type beanType, Annotation... qualifiers) {
+    public Set<Bean<?>> getBeans(final Type beanType, final Annotation... 
qualifiers) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public Set<Bean<?>> getBeans(String name) {
+    public Set<Bean<?>> getBeans(final String name) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public Bean<?> getPassivationCapableBean(String id) {
+    public Bean<?> getPassivationCapableBean(final String id) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <X> Bean<? extends X> resolve(Set<Bean<? extends X>> beans) {
+    public <X> Bean<? extends X> resolve(final Set<Bean<? extends X>> beans) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public void validate(InjectionPoint injectionPoint) {
+    public void validate(final InjectionPoint injectionPoint) {
         _Exceptions.throwNotImplemented();
     }
 
-    @Override
-    public void fireEvent(Object event, Annotation... qualifiers) {
-        _Exceptions.throwNotImplemented();
-    }
+//TODO[ISIS-3275] investigate this removal
+//    @Override
+//    public void fireEvent(final Object event, final Annotation... 
qualifiers) {
+//        _Exceptions.throwNotImplemented();
+//    }
 
     @Override
-    public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, 
Annotation... qualifiers) {
+    public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(final T 
event, final Annotation... qualifiers) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public List<Decorator<?>> resolveDecorators(Set<Type> types, Annotation... 
qualifiers) {
+    public List<Decorator<?>> resolveDecorators(final Set<Type> types, final 
Annotation... qualifiers) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public List<Interceptor<?>> resolveInterceptors(InterceptionType type, 
Annotation... interceptorBindings) {
+    public List<Interceptor<?>> resolveInterceptors(final InterceptionType 
type, final Annotation... interceptorBindings) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public boolean isScope(Class<? extends Annotation> annotationType) {
+    public boolean isScope(final Class<? extends Annotation> annotationType) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public boolean isNormalScope(Class<? extends Annotation> annotationType) {
+    public boolean isNormalScope(final Class<? extends Annotation> 
annotationType) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public boolean isPassivatingScope(Class<? extends Annotation> 
annotationType) {
+    public boolean isPassivatingScope(final Class<? extends Annotation> 
annotationType) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public boolean isQualifier(Class<? extends Annotation> annotationType) {
+    public boolean isQualifier(final Class<? extends Annotation> 
annotationType) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public boolean isInterceptorBinding(Class<? extends Annotation> 
annotationType) {
+    public boolean isInterceptorBinding(final Class<? extends Annotation> 
annotationType) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public boolean isStereotype(Class<? extends Annotation> annotationType) {
+    public boolean isStereotype(final Class<? extends Annotation> 
annotationType) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public Set<Annotation> getInterceptorBindingDefinition(Class<? extends 
Annotation> bindingType) {
+    public Set<Annotation> getInterceptorBindingDefinition(final Class<? 
extends Annotation> bindingType) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public Set<Annotation> getStereotypeDefinition(Class<? extends Annotation> 
stereotype) {
+    public Set<Annotation> getStereotypeDefinition(final Class<? extends 
Annotation> stereotype) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public boolean areQualifiersEquivalent(Annotation qualifier1, Annotation 
qualifier2) {
+    public boolean areQualifiersEquivalent(final Annotation qualifier1, final 
Annotation qualifier2) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public boolean areInterceptorBindingsEquivalent(Annotation 
interceptorBinding1,
-            Annotation interceptorBinding2) {
+    public boolean areInterceptorBindingsEquivalent(final Annotation 
interceptorBinding1,
+            final Annotation interceptorBinding2) {
         _Exceptions.throwNotImplemented();
         return false;
     }
 
     @Override
-    public int getQualifierHashCode(Annotation qualifier) {
+    public int getQualifierHashCode(final Annotation qualifier) {
         _Exceptions.throwNotImplemented();
         return 0;
     }
 
     @Override
-    public int getInterceptorBindingHashCode(Annotation interceptorBinding) {
+    public int getInterceptorBindingHashCode(final Annotation 
interceptorBinding) {
         _Exceptions.throwNotImplemented();
         return 0;
     }
 
     @Override
-    public Context getContext(Class<? extends Annotation> scopeType) {
+    public Context getContext(final Class<? extends Annotation> scopeType) {
         _Exceptions.throwNotImplemented();
         return null;
     }
@@ -238,75 +238,75 @@ public class BeanManagerForEntityListeners implements 
BeanManager {
     }
 
     @Override
-    public ExpressionFactory wrapExpressionFactory(ExpressionFactory 
expressionFactory) {
+    public ExpressionFactory wrapExpressionFactory(final ExpressionFactory 
expressionFactory) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <T> InjectionTargetFactory<T> 
getInjectionTargetFactory(AnnotatedType<T> annotatedType) {
+    public <T> InjectionTargetFactory<T> getInjectionTargetFactory(final 
AnnotatedType<T> annotatedType) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <X> ProducerFactory<X> getProducerFactory(AnnotatedField<? super X> 
field, Bean<X> declaringBean) {
+    public <X> ProducerFactory<X> getProducerFactory(final AnnotatedField<? 
super X> field, final Bean<X> declaringBean) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <X> ProducerFactory<X> getProducerFactory(AnnotatedMethod<? super 
X> method, Bean<X> declaringBean) {
+    public <X> ProducerFactory<X> getProducerFactory(final AnnotatedMethod<? 
super X> method, final Bean<X> declaringBean) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <T> BeanAttributes<T> createBeanAttributes(AnnotatedType<T> type) {
+    public <T> BeanAttributes<T> createBeanAttributes(final AnnotatedType<T> 
type) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public BeanAttributes<?> createBeanAttributes(AnnotatedMember<?> type) {
+    public BeanAttributes<?> createBeanAttributes(final AnnotatedMember<?> 
type) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <T> Bean<T> createBean(BeanAttributes<T> attributes, Class<T> 
beanClass,
-            InjectionTargetFactory<T> injectionTargetFactory) {
+    public <T> Bean<T> createBean(final BeanAttributes<T> attributes, final 
Class<T> beanClass,
+            final InjectionTargetFactory<T> injectionTargetFactory) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <T, X> Bean<T> createBean(BeanAttributes<T> attributes, Class<X> 
beanClass,
-            ProducerFactory<X> producerFactory) {
+    public <T, X> Bean<T> createBean(final BeanAttributes<T> attributes, final 
Class<X> beanClass,
+            final ProducerFactory<X> producerFactory) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public InjectionPoint createInjectionPoint(AnnotatedField<?> field) {
+    public InjectionPoint createInjectionPoint(final AnnotatedField<?> field) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public InjectionPoint createInjectionPoint(AnnotatedParameter<?> 
parameter) {
+    public InjectionPoint createInjectionPoint(final AnnotatedParameter<?> 
parameter) {
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <T extends Extension> T getExtension(Class<T> extensionClass) {
+    public <T extends Extension> T getExtension(final Class<T> extensionClass) 
{
         _Exceptions.throwNotImplemented();
         return null;
     }
 
     @Override
-    public <T> InterceptionFactory<T> 
createInterceptionFactory(CreationalContext<T> ctx, Class<T> clazz) {
+    public <T> InterceptionFactory<T> createInterceptionFactory(final 
CreationalContext<T> ctx, final Class<T> clazz) {
         _Exceptions.throwNotImplemented();
         return null;
     }
diff --git 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
index 3bb5f13ce7..9c82afc6b9 100644
--- 
a/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
+++ 
b/persistence/jpa/eclipselink/src/main/java/org/apache/causeway/persistence/jpa/eclipselink/inject/_Util.java
@@ -23,20 +23,19 @@ import java.lang.reflect.Type;
 import java.util.Collections;
 import java.util.Set;
 
-import javax.enterprise.context.spi.Contextual;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.AnnotatedConstructor;
-import javax.enterprise.inject.spi.AnnotatedField;
-import javax.enterprise.inject.spi.AnnotatedMethod;
-import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.InjectionPoint;
-import javax.enterprise.inject.spi.InjectionTarget;
-import javax.inject.Provider;
-
 import org.apache.causeway.applib.services.inject.ServiceInjector;
 import org.apache.causeway.commons.internal._Constants;
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 
+import jakarta.enterprise.context.spi.Contextual;
+import jakarta.enterprise.context.spi.CreationalContext;
+import jakarta.enterprise.inject.spi.AnnotatedConstructor;
+import jakarta.enterprise.inject.spi.AnnotatedField;
+import jakarta.enterprise.inject.spi.AnnotatedMethod;
+import jakarta.enterprise.inject.spi.AnnotatedType;
+import jakarta.enterprise.inject.spi.InjectionPoint;
+import jakarta.enterprise.inject.spi.InjectionTarget;
+import jakarta.inject.Provider;
 import lombok.SneakyThrows;
 
 final class _Util {
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
index 3f483df1f9..e9022be8f0 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
@@ -21,11 +21,11 @@ package 
org.apache.causeway.persistence.jpa.integration.entity;
 import java.lang.reflect.Method;
 import java.util.Optional;
 
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceException;
-import javax.persistence.PersistenceUnitUtil;
-import javax.persistence.metamodel.EntityType;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceException;
+import jakarta.persistence.PersistenceUnitUtil;
+import jakarta.persistence.metamodel.EntityType;
 
 import org.eclipse.persistence.exceptions.DescriptorException;
 import org.springframework.data.jpa.repository.JpaContext;
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacetFactory.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacetFactory.java
index 72429ba2c7..7f163d97a7 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacetFactory.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacetFactory.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jpa.integration.entity;
 
-import javax.inject.Inject;
-import javax.persistence.Entity;
+import jakarta.inject.Inject;
+import jakarta.persistence.Entity;
 
 import org.apache.causeway.commons.collections.ImmutableEnumSet;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/services/JpaSupportServiceUsingSpring.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/services/JpaSupportServiceUsingSpring.java
index 7b7ab5dd84..7d4c7eebdf 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/services/JpaSupportServiceUsingSpring.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/services/JpaSupportServiceUsingSpring.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jpa.integration.services;
 
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
 
 import org.springframework.data.jpa.repository.JpaContext;
 
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayBookmarkConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayBookmarkConverter.java
index 484396fcc5..1e2731a660 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayBookmarkConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayBookmarkConverter.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jpa.integration.typeconverters.applib;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.services.bookmark.Bookmark;
 import org.apache.causeway.applib.services.bookmark.HasTarget;
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayLocalResourcePathConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayLocalResourcePathConverter.java
index 1505979d5d..3b282b7c61 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayLocalResourcePathConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayLocalResourcePathConverter.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jpa.integration.typeconverters.applib;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.value.LocalResourcePath;
 
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayMarkupConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayMarkupConverter.java
index b6e3b5986c..588155bea7 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayMarkupConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayMarkupConverter.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jpa.integration.typeconverters.applib;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.value.Markup;
 
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayPasswordConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayPasswordConverter.java
index 3509443a53..441bae2a3f 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayPasswordConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/applib/CausewayPasswordConverter.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jpa.integration.typeconverters.applib;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.value.Password;
 
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/awt/JavaAwtBufferedImageByteArrayConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/awt/JavaAwtBufferedImageByteArrayConverter.java
index b3447b0713..a77d951206 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/awt/JavaAwtBufferedImageByteArrayConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/awt/JavaAwtBufferedImageByteArrayConverter.java
@@ -20,8 +20,8 @@ package 
org.apache.causeway.persistence.jpa.integration.typeconverters.java.awt;
 
 import java.awt.image.BufferedImage;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.commons.internal.base._NullSafe;
 import org.apache.causeway.commons.internal.image._Images;
@@ -41,7 +41,7 @@ implements AttributeConverter<BufferedImage, byte[]> {
         try {
             return _Images.toBytes(memberValue);
         } catch (Exception e) {
-            throw new javax.persistence.PersistenceException(
+            throw new jakarta.persistence.PersistenceException(
                     "Error serialising object of type BufferedImage to byte 
array", e);
         }
     }
@@ -54,7 +54,7 @@ implements AttributeConverter<BufferedImage, byte[]> {
         try {
             return _Images.fromBytes(datastoreValue);
         } catch (Exception e) {
-            throw new javax.persistence.PersistenceException(
+            throw new jakarta.persistence.PersistenceException(
                     "Error deserialising image datastoreValue", e);
         }
     }
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetDateTimeConverterForJpa.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetDateTimeConverterForJpa.java
index 220d90421d..b73c1c6687 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetDateTimeConverterForJpa.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetDateTimeConverterForJpa.java
@@ -20,8 +20,8 @@ package 
org.apache.causeway.persistence.jpa.integration.typeconverters.java.time
 
 import java.time.OffsetDateTime;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.commons.internal.base._Temporals;
 
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetTimeConverterForJpa.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetTimeConverterForJpa.java
index a7aa74971b..1096399bee 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetTimeConverterForJpa.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/OffsetTimeConverterForJpa.java
@@ -20,8 +20,8 @@ package 
org.apache.causeway.persistence.jpa.integration.typeconverters.java.time
 
 import java.time.OffsetTime;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.commons.internal.base._Temporals;
 
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/ZonedDateTimeConverterForJpa.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/ZonedDateTimeConverterForJpa.java
index f8ca4119a7..b66f1d6bf0 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/ZonedDateTimeConverterForJpa.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/time/ZonedDateTimeConverterForJpa.java
@@ -20,8 +20,8 @@ package 
org.apache.causeway.persistence.jpa.integration.typeconverters.java.time
 
 import java.time.ZonedDateTime;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.commons.internal.base._Temporals;
 
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/util/JavaUtilUuidConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/util/JavaUtilUuidConverter.java
index 9e401088c6..dedcfa4564 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/util/JavaUtilUuidConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/java/util/JavaUtilUuidConverter.java
@@ -20,8 +20,8 @@ package 
org.apache.causeway.persistence.jpa.integration.typeconverters.java.util
 
 import java.util.UUID;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 /**
  * @since 2.0 {@index}
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayChangesDtoConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayChangesDtoConverter.java
index 39858983d4..8dece82aa5 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayChangesDtoConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayChangesDtoConverter.java
@@ -18,8 +18,8 @@
  */
 package 
org.apache.causeway.persistence.jpa.integration.typeconverters.schema.v2;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.util.schema.ChangesDtoUtils;
 import org.apache.causeway.schema.chg.v2.ChangesDto;
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayCommandDtoConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayCommandDtoConverter.java
index 0e8274ac90..b9f4981dac 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayCommandDtoConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayCommandDtoConverter.java
@@ -18,8 +18,8 @@
  */
 package 
org.apache.causeway.persistence.jpa.integration.typeconverters.schema.v2;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.util.schema.CommandDtoUtils;
 import org.apache.causeway.schema.cmd.v2.CommandDto;
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayInteractionDtoConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayInteractionDtoConverter.java
index 387fe6cc9a..e6c9059401 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayInteractionDtoConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayInteractionDtoConverter.java
@@ -18,8 +18,8 @@
  */
 package 
org.apache.causeway.persistence.jpa.integration.typeconverters.schema.v2;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.util.schema.InteractionDtoUtils;
 import org.apache.causeway.schema.ixn.v2.InteractionDto;
diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayOidDtoConverter.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayOidDtoConverter.java
index b81f9a1e5e..56d264ba30 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayOidDtoConverter.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/typeconverters/schema/v2/CausewayOidDtoConverter.java
@@ -18,8 +18,8 @@
  */
 package 
org.apache.causeway.persistence.jpa.integration.typeconverters.schema.v2;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
 
 import org.apache.causeway.applib.services.bookmark.Bookmark;
 import org.apache.causeway.schema.common.v2.OidDto;
diff --git 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/BigDecimalFromJpaColumnAnnotationFacetFactory.java
 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/BigDecimalFromJpaColumnAnnotationFacetFactory.java
index 46d4d1b118..d5c952916f 100644
--- 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/BigDecimalFromJpaColumnAnnotationFacetFactory.java
+++ 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/BigDecimalFromJpaColumnAnnotationFacetFactory.java
@@ -20,8 +20,8 @@ package 
org.apache.causeway.persistence.jpa.metamodel.facets.prop.column;
 
 import java.math.BigDecimal;
 
-import javax.inject.Inject;
-import javax.persistence.Column;
+import jakarta.inject.Inject;
+import jakarta.persistence.Column;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.facetapi.FeatureType;
diff --git 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java
 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java
index f30cb7eb39..01f01b6e03 100644
--- 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java
+++ 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java
@@ -20,9 +20,9 @@ package 
org.apache.causeway.persistence.jpa.metamodel.facets.prop.column;
 
 import java.util.Optional;
 
-import javax.inject.Inject;
-import javax.persistence.Column;
-import javax.persistence.JoinColumn;
+import jakarta.inject.Inject;
+import jakarta.persistence.Column;
+import jakarta.persistence.JoinColumn;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.facetapi.FacetUtil;
diff --git 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJpaColumnAnnotation.java
 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJpaColumnAnnotation.java
index 84b3677ced..6010e54788 100644
--- 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJpaColumnAnnotation.java
+++ 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxFractionalDigitsFacetFromJpaColumnAnnotation.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jpa.metamodel.facets.prop.column;
 
 import java.util.Optional;
 
-import javax.persistence.Column;
+import jakarta.persistence.Column;
 
 import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
 import 
org.apache.causeway.core.metamodel.facets.objectvalue.digits.MaxFractionalDigitsFacet;
diff --git 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJpaColumnAnnotation.java
 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJpaColumnAnnotation.java
index a72a8ad85b..131141fc76 100644
--- 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJpaColumnAnnotation.java
+++ 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/column/MaxTotalDigitsFacetFromJpaColumnAnnotation.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.persistence.jpa.metamodel.facets.prop.column;
 
 import java.util.Optional;
 
-import javax.persistence.Column;
+import jakarta.persistence.Column;
 
 import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
 import 
org.apache.causeway.core.metamodel.facets.objectvalue.digits.MaxTotalDigitsFacet;
diff --git 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/transients/JpaTransientAnnotationFacetFactory.java
 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/transients/JpaTransientAnnotationFacetFactory.java
index bb610771a7..8867da926f 100644
--- 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/transients/JpaTransientAnnotationFacetFactory.java
+++ 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/facets/prop/transients/JpaTransientAnnotationFacetFactory.java
@@ -18,8 +18,8 @@
  */
 package org.apache.causeway.persistence.jpa.metamodel.facets.prop.transients;
 
-import javax.inject.Inject;
-import javax.persistence.Transient;
+import jakarta.inject.Inject;
+import jakarta.persistence.Transient;
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.facetapi.FacetUtil;
diff --git 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableAnnotationFacetFactory.java
 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableAnnotationFacetFactory.java
index 8edc518e72..7e4da84df2 100644
--- 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableAnnotationFacetFactory.java
+++ 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableAnnotationFacetFactory.java
@@ -19,8 +19,8 @@
 package org.apache.causeway.persistence.jpa.metamodel.object.table;
 
 
-import javax.inject.Inject;
-import javax.persistence.Table;
+import jakarta.inject.Inject;
+import jakarta.persistence.Table;
 
 import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
diff --git 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotation.java
 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotation.java
index af6f479326..f0e68852b1 100644
--- 
a/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotation.java
+++ 
b/persistence/jpa/metamodel/src/main/java/org/apache/causeway/persistence/jpa/metamodel/object/table/JpaTableFacetAnnotation.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.persistence.jpa.metamodel.object.table;
 
-import javax.persistence.Table;
+import jakarta.persistence.Table;
 
 import org.apache.causeway.core.metamodel.facetapi.Facet;
 

Reply via email to