Releases: marklogic/java-client-api
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.bind
API instead of thejavax.xml.bind
API. - 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
fromSearchDocs
accessor (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
WriteBatcher
now supports writing a "naked" document - i.e. a URI with only a properties fragment. This is supported by thev1/documents
endpoint 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
QueryBatcher
now 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
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.