Loading TOC...
Release Notes (PDF)

Release Notes — Chapter 5

Planning for Future Upgrades

This chapter provides guidelines and warnings for preparing for changes expected in a future release, such as announcements of deprecated interfaces. You are not required to make changes related to the topics in this section at this time, but you should plan to do so in the future.

Packaging API Deprecated

In MarkLogic 9, the Packaging API has been deprecated. It will be removed from the product in MarkLogic 10.

The following table lists the deprecated endpoints and the new alternative.

Deprecated Endpoints Alternative
Base path /manage/v2/packages:
  • GET /manage/v2/packages
  • POST /manage/v2/packages
  • GET /manage/v2/packages/{pkgname}
  • POST /manage/v2/packages/{pkgname}
  • HEAD /manage/v2/packages/{pkgname}
  • DELETE /manage/v2/packages/{pkgname}
  • GET /manage/v2/packages/{pkgname}/databases
  • GET /manage/v2/packages/{pkgname}/databases/{name}
  • POST /manage/v2/packages/{pkgname}/databases/{name}
  • HEAD /manage/v2/packages/{pkgname}/databases/{name}
  • DELETE /manage/v2/packages/{pkgname}/databases/{name}
  • POST /manage/v2/packages/{pkgname}/install
  • GET /manage/v2/packages/{pkgname}/servers
  • GET /manage/v2/packages/{pkgname}/servers/{name}
  • POST /manage/v2/packages/{pkgname}/servers/{name}
  • HEAD /manage/v2/packages/{pkgname}/servers/{name}
  • DELETE /manage/v2/packages/{pkgname}/servers/{name}

Use the following endpoints of CMA REST API instead:

  • GET /manage/v3
  • POST /manage/v3

For more details, see .Configuration Management API (CMA) REST Endpoints.

Base path /manage/v2/tickets:
  • POST /manage/v2/tickets/{ticketnumber}/revert

info and infodev APIs Deprecated

The XQuery library modules in the info and infodev namespaces are deprecated as of MarkLogic 9 and will be removed from the product in a future release. For example, the functions info:ticket and infodev:ticket-create are deprecated.

Annotated Query Output from search:parse Deprecated

The search:parse XQuery function and search.parse Server-Side JavaScript functions can return an annotated cts:query if you pass in "cts:annotated-query" as the output format parameter value. As of MarkLogic 9, use of "cts:annotated-query" is deprecated. Support for this format will be removed in a future release.

If you currently use the annotated query output as an intermediate step in a transformation, you should use the structured query ("search:query") output format instead. Runtime modification of queries is a primary use case for structured query. For more details, see Searching Using Structured Queries in the Search Developer's Guide.

If you currently use the annotated query output format to recover the original query text using search:unparse, you should cache the original query text yourself.

Search API Grammar Customization Deprecated

Customizing the string query grammar through the Search API grammar query option is now deprecated. Support for this feature will be removed in a future release.

If your application currently relies on a Search API grammar customization, you should consider alternatives such as the following:

The mlcp Option -tolerate_errors Deprecated

The -tolerate_errors option of the mlcp import command is deprecated (and ignored) as of MarkLogic 9.0-2. The option will be removed in a future release. Mlcp now always tolerates errors.

xdmp:transaction-mode XQuery Prolog Option Deprecated

The XQuery prolog option xdmp:transaction-mode is deprecated as of MarkLogic 9.0-2. Use the xdmp:commit and xdmp:update prolog options instead.

Note that the new prolog options differ from xdmp:transaction-mode in that they affect only the transaction create after their declaration, where as xdmp:transaction-mode settings persist across an entire session.

The following table illustrates the correspondence between the old and new options settings.

xdmp:transaction-mode Value Equivalent xdmp:commit and xdmp:update Option Settings
"auto"
declare option xdmp:commit "auto";
declare option xdmp:update "auto";
"update-auto-commit"
declare option xdmp:commit "auto";
declare option xdmp:update "true";
"update"
declare option xdmp:commit "explicit";
declare option xdmp:update "true";
"query"
declare option xdmp:commit "explicit";
declare option xdmp:update "false";

Note that the default values for xdmp:commit and xdmp:update are both 'auto', so you do not need to set this value explicitly in most cases.

For more details, see xdmp:update and xdmp:commit in the XQuery and XSLT Reference Guide.

Deprecation of transaction-mode Option to xdmp:eval

The transaction-mode option of the xdmp:eval XQuery function and the xdmp.eval JavaScript function is deprecated as of MarkLogic 9.0-2. Use the commit and update options instead. For more details, see the function reference documentation for xdmp:eval (XQuery) and xdmp.eval (JavaScript).

