Releases: marklogic/java-client-api
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
OAuthContext
class or the newmarklogic.client.oauth.token
property when constructing aDatabaseClient
via properties. - Can now patch one or more documents via an Optic plan using the new
patchBuilder
method 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
onError
method. Requires MarkLogic 11.2.0 or higher. - The
com.marklogic.client.document.GenericDocumentManager
interface now support temporal operations. - DMSDK log messages pertaining to a queue being flushed are now at the
debug
andtrace
levels instead ofinfo
. - Fixed #1637 so that the DMSDK
awaitCompletion
method waits for the correct duration.
6.5.0
This minor release addresses the following items:
- When constructing a
DatabaseClient
and 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.search
now works whenMETADATAVALUES
has been set as a category on theDocumentManager
.- 3 methods in
DocumentManager
that 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:
joinDocAndUri
is now supported;cts.point
andcts.polygon
now accept String arguments; andop.geo.geohashSubhashes
can be called with a single column argument.
6.3.0
This minor release addresses the following items:
- #1565 Optimistic locking failures now throw either
ContentWrongVersionException
orContentNoVersionException
instead of the too-genericFailedRequestException
(both new exceptions extendFailedRequestException
though). DocumentMetadataHandle.DocumentPermissions
now has anaddFromDelimitedString
method 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.RemoveAcceptEncodingConfigurator
class or by setting themarklogic.client.disabledGzippedResponses
property totrue
when constructing aDatabaseClient
via a set of properties. DatabaseClientFactory.addConfigurator
can now be called multiple times. Configurators can be removed via the newDatabaseClientFactory.removeConfigurators
method.- The
com.fasterxml.jackson
dependencies were bumped from 2.14.3 to 2.15.2.
6.2.2
This patch release addresses the following issues:
- Constructing a
CertificateAuthContext
viaDatabaseClientBuilder
no longer requires a certificate file and password to be provided. A certificate can be provided via anSSLContext
instead. - Improved error message when document metadata fails to be written.
6.2.1
This patch release addresses the following issues:
- #1566
resultRows
inRowManager
now honors point-in-time query timestamp - #1562 MarkLogic Cloud token renewal is now based on a 401 response code
- #1561 Improved error message when HTTP is used but HTTPS is required by the MarkLogic app server
- #1559 Upgraded OkHttp dependency from 4.10 to 4.11 and Jackson dependency from 2.14.1 to 2.14.3
6.2.0
The 6.2.0 release of the MarkLogic Java Client includes the following enhancements and fixes:
- #1537 A
StructuredQueryDefinition
can now be serialized via ajavax.xml.stream.XMLStreamWriter
. RowManager
now supports submitting GraphQL queries via the newgraphql
andgraphqlAs
methods.- The
columnInfo
method inRowManager
now supports any type of plan. ExportListener
now accepts aConsumer<DocumentPage>
so that users can process a batch of documents instead of one document at a time.- The size of a thread pool used by
QueryBatcher
can now be adjusted at runtime. - Errors resulting from dropped or failed connections now include more context to assist with debugging.
- Tokens are now automatically renewed when using MarkLogic Cloud authentication.
6.1.0
The 6.1.0 release of the MarkLogic Java Client includes the following enhancements and fixes:
- A base path can now be provided when constructing a
DatabaseClient
, enabling scenarios such as a reverse proxy running in front of MarkLogic. - Added a new factory method to
DatabaseClientFactory
for constructing aDatabaseClient
based on a standard set of property names. This is intended to simplify scenarios where an application can collect a variety of inputs from a user for constructing aDatabaseClient
. The application can now use this factory method to determine how to construct the client. - Added a new
DatabaseClientBuilder
that provides a fluent builder-style approach to constructing aDatabaseClient
. - Added support for authenticating with the upcoming MarkLogic Cloud service.
- Fixed #1327, where
QueryBatcher
would fail to stop when an error occurred while retrieving URIs. - Fixed a bug where errors from the REST eval endpoint were not handled correctly, thus hiding the actual error. The actual error is now returned to the user.
- Fixed a bug where the
fromDocDescriptors
method inPlanBuilder
might fail due to a class-not-found error. - Cookbook examples are now in a separate Gradle subproject.
This minor release does not coincide with a release of the MarkLogic server. It continues to support all released versions of MarkLogic 11 and will work with MarkLogic 10 with the exception of features it supports that do not exist in MarkLogic 10, such as the Optic Update support introduced in the 6.0.0 release.
6.0.0
The 6.0.0 release of the MarkLogic Java Client coincides with the release of MarkLogic 11 and includes the following enhancements and fixes:
- The README guide now includes instructions on using the Java Client with Java 11 and Java 17
- Dependencies have been updated to address security vulnerabilities, most notably with OkHttp now at 4.10.0 and Jackson now at 2.13.4, thus addressing a recent CVE
- Support for the Optic Update technology preview . A cookbook example exists as a starting point, with more examples available here and a user guide coming in the near future.
- #1345 DMSDK now works properly with tiered storage