diff --git a/README.md b/README.md
index 3c37cdf85..699dc1809 100644
--- a/README.md
+++ b/README.md
@@ -51,61 +51,7 @@ Full documentation is available at:
## Including JAXB support
-If you are using Java 11 or higher (including Java 17) and you wish to use [JAXB](https://docs.oracle.com/javase/tutorial/jaxb/intro/)
-with the client, you'll need to include JAXB API and implementation dependencies as those are no
-longer included in Java 11 and higher.
-
-For Maven, include the following in your pom.xml file:
-
-
- javax.xml.bind
- jaxb-api
- 2.3.1
-
-
- org.glassfish.jaxb
- jaxb-runtime
- 2.3.2
-
-
- org.glassfish.jaxb
- jaxb-core
- 2.3.0.1
-
-
-For Gradle, include the following in your build.gradle file (this can be included in the same `dependencies` block
-as the one that includes the marklogic-client-api dependency):
-
- dependencies {
- implementation "javax.xml.bind:jaxb-api:2.3.1"
- implementation "org.glassfish.jaxb:jaxb-runtime:2.3.2"
- implementation "org.glassfish.jaxb:jaxb-core:2.3.0.1"
- }
-
-You are free to use any implementation of JAXB that you wish, but you need to ensure that you're using a JAXB
-implementation that corresponds to the `javax.xml.bind` interfaces. JAXB 3.0 and 4.0 interfaces are packaged under
-`jakarta.xml.bind`, and the Java API does not yet depend on those interfaces.
-
-Thus, you are free to include an implementation of JAXB 3.0 or 4.0 in your project for your own use; it will not
-affect the Java API. A caveat though is if you are trying to use different major versions of the same JAXB
-implementation library - such as `org.glassfish.jaxb:jaxb-runtime` - then you will run into an expected dependency
-conflict between the two versions of the library. This can be worked around by using a different implementation of
-JAXB 3.0 or JAXB 4.0 - for example:
-
- dependencies {
- // JAXB 2 dependencies required by Java Client
- implementation "javax.xml.bind:jaxb-api:2.3.1"
- implementation "org.glassfish.jaxb:jaxb-runtime:2.3.2"
- implementation "org.glassfish.jaxb:jaxb-core:2.3.0.1"
-
- // JAXB 4 dependencies required by other application code
- implementation "jakarta.xml.bind:jakarta.xml.bind-api:4.0.0"
- implementation "com.sun.xml.bind:jaxb-impl:4.0.1"
- }
-
-The client will soon be updated to use the newer `jakarta.xml.bind` interfaces. Until then, the above approach
-or one similar to it will allow for both the old and new JAXB interfaces and implementations to exist together in the
-same classpath.
+TODO, Need to rewrite this for Java Client 7.0.0.
## Support
diff --git a/examples/build.gradle b/examples/build.gradle
index cd9f23f61..709f27634 100644
--- a/examples/build.gradle
+++ b/examples/build.gradle
@@ -5,11 +5,6 @@ plugins {
}
dependencies {
- if (JavaVersion.current().isJava9Compatible()) {
- implementation 'javax.xml.bind:jaxb-api:2.3.1'
- implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.2'
- implementation 'org.glassfish.jaxb:jaxb-core:2.3.0.1'
- }
implementation project(':marklogic-client-api')
// Forcing usage of 3.4.0 instead of 3.2.0 to address vulnerability - https://security.snyk.io/vuln/SNYK-JAVA-COMSQUAREUPOKIO-5820002
diff --git a/examples/src/main/java/com/marklogic/client/example/cookbook/AllCookbookExamples.java b/examples/src/main/java/com/marklogic/client/example/cookbook/AllCookbookExamples.java
index 2e720fd6f..6a27b8724 100644
--- a/examples/src/main/java/com/marklogic/client/example/cookbook/AllCookbookExamples.java
+++ b/examples/src/main/java/com/marklogic/client/example/cookbook/AllCookbookExamples.java
@@ -17,7 +17,7 @@
import java.io.IOException;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import javax.xml.xpath.XPathExpressionException;
import com.marklogic.client.FailedRequestException;
diff --git a/examples/src/main/java/com/marklogic/client/example/cookbook/JAXBDocument.java b/examples/src/main/java/com/marklogic/client/example/cookbook/JAXBDocument.java
index 885f162ab..040cb882e 100644
--- a/examples/src/main/java/com/marklogic/client/example/cookbook/JAXBDocument.java
+++ b/examples/src/main/java/com/marklogic/client/example/cookbook/JAXBDocument.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.annotation.XmlRootElement;
import com.marklogic.client.DatabaseClient;
import com.marklogic.client.DatabaseClientFactory;
diff --git a/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/DatabaseClientSingleton.java b/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/DatabaseClientSingleton.java
index 6fc9c0a5a..00f93ac8a 100644
--- a/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/DatabaseClientSingleton.java
+++ b/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/DatabaseClientSingleton.java
@@ -19,7 +19,7 @@
import java.text.SimpleDateFormat;
import java.util.HashMap;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import com.marklogic.client.DatabaseClient;
import com.marklogic.client.DatabaseClientFactory;
diff --git a/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/WriteandReadPOJOs.java b/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/WriteandReadPOJOs.java
index d346d86b6..ca3f33094 100644
--- a/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/WriteandReadPOJOs.java
+++ b/examples/src/main/java/com/marklogic/client/example/cookbook/datamovement/WriteandReadPOJOs.java
@@ -15,8 +15,8 @@
*/
package com.marklogic.client.example.cookbook.datamovement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.annotation.XmlRootElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,7 +53,7 @@ public static void main(String args[]) throws JAXBException {
/**
* A sample class which we will be using in order to demonstrate
- * reading and writing large number of POJOs
+ * reading and writing large number of POJOs
*/
@XmlRootElement
public static class ProductDetails {
@@ -136,7 +136,7 @@ public void readBulkPOJOS() throws JAXBException {
// Create a query definition in order to use it with QueryBatcher
StructuredQueryDefinition query = new StructuredQueryBuilder().collection("products-collection1");
- // Create a QueryBatcher in order to retrieve bulk POJOs
+ // Create a QueryBatcher in order to retrieve bulk POJOs
// from the database matching the query definition
QueryBatcher queryBatcher = moveMgr.newQueryBatcher(query)
.withBatchSize(batchSize)
diff --git a/gradle.properties b/gradle.properties
index b7edca21b..ed8022bc0 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,5 @@
group=com.marklogic
-version=6.7-SNAPSHOT
+version=7.0-SNAPSHOT
describedName=MarkLogic Java Client API
publishUrl=file:../marklogic-java/releases
diff --git a/marklogic-client-api-functionaltests/build.gradle b/marklogic-client-api-functionaltests/build.gradle
index 6ddfb86ee..2cdb19cd5 100755
--- a/marklogic-client-api-functionaltests/build.gradle
+++ b/marklogic-client-api-functionaltests/build.gradle
@@ -27,13 +27,7 @@ dependencies {
implementation 'com.fasterxml.jackson.core:jackson-core:2.15.3'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.3'
implementation "org.jdom:jdom2:2.0.6.1"
- implementation "com.marklogic:ml-app-deployer:4.6.1"
-
- if (JavaVersion.current().isJava9Compatible()) {
- implementation 'javax.xml.bind:jaxb-api:2.3.1'
- implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.8'
- implementation 'org.glassfish.jaxb:jaxb-core:2.3.0.1'
- }
+ implementation "com.marklogic:ml-app-deployer:4.7.0"
testImplementation 'ch.qos.logback:logback-classic:1.3.14'
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.1'
diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestBulkWriteSample1.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestBulkWriteSample1.java
index 39f98bb0e..91e4dcb79 100644
--- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestBulkWriteSample1.java
+++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestBulkWriteSample1.java
@@ -29,7 +29,7 @@
import static org.junit.jupiter.api.Assertions.*;
import org.skyscreamer.jsonassert.JSONAssert;
-import javax.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBContext;
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import java.io.*;
diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestMetadata.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestMetadata.java
index a65ef2870..108549f4c 100644
--- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestMetadata.java
+++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestMetadata.java
@@ -34,7 +34,7 @@
import static org.junit.jupiter.api.Assertions.*;
import org.skyscreamer.jsonassert.JSONAssert;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import javax.xml.namespace.QName;
import java.io.File;
import java.io.FileInputStream;
diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/BasicJavaClientREST.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/BasicJavaClientREST.java
index d9156b4d9..143975752 100644
--- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/BasicJavaClientREST.java
+++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/BasicJavaClientREST.java
@@ -46,8 +46,8 @@
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/Product.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/Product.java
index 1ca4fe971..40bbdd6a0 100644
--- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/Product.java
+++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/Product.java
@@ -16,7 +16,7 @@
package com.marklogic.client.functionaltest;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Product
diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTempMetaValues.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTempMetaValues.java
index a2e5c7398..39344404e 100644
--- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTempMetaValues.java
+++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTempMetaValues.java
@@ -35,7 +35,7 @@
import com.marklogic.client.query.StructuredQueryDefinition;
import org.junit.jupiter.api.*;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.DatatypeFactory;
import java.util.Calendar;
diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTemporal.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTemporal.java
index 8376f1520..a92e560ba 100644
--- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTemporal.java
+++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestBiTemporal.java
@@ -42,7 +42,7 @@
import org.w3c.dom.Node;
import org.w3c.dom.ls.DOMImplementationLS;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.*;
diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestSandBox.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestSandBox.java
index dd6b6bc5a..d611c2d67 100644
--- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestSandBox.java
+++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestSandBox.java
@@ -47,7 +47,7 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
diff --git a/marklogic-client-api/build.gradle b/marklogic-client-api/build.gradle
index b712b54e2..1e415a89c 100644
--- a/marklogic-client-api/build.gradle
+++ b/marklogic-client-api/build.gradle
@@ -1,7 +1,8 @@
// Copyright (c) 2022 MarkLogic Corporation
plugins {
- id 'maven-publish'
+ id 'java-library'
+ id 'maven-publish'
}
group = 'com.marklogic'
@@ -9,11 +10,12 @@ group = 'com.marklogic'
description = "The official MarkLogic Java client API."
dependencies {
- if (JavaVersion.current().isJava9Compatible()) {
- implementation 'javax.xml.bind:jaxb-api:2.3.1'
- implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.8'
- implementation 'org.glassfish.jaxb:jaxb-core:2.3.0.1'
- }
+ // With 7.0.0, now using the Jakarta JAXB APIs instead of the JAVAX JAXB APIs that were bundled in Java 8.
+ // To ease support for Java 8, we are depending on version 3.x of the Jakarta JAXB APIs as those only require Java 8,
+ // whereas the 4.x version requires Java 11 or higher.
+ api "jakarta.xml.bind:jakarta.xml.bind-api:3.0.1"
+ implementation "org.glassfish.jaxb:jaxb-runtime:3.0.2"
+ implementation "org.glassfish.jaxb:jaxb-core:3.0.2"
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
@@ -43,7 +45,7 @@ dependencies {
// Allows talking to the Manage API. It depends on the Java Client itself, which will usually be a slightly older
// version, but that should not have any impact on the tests.
- testImplementation "com.marklogic:ml-app-deployer:4.6.1"
+ testImplementation "com.marklogic:ml-app-deployer:4.7.0"
// Starting with mockito 5.x, Java 11 is required, so sticking with 4.x as we have to support Java 8.
testImplementation "org.mockito:mockito-core:4.11.0"
@@ -52,7 +54,7 @@ dependencies {
testImplementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3'
testImplementation 'ch.qos.logback:logback-classic:1.3.14'
-// schema validation issue with testImplementation 'xerces:xercesImpl:2.12.0'
+ // schema validation issue with testImplementation 'xerces:xercesImpl:2.12.0'
testImplementation 'org.opengis.cite.xerces:xercesImpl-xsd11:2.12-beta-r1667115'
testImplementation 'org.apache.commons:commons-lang3:3.14.0'
testImplementation 'org.apache.httpcomponents:httpclient:4.5.14'
@@ -204,3 +206,11 @@ task debugCloudAuth(type: JavaExec) {
classpath = sourceSets.test.runtimeClasspath
args = [cloudHost, cloudKey, cloudBasePath]
}
+
+task runXmlSmokeTests(type: Test) {
+ description = "Run a bunch of XML-related tests for smoke-testing on a particular JVM"
+ include "com/marklogic/client/test/BufferableHandleTest.class"
+ include "com/marklogic/client/test/EvalTest.class"
+ include "com/marklogic/client/test/HandleAsTest.class"
+ include "com/marklogic/client/test/JAXBHandleTest.class"
+}
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDescriptor.java b/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDescriptor.java
index 63d70bcee..c154e5879 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDescriptor.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDescriptor.java
@@ -16,7 +16,7 @@
package com.marklogic.client.bitemporal;
import com.marklogic.client.document.DocumentDescriptor;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
public interface TemporalDescriptor extends DocumentDescriptor {
/**
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDocumentManager.java b/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDocumentManager.java
index 47e669891..684f7e8f8 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDocumentManager.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/bitemporal/TemporalDocumentManager.java
@@ -18,7 +18,7 @@
import java.util.Calendar;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.Duration;
import com.marklogic.client.*;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentManagerImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentManagerImpl.java
index 3b61f3993..8d1c4db14 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentManagerImpl.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentManagerImpl.java
@@ -18,7 +18,7 @@
import java.nio.charset.CharsetEncoder;
import java.util.*;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.Duration;
import com.marklogic.client.query.SearchQueryDefinition;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentMetadataPatchBuilderImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentMetadataPatchBuilderImpl.java
index ad7c7d92f..631e08486 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentMetadataPatchBuilderImpl.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/DocumentMetadataPatchBuilderImpl.java
@@ -24,7 +24,7 @@
import java.util.Set;
import javax.xml.XMLConstants;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/OkHttpServices.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/OkHttpServices.java
index 666389d5d..3c1a179a7 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/OkHttpServices.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/OkHttpServices.java
@@ -70,7 +70,7 @@
import javax.mail.internet.MimeMultipart;
import javax.mail.util.ByteArrayDataSource;
import javax.net.ssl.*;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.File;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/TuplesBuilder.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/TuplesBuilder.java
index 7e1d2da2c..9973b40a6 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/TuplesBuilder.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/TuplesBuilder.java
@@ -22,11 +22,11 @@
import java.util.ArrayList;
import java.util.List;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
/**
* A TuplesBuilder parses a set of tuple results.
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValueConverter.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValueConverter.java
index d666fbaea..c14d74731 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValueConverter.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValueConverter.java
@@ -25,7 +25,7 @@
import java.util.regex.Pattern;
import java.util.stream.Stream;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.Duration;
/**
@@ -641,7 +641,7 @@ static private Pattern getInstantPattern() {
}
return instantPattern;
}
-
+
static public String[] convert(I[] in, Function converter) {
if (in == null) return null;
String[] out = new String[in.length];
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesBuilder.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesBuilder.java
index b064f7c28..14b785316 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesBuilder.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesBuilder.java
@@ -17,11 +17,11 @@
import java.util.ArrayList;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
import com.marklogic.client.query.AggregateResult;
import com.marklogic.client.query.CountedDistinctValue;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesListBuilder.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesListBuilder.java
index 6d6d6d930..ba54a1f1f 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesListBuilder.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesListBuilder.java
@@ -19,10 +19,10 @@
import java.util.HashMap;
import java.util.List;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
/**
* A ValuesListBuilder parses list of value results.
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricImpl.java
index 9850deef9..e28e0bc7b 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricImpl.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricImpl.java
@@ -17,7 +17,7 @@
import java.util.Calendar;
-import javax.xml.bind.annotation.XmlValue;
+import jakarta.xml.bind.annotation.XmlValue;
import javax.xml.datatype.Duration;
/**
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricsImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricsImpl.java
index 0afacf4aa..73836d1c7 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricsImpl.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/ValuesMetricsImpl.java
@@ -15,7 +15,7 @@
*/
package com.marklogic.client.impl;
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElement;
import com.marklogic.client.impl.ValuesBuilder.Values;
import com.marklogic.client.query.ValuesMetrics;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/XsValueImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/XsValueImpl.java
index f7b4d10ca..7a0de69a7 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/XsValueImpl.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/XsValueImpl.java
@@ -21,7 +21,7 @@
import java.util.Calendar;
import java.util.Date;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.DatatypeConstants;
import javax.xml.datatype.Duration;
import javax.xml.datatype.XMLGregorianCalendar;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java
index 51e6c0d47..fcaf21809 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java
@@ -26,10 +26,10 @@
import java.util.HashSet;
import java.util.Set;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
+import jakarta.xml.bind.Unmarshaller;
import com.marklogic.client.io.marker.*;
import org.slf4j.Logger;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/QueryOptionsListHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/QueryOptionsListHandle.java
index a2d980e98..ff45c11dd 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/io/QueryOptionsListHandle.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/QueryOptionsListHandle.java
@@ -21,10 +21,10 @@
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
+import jakarta.xml.bind.Unmarshaller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/TuplesHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/TuplesHandle.java
index ceb4b8d3e..0ea63b4e0 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/io/TuplesHandle.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/TuplesHandle.java
@@ -22,9 +22,9 @@
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesHandle.java
index a7ecb619e..c20d0833f 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesHandle.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesHandle.java
@@ -22,9 +22,9 @@
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesListHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesListHandle.java
index f64a9ddac..d25ebaa1e 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesListHandle.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/ValuesListHandle.java
@@ -20,9 +20,9 @@
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/query/AggregateResult.java b/marklogic-client-api/src/main/java/com/marklogic/client/query/AggregateResult.java
index 34fe56494..83dacdcf5 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/query/AggregateResult.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/query/AggregateResult.java
@@ -17,8 +17,8 @@
import com.marklogic.client.impl.ValueConverter;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlValue;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlValue;
/**
* A CountedDistinctValue is a value that includes a frequency.
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/query/CountedDistinctValue.java b/marklogic-client-api/src/main/java/com/marklogic/client/query/CountedDistinctValue.java
index b7100da62..dbd5870f0 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/query/CountedDistinctValue.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/query/CountedDistinctValue.java
@@ -17,8 +17,8 @@
import com.marklogic.client.impl.ValueConverter;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlValue;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlValue;
/**
* A CountedDistinctValue is a value that includes a frequency.
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/query/QueryOptionsListBuilder.java b/marklogic-client-api/src/main/java/com/marklogic/client/query/QueryOptionsListBuilder.java
index 4550f8bf5..8075f3ee7 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/query/QueryOptionsListBuilder.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/query/QueryOptionsListBuilder.java
@@ -15,10 +15,10 @@
*/
package com.marklogic.client.query;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/query/StructuredQueryBuilder.java b/marklogic-client-api/src/main/java/com/marklogic/client/query/StructuredQueryBuilder.java
index 543c8daab..08018a685 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/query/StructuredQueryBuilder.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/query/StructuredQueryBuilder.java
@@ -26,7 +26,7 @@
import java.util.concurrent.ConcurrentMap;
import javax.xml.XMLConstants;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/query/Tuple.java b/marklogic-client-api/src/main/java/com/marklogic/client/query/Tuple.java
index bd306d99a..37bb6bbbe 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/query/Tuple.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/query/Tuple.java
@@ -17,8 +17,8 @@
import com.marklogic.client.impl.TuplesBuilder;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElement;
import java.util.ArrayList;
import java.util.List;
diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/query/TypedDistinctValue.java b/marklogic-client-api/src/main/java/com/marklogic/client/query/TypedDistinctValue.java
index 7e01ec941..3bfb74ddc 100644
--- a/marklogic-client-api/src/main/java/com/marklogic/client/query/TypedDistinctValue.java
+++ b/marklogic-client-api/src/main/java/com/marklogic/client/query/TypedDistinctValue.java
@@ -17,8 +17,8 @@
import com.marklogic.client.impl.ValueConverter;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlValue;
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlValue;
/**
* A TypedDistinctValue is a value that includes a type.
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/BinaryDocumentTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/BinaryDocumentTest.java
index 682fb3ba8..798c2d7d3 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/BinaryDocumentTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/BinaryDocumentTest.java
@@ -25,7 +25,7 @@
import org.junit.jupiter.api.Test;
import org.w3c.dom.Document;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import java.io.File;
import java.io.IOException;
import java.util.Random;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/BitemporalTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/BitemporalTest.java
index 1f7186cfa..a9f2d9c22 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/BitemporalTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/BitemporalTest.java
@@ -30,7 +30,7 @@
import org.junit.jupiter.api.*;
import org.w3c.dom.Document;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import java.util.Calendar;
import java.util.Random;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/BufferableHandleTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/BufferableHandleTest.java
index b12c28338..93bd7f6b1 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/BufferableHandleTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/BufferableHandleTest.java
@@ -29,8 +29,8 @@
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/BulkReadWriteTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/BulkReadWriteTest.java
index b5da2fade..ca73d24a3 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/BulkReadWriteTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/BulkReadWriteTest.java
@@ -27,7 +27,7 @@
import org.junit.jupiter.api.*;
import org.w3c.dom.Document;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import java.io.BufferedReader;
import java.io.IOException;
import java.net.URLEncoder;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/City.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/City.java
index eb286b579..43f8af71d 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/City.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/City.java
@@ -18,7 +18,7 @@
import com.marklogic.client.pojo.annotation.*;
import com.marklogic.client.pojo.annotation.PathIndexProperty.ScalarType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class City {
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/ClosingHandlesTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/ClosingHandlesTest.java
index 87ac41cac..902ed9c3d 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/ClosingHandlesTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/ClosingHandlesTest.java
@@ -23,7 +23,7 @@
import com.marklogic.client.io.marker.AbstractReadHandle;
import org.junit.jupiter.api.Test;
-import javax.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBContext;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.IOException;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/EvalTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/EvalTest.java
index af0940a62..a70520764 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/EvalTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/EvalTest.java
@@ -41,7 +41,7 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.parsers.DocumentBuilderFactory;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/HandleAsTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/HandleAsTest.java
index cc77c65a0..f65e5fe3e 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/HandleAsTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/HandleAsTest.java
@@ -39,8 +39,8 @@
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.annotation.XmlRootElement;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/JAXBHandleTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/JAXBHandleTest.java
index 91f4fa3b2..271ed1ff3 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/JAXBHandleTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/JAXBHandleTest.java
@@ -23,8 +23,8 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/QueryOptionsManagerTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/QueryOptionsManagerTest.java
index c8d79f680..2af4145ed 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/QueryOptionsManagerTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/QueryOptionsManagerTest.java
@@ -31,7 +31,7 @@
import org.w3c.dom.ls.DOMImplementationLS;
import org.xml.sax.SAXException;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java
index 1d48a2c0c..fd3ac6eee 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java
@@ -36,7 +36,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/example/cookbook/JAXBDocumentTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/example/cookbook/JAXBDocumentTest.java
index 9342b155c..8e228be0d 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/example/cookbook/JAXBDocumentTest.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/example/cookbook/JAXBDocumentTest.java
@@ -18,7 +18,7 @@
import com.marklogic.client.example.cookbook.JAXBDocument;
import org.junit.jupiter.api.Test;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import java.io.IOException;
import static org.junit.jupiter.api.Assertions.*;
diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/util/Refers.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/util/Refers.java
index dff76c73a..3aec20118 100644
--- a/marklogic-client-api/src/test/java/com/marklogic/client/test/util/Refers.java
+++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/util/Refers.java
@@ -15,7 +15,7 @@
*/
package com.marklogic.client.test.util;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
import java.util.Map;
diff --git a/ml-development-tools/build.gradle b/ml-development-tools/build.gradle
index 9ec628cce..bc9cf4d8e 100644
--- a/ml-development-tools/build.gradle
+++ b/ml-development-tools/build.gradle
@@ -15,12 +15,6 @@ dependencies {
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin:2.15.3'
implementation 'com.networknt:json-schema-validator:1.0.88'
- if (JavaVersion.current().isJava9Compatible()) {
- implementation 'javax.xml.bind:jaxb-api:2.3.1'
- implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.8'
- implementation 'org.glassfish.jaxb:jaxb-core:2.3.0.1'
- }
-
// Not yet migrating this project to JUnit 5. Will reconsider it once we have a reason to enhance
// this project.
testImplementation 'junit:junit:4.13.2'
diff --git a/ml-development-tools/src/test/kotlin/com/marklogic/client/test/dbfunction/fntestgen.kt b/ml-development-tools/src/test/kotlin/com/marklogic/client/test/dbfunction/fntestgen.kt
index 5fc83a0db..a947b5d2f 100644
--- a/ml-development-tools/src/test/kotlin/com/marklogic/client/test/dbfunction/fntestgen.kt
+++ b/ml-development-tools/src/test/kotlin/com/marklogic/client/test/dbfunction/fntestgen.kt
@@ -46,7 +46,7 @@ enum class TestVariant {
}
fun getAtomicMappingImports(): String {
return """
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import javax.xml.datatype.DatatypeFactory;
import java.time.format.DateTimeFormatter;
import java.util.regex.Pattern;
@@ -1852,7 +1852,7 @@ import java.io.Reader;
import java.io.IOException;
import java.util.Arrays;
import java.util.stream.Stream;
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
import java.lang.reflect.Array;
$extraImports
diff --git a/pom.xml b/pom.xml
index 945c1c1aa..7f6e70514 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,21 +14,21 @@ It is not intended to be used to build this project.
6.3.0
- javax.xml.bind
+ jakarta.xml.bind
jaxb-api
- 2.3.1
+ 3.0.1
runtime
org.glassfish.jaxb
jaxb-runtime
- 2.3.8
+ 3.0.2
runtime
org.glassfish.jaxb
jaxb-core
- 2.3.0.1
+ 3.0.2
runtime