This option deprecation (and alternative option settings apply to the following functions:

XQuery JavaScript
xdmp:eval xdmp.eval
xdmp:javascript-eval xdmp.xqueryEval
xdmp:invoke xdmp.invoke
xdmp:invoke-function xdmp.invokeFunction
xdmp:spawn xdmp.spawn
xdmp:spawn-function

The following table illustrates the correspondence between the old and new option settings:

transaction-mode Option Value Equivalent commit and update Option Values
auto
commit: "auto"
update: "auto"
update-auto-commit
commit: "auto"
update: "true"
update
commit: "explicit"
update: "true"
query
commit "explicit"
update "false"

XCC Session.setTransactionMode is Deprecated

Use of Session.setTransactionMode to specify commit semantics and transaction type is deprecated as MarkLogic 9.0-2. This function will be removed in a future version. Use the new Session.setAutoCommit and Session.setUpdate methods instead.

The following table illustrates how to replace calls to setTransactionMode with equivalent calls to setAutoCommit and setUpdate.

If you call setTransactionMode with this value: Then replace it with the following calls on the same Session object
AUTO
setAutoCommit(true);
setUpdate(Session.Update.AUTO);
MULTI_AUTO
setAutoCommit(false);
setUpdate(Session.Update.AUTO);
UPDATE
setAutoCommit(false);
setUpdate(Session.Update.TRUE);
QUERY
setAutoCommit(false);
setUpdate(Session.Update.FALSE);
UPDATE_AUTO_COMMIT
setAutoCommit(true);
setUpdate(Session.Update.TRUE);
QUERY_SINGLE_STATEMENT
setAutoCommit(true);
setUpdate(Session.Update.FALSE);

Java Client API 4.0.2 Deprecations

Java Client API 4.0.2 introduces the following deprecations.

The com.marklogic.client.extra.httpclient.HttpClientConfigurator interface is deprecated and will be removed in a future release. Use the new com.marklogic.client.extra.okhttpclient.OkHttpClientConfigurator interface instead. Attaching a configurator based on HttpClientConfigurator to a DatabaseClientFactory object no longer has any effect on the HTTP configuration.

The single parameter version of DatabaseClientFactory.SecurityContext.withSSLContext has been deprecated and will be removed in a future release. Instead, use the new version that requires an X509TrustManager as its second parameter. This change affects all classes that implement DatabaseClientFactory.SecurityContext, such as DatabaseClientFactory.CertificateAuthContext, DatabaseClientFactory.KerberosAuthContext, and DatabaseClientFactory.DigestAuthContext.

Java Client API 4.0.4 Deprecations

Java Client API 4.0.4 deprecates the following interfaces:

NamespacesManager Interface Deprecated

The Java Client API interfaces for configuration namespace bindings are deprecated as of version 4.0.4 and will be removed in a future release.

Instead, you should use the REST Management API to define namespace bindings for your App Server. For details, see the namespaces property of the payload for PUT:/manage/v2/servers/{id|name}/properties.

This deprecation notice affects the following components of the Java Client API:

  • The com.marklogic.client.admin.NamespacesManager interface.
  • The com.marklogic.client.admin.ServerConfigurationManager.newNamespacesManager method.

QueryBatcher.getQuerySuccessListeners Deprecated

The method QueryBatcher.getQuerySuccessListeners is deprecated as of Java Client API 4.0.0 and will be removed in a future release. Use QueryBatcher.getUrisReaderListeners instead.

Both methods do the same thing in the same way. You do not need to change anything but the method name.

REST Client API Namespace Configuration Deprecation

The REST Client API methods for configuring namespace bindings are deprecated as of MarkLogic 9.0-5 and will be removed in a future release.

Instead, you should use the REST Management API to define namespace bindings for your App Server. For details, see the namespaces property of the payload for PUT:/manage/v2/servers/{id|name}/properties.

This deprecation notice affects the following methods of the REST Client API:

  • GET, POST, PUT and DELETE on /v1/config/namespaces
  • GET, PUT, and DELETE on /v1/config/namespaces/{prefix}

Configuration Packaging XQuery Library Deprecated

In MarkLogic 9.0-5, the Configuration Packaging XQuery API library has been deprecated. It will be removed from the product in a future release.

The following table lists the deprecated methods and the new alternative.

Deprecated Methods Alternative
Configuration Packaging (pkg:) library:

Use the following methods of Configuration Management (cma:) library instead:

For more details, see Configuration Management API (CMA) XQuery and JavaScript Libraries.

Configuration Manager Deprecated

The Configuration Manager tool is deprecated starting with MarkLogic release 9.0-5 and will be removed from the product in a future release.

« Previous chapter
Next chapter »