Releases: marklogic/java-client-api
8.0.0
This major release does not provide any new functionality, but rather raises the minimum Java version to 17 and updates all dependencies to their latest version, most notably the underlying OkHttp library.
Customers wishing to remain on Java 8 or Java 11 can continue using the 7.2.0 release or earlier and may continue to submit enhancement requests or bug fixes that can be addressed via a 7.x release.
Other details on this release:
- The deprecated 
MarkLogicCloudAuthenticationContextclass has been removed. This class was deprecated in release 7.2.0 in favor of theProgressDataCloudAuthenticationContextwhich provides the same functionality. - The 
jakarta.xml.bind:jakarta.xml.bind-apidependency is no longer anapidependency but rather animplementationdependency. Customers using JAXB are expected to provide their desired version of this dependency on their compile class path. - The 
ClientCookieclass referenced in the public AP of the Java Client's transaction support is now in thecom.marklogic.clientpackage instead ofcom.marklogic.client.impl. - The 
RequestParametersandServerTransformclasses no longer use thread-safe maps for storing parameters. The thread-safe nature of these maps was not documented and was judged not to fit the expected use of these classes, as having multiple threads manipulate the set of parameters in these classes would lead to unpredictable behavior. 
7.2.0
This minor release, which coincides with the 12 GA release of the MarkLogic server, addresses the following items:
- The client now defaults to TLSv1.3 when possible, which includes when connecting to an app server in MarkLogic 12 that requires SSL.
 - Based on changes between the MarkLogic 12 EA and 12 GA releases, renamed 
cosineSimilaritytocosinein thecom.marklogic.client.expression.VecExprclass and modified the signature of theannTopKmethod in thecom.marklogic.client.expression.PlanBuilderclass. - Added 
com.marklogic.client.util.VectorUtilto support encoding and decoding vectors. Encoded vectors can be indexed by MarkLogic 12 and will typically consume fewer system resources than un-encoded vectors. - Added 
com.marklogic.client.row.RowTemplateto simplify common use cases with Optic queries. - Bumped 
com.fasterxml.jacksondependencies from 2.17.2 to 2.19.0. - Deprecated 
com.marklogic.client.DatabaseClientFactory.MarkLogicCloudAuthContextclass in favor of the newcom.marklogic.client.DatabaseClientFactory.ProgressDataCloudAuthContextclass. - Removed deprecated 
HttpClientConfiguratorinterface. 
7.1.0
This minor release addresses the following items:
- Invoking custom code via 
ServerEvaluationCallnow results in the multipart response from MarkLogic being read via a stream instead of the entire response being ready into memory. Note that when using anEvalResultIterator, you must call theclose()method to ensure that the stream is properly closed. - The 
DatabaseClientinterface now extendsjava.io.Closeableso that it can be used in try-with-resources statements. - The property 
marklogic.client.connectionStringis now supported viaDatabaseClientFactory. StructuredQueryBuildernow has methods for true and false queries and for building operator states.- MarkLogic 12 users can now use the 
shortestPathandannTopKmethods in the Optic plan builder. - MarkLogic 12 users can now use the 
bm25,zero, andrandomscore methods in the Optic plan builder. 
7.0.0
This major release introduces one breaking change from the latest 6.x release - the client now depends on the Jakarta XML Binding API instead of the older JAXB API. This change is reflected in any public classes in the client that previously depended on types in the javax.xml.bind namespace. Those classes now depend on types with the same name but in the jakarta.xml.bind namespace.
This release is also tied to the early access release of MarkLogic Server version 12. The primary addition to this release that depends on MarkLogic 12 is a set of new APIs in the Optic PlanBuilder class. Please note that any change listed below that depends on MarkLogic 12 is subject to change in a future 7.x release to accommodate server changes before the general access release of MarkLogic 12.
Full set of changes in this release:
- Now depends on the 
jakarta.xml.bindAPI instead of thejavax.xml.bindAPI. - Can now use BM25 as a scoring method when building an Optic plan (depends on MarkLogic 12).
 - Can now use search options with the Optic 
fromSearchDocsaccessor (depends on MarkLogic 12). - Can now use new functions in the vector namespace when building an Optic plan (depends on MarkLogic 12).
 - Fixed bug #1688 that prevented reads on documents with non-US-ASCII characters in URIs.
 - Bumped Jackson dependencies to 2.17.2.
 - Removed deprecated classes.
 
