eXist-db 4.6.0

v4.6.0 - February 19, 2019

eXist-db 4.6.0 has been released.

eXist-db 4.6.0 builds atop eXist-db 4.6.0 with several new features and important bug fixes.

Features

  • New De-duplicationg BLOB store for binary documents - see https://blog.adamretter.org.uk/blob-deduplication/
  • More elaborate XPath expressions in the Lucene index config of collection.xconf are now supported
  • New non-blocking lock-free implementation of the Transaction Manager
  • CData serialization now respects the output:cdata-section-elements option
  • New XQuery function util:eval-and-serialize for dynamic XQuery evaluation and serialization.
  • New XQuery function util:binary-doc-content-digest to retrieve a digest of a Binary Document
  • Adaptive serialization is now used for fn:trace and util:log-* functions
  • Updated Jetty to version 9.4.14.v20181114
  • Updated to JLine version 3
  • Updated to XML:DB API 1.7.0

Bug fixes

  • Fixed Lucene term range queries
  • Copying an XML Resource now correctly removes any nodes that it replaces
  • Fixed a memory leak with XQuery serializers
  • Fixed Garbage Collection churn issue with serialization
  • Fixed Backup/Restore progress reporting
  • XQuery Library Modules on the Java Classpath are now correctly resolved from the importing XQuery module
  • Prevent a NullPointerException in fn:unparsed-text-available
  • Collection permissions are now correctly prefixed 'c' in the Java Admin Client shell
  • Fixed an ArrayOutOfBoundException with array:get
  • Corrected the XPath Error Code for array:get
  • Fixed text alignment of output in the Java Admin Client shell
  • Fixed missing dependencies issue with the Java Admin Client when launched via WebStart
  • When building from source, if required XAR packages are not available, the build will now fail.

Backwards Compatibility

eXist-db 4.6.0 is not binary compatible with previous versions of eXist-db (including earlier 4.5.x releases) because of new BLOB Store, which required changes to the collections.dbx and Journal. Before upgrading to this version of eXist-db, you MUST perform a full backup and restore. Users who are upgrading should always consult the Upgrading Guide in the documentation.

Downloading this Version

  • eXist-db v4.6.0 is available for download from GitHub.
  • Docker images for are available from eXist-db's DockerHub.
  • Maven artifacts are available from our mvn-repo.
  • Mac users of the Homebrew package repository may acquire eXist 4.6.0 directly from there via. the exist-db-rc cask.

eXist-db 5.0.0 RC5

## v5.0.0-RC5 - November 21, 2018

The fifth Release Candidate (RC) for eXist-db 5.0.0 has been released.

eXist-db 5.0.0-RC5 builds atop eXist-db 5.0.0-RC4 with several new features and important bug fixes.

  • NOTE: A Release Candidate is not recommended for production use. We have tested the release extensively, and we now invite all users to report both their positive and negative experiences with it. As always please make sure you have frequent and correct backups of your database.

### Features

  • Added a facility for configuring the XML parser from conf.xml. This allows the user to specify various options. It is suggested to use the commented options in conf.xml to secure the parser from XML external entity attacks. - #2146
  • Updated to AspectJ 1.9.2 for improved Java 11 support - #2237
  • Added a checksum to the Journal for each entry to detect corruption - #2256
  • Added a checksum to the Journal for the content of binary documents - #2265
  • Improved the provenance of the XML:DB API dependency #2264
  • Improved the provenance of the EXPath Pkg Repo fork dependency - #2286

### Bug fixes

  • Fixed a startup failure affecting macOS under Java 11 - #2189
  • Fixed an issue affecting mixed types in a subsequence - #2197
  • Fixed preemptive authentication in the EXPath HTTP Client - #2209
  • Fixed a concurrency issue in ContextUpdateListener #2212
  • Fixed map constructor to prevent duplicate keys - #2215
  • Fixed thread naming - #2218
  • Fixed several journaling and recovery issues for XML and binary documents - #2249
  • Fixed an issue with lock lifetime when changing permissions - #2245
  • Fixed a regression with loading the XML:DB API jar via bin/startup - #2270
  • Fixed a verbose logging regression in ExistSAXParserFactory - #2272
  • Fixed a regreesion in the ExportGUI - #2277
  • Fixed an issue with RESTXQ not releasing binary file handles - #2290
  • Removed the 2GB log file limit for the Journal #2294
  • Fixed a signing issue affecting the Bouncy Castle library - #2300

### Backwards Compatibility

eXist-db 5.0.0-RC5 is not binary compatible with previous versions of eXist-db (including earlier 5.0.0 Release Candidates) because of improvements to the on-disk journal format. Before upgrading to this version of eXist-db, you MUST perform a full backup and restore. Users who are upgrading should always consult the Upgrading Guide in the documentation. For details of backwards compatibility with versions of eXist-db prior to 5.0.0-RC1 please see the Backwards Compatibility details of 5.0.0-RC1.

