eXist-db v3.4.0

# Release Notes

## v3.4.0 - July 26, 2017

eXist-db v3.4.0 has just been released. This is a minor release, which introduces one new feature and fixes important issues.

### New Features

  • Added function fn:sort defined by the XQuery 3.1 function library

### Bug fixes

  • Closes several memory leaks which affect nearly all applications making extensive use of library modules or inline functions. As the leaked objects are small on average, the time it takes for the growing memory usage to become manifest depends on average load and complexity of the app (typically a server may run for several weeks until it becomes slow and eventually crashes)
  • Variables pointing to binary values were destroyed too early when they were running out of scope
  • Running eXist via the system tray launcher on Mac OSX resulted in random crashes of the Java VM. The Mac .dmg distribution of eXist was thus unusable
  • Small fix to IndexListener interface used by extension indexes: endElement should be called with a valid node
  • Cleaned up the Cache Module so it is thread-safe. Also added a facility for configuring permissions for cache operations
  • Fixed file:serialize

### Backwards Compatibility

  • eXist-db v3.4.0 is backwards binary-compatible as far as v3.0, but not with earlier versions. Users upgrading from previous versions should perform a full backup and restore to migrate their data.

### Downloading This Version

eXist-db v3.4.0 is available for download from GitHub. Maven artifacts for eXist-db v3.4.0 are available from our mvn-repo. Mac users of the Homebrew package repository will be able to install and upgrade shortly; an announcement will be made on the exist-open mailing list.

Puppet Module for eXist-db

# Puppet Module for eXist-db

Jon Hallet of the University of Bristol, has very kindly contributed a Puppet module for eXist-db to the project. The work on the Puppet module was made possible by funding from the AHRC as part of the Manuscript Pamphleteering in Early Stuart England project.

Puppet is a software configuration management tool which when combined with Jon's module, allows you to easily configure and deploy eXist-db to one (or more servers) with just a few commands. Puppet will also maintain the installation state, ensuring that any accidental changes by administrators are rolled-back to the configured state.

You can find the eXist-db Puppet module here: https://github.com/eXist-db/puppet-existdb.

Many thanks to Jon and the University of Bristol :-)

eXist-db v3.3.0

# Release Notes

## v3.3.0 - July 2, 2017

We are happy to announce the release of eXist-db v3.3.0. This is a minor release, which introduces a few small features and addresses a number of issues.

### New Features - Adaptive serialization mode as defined by XQuery 3.1. - A DSL which simplifies the definition of functions, function signatures and their parameters for building extension functions. - An extension mechanism for extension modules to provide valid XPath/XQuery error codes. - An eXist-db TestKit (exist-testkit.jar) which can be used by other projects (e.g. extension module) to execute tests against eXist-db. - Added `ExistOutputKeys.JSONIGNOREWHITESPACETEXTNODES` to discard white-space text nodes when serializing XML/XDM to JSON.
### Bug Fixes - Fixed the XQuery lookup operator ? to return the correct result with regards to empty values. - WebDAV now uses the default configuration for serializing XML. - Fixed a regression in the xmldb:restore Ant task. - xs:base64Binary and xs:hexBinary previously now set the correct srcOffset in the underlying stream when calling CachingFilterInputStream#skip. - fn:replace arguments not now correctly cleared when dynamically called. - Fixed Lucene inline elements in case of not yet applied white-space. - Improved the AppBundler for the MacOS .app package. - Now requires Java 8. - Renamed the running process from "JavaAppLauncher" to "eXist-JavaAppLauncher" to make things clearer.
### Clean Up and Refactoring - Update to the Java Admin Client to use the latest version of RSyntaxArea (2.6.1). - Update Ant from 1.9.7 to 1.10.1. - ... and many more

### Backwards Compatibility

  • eXist-db v3.3.0 is backwards binary-compatible as far as v3.0, but not with earlier versions. Users upgrading from previous versions should perform a full backup and restore to migrate their data.

### Downloading This Version

eXist-db v3.3.0 is available for download from GitHub. Maven artifacts for eXist-db v3.3.0 are available from our mvn-repo. Mac users of the Homebrew package repository will be able to install and upgrade shortly; an announcement will be made on the exist-open mailing list.

eXist-db v3.2.0

# Release Notes

## v3.2.0 - May 2, 2017

We are happy to announce the release of eXist-db v3.2.0. This is a minor release, which introduces a few small features and addresses a number of issues.