6.6.1
This patch release addresses the following items:
- A DMSDK 
WriteBatchernow supports writing a "naked" document - i.e. a URI with only a properties fragment. This is supported by thev1/documentsendpoint and was mistakenly prohibited byWriteBatcher. - DMSDK batchers have new info-level logging to capture when they are started and stopped to facilitate debugging, particularly around when a batcher is unexpectedly stopped.
 - Adjusting the thread pool size on a 
QueryBatchernow works correctly on Java 11 and higher; previously, it only worked correctly on Java 8. 
6.6.0
This minor release coincides with the release of MarkLogic Server 11.2.0 and provides the following enhancements:
- Can now authenticate with a MarkLogic app server that requires OAuth authentication. Can either use the new 
OAuthContextclass or the newmarklogic.client.oauth.tokenproperty when constructing aDatabaseClientvia properties. - Can now patch one or more documents via an Optic plan using the new 
patchBuildermethod available oncom.marklogic.client.expression.PlanBuilder. Requires MarkLogic 11.2.0 or higher. - Can now capture errors occuring during execution of an Optic plan via the new 
onErrormethod. Requires MarkLogic 11.2.0 or higher. - The 
com.marklogic.client.document.GenericDocumentManagerinterface now support temporal operations. - DMSDK log messages pertaining to a queue being flushed are now at the 
debugandtracelevels instead ofinfo. - Fixed #1637 so that the DMSDK 
awaitCompletionmethod waits for the correct duration. 
6.5.0
This minor release addresses the following items:
- When constructing a 
DatabaseClientand configuring two-way SSL, a separate trust store can be configured via the new propertiesmarklogic.client.truststore.path,marklogic.client.truststore.password,marklogic.client.truststore.type, andmarklogic.client.truststore.algorithm. These can be passed in via the newClient(Function<String, Object> propertySource) method or programmatically set with new methods in DatabaseClientBuilder. - The OkHttp dependency was bumped from 4.11.0 to 4.12.0.
 - The Jackson dependency was bumped from 2.15.2 to 2.15.3.
 
6.4.1
This patch release addresses the following items:
DocumentManager.searchnow works whenMETADATAVALUEShas been set as a category on theDocumentManager.- 3 methods in 
DocumentManagerthat support searching/reading on a server timestamp have been exposed; they have long been working in the implementation class but were mistakenly never exposed in the interface. 
6.4.0
This minor release addresses the following items:
- Two-way SSL can now be configured via a new set of properties - 
marklogic.client.ssl.keystore.path,marklogic.client.ssl.keystore.password,marklogic.client.ssl.keystore.type, andmarklogic.client.ssl.keystore.algorithm. These can be passed in via thenewClient(Function<String, Object> propertySource)method or programmatically set with new methods inDatabaseClientBuilder. - Support was added for new Optic methods in MarkLogic 11.1: 
joinDocAndUriis now supported;cts.pointandcts.polygonnow accept String arguments; andop.geo.geohashSubhashescan be called with a single column argument. 
6.3.0
This minor release addresses the following items:
- #1565 Optimistic locking failures now throw either 
ContentWrongVersionExceptionorContentNoVersionExceptioninstead of the too-genericFailedRequestException(both new exceptions extendFailedRequestExceptionthough). DocumentMetadataHandle.DocumentPermissionsnow has anaddFromDelimitedStringmethod for the common use case of defining permissions via a string of the form "role1,capability1,role2,capability2,etc".- Inclusion of the "Accept-Encoding=gzip" request header, which by default is sent on every request, can be disabled for users that do not want responses to be gzipped. This can be accomplished either via the new 
com.marklogic.client.extra.okhttpclient.RemoveAcceptEncodingConfiguratorclass or by setting themarklogic.client.disabledGzippedResponsesproperty totruewhen constructing aDatabaseClientvia a set of properties. DatabaseClientFactory.addConfiguratorcan now be called multiple times. Configurators can be removed via the newDatabaseClientFactory.removeConfiguratorsmethod.- The 
com.fasterxml.jacksondependencies were bumped from 2.14.3 to 2.15.2.