### Downloading this Version * eXist-db v5.0.0-RC5 is available for download from GitHub. * Docker images for are available from eXist-db's DockerHub. * Maven artifacts are available from our mvn-repo. * Mac users of the Homebrew package repository may acquire eXist 5.0.0-RC5 directly from there via. the exist-db-rc cask.

eXist-db 4.5.0

## v4.5.0 - November 21, 2018

eXist-db v4.5.0 has been released.

This is a minor release, which contains a few new features and several bug fixes.

We recommend that all users of eXist-db 4.x.x should upgrade to eXist-db 4.5.0.

### Features

  • Added a facility for configuring the XML parser from conf.xml. This allows the user to specify various options. It is suggested to use the commented options in conf.xml to secure the parser from XML external entity attacks. - #2147
  • Updated to AspectJ 1.9.2 for improved Java 11 support - #2236
  • Added a checksum to the Journal for each entry to detect corruption - #2255
  • Added a checksum to the Journal for the content of binary documents - #2260
  • Improved the provenance of the XML:DB API dependency #2263
  • Improved the provenance of the EXPath Pkg Repo fork dependency - #2284

### Bug fixes

  • Fixed a startup failure affecting macOS under Java 11 - #2187
  • Fixed an issue affecting mixed types in a subsequence - #2198
  • Fixed preemptive authentication in the EXPath HTTP Client - #2208
  • Fixed a concurrency issue in ContextUpdateListener #2211
  • Fixed map constructor to prevent duplicate keys - #2214
  • Fixed thread naming - #2216
  • Fixed an NPE in the range index involving the order by clause - #2221
  • Fixed several journaling and recovery issues for XML and binary documents - #2241
  • Fixed an issue with lock lifetime when changing permissions - #2251
  • Fixed a regression with loading the XML:DB API jar via bin/startup - #2268
  • Fixed a verbose logging regression in ExistSAXParserFactory - #2273
  • Fixed a regression in the ExportGUI - #2275
  • Fixed an issue with RESTXQ not releasing binary file handles - #2289
  • Removed the 2GB log file limit for the Journal #2292
  • Fixed a signing issue affecting the Bouncy Castle library - #2298

### Backwards Compatibility

  • eXist-db v4.5.0 is not binary compatible with previous versions of eXist-db because of improvements to the on-disk journal format. Before upgrading to this version of eXist-db, you MUST perform a full backup and restore. Users who are upgrading should always consult the Upgrading Guide in the documentation.
  • NOTE: The version of Dashboard that was installed with eXist-db 3.6.1 (or earlier) is incompatible with eXist-db 4.0.0 and newer. If you plan to migrate your entire database to eXist-db 4.4.0, you MUST take one of the following steps to allow Dashboard to work after the upgrade:
    1. If you have not yet installed eXist-db 4.5.0, open Dashboard > Package Manager, and upgrade Dashboard to 0.4.10, or run this script in eXide or the Java Admin Client: repo:install-and-deploy("http://exist-db.org/apps dashboard", "http://demo.exist-db.org/exist/apps/public-repo/modules/find.xql"). Then you may safely install eXist-db 4.5.0 and use Dashboard.
    2. If you install eXist-db 4.5.0 before upgrading Dashboard, run this script in eXide or the Java Admin Client: repo:install-and-deploy("http://exist-db.org/apps/dashboard", "http://demo.exist-db.org/exist/apps/public-repo/modules/find.xql"). Then you may use Dashboard.

### Downloading This Version

  • eXist-db v4.5.0 is available for download from GitHub.
  • Docker images are available from DockerHub.
  • Maven artifacts are available from our mvn-repo.
  • Mac users of the Homebrew package repository may acquire eXist 4.5.0 directly from there.

eXist-db 5.0.0 RC 4

## v5.0.0-RC4 - September 21, 2018

The fourth Release Candidate (RC) for eXist-db 5.0.0 has been released.

eXist-db 5.0.0-RC4 builds atop eXist-db 5.0.0-RC3 with a just one new feature, and several small but important bug fixes.

  • NOTE: A Release Candidate is not recommended for production use. We have tested the release extensively, and we now invite all users to report both their positive and negative experiences with it. As always please make sure you have frequent and correct backups of your database.

### Features

  • Added a build target for a .tar.bz2 distribution.
  • fn:subsequence was optimised for low memory usage. See Preventing Large Range Counts from Crashing eXist-db.
  • Various optimizations for range sequences.
  • Deflate compression was added to the Compression extension module.
  • Added a runtime configuration option to use MultiLock for Documents as well as Collections.
  • Updated to the latest version of MultiLock library.
  • Password can now be passed via the Command Line to the Java Admin Client.

