- #639 - support DocumentManager.setReadTransform for DocumentManager.search calls
- #690 - Get a JobTicket by JobId
- #752 - Allow setting JobId for a JobTicket
- #756 - Add RawCtsQueryDefinition support for values queries
- #787 - Support advancing LSQT
- #813 - Add NoResponseListener for failover scenarios which throw EOFException
- #818 - Document failover support
- #822 - Add initialization step for QueryBatchListener
- #838 - Add HostAvailabilityListener.RetryListener and QueryBatcher.retryWithFailureListeners to facilitate listeners retrying during failover scenarios
This release fixes many bugs related to failover scenarios
- #473 - add "ML-Agent-ID: java" header to improve request origination metrics
- #526 - Possible Race Condition during black-listing of hosts
- #557, #570 - Failures during failover require new HostAvailabilityListener.RetryListener
- #562 - Cookbook recipe for bulk export to JDBC
- #563 - Cookbook recipe for incremental load from JDBC
- #565 - Cookbook recipe for bulk load from JDBC
- #579 - Job not getting stopped when number of available hosts < 'minHosts' property
- #641 - Upgrade all dependencies
- #725 - Fix ServerEvaluationCall.evalAs(Class) closing underlying streams prematurely
- #744 - Fix a WriteBatcher hang in awaitCompletion after forest failover
- #768 - Document supported Java runtime
- #775 - Fix QueryManagerImpl which incorrectly hardcoded start page to 1
- #785 - Support HTTPS with OKhttp
- #798 - Fix WriteBatcher from retrying when job is stopped
- #802 - Remove a spurious warning about StringQueryDefinitionImpl
- #811 - Fix OkHttpServices which threw NPE when release() method called more than once
- #720 - Add a RawCtsQueryDefinition to parallel RawCombinedQueryDefinition and RawStructuredQueryDefinition
- #722 - add support for minimum distance on near-query
- #65 - Replace internal HTTP library Jersey with OkHttp to improve performance, future readiness #391, and overcome version conflicts #769, #282
- #470 - Share http connection pool across DatabaseClient instances to allow scenarios where many DatabaseClient instances are desirable
- #367 - Upgrade version of jdom2 dependency to 2.0.6 to overcome vulnerability in dependency xalan-2.7.1
- #368 - Remove dependency on jersey-apache-client4-1.17 to overcome vulnerability in dependency HttpClient 4.1.1
- #711 - Upgrade dependencies slf4j-api to 1.7.25
- #715 - Upgrade dependencies jdom2 to 2.0.6, gson to 2.8.0, and htmlcleaner to 2.19
- #400 - Optic API
- #402 - geo double precision and geo polygon search
- #404 - add Kerberos support
- #413 - add support for document metadata values
- #406 - certificate-based authentication
- #414 - Bitemporal ML9 features - version URI, Wipe, Protect, document patch
- #465 - Data Movement SDK
- #466 - add StructuredQueryBuilder.coordSystem to set Geo coordinate system
- #473 - send header "ML-Agent-ID: java" with every HTTP request so REST layer can track which calls come from Java Client API
- #550 - add Capability NODE_UPDATE
- many javadoc improvements
- #210 - fail fast when library module path doesn't begin with /ext
- #234 - offer a way to close the input source for XMLStreamReaderHandle
- #241 - fix misleading WARN warning message from values call
- #249 - fixes DocumentPatchBuilder.replaceValue with numbers or booleans
- #256 - be explicit about desired format of QBE response
- #262 - update SearchHandle to support search:extracted elements
- #288 - support changes made in server-generated metadata for binary docs
- #292 - support changes made in search:search response with extracted results
- #294 - DocumentPage.size was including metadata in counts but should not have
- #365 - reduce duplicate code in JerseyServices
- #421 - Some of the read handlers do not populate properly formats and mime-types when used with ResourceServices
- #424 - remove logback dependency so slf4j works as it should
- #436 - rename java-client-api-M.m.p.jar JAR to marklogic-client-api-M.m.p.jar
- #448 - Efficiencies: avoid Object construction, auto-boxing, etc.
- #486 - PojoRepository.count(query) does not scope count with the query
- #524 - add support for markdown javadocs
- #560 - support new 428 status code for missing content version
- #582 - NullPointerException thrown while doing eval() with client object created with incorrect credentials
- #610 - remove support for deprecated keyvalue endpoint
- #621 - remove deprecated APIs
- #651 - don't set the handle format from the descriptor if it's null
- #687 - clean up indenting across the project## 3.0.7
- some javadoc improvements and code/test cleanup
- #423 - add support to SearchHandle for extract-resolution time
- #592, #594, #598 - chunked HTTP broke certain XML parsers unless we set XMLInputFactory.isCoalescing to true
- full list here
- some javadoc improvements and code/test cleanup
- #380 - rename SPARQLQueryDefinition.setOptimzeLevel to setOptimizeLevel
- #392 - add DocumentWriteSet.addAs methods
- #432 - a more portable variant to initialize (and teardown) a test server
- #433 - moving JAXBContext initialization into a static, lazily initialized field
- #434 - pass thru full response body when an error message doesn't conform to expected formats
- #437 - fix support for Date range queries; upgrade to latest Jackson
- #467 - call shutdown on ThreadSafeClientConnManager (the HTTP connection pool) to avoid any lingering connections in CLOSE_WAIT
- #472 - remove unnecessary INFO logging from RuleDefinition
- expose PojoRepository.getId
- full list here
- some javadoc improvements and code/test cleanup
- #176 - deprecate QueryOptionsHandle since it depends on QueryOptions which is already deprecated
- #261, #266, #382, #388, and #390 - fix several errors when woodstox is used
- #364 and #381 - respect all cookies (including load-balancer created cookies) when Transaction is used
- add method ServerTransform.addParameter
- #378 - add DATE type support to RDFTypes
- #396 - fix DocumentManager.write(DocumentWriteSet, ServerTransform, Transaction) to use ServerTransform
- #395 - fix RuleManager.matchAs(content, ruleListHandle) which was throwing NPE
- full list here
- Semantics API - GraphManager for CRUD of semantic graphs; SPARQLQueryManager for executing SPARQL queries (select, describe, construct, and ask) and using SPARQL Update
- Enable MarkLogic Jena API (separate project)
- Enable MarkLogic Sesame API (separate project)
- Search Extract - add support to SearchHandle (actually MatchDocumentSummary) for content extracted by the extract-document-data option
- Bi-Temporal enhancements - support bulk write of bitemporal documents; expose bitemporal system time
- Bulk delete
- Many bug fixes
- Pojo Façade - persist POJOs as JSON objects and use a simple API to query them with all the power of MarkLogic's search engine
- Eval (and Invoke) - directly access MarkLogic's powerful server-side XQuery or JavaScript
- Bulk Read & Write - send and retrieve documents and metadata in batches for significant performance improvements
- JSON - JacksonHandle, JacksonDatabindHandle, and JacksonParserHandle make wrangling JSON a pleasure
- JavaScript Extensions - develop production-ready server-side extensions using ready-to-go scaffolding
For more details, please read this deeper dive