
Release Notes -- Apache Jackrabbit Oak -- Version 1.0.30

Introduction
------------

Jackrabbit Oak is a scalable, high-performance hierarchical content
repository designed for use as the foundation of modern world-class
web sites and other demanding content applications.

Apache Jackrabbit Oak 1.0.30 is a patch release that contains fixes and
improvements over Oak 1.0. Jackrabbit Oak 1.0.x releases are considered
stable and targeted for production use.

The Oak effort is a part of the Apache Jackrabbit project.
Apache Jackrabbit is a project of the Apache Software Foundation.

Changes in Oak 1.0.30
---------------------

Technical task

    [OAK-4156] - RDBConnectionHandler: add logging when getting the connection takes long
    [OAK-4193] - RDBBlobStore: logging for garbage collection has parameters reversed
    [OAK-4199] - RDBBlobStore: garbage collection fails to delete DATA records when there was subsequent blobstore activity

Bug

    [OAK-3235] - Deadlock when closing a concurrently used FileStore
    [OAK-3493] - Deadlock when closing a concurrently used FileStore 2.0
    [OAK-4024] - CoW uses incorrect directory on re-indexing when indexPath property is used

Improvement

    [OAK-4163] - LastRevRecoveryAgent: improve startup diagnostics

Task

    [OAK-4150] - Backport OAK-3235 and OAK-3493 to the 1.0 branch


In addition to the above-mentioned changes, this release contains
all changes included in previous Apache Jackrabbit Oak 1.0.x releases.

Please note, the backported RDB support for the DocumentNodeStore is considered
experimental at this point and is not yet ready for production use. Feel free 
to try it out and report any issues you may see to the Oak developers.

For more detailed information about all the changes in this and other
Oak releases, please see the Oak issue tracker at

  https://issues.apache.org/jira/browse/OAK

Release Contents
----------------

This release consists of a single source archive packaged as a zip file.
The archive can be unpacked with the jar tool from your JDK installation.
See the README.md file for instructions on how to build this release.

The source archive is accompanied by SHA1 and MD5 checksums and a PGP
signature that you can use to verify the authenticity of your download.
The public key used for the PGP signature can be found at
http://www.apache.org/dist/jackrabbit/KEYS.

About Apache Jackrabbit Oak
---------------------------

Jackrabbit Oak is a scalable, high-performance hierarchical content
repository designed for use as the foundation of modern world-class
web sites and other demanding content applications.

The Oak effort is a part of the Apache Jackrabbit project. 
Apache Jackrabbit is a project of the Apache Software Foundation.

For more information, visit http://jackrabbit.apache.org/oak

About The Apache Software Foundation
------------------------------------

Established in 1999, The Apache Software Foundation provides organizational,
legal, and financial support for more than 140 freely-available,
collaboratively-developed Open Source projects. The pragmatic Apache License
enables individual and commercial users to easily deploy Apache software;
the Foundation's intellectual property framework limits the legal exposure
of its 3,800+ contributors.

For more information, visit http://www.apache.org/