### Bug fixes

  • Fixed a data-loss issue when reindexing documents which have more than one document-node child.
  • Consistency Check now correctly checks all child nodes of the document not just the document element.
  • Numerous fixes for the XPath preceding-sibling and following-sibling axes.
  • Fixed a problem with incorrect selection on XPath self axis.
  • Numerous fixes for addressing nodes which are direct children of the Document Node.
  • Fixed a problem where XQuery modules could only be loaded from xmldb: style URIs.
  • Fixed a +1 bug in XQuery range expressions.
  • Fixed JMX Output, eXist-db information was previously missed.
  • Fixed an issue with JMX option parsing in Bash start-up scripts.
  • Fixed a bug in the Image extension module's crop function.
  • Fixed various problems in the SQL extension module:
    • Fixed problems with null handling.
    • Resolved several NullPointerException cases.
    • Fixed an issue with empty parameter handling.
  • Removed unnecessary buffering with ByteArrayInputStream.
  • XML:DB Remote API #getContentAsDOM() now returns the correct node type, not just elements.
  • DOM API fixes for #previousSibling(), #nextSibling(), and #getNode().
### Backwards Compatibility eXist-db 5.0.0-RC4 is backwards compatible up to eXist-db 5.0.0-RC1. For details of backwards compatibility with versions of eXist-db prior to 5.0.0-RC1 please see the Backwards Compatibility details of 5.0.0-RC1.
### Downloading this Version * eXist-db v5.0.0-RC4 is available for download from GitHub. * Docker images for are available from eXist-db's DockerHub. * Maven artifacts are available from our mvn-repo. * Mac users of the Homebrew package repository may acquire eXist 5.0.0-RC4 directly from there via. the exist-db-rc cask.

eXist-db 4.4.0

## v4.4.0 - September 21, 2018

eXist-db v4.4.0 has just been released. This is a minor release, which contains a few new features and several bug fixes.

We recommend that all users of eXist-db 4.x.x should upgrade to eXist-db 4.4.0.

### Features

  • Added a build target for a .tar.bz2 distribution.
  • fn:subsequence was optimised for low memory usage. See Preventing Large Range Counts from Crashing eXist-db.
  • Various optimizations for range sequences.
  • Deflate compression was added to the Compression extension module.
  • Password can now be passed via the Command Line to the Java Admin Client.

### Bug fixes

  • Fixed a data-loss issue when reindexing documents which have more than one document-node child.
  • Consistency Check now correctly checks all child nodes of the document not just the document element.
  • Numerous fixes for the XPath preceding-sibling and following-sibling axes.
  • Fixed a problem with incorrect selection on XPath self axis.
  • Numerous fixes for addressing nodes which are direct children of the Document Node.
  • Fixed a problem where XQuery modules could only be loaded from xmldb: style URIs.
  • Fixed a +1 bug in XQuery range expressions.
  • Fixed JMX Output, eXist-db information was previously missed.
  • Fixed an issue with JMX option parsing in Bash start-up scripts.
  • Fixed a bug in the Image extension module's crop function.
  • Fixed various problems in the SQL extension module:
    • Fixed problems with null handling.
    • Resolved several NullPointerException cases.
    • Fixed an issue with empty parameter handling.
  • Removed unnecessary buffering with ByteArrayInputStream.
  • XML:DB Remote API #getContentAsDOM() now returns the correct node type, not just elements.
  • DOM API fixes for #previousSibling(), #nextSibling(), and #getNode().
  • Updated the XQuery scheduling functions documentation.
  • Fixed a further issue with quotation of Windows paths in the IzPack installer.

### Backwards Compatibility

  • eXist-db v4.4.0 is backwards binary-compatible as far as eXist-db v3.0, but not with earlier versions. Users who are upgrading should always consult the Upgrading Guide in the documentation.
  • NOTE: The version of Dashboard that was installed with eXist-db 3.6.1 (or earlier) is incompatible with eXist-db 4.0.0 and newer. If you plan to migrate your entire database to eXist-db 4.4.0, you MUST take one of the following steps to allow Dashboard to work after the upgrade:
    1. If you have not yet installed eXist-db 4.4.0, open Dashboard > Package Manager, and upgrade Dashboard to 0.4.10, or run this script in eXide or the Java Admin Client: repo:install-and-deploy("http://exist-db.org/apps dashboard", "http://demo.exist-db.org/exist/apps/public-repo/modules/find.xql"). Then you may safely install eXist-db 4.4.0 and use Dashboard.
    2. If you install eXist-db 4.4.0 before upgrading Dashboard, run this script in eXide or the Java Admin Client: repo:install-and-deploy("http://exist-db.org/apps/dashboard", "http://demo.exist-db.org/exist/apps/public-repo/modules/find.xql"). Then you may use Dashboard.
### Downloading This Version * eXist-db v4.4.0 is available for download from GitHub. * Docker images are available from EvolvedBinary's DockerHub. * Maven artifacts are available from our mvn-repo. * Mac users of the Homebrew package repository may acquire eXist 4.4.0 directly from there.