### New Features

  • Added an IPRange Security Realm, to authorize users by IP address only. (Disabled by default)
  • Added --forking and --pidfile options to startup scripts
  • Added configuration options to $EXIST_HOME/webapp/WEB-INF/web.xml to disable XQuery and XUpdate execution via submission to the RESTServer.
  • Added the XPath 3.1 function fn:load-xquery-module
  • Added the XQuery function xmldb:find-last-modified-until

### Performance Improvements

  • Small improvements to lock mode use; resulting in more shared locks, and less exclusive locks.
  • Optimised DefaultDocumentSet#contains and DefaultDocumentSet#equals for DefaultDocumentSet comparisons
## Critical Bug Fixes - Fixed the following-sibling axis so that it also correctly works with names. e.g. $items//b/following-sibling::a - DataBackup scheduled tasks now includes all .dbx files and indexes - Fixed missing transaction commit in EmbeddedUpload - Several locking fixes, including lock acquire/release leaks
### Bug Fixes - Fixed Lucene match highlighting of ignored nodes; when the ignored node had the same name as the indexed node. - Fixed the implementation of org.w3c.dom.Node#isSameNode for persistent nodes; enables better compatibility when using database documents with Saxon. - Fixed the reported line numbers when there are newlines in string literals or constructors - Java Admin Client again correctly handles --parse or -p argument - Namespace Constructor in Computed Element Constructor now works correctly - Fixes to install and uninstall for the service wrapper (YAJSW) with systemd - Fixes to resolving references in the Configurator - Re-implement CollectionConfiguration#triggerRegistered; fixing the xquery-versioning-module - DefaultDocumentSet#contains no longer always returns true - Avoid implicit conversion of unicode x160 as numerical entity   when serializing XML
### Clean Up and Refactoring - Corrected the function documentation of xmldb:last-modified-since - Disabled sequential token generation in the PersistentLoginModule - Disabled auto-deployment of EXPath packages when running tests; faster test suite - Switched from MBean to MXBeand for improved JMX client support - Further legacy code cleanup to Java 8 syntax - Upgraded 3rd party libraries: - log4j2 2.8.2 - j8fu 1.4.1 - Generalised the MacOS package signing targets in the build system - ... and many more

### Backwards Compatibility

  • eXist-db v3.2.0 is backwards binary-compatible as far as v3.0, but not with earlier versions. Users upgrading from previous versions should perform a full backup and restore to migrate their data.

### Downloading This Version

eXist-db v3.2.0 is available for download from GitHub. Maven artifacts for eXist-db v3.2.0 are available from our mvn-repo. Mac users of the Homebrew package repository will be able to install and upgrade shortly; an announcement will be made on the exist-open mailing list.

eXist-db v3.1.1

# Release Notes

## v3.1.1 - March 22, 2017

We are happy to announce the release of eXist-db v3.1.1. This is a bug fix release, which addresses a number of issues and closes two memory leaks. The most important changes are:

  • fixed command line parameters for backup/restore and the Java admin client (partially broken in 3.1.0)
  • closed memory leak in XQuery map constructor
  • closed memory leak preventing memory used for accessing binary resources in XQuery being freed
  • added missing dependencies for YAJSW when installing as a System-V service
  • corrected fn:doc-available() to return false(), not FODC0005, when the remote resource does not return a document node
  • prevented an NPE when an account or a group can't be found by id due to storage corruption or a missing account or group

In addition to eXist-db itself, this release includes updated versions of a number of the bundled applications: Documentation (v0.4.8), Monitoring and Profiling AKA "Monex" (v0.9.7), Shared Resources (v0.4.2). Other applications updated since the last release of eXist-db include Demo Apps (v0.4.0), Public Application Repository (v0.6.0), and XQuery Versioning Module (v1.1.2). The updated versions and their release notes are all available via Dashboard > Package Manager or from the Public Application Repository.

### Backwards Compatibility

  • eXist-db v3.1.1 is binary-compatible with v3.0 and v3.1.0, but not with previous versions (v2.x). Users upgrading from pre-3.0 versions should perform a full backup and restore to migrate their data.
  • eXist-db v3.1.1 requires Java 8.

### Downloading This Version

eXist-db v3.1.1 is available for download from the eXist-db Releases page on GitHub. (The old download page on Sourceforge is no longer updated.) Maven artifacts for eXist-db v3.1.1 are available from our mvn-repo repository. For macOS users of the Homebrew package manager, eXist-db v3.1.1 is already available.