The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit Oak. The release is available for download at:

    http://jackrabbit.apache.org/downloads.html

See the full release notes below for details about this release:


Release Notes -- Apache Jackrabbit Oak -- Version 1.6.0

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.

Jackrabbit Oak 1.6 is an incremental feature release based on and
compatible with earlier stable Jackrabbit Oak 1.x releases. Jackrabbit
Oak 1.6.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.6.0
---------------------

Sub-task

    [OAK-2405] - Monitoring to track old NodeStates
    [OAK-2629] - Cleanup Oak Travis jobs
    [OAK-5035] - Implement mini-benchmark for PersistentCache
    [OAK-5038] - Extend PersistentCacheStats with async queue-related
    stats
    [OAK-5167] - Document garbage collection
    [OAK-5274] - Document CLI tools for oak-segment-tar
    [OAK-5292] - The README in oak-run should link to the
    documentation for oak-segment-tar
    [OAK-5299] - Introduce BlobFactory in OakDirectory

Technical task

    [OAK-3159] - Extend documentation for SegmentNodeStoreService in
    http://jackrabbit.apache.org/oak/docs/osgi_config.html#SegmentNodeStore
    [OAK-3309] - Segment Tar SegmentCache loader stats
    [OAK-3403] - Multiplexing store support in Property indexes
    [OAK-3404] - Path to logical store mapping
    [OAK-3758] - Multiplexing store support in Reference index
    [OAK-3840] - Clean up the FileStore constructor
    [OAK-3869] - Refactor RecordWriter.write to always return a
    RecordId
    [OAK-3977] - RDBDocumentStore: remove PostgreSQL workaround after
    upgrading to JDBC driver 9.4.1208
    [OAK-3982] - DocumentStore: add method to remove with a condition
    on an indexed property
    [OAK-3983] - JournalGarbageCollector: use new DocumentStore
    remove() method
    [OAK-3984] - RDBDocumentStore: implement new conditional remove
    method
    [OAK-3985] - MongoDocumentStore: implement new conditional remove
    method
    [OAK-4094] - RDBDocumentStore: upgrade PostgreSQL JDBC driver
    dependency to 9.4.1208
    [OAK-4102] - Break cyclic dependency of FileStore and
    SegmentTracker
    [OAK-4113] - RDBJDBCTools: fix JDBC driver version check
    [OAK-4134] - RDBBlobStore: improve error handling and logging
    [OAK-4156] - RDBConnectionHandler: add logging when getting the
    connection takes long
    [OAK-4184] - DocumentNodeStore and DocumentMK.Builder should allow
    read-only mode
    [OAK-4190] - DocumentMK: refactor RDB-specific code
    [OAK-4193] - RDBBlobStore: logging for garbage collection has
    parameters reversed
    [OAK-4197] - Remove deprecated constructors from SegmentNodeStore
    [OAK-4199] - RDBBlobStore: garbage collection fails to delete DATA
    records when there was subsequent blobstore activity
    [OAK-4200] - [BlobGC] Improve collection times of blobs available
    [OAK-4203] - ExternalSortTest doesn't cleanup temp files
    [OAK-4204] - GarbageCollectorFileState.copy() leaks
    FileOutputStream
    [OAK-4205] - SegmentGraphTest doesn't correctly delete the
    temporary directory on cleanup
    [OAK-4206] - JournalReaderTest creates multiple temporary files
    and doesn't delete them
    [OAK-4207] - TarWriterTest creates a temporary TAR file that is
    never deleted
    [OAK-4208] - Unit and integration tests in oak-segments don't
    clean up after test data
    [OAK-4209] - FileStoreStatsTest doesn't close the temporary
    FileStore instances
    [OAK-4210] - JournalEntryTest doesn't close a JournalReader at the
    end of the test
    [OAK-4213] - IndexCopierTest#basicTestWithFS leaves temp files
    [OAK-4214] - Many tests of LucenePropertyIndexTest leave temp
    files undleted
    [OAK-4217] - UpgradeTest does not clean up temp file
    [OAK-4225] - AbstractOak2OakTest never calls
    getSoureContainer().clean()
    [OAK-4227] - OakDirectoryTest#dirNameInException_Writes leaves
    temp files
    [OAK-4228] - Some tests in LuceneIndexTest leave out CoR/CoW-ed
    directories
    [OAK-4232] - Bump segment version to 12
    [OAK-4236] - SegmentNodeStoreConfigTest#testDeadlock in oak-pojosr
    leaves out tmp file
    [OAK-4237] - NodeStoreBinaryResourceProviderTest#csvGenerator
    leaks temporary folder
    [OAK-4241] - JdbcNodeStoreContainer does not correctly clean up H2
    temp files
    [OAK-4250] - DocumentStore: add test coverage for find() with
    ultra-long keys
    [OAK-4257] - Findbug issues in security modules
    [OAK-4326] - Add a flag to choose between segment store
    implementations in the "backup" command
    [OAK-4327] - Add a flag to choose between segment store
    implementations in the "restore" command
    [OAK-4328] - Add a fixture to choose between segment store
    implementations in the "benchmark" command
    [OAK-4329] - Add a flag to choose between segment store
    implementations in the "console" command
    [OAK-4330] - Add a flag to choose between segment store
    implementations in the "debug" command
    [OAK-4331] - Add a flag to choose between segment store
    implementations in the "graph" command
    [OAK-4332] - Add a flag to choose between segment store
    implementations in the "history" command
    [OAK-4333] - Add a flag to choose between segment store
    implementations in the "check" command
    [OAK-4334] - Add a flag to choose between segment store
    implementations in the "compact" command
    [OAK-4335] - Add a flag to choose between segment store
    implementations in the "server" command
    [OAK-4336] - Add a flag to choose between segment store
    implementations in the "scalability" command
    [OAK-4337] - Add a flag to choose between segment store
    implementations in the "explore" command
    [OAK-4338] - Add a flag to choose between segment store
    implementations in the "checkpoints" command
    [OAK-4339] - Add a flag to choose between segment store
    implementations in the "tika" command
    [OAK-4340] - Add a flag to choose between segment store
    implementations in the "tarmkdiff" command
    [OAK-4341] - Add a flag to choose between segment store
    implementations in the "tarmkrecovery" command
    [OAK-4342] - Add a flag to choose between segment store
    implementations in the "dumpdatastorerefs" command
    [OAK-4343] - Add a flag to choose between segment store
    implementations in the "resetclusterid" command
    [OAK-4369] - Introduce interface for Secondary NodeStore provider
    [OAK-4373] - Refactor SegmentTracker
    [OAK-4388] - RDBDocumentStore: conditional update to _modified
    property sometimes applied unconditionally
    [OAK-4389] - RDBDocumentStore: add system property for disabling
    appending updates
    [OAK-4394] - Remove deprecated string cache
    [OAK-4398] - RDBDocumentStore: dead code in internalUpdate
    [OAK-4409] - RDB*Store: bump up recommended DB2 version to 10.5
    [OAK-4416] - Move temp files to target directory
    [OAK-4419] - Benchmark Results for SyncMBeanImpl with Batch Mode
    [OAK-4425] - RDBDocumentStore: upgrade MySQL JDBC driver
    dependency to 5.1.39
    [OAK-4463] - Remove SegmentNodeStore.getSuperRoot()
    [OAK-4464] - Move FileStore.ChangeDispatcher to TarRevisions
    [OAK-4477] - RDBDatasourceFactory should use pool config similar
    to sling datasource defaults
    [OAK-4482] - RDB*Store: update tomcat-jdbc test dependency
    [OAK-4490] - Expose SegmentNodeStore as a secondary NodeStore
    [OAK-4495] - RDBDocumentStore: consistent handling of invalidate
    methods
    [OAK-4497] - RDBDocumentStore: potential race condition between
    update and invalidate can cause stale cache entries
    [OAK-4509] - RDBDocumentStore: low-level read method should also
    support condition on MODIFIED value
    [OAK-4510] - RDBDocumentStore: can't persist _modified value of
    null
    [OAK-4536] - Avoid premature branch
    [OAK-4539] - Calculate children cache entry on commit
    [OAK-4554] - RDBBlobStoreTest should use RDBDatasourceWrapper
    [OAK-4557] - RDBPreparedStatementWrapper: do not hide
    implementation bugs
    [OAK-4559] - RDB*Store: failures with Tomcat JDBC pool's
    StatementCache interceptor
    [OAK-4562] - BasicDocumentStore max id test might return
    misleading results
    [OAK-4583] - RDB*Store: update Tomcat JDBC pool dependency
    [OAK-4584] - Move DocumentMK specific methods from
    DocumentNodeStore
    [OAK-4593] - Remove usage of DocumentMK in
    DocumentNodeStoreService
    [OAK-4597] - Improve test coverage of blob GC
    [OAK-4629] - Make it possible to override blob accessing methods
    in DataStoreBlobStore
    [OAK-4633] - Multiplexing store support for Node type indexes
    [OAK-4793] - Check usage of DocumentStoreException in
    RDBDocumentStore
    [OAK-4794] - RDBDocumentStore: update PostgresQL JDBC driver
    [OAK-4833] - Document storage format changes
    [OAK-4838] - Move S3 classes to oak-blob-cloud module
    [OAK-4848] - Improve oak-blob-cloud tests
    [OAK-4868] - Update SegmentS3DataStoreBlobGCTest in oak-it once
    oak-segment-tar updated
    [OAK-4869] - Enable benchmarks for DataStore
    [OAK-4870] - Implement caching for S3DataStore
    [OAK-4885] - RDB*Store: update mysql JDBC driver reference to
    5.1.40
    [OAK-4905] - RDB*Store: update postgresql JDBC driver reference to
    9.4.1211
    [OAK-4907] - Collect changes (paths, nts, props..) of a commit in
    a validator
    [OAK-4908] - Best-effort prefiltering in ChangeProcessor based on
    ChangeSet
    [OAK-4915] - Interrupt online revision cleanup on documentmk
    [OAK-4916] - Add support for excluding commits to
    BackgroundObserver
    [OAK-4929] - Clean GCMonitor#compacted method arguments
    [OAK-4941] - Provide status for gc process
    [OAK-4944] - Enable RefreshOnGCTest segment-tar fixture
    [OAK-4945] - Update GCMonitor api on segment-tar
    [OAK-4951] - UpdateOp without set operation for _id: clarify, add
    unit tests, fix DocumentStore instances
    [OAK-4952] - reject UpdateOp with set operation for _id, clarify
    API, add tests, fix implementations
    [OAK-4964] - UpdateOp.set("_id", ...) should do a sanity check on
    the id
    [OAK-4971] - Implement caching for FileDataStore
    [OAK-4979] - Caching sub-system implementation for DataStore
    [OAK-4986] - RDBDocumentStore: potential NPE in document read
    [OAK-5015] - Retry mechanism for failed async uploads
    [OAK-5095] - Improve normalization of configured path in
    AbstractSharedCachingDataStore
    [OAK-5098] - improve DocumentNodeStoreService robustness for RDB
    configs
    [OAK-5119] - JournalGarbageCollector: journalGcBatchSize
    configuration is irrelevant post implementation tasks of bulk
    remove support in DocumentStore
    [OAK-5126] - Support ChangeSet merging and serialization
    [OAK-5174] - Introduce API to pass options while writing blobs in
    BlobStore/DataStore
    [OAK-5175] - Pass option for synchronized uploads when writing
    lucene blobs
    [OAK-5176] - Allow configuring ignoreReindexFlags on per
    IndexUpdate basis
    [OAK-5201] - Support upgrade of DataStore cache
    [OAK-5220] - Remove usage of NodeBuilder in IndexDefinition
    [OAK-5252] - Disable IPv6 tests on Jenkins nodes labelled "beam"
    [OAK-5414] - Refactor LuceneIndexEditor to move out logic related
    to making Lucene Document to separate class
    [OAK-5415] - Refactor Binary text extraction logic from
    LuceneIndexEditor
    [OAK-5430] - Provide an extension point in DocumentNodeStore
    Journal support
    [OAK-5431] - Expose withAsyncIndexing name variant in Jcr builder
    [OAK-5508] - add test cases for interesting node names

Bug

    [OAK-2072] - Lucene: inconsistent usage of the config option
    "persistence"
    [OAK-2722] - IndexCopier fails to delete older index directory
    upon reindex
    [OAK-2819] - Persistent cache: tool to dump the contents
    [OAK-3072] - LuceneIndexEditorTest#copyOnWriteAndLocks failing on
    windows
    [OAK-3232] - Oak Console cannot deal with spaces in node names
    [OAK-3328] - checked-in state should only affect properties with
    OPV!=IGNORE
    [OAK-3488] - LastRevRecovery for self async?
    [OAK-3629] - Index corruption seen with CopyOnRead when index
    defnition is recreated
    [OAK-3753] - Test failure: HeavyWriteIT
    [OAK-3887] - Test failure: BroadcastTest
    [OAK-3910] - Migrating node inheriting from mix:versionable
    without version history
    [OAK-3972] - Forward edges missing in SegmentGraph
    [OAK-4048] - [regression] SyncHandler.listIdentities() returns all
    users, not only external ones
    [OAK-4064] - Ensure oak-remote runs ITs only with
    integrationTesting
    [OAK-4065] - Counter index can get out of sync
    [OAK-4082] - RDBDocumentStore on MySQL may fail when using
    useServerPrepStmts=true
    [OAK-4083] - Simplify concurrency when loading data from the
    primary
    [OAK-4088] - CacheLIRS prevents cleanup from being effective
    [OAK-4089] - The standby store shouldn't start the observation
    subsystem
    [OAK-4091] - The standby store shouldn't initialize the segment
    node store with an initial state
    [OAK-4099] - Lucene index appear to be corrupted with compaction
    enabled
    [OAK-4107] - NPE in
    MongoDocumentStore.determineServerTimeDifferenceMillis
    [OAK-4110] - Test failure: testProxySkippedBytesIntermediateChange
    [OAK-4114] - Cached lucene index gets corrupted in case of unclean
    shutdown and journal rollback in SegmentNodeStore
    [OAK-4116] - Broadcasting cache: disabled by default
    [OAK-4125] - Test failure: testUpdateAndDelete [MyFixture:
    RDB-Derby(embedded)]
    [OAK-4126] - Suggestion and spellcheck queries throw exception if
    result contain lucene query character
    [OAK-4127] - Cleanup creates new generation of tar file without
    removing any segments
    [OAK-4128] - RepositorySidegrade doesn't copy root node properties
    [OAK-4135] - Test failure:
    org.apache.jackrabbit.j2ee.TomcatIT.testTomcat
    [OAK-4145] - LeaseFailureHandler might be called multiple
    times/concurrently on a lease failure
    [OAK-4148] - RAT plugin complains about derby files
    [OAK-4153] - segment's compareAgainstBaseState wont call
    childNodeDeleted when deleting last and adding n nodes
    [OAK-4155] - oaj.oak.spi.security.authentication.credentials not
    exported
    [OAK-4166] - Simple versionable nodes are invalid after migration
    [OAK-4170] - QueryEngine adding invalid property restriction for
    fulltext query
    [OAK-4174] - SegmentToJdbcTest failing with improvements of
    OAK-4119
    [OAK-4189] - Increase Java language level to 1.7
    [OAK-4195] - Use clock when waiting in ClusterNodeInfo
    [OAK-4196] - EventListener gets removed event for denied node
    [OAK-4211] - FileAccess.Mapped leaks file channels
    [OAK-4219] - ExternalLoginModuleTestBase doesn't remove synced
    User/Group accounts
    [OAK-4224] - DefaultSyncContext.sync(ExternalIdentity) should
    verify IDP
    [OAK-4231] - DefaultSyncContext creates Value of type String for
    Binary|Inputstream Object
    [OAK-4251] - Guard against NPE in
    DefaultSyncConfig.Authorizable.setAutoMembership
    [OAK-4253] - CLONE - TarReader#loadGraph wrongly detects segment
    graph as corrupt
    [OAK-4255] - CLONE - FileStore.containsSegment returns alway true
    (almost)
    [OAK-4258] - Don't release oak-segment-next when the reactor
    project is released
    [OAK-4263] - LIRS cache: excessive use of notifyAll
    [OAK-4267] - SyncedIdentity for foreign authorizable always has
    isGroup set to false
    [OAK-4269] - Firebug warning: possible null-pointer dereference in
    S3Backend
    [OAK-4291] - FileStore.flush prone to races leading to corruption
    [OAK-4296] - Oak-run console's lucene command is broken
    [OAK-4300] - Cost per entry for Lucene index of type v1 should be
    higher than that of v2
    [OAK-4301] - Missing protection for system-maintained
    rep:externalId
    [OAK-4302] - DefaultSyncContextTest contains duplicate test
    [OAK-4304] - SegmentParserTest leaks temporary folders
    [OAK-4305] - BulkCreateOrUpdateTest.testConcurrentWithConflict
    failing on jenkins
    [OAK-4307] - SegmentWriter saves references to external blobs
    [OAK-4310] - Avoid instanceof checks in
    SegmentDiscoveryLiteService
    [OAK-4311] - SegmentNodeStoreService should unregister the
    registered cluster ID descriptors
    [OAK-4313] - QueryImpl should avoid traversal with queries
    containing native constraints
    [OAK-4316] - The Jcr builder should accept a fully initialized Oak
    instance
    [OAK-4325] - Autocreation of properties fails if user id is null
    [OAK-4345] - Bulk update constructs malformed query
    [OAK-4346] - SyncMBeanImpl.syncExternalUsers doesn't check for
    foreign IDP
    [OAK-4351] - Non-root lucene index throws exception if query
    constraints match root of sub-tree
    [OAK-4353] - IndexOutOfBoundsException in FileStore.writeStream
    [OAK-4357] - javadoc plugin should be java 7
    [OAK-4358] - Stale cluster ids can potentially lead to lots of
    previous docs traversal in NodeDocument.getNewestRevision
    [OAK-4359] - Lucene index / compatVersion 2: search for 'a=b=c'
    does not work
    [OAK-4360] - SyncMBeanImpl.syncUsers swallows errors
    [OAK-4362] - SyncMBeanImpl.purgeOrphanedUsers swallows sync-error
    [OAK-4363] - SyncMBeanImpl: result lacks 'uid' if error messages
    has been created from ExternalIdentityRef
    [OAK-4366] - SyncMBeanImpl.testSyncExternalUsersLastSyncedProperty
    makes assumption about System.currentTimeMillis()
    [OAK-4375] - oak-jcr has compile dependencies on oak-segment and
    oak-segment-tar
    [OAK-4376] - XPath: queries starting with "//" are not always
    converted correctly
    [OAK-4377] - TestS3Ds overwrites system property 'config'
    [OAK-4387] - XPath: querying for nodes named "text", "element",
    and "rep:excerpt" fails
    [OAK-4396] - HttpStore.containsSegment throws SNFE instead of
    returning false for non existing segments
    [OAK-4397] - DefaultSyncContext.syncMembership may sync group of a
    foreign IDP
    [OAK-4403] - Diff traversal in persisted branch commit traversing
    to unrelated paths
    [OAK-4420] - RepositorySidegrade: oak-segment to oak-segment-tar
    should migrate checkpoint info
    [OAK-4423] - Possible overflow in checkpoint creation
    [OAK-4426] - RepositorySidegrade: oak-segment to oak-segment-tar
    should drop the name length check
    [OAK-4429] - [oak-blob-cloud] S3Backend#getAllIdentifiers should
    not store all elements in memory
    [OAK-4430] - DataStoreBlobStore#getAllChunkIds fetches DataRecord
    when not needed
    [OAK-4431] - Index path property should be considered optional for
    copy on read logic
    [OAK-4432] - Ignore files in the root directory of the
    FileDataStore in #getAllIdentifiers
    [OAK-4436] - HeavyWriteIT sporadically fails
    [OAK-4438] - Segments created by an unsuccessful compaction run
    should get cleaned
    [OAK-4439] - Fix the errors reported by the Javadoc tool in JDK8
    [OAK-4441] - [BlobGC] Writing of strings should be escaped
    [OAK-4448] - Test failures that rely on expiration time to
    experience a re-sync.
    [OAK-4468] - Inconsistent return values on subsequent calls to
    JournalReader.iterator
    [OAK-4475] - CI failing on branches due to unknown fixture
    SEGMENT_TAR
    [OAK-4478] - Enable writer cache for offline compaction
    [OAK-4486] - [IT][Failures] testPreferenceConversion,
    testMongoReadPreferencesWithAge
    [OAK-4491] - version conflict in oak-segment-tar during release
    [OAK-4493] - Offline compaction persisted mode
    [OAK-4494] - Stale documents after revision GC in cluster
    [OAK-4496] - Enable DataStoreBlobStore#getAllRecords to support
    non-shared DataStore
    [OAK-4499] - LucenePropertyIndexTest#longRepExcerpt is too
    aggressive
    [OAK-4502] - LucenePropertyIndex doesn't use filter's path for ACL
    checks of suggest queries
    [OAK-4503] - Update count increases with rebase
    [OAK-4507] - [oak-mongo.js] oak.indexStats() does not compute
    counts properly
    [OAK-4515] - Catch NPE and log serverResult in
    MongoDocumentStore.determineServerTimeDifferenceMillis
    [OAK-4518] - ConcurrentAddReferenceTest fails occasionally
    [OAK-4527] - [oak-blob-cloud] Access parameters configured leak
    out in the exception message
    [OAK-4532] - race-condition in commit-rate-limiter
    [OAK-4537] - rat-plugin does not ignore oak-segment-tar/target
    [OAK-4538] - IndexDefinition.createCodec class loading deadlock
    [OAK-4544] - Fix failing test
    DataStoreCheckTest.testMissingOpParams()
    [OAK-4548] - SegmentDataStoreBlobGCIT failures
    [OAK-4552] - Checkpoints.getOldestRevisionToKeep() returns newest
    valid revision
    [OAK-4565] - S3Backend fails to upload large metadata records
    [OAK-4568] - JournalEntry.applyTo() creates complete change tree
    in memory
    [OAK-4571] - consolidated listener stats confuses
    cluster-external/local flags
    [OAK-4572] - Overflow to disk threshold too high
    [OAK-4588] - Upgrade from JCR2 with S3DataStore doesn't work
    [OAK-4595] - OSGiIT failure LuceneIndexProviderService exception
    [OAK-4599] - SecurityProviderRegistration fails to update config
    param of SecurityConfiguration(s)
    [OAK-4600] - In case of branch commits, nodeChildrenCache gets
    entries for branch revision without "br" prefix
    [OAK-4602] - IndexOutOfBoundsException when sorting by jcr:score +
    field
    [OAK-4628] - Using non default dir name causes index directory to
    be deleted
    [OAK-4652] - indexName logged in QueryImpl is wrong in case of
    multiple indexes satisfying the query
    [OAK-4656] - release Oak 1.4.6
    [OAK-4658] - Outer join: name(b) and localname(b) can throw a NPE
    [OAK-4660] - TokenProviderImpl.getTokenParent may return
    non-existing tree
    [OAK-4662] - Include Commons Lang Math 3 as a dependency in
    oak-run
    [OAK-4663] - Include Commons Lang Math 3 as a dependency in
    oak-upgrade
    [OAK-4664] - Disabling lease check via DocumentMK builder does not
    work
    [OAK-4676] - Index definition on nt:base with analyzed property
    incorrectly matches query with different property
    [OAK-4682] - ConcurrentModificationException in
    JournalEntry.TreeNode
    [OAK-4684] - RepositorySidegrade should also run commit hooks as
    they are run in upgrade
    [OAK-4687] - Issue with backgroundOperationLock handling in
    exception case
    [OAK-4692] - DocumentNodeStore does not close journal persistent
    cache
    [OAK-4705] - Fulltext parser doesn't allow stand-alone hyphen in
    search expression
    [OAK-4717] - TarNodeStore.checkpoint methods represent endless
    loop
    [OAK-4718] - Tests in oak-upgrade depend on an archived repository
    [OAK-4721] - Switch to oak-segment-tar by default when using CLI
    tools
    [OAK-4722] - Adapt the primary and standby commands in oak-run
    [OAK-4734] - AsyncIndexUpdateClusterTestIT fails occasionally
    [OAK-4770] - Missing exception handling in
    ClusterNodeInfo.renewLease()
    [OAK-4776] - Query engine: "like" conditions with only escaped
    wildcards
    [OAK-4779] - ClusterNodeInfo may renew lease while recovery is
    running
    [OAK-4807] - SecondaryStoreConfigIT intermittently failing due to
    incorrect MongoURL
    [OAK-4820] - oak-auth-external can't handle full-width logins
    [OAK-4828] - oak-ugrade tests fail with segment tar 0.0.12 (on
    Windows)
    [OAK-4830] - StringUtils.estimateMemoryUsage() can throw
    NullPointerException
    [OAK-4832] - Upgrade breaks if the SecurityManager section in
    repository.xml is empty
    [OAK-4840] - Incorrect branch commit value
    [OAK-4841] - Error during MongoDB initialization
    [OAK-4842] - Upgrade breaks if there's no SearchManager configured
    in repository.xml
    [OAK-4845] - Regression: DefaultSyncContext does not sync
    membership to a local group
    [OAK-4879] - Proper implementation of getOrCreateReferenceKey in
    CachingFDS
    [OAK-4882] - Bottleneck in the asynchronous persistent cache
    [OAK-4894] - Potential NPE in Commit.apply()
    [OAK-4909] - NRTIndex can get closed while in use
    [OAK-4912] - MongoDB:
    ReadPreferenceIT.testMongoReadPreferencesForLocalChanges()
    occasionally fails
    [OAK-4921] - SegmentS3DataStoreStatsTest failing
    [OAK-4925] - Don't call @Nonnull TypeEditor.getEffective() from
    constructor
    [OAK-4931] - LdapIdentityProvider doesn't use configured custom
    attributes for all searches
    [OAK-4937] - JournalGC failing with RDB DocumentStore
    [OAK-4954] - SetPropertyTest benchmark fails on Segment Tar
    [OAK-4956] - SegmentGCOptions retainedGenerations setting not
    exposed via OSGi
    [OAK-4958] - Test failure: BrokenNetworkTest
    [OAK-4961] - Default repository.home in DocumentNodeStoreService
    hides framework property
    [OAK-4963] - Test failure: SegmentDataStoreBlobGCIT
    [OAK-4965] - Cold standby logs SNFE ERROR
    [OAK-4969] - ColdStandby does not fetch missing blobs
    [OAK-4980] - occasional test failure of JournalGCIT
    [OAK-4984] - Server time unavailable with authenticated connection
    to MongoDB
    [OAK-4996] - Open up getBlobStore() to protected access in
    SegmentDataStoreBlobGCTest
    [OAK-4997] - RevisionGCTest.teardown() may fail with NPE when
    store == null
    [OAK-4998] - NPE when starting Oak Console
    [OAK-4999] - ISE when starting Oak Console
    [OAK-5002] - NPE when creating read only store
    [OAK-5003] - no output from oak-run check
    [OAK-5005] - S3 async upload fails to catch and log exceptions
    other than DataStoreException
    [OAK-5007] - Put oak-segment-tar back in the main release cycle
    [OAK-5008] - SegmentRevisionGCMBean getLastRepositorySize wrong
    value
    [OAK-5009] - ExternalToExternalMigrationTest failures on Windows
    [OAK-5010] - Document split with binary properties too eager
    [OAK-5016] - OOM in SegmentDataStoreBlobGCIT
    [OAK-5018] - Warn traversal queries: false positives
    [OAK-5034] - FileStoreUtil#readSegmentWithRetry max retry delay is
    too short to be functional
    [OAK-5044] - The background flush operation might flush a closed
    store
    [OAK-5055] - o.a.j.o.s.s.RevisionGC returns status that don't
    comply with the API
    [OAK-5061] - ObservationTest.applyNodeTypeOnSelf sometimes fails
    [OAK-5064] - XPath: chained conditions and union bugfix
    [OAK-5067] - Node bundling does not work with SecondaryNodeStore
    feature
    [OAK-5068] - Aggregate index: superfluous warning "Full-text index
    without plan"
    [OAK-5069] - Backup fails when called from
    RepositoryManagementMBean#startBackup
    [OAK-5070] - Journal diff not working for changes in bundled node
    [OAK-5073] - Bug in JcrPathParser
    [OAK-5077] - Class "AbstractS3DataStoreService" should be declared
    abstract
    [OAK-5083] - SegmentNotFoundExceptionListener logs Listener ID
    instead of SegmentId
    [OAK-5084] - oak-jcr does not export all public api
    [OAK-5085] - XPath: union bugfix
    [OAK-5087] - Primary instance logs expected SNFEs at ERROR level
    [OAK-5088] - o.a.j.o.p.b.d.DataStoreBlobStore#getReference logs
    WARNING for missing records
    [OAK-5093] - Failed compaction should return the number of the
    incomplete generation
    [OAK-5094] - NPE when failing to get the remote head
    [OAK-5096] - node type aggregate filter should be added in OR mode
    (not in AND)
    [OAK-5099] - mixing starstar with star.foo in glob path is broken
    [OAK-5102] - includeAncestorRemove should not do prefiltering just
    based on / but actual ancestors
    [OAK-5104] - GlobbingPathFilter does not match /a/**/b corrctly
    [OAK-5107] - Avoid NullPointerException in ChangeSetFilterImpl
    [OAK-5108] - [Blob GC] checkConsistency() should sync available
    blobs from the datastore
    [OAK-5109] - [Test] Ignore if config properties file not available
    [OAK-5112] - oak-upgrade breaking versionStorage node when started
    with copy-versions=false
    [OAK-5114] - oak-segment-tar should declare embedded dependencies
    using compile scope
    [OAK-5120] - Automatically convert *all* "or" queries to "union"
    for SQL-2, take 2
    [OAK-5125] - Some implementations of CacheValue.getMemory() don't
    care about integer overflow.
    [OAK-5133] - StoreArgument class getter method opens repo in
    read/write and unsafe MMAP mode
    [OAK-5135] - The flush of written data via TarRevisions is
    asynchronous in relation to FileStore.close()
    [OAK-5137] - Standby client and server miss an exception handler
    [OAK-5138] - NodeCache.getIfPresent() may result in writing to
    persistent cache
    [OAK-5139] - Asynchronous puts to persistent cache doesn't update
    stats
    [OAK-5148] - Misleading diffJournalChildren debug message
    [OAK-5151] - Overflown ChangeSets are not handled correctly in
    ChangeSetFilterImpl
    [OAK-5153] - explode entire node type/mixin inheritence hierarchy
    in observation node type filter
    [OAK-5164] - ChangeSet's maxPathDepth must be taken into account
    by ChangeSetFilterImpl
    [OAK-5177] - Non default MissingIndexProviderStrategy is not being
    passed to child editor
    [OAK-5178] - Default mode for local_diff cache must be synchronous
    [OAK-5179] - MultiplexingNodeStoreService does not register an
    OSGi service for oak.api.Descriptors
    [OAK-5180] - Fix and enable RemoteServerIT
    [OAK-5183] - ClusterRepositoryInfo.getOrCreateId should explicitly
    check for a null argument
    [OAK-5184] - Inconsistent nullability annotation for CommitInfo in
    DocumentNodeStore.done()
    [OAK-5193] - Version tree may become inconsistent after removing a
    version
    [OAK-5195] - ExternalPrincipalConfiguration uses
    'group.autoMembership' instead of 'user.autoMembership'
    [OAK-5200] - OAK-4930 introduced critical bug confusing id and
    principal name
    [OAK-5203] - [oak-run] Rename dumdatastorerefs comand to
    datastorecheck command
    [OAK-5204] - Fix logger name for DataStoreCacheUtils class
    [OAK-5205] - Lucene index causes many split documents
    [OAK-5215] - remove use of deprecated guava methods
    [OAK-5223] - SegmentNodeStoreService components don't unregister
    with the blobstore
    [OAK-5226] - Incorrect memory calculation for bundled node states
    [OAK-5228] - Incorrect minTimestamp in
    DocumentNodeStore.diffImpl()
    [OAK-5231] - Proper resource cleanup in BlobTrackerTest
    [OAK-5233] - Parameter --src-datastore is being ignored for JCR2
    upgrade
    [OAK-5238] - IndexCopier causes concurrent update on NodeBuilder
    [OAK-5240] - Test failure: IndexSanityCheckerTest.sizeMismatch()
    [OAK-5241] - Test failure: TomcatIT.testTomcat()
    [OAK-5251] - Test failure:
    
externalAddOffline(org.apache.jackrabbit.oak.plugins.blob.datastore.BlobIdTrackerTest)
    [OAK-5254] - MultiplexingNodeStoreService does not pick up
    Observers registered through the whiteboard
    [OAK-5258] - LuceneIndexEditor skips indexing for unknown nodetype
    due to stale NodeType registry state
    [OAK-5259] - Better default for size delta estimation
    [OAK-5260] - Incorrect handling of subpaths with leading left
    curly bracket
    [OAK-5262] - Test failure:
    NodeTypeIndexingUtilsTest.testSynonymsFileCreation
    [OAK-5285] - Test failures in
    org.apache.jackrabbit.oak.plugins.blob
    [OAK-5296] - MutableRoot.refresh does not correctly refresh tree
    permissions
    [OAK-5297] - Check for null homeDir in DataStoreCacheUpgradeUtils
    [OAK-5300] - OakDirectory.fileLength() must throw
    FileNotFoundException if file does not exist
    [OAK-5304] - DefaultSyncContext.sync(ExternalIdentity) does not
    verify same identity provider
    [OAK-5305] - NRTIndex link to previous index leads to memory leak
    [OAK-5326] - Not able to move segment store directory on
    filesystem after closing FileStore
    [OAK-5327] - Change default query limit configuration, take 2
    [OAK-5328] - Fix the errors reported by the Javadoc tool in JDK8
    [OAK-5333] - Standalone example does not work with mongo
    [OAK-5336] - Update milestone dependency to
    org.apache.directory.api.api-all
    [OAK-5339] - Test failure:
    BackgroundObserverTest.testExcludeSomeCommits()
    [OAK-5348] - ChangeCollectorProvider should be registered as
    EditorProvider
    [OAK-5349] - RepositoryManager does not register VersionHook
    [OAK-5353] - Services registered by SegmentNodeStoreService should
    consistently expose the role
    [OAK-5354] - Security: the order of child should be correct if the
    child nodes are readable.
    [OAK-5358] - test failures for oak-auth-ldap on Windows
    [OAK-5359] - Cancelled garbage collection not reported to
    GCMonitor
    [OAK-5388] - Test failure:
    persistentCache.BroadcastTest.broadcastTCP
    [OAK-5413] - XPath: "union" combined with "or" is not converted
    correctly
    [OAK-5416] - Async reindex of a sync property does't release
    created checkpoint
    [OAK-5423] - MultiplexingNodeStoreService: Missing element AD in
    element OCD
    [OAK-5436] - o.a.j.o.segment.file.Manifest#load leaks a file
    descriptor
    [OAK-5454] - Failed test:
    
org.apache.jackrabbit.oak.plugins.blob.CachingDataStoreTest.zeroStagingCacheAddGetDelete
    [OAK-5461] - [BlobGC] BlobIdTracker remove() should merge
    generations
    [OAK-5462] - Expensive NodeDocument.split() with multi-valued
    binary property
    [OAK-5465] - StandbyClientSyncExecution uses an unbound segment
    cache
    [OAK-5471] - Too many files with unapproved license
    [OAK-5479] - Overdue document split with many cluster nodes
    [OAK-5480] - oak-core/repository left after a build
    [OAK-5497] - Inverted logic for ignoring/reporting SNFE
    [OAK-5513] - Compaction estimation log is missing the generation
    [OAK-5517] - SNFE when running compaction after a cancelled gc
    [OAK-5522] - Deactivation code in StandbyStoreService is not
    resilient to errors
    [OAK-5528] - leaseUpdateThread might be blocked by
    leaseUpdateCheck
    [OAK-5533] - Lucene indexing of mv facets fails because of hidden
    persisted FacetsConfig
    [OAK-5545] - Replica Set Info seems to close and open Mongo
    connections in a loop

Documentation

    [OAK-4133] - Document oak.fastQuerySize parameter
    [OAK-4151] - Broken link to oak-mongo.js function on Command Line
    Tools page
    [OAK-4466] - Incorrect description for "Simple Inheritance with
    Restrictions" inthe Permission Evaluation Page
    [OAK-5014] - Minor description change for OSGi
    blobTrackSnapshotIntervalInSecs property
    [OAK-5235] - Document the new caching datastore

Epic

    [OAK-2849] - Improve revision gc on SegmentMK
    [OAK-3269] - Improve indexing resilience
    [OAK-3270] - Improve DocumentMK resilience
    [OAK-3286] - Persistent Cache improvements
    [OAK-4215] - Improve test-coverage for External Authentication
    [OAK-4383] - Benchmarks tests for oak-auth-external
    [OAK-4391] - Dynamic Membership for External Authentication

Improvement

    [OAK-1322] - Reduce calls to MongoDB
    [OAK-1558] - Expose FileStoreBackupRestoreMBean for supported
    NodeStores
    [OAK-1571] - OSGi Configuration for Query Limits
    [OAK-2065] - JMX stats for operations being performed in
    DocumentNodeStore
    [OAK-2108] - Killing a node may stop async index update to to 30
    minutes (Tar storage)
    [OAK-2110] - potential performance issues with
    VersionGarbageCollector
    [OAK-2392] - [DocumentMK] Garbage Collect older revisions of
    binary properties in main document
    [OAK-2460] - Resolve the base directory path of persistent cache
    against repository home
    [OAK-2719] - Misleading warn message about local copy size
    different than remote copy in oak-lucene with copyOnRead enabled
    [OAK-2821] - PersistentCache not used for RDBBlobStore
    [OAK-2910] - oak-jcr bundle should be usable as a standalone
    bundle
    [OAK-3001] - Simplify JournalGarbageCollector using a dedicated
    timestamp property
    [OAK-3018] - Use batch-update in backgroundWrite
    [OAK-3036] - DocumentRootBuilder: revisit update.limit default
    [OAK-3348] - Cross gc sessions might introduce references to
    pre-compacted segments
    [OAK-3563] - Improve DefaultSyncContext
    [OAK-3725] - Add oak:Indexable mixin type
    [OAK-3748] - Heuristic method to decide if the document may be a
    part of the bulk update
    [OAK-3790] - Back Port Support including and excluding paths for
    PropertyIndex to Oak 1.2 branch
    [OAK-3796] - Prevent blob gc and revision gc from running
    concurrently
    [OAK-3797] - SegmentTracker#collectBlobReferences should retain
    fewer SegmentId instances
    [OAK-3846] - Add parameter to skip SNS nodes
    [OAK-3858] - Review slow running tests
    [OAK-3865] - New strategy to optimize secondary reads
    [OAK-3886] - Delegate supported Credentials types to
    ExternalIdentityProvider
    [OAK-3976] - journal should support large(r) entries
    [OAK-4005] - LdapIdentityProvider.getEntries() is prone to OOME.
    [OAK-4029] - RDBDocumentStore: optimize the bulk update method
    [OAK-4043] - Oak run checkpoints needs to account for multiple
    index lanes
    [OAK-4069] - Use read concern majority when connected to a replica
    set
    [OAK-4087] - Replace Sync of configured AutoMembership by Dynamic
    Principal Generation
    [OAK-4095] - Include timestamp in journal log entries
    [OAK-4096] - Limit the number of times a LuceneResultRow based
    iterator get reset
    [OAK-4108] - Reduce logging from JournalGarbageCollector
    [OAK-4109] - Fix typo in async indexer thread name
    [OAK-4111] - Include mongo version details in log
    [OAK-4112] - Replace the query exclusive lock with a cache tracker
    [OAK-4119] - Improvements Take 1
    [OAK-4123] - Persistent cache: allow to configure the add data
    concurrency
    [OAK-4124] - Persistent cache: consider using callstack blocking
    [OAK-4130] - Simplify IdentifierManager.getReferences
    [OAK-4136] - release profile in maven
    [OAK-4139] - Idle session warnings for observation sessions
    [OAK-4142] - allow skip UT in pedantic profile
    [OAK-4152] - Expose the index path to IndexEditor
    [OAK-4159] - Expose an option in Oak class to enable failing of
    commit upon missing index editor provider
    [OAK-4160] - Expose type property for ReferenceEditorProvider
    [OAK-4163] - LastRevRecoveryAgent: improve startup diagnostics
    [OAK-4164] - Expose path stats for Lucene index
    [OAK-4168] - Replace the massive lock acquire with cache tracker
    in bulk createOrUpdate()
    [OAK-4169] - Make the bulk createOrUpdate retry count configurable
    in Mongo
    [OAK-4172] - Expose 'omitAdminPw' configuration
    [OAK-4173] - Add log message when a custom tika config files is
    used by an index
    [OAK-4175] - Allow to skip the repository initialization in
    oak-upgrade
    [OAK-4182] - oak-run->console should have a read-only mode to
    connect to document stores (mongo, rdb, etc)
    [OAK-4185] - Add DOCUMENT_MEM to FixturesHelper
    [OAK-4198] - oak-run console should have command to export
    relevant documents (same as oak-mongo.js' printMongoExportCommand)
    [OAK-4212] - Add the segments blob references to the tar files.
    [OAK-4218] - Base SyncMBeanImpl on Oak API
    [OAK-4220] - ExternalLoginModuleFactoryTest should extend from
    ExternalLoginModuleTestBase
    [OAK-4221] - Move duplicate constants to
    ExternalLoginModuleTestBase
    [OAK-4222] - Cleanup ExternalLoginModuleTest
    [OAK-4223] - Minor improvements to ExternalIdentityRefTest
    [OAK-4230] - Remove unused JsopWriter in Commit
    [OAK-4233] - Property index stored locally
    [OAK-4242] - Counter index should be rebuilt after successful
    migration
    [OAK-4249] - Extract abstract test-base without OSGi registrations
    [OAK-4254] - CLONE - BackgroundThread should log and re-throw
    instances of Error
    [OAK-4261] - Add PropInfo.asPropertyState
    [OAK-4262] - Provide a way to abort an async indexing run
    [OAK-4266] - NodeDocumentCache#get method should be synchronized
    [OAK-4280] - Compaction cannot be cancelled
    [OAK-4284] - Garbage left behind when compaction does not succeed
    [OAK-4294] - Consider making FileStore.writer volatile
    [OAK-4297] - Oak-run console should allow to setup FDS of
    repository
    [OAK-4298] - oak-run->console should have a read-only mode to
    connect to segment store
    [OAK-4299] - oak-run console should connect to repository in
    read-only mode by default
    [OAK-4306] - Disable cleanup when compaction is paused
    [OAK-4314] - BlobReferenceRetriever#collectReferences should allow
    exceptions
    [OAK-4317] - Similar and Native queries should return no results
    if no index can handle them
    [OAK-4320] - Use the cache tracker in the RDB Document Store
    [OAK-4321] - Improve conflict exception message to show if
    conflict is unexpected
    [OAK-4344] - LdapIdentityProvider always retrieves all attributes
    when looking up an LDAP entity.
    [OAK-4347] - Use the indexPath from hidden property instead of
    taking this as input as part of index config
    [OAK-4361] - Reduce performance impact of observation ACFilter
    [OAK-4365] - Redundant Action Class Lookup in
    DefaultAuthorizableActionProvider
    [OAK-4368] - Excerpt extraction from the Lucene index should be
    more selective
    [OAK-4370] - Unreferenced empty VersionHistories should be deleted
    automatically
    [OAK-4372] - VersionGarbageCollector uses more temporary memory
    than needed
    [OAK-4379] - Batch mode for SyncMBeanImpl
    [OAK-4380] - DocumentNodeState should override getPropertyCount
    [OAK-4381] - Query engine: decouple nodetype lookup
    [OAK-4384] - Benchmarks: add support 'automembership' config
    option
    [OAK-4385] - Benchmarks: proper init of
    ExternalPrincipalConfiguration with dynamicMembership
    [OAK-4393] - Decouple FileStoreStatsTest
    [OAK-4395] - Run SegmentParserTest off memory store instead of
    file store
    [OAK-4400] - Correlate index with the index definition used to
    build it
    [OAK-4413] - IndexCopier logs too verbose
    [OAK-4421] - Optimize Revison fromString and toString
    implementation
    [OAK-4422] - support cluster for FileBlobStore
    [OAK-4424] - Optimize PathUtils.concat by using a properly sized
    StringBuilder
    [OAK-4428] - Optimize RevisionVector methods
    [OAK-4434] - Remove segment version argument from segment writer
    and and related classes
    [OAK-4444] - Reduce number of calls to NodeBuilder.getNodeState
    from MergingNodeStateDiff
    [OAK-4447] - RepositorySidegrade: oak-segment to oak-segment-tar
    migrate without external datastore
    [OAK-4449] - SegmentNodeStore and SegmentStore builders should log
    their parameters on build()
    [OAK-4454] - Create consistent API in ExternalSort to write and
    read escaped line breaks
    [OAK-4455] - Reduce log level in
    CompositeAuthorizationConfiguration
    [OAK-4457] - Range constructor should use parametrized assertion
    message
    [OAK-4461] - Improve logging during compaction cycles
    [OAK-4472] - Decouple SegmentReader from Revisions
    [OAK-4479] - Move EmptyPrincipalProvider to oak-core
    [OAK-4483] - Remove synchronized access requirement from
    MetricStatisticsProvider#getStats
    [OAK-4487] - Move the apache-release profile in oak-parent
    [OAK-4488] - Create separate reactor POM to perform releases
    [OAK-4500] - Create tooling for reducing a document-based
    repository to a list of paths
    [OAK-4505] - Offline compaction clearer output values
    [OAK-4512] - Detect and log commits to the read-only stores
    [OAK-4514] - ResurrectNodeAfterRevisionGCTest's cleanup may
    interfere with DS disposal
    [OAK-4516] - Configurable option to lucene index defs to index
    original (unanalyzed value as well)
    [OAK-4523] - Query: first selector should be main selector
    [OAK-4528] - diff calculation in DocumentNodeStore should try to
    re-use journal info on diff cache miss
    [OAK-4533] - make DELAY_THRESHOLD & MAX_DELAY of ChangeProcessor
    configurable
    [OAK-4534] - add trace logging to CommitRateLimiter
    [OAK-4540] - Cache update blocks new commits
    [OAK-4542] - PerfLogger should also allow a threshold to log at
    INFO
    [OAK-4543] - Add info about event generation and consumption by
    observer
    [OAK-4545] - Configurable maxBackOffMillis
    [OAK-4553] - Retain journal entries for valid checkpoints
    [OAK-4556] - Track branch on newBranchCommit()
    [OAK-4561] - Avoid embedding Apache Commons Math in Segment Tar
    [OAK-4563] - Specify thread pool name which should be used by
    Async Indexing task
    [OAK-4564] - Use Lucene index to look for long-named nodes in JCR2
    upgrade
    [OAK-4567] - Define oak:Resource nodetype as non referenceable
    alternative to nt:resource
    [OAK-4569] - Clean-up the oak-upgrade dependencies
    [OAK-4573] - S3 fetching record leads to multiple calls and
    background download
    [OAK-4574] - [BlobGC] Remove adding of paths in file maintained
    for blob references
    [OAK-4577] - BlobGC performance improvements
    [OAK-4578] - Clarify weight related methods/parameters/arguments
    of the LIRS cache
    [OAK-4580] - Update to Mongo Java Driver 3.2.x
    [OAK-4585] - Text extraction: runtime status monitoring
    [OAK-4586] - Collect affected node types on commit
    [OAK-4587] - Don't ignore the cached NULLs in bulk createOrUpdate
    for Mongo
    [OAK-4594] - Remove DocumentNodeState.copyTo()
    [OAK-4605] - Separate persistent cache for diff and local_diff
    [OAK-4613] - Suggest directory should be opened in read only mode
    [OAK-4616] - Record suggestor status in suggest-data node
    [OAK-4622] - SessionDelegate.lock speedup
    [OAK-4623] - Log more information when null DocumentNodeState is
    read for a child while fetching children
    [OAK-4624] - Optionally ignore missing blobs during sidegrade
    [OAK-4627] - [BlobGC] Reduce logging during delete
    [OAK-4630] - Create segment and segment tar directory only when
    it's missing
    [OAK-4636] - PropertyIndexLookup#getIndexNode should be more
    tolerant towards property types
    [OAK-4639] - Enable --missingblobstore by default for the
    sidegrade
    [OAK-4640] - Provide a way for commit hook to record meta data for
    a given commit
    [OAK-4641] - Using same index definition for both async and sync
    indexing
    [OAK-4642] - Provide a way to pass indexing related state to
    IndexEditorProvider
    [OAK-4661] - TokenLoginModule: improve log output
    [OAK-4668] - Make async index more resilient on documentmk
    [OAK-4674] - Log a message when asynchronous persistent cache is
    enabled
    [OAK-4677] - stop oak-core bundle only transiently on lease
    failure
    [OAK-4680] - Unify the usage of Commons Math 3 across the project
    [OAK-4691] - Use utility backends from oak-segment-tar in oak-run
    [OAK-4696] - Improve logging for SyncHandler
    [OAK-4697] - Optimize read of old node state
    [OAK-4703] - Update Jackrabbit version to 2.13.2
    [OAK-4710] - AsyncIndexUpdate delay time should show clock time
    left
    [OAK-4713] - Builder class to simplify Lucene Index Definition
    building
    [OAK-4715] - Reduce DocumentStore reads for local changes
    [OAK-4716] - Upgrade dependency to oak-segment-tar to version
    0.0.10
    [OAK-4723] - Optimize PathRev as/from String
    [OAK-4724] - Prefetch external changes
    [OAK-4725] - Enable mmap mode by default for migration to
    SegmentNodeStore
    [OAK-4733] - Reduce DocumentStore reads for local changes (2)
    [OAK-4742] - Improve FileStoreStatsMBean
    [OAK-4748] - Migration tool should check if the source and
    destination repositories are different
    [OAK-4749] - Include initial cost in stats for observation
    processing
    [OAK-4750] - Leaderboard in ConsolidatedListenerMBean
    [OAK-4751] - Improve the checkpoint migration performance
    [OAK-4757] - Adjust default timeout values for MongoDocumentStore
    [OAK-4758] - Allow tweaking of node migration logs threshold
    [OAK-4761] - Reduce the number of calls to
    /jcr:system/jcr:versionStorage during the upgrade
    [OAK-4762] - Rebuild indexes only for partial sidegrades
    [OAK-4764] - Update httpclient to 4.3.6
    [OAK-4767] - Provide a way to report additional stats as part of
    benchmark run
    [OAK-4768] - Provide an option to enable Metrics collection for
    benchmark run
    [OAK-4769] - Update Jackrabbit version to 2.13.3
    [OAK-4771] - Clarify exceptions in DocumentStore
    [OAK-4788] - Fulltext parser sorts and unique-s parsed terms
    [OAK-4789] - SegmentBlob should return null contentIdentity for
    inlined blobs
    [OAK-4792] - Replace usage of AssertionError in ClusterNodeInfo
    [OAK-4796] - filter events before adding to ChangeProcessor's
    queue
    [OAK-4799] - Unnecessary unboxing in ClusterNodeInfo
    [OAK-4800] - Log info message when background operation is
    successful again
    [OAK-4805] - Misconfigured lucene index definition can render the
    whole system unusable
    [OAK-4806] - Remove usage of Tree in LuceneIndexEditor
    [OAK-4808] - Index external changes as part of NRT indexing
    [OAK-4809] - JMX Stats for NRT Indexing
    [OAK-4815] - ReferenceIndex slowdown due to OAK-3403
    [OAK-4816] - Property index: cost estimate with path restriction
    is too optimistic
    [OAK-4817] - QueryEngineSettings without MBean
    [OAK-4819] - Improve revision GC resilience
    [OAK-4825] - Support disabling of users instead of removal in
    DefaultSyncHandler
    [OAK-4826] - Auto removal of orphaned checkpoints
    [OAK-4831] - Don't break the upgrade tests if the directory can't
    be cleaned-up
    [OAK-4834] - Make the role configurable for the SegmentNodeStore
    [OAK-4835] - Provide generic option to interrupt online revision
    cleanup
    [OAK-4836] - Avoid excessive logging in case of corrupt index or
    mis-configured index defnition
    [OAK-4837] - Improved caching for DataStore
    [OAK-4839] - Allow to register DocumentNodeStore as a
    NodeStoreProvider
    [OAK-4847] - Support any types of node builders in the
    initializers
    [OAK-4849] - Refactor the MigrationCliArguments from implicit to
    explicit
    [OAK-4854] - Simplify TarNodeStore
    [OAK-4855] - Expose actual listener.toString in consolidated
    listener mbean
    [OAK-4858] - Use Integer.getInteger() to read system property
    [OAK-4859] - Warn if lease update is invoked with large delay
    [OAK-4863] - Reduce query batch size for deleted documents
    [OAK-4867] - Avoid queries for first level previous documents
    during GC
    [OAK-4873] - Avoid running GC too frequently
    [OAK-4874] - Improve the warning logged when traversal happens
    within property index
    [OAK-4881] - Make merge semaphore in SegmentNodeStore fair by
    default
    [OAK-4888] - Warn or fail queries above a configurable cost value
    [OAK-4890] - Invalidate cache on missing previous document
    [OAK-4892] - Speed up DocumentNodeStoreStatsCollectorIT
    [OAK-4898] - Allow for external changes to have a CommitInfo
    attached
    [OAK-4899] - Include option to stop GC in RevisionGCMBean and
    RepositoryManagementMBean
    [OAK-4900] - Enable persistent caches by default
    [OAK-4902] - Blob GC completion time should be logged in millis
    [OAK-4903] - Async uploads in S3 causes issues in a cluster
    [OAK-4904] - For unique indexes avoid consulting indexes other
    than property index
    [OAK-4910] - Update segment tar to 0.0.14
    [OAK-4919] - Better feedback from method invocations on
    RevisionGCMBean
    [OAK-4930] - External Principal Management: DynamicSyncContext
    makes redundant calls to IdentityProvider.getIdentity()
    [OAK-4935] - support prefiltering of async index updates
    [OAK-4939] - Isolate corrupted index and make async indexer more
    resilient
    [OAK-4940] - Consider collecting grand-parent changes in ChangeSet
    [OAK-4950] - LIRS cache: improve hit rate
    [OAK-4957] - SegmentRevisionGC MBean should report more detailed
    gc status information
    [OAK-4966] - Re-introduce a blocker for compaction based on
    available heap
    [OAK-4968] - Query engine: sort order is calculated multiple times
    unnecessarily
    [OAK-4970] - Sidegrade disk usage issues related to copying
    version storage
    [OAK-4974] - Enable configuring QueryEngineSettings via OSGi
    config
    [OAK-4975] - Setup a default Bundling config
    [OAK-4978] - Expose maintainence related MBeans for Segment
    NodeStores created via factory
    [OAK-4981] - Config option to disable specific bundling config
    [OAK-4989] - Simplify GCListener
    [OAK-4990] - SegmentBufferWriter should not depend on
    SegmentTracker
    [OAK-4991] - Persistent cache should not cache those paths which
    are covered by DocumentNodeStateCache
    [OAK-4992] - Use the role name as prefix for directory used by
    SegmentNodeStoreFactory
    [OAK-5004] - Offline compaction explodes checkpoints
    [OAK-5006] - Persistent cache: improve concurrency
    [OAK-5011] - Add event aggregation support to observation
    filtering
    [OAK-5013] - Introduce observation filter extension mechanism to
    Oak
    [OAK-5019] - Support glob patterns through OakEventFilter
    [OAK-5020] - Improved support for node removals
    [OAK-5021] - Improve observation of files
    [OAK-5022] - add includeSubtreeOnDelete flag to OakEventFilter
    [OAK-5023] - add applyNoteTypeOnSelf property to OakEventFilter
    [OAK-5024] - Improve the usage of the SegmentWriter for compaction
    [OAK-5025] - Speed up ACE node name generation
    [OAK-5026] - Enable default memory mapping for segment mode in
    oak-run console
    [OAK-5029] - Use head GC generation number to trigger cleanup on
    standby instance
    [OAK-5030] - Copying the versions store is slow and increase the
    repository size
    [OAK-5032] - Update Groovy version in oak-run to 2.4.7
    [OAK-5041] - AbstractPropertyState.toString should handle case
    when BlobStore is not configured
    [OAK-5043] - Very old JR2 repositories may have invalid nodetypes
    for groupsPath and usersPath
    [OAK-5045] - Support bundling of nodes present in version store
    [OAK-5046] - Remove the old estimation OSGi setting
    (compaction.gainThreshold)
    [OAK-5047] - Log clusterNodes document details in
    ClusterNodeInfo.renewLease()
    [OAK-5050] - Optimise ImmutableRecordNumbers
    [OAK-5053] - Provide support for enabling fastResultSize via OSGi
    config
    [OAK-5060] - Make DocumentNodeStore.alignWithExternalRevisions
    more chatty
    [OAK-5065] - Make configuration optional for
    SecondaryStoreCacheService
    [OAK-5066] - Provide a config option to disable lease check at
    DocumentNodeStoreService level
    [OAK-5072] - ChangeCollectorProvider should enable metatype
    support
    [OAK-5074] - Configure Async Indexer via OSGi
    [OAK-5076] - CopyOnWrite directory should clear working set of
    files being written upon start
    [OAK-5078] - Improper handling of relative paths in
    OakFileDataStore#getAllIdentifiers
    [OAK-5079] - Diff would not work for bundled nodes when done
    without journal support
    [OAK-5092] - Add support for weighing the cache entries in caches
    [OAK-5097] - Allow passing custom service prop while registering
    scheduled jobs
    [OAK-5100] - Provide source store external references flag via
    command line if available
    [OAK-5101] - Enable prefiltering for external changes
    [OAK-5105] - withIncludeAncestorsRemove should support **
    [OAK-5106] - Reuse NioEventLoopGroup in standby client
    [OAK-5110] - Use Metrics based stats collection in
    AsyncIndexUpdate
    [OAK-5111] - Change default size of the node deduplication cache
    [OAK-5113] - Avoid dispatching changes for checkpoint related
    changes
    [OAK-5116] - GCJournal should persist size only when compaction is
    successful
    [OAK-5117] - Improve checkMemory for compaction
    [OAK-5123] - Catch any exception in ChangeSetFilterImpl.excludes -
    and warn.
    [OAK-5127] - add 'enabled' flag to ChangeCollectorProvider
    [OAK-5130] - Prevent FileStore wrapping the segment buffer twice
    for the generation info
    [OAK-5131] - IndexDefinitionBuilder to allow for useInSpellcheck
    and useInSuggest
    [OAK-5132] - Limit diff cache entries in size
    [OAK-5140] - Collect stats around number of nodes traversed by
    AsyncIndexer
    [OAK-5142] - Make sure that metadata entries are eventually
    removed
    [OAK-5145] - Warn traversal queries: avoid repeated log entries
    [OAK-5146] - S3 getOrCreateReferenceKey() should provide a default
    implementation
    [OAK-5149] - Set root revision for child nodes in
    DocumentNodeStore.getChildNodes()
    [OAK-5150] - Log stats for JournalDiffLoader
    [OAK-5154] - Checkpoints should only be migrated if no custom
    paths are defined
    [OAK-5155] - Remove oak.documentMK.cacheConcurrency system
    property
    [OAK-5156] - Limit JournalDiffLoader to subtree
    [OAK-5157] - Source repository should be opened in read-only mode
    for sidegrade
    [OAK-5158] - Online compaction progress monitor
    [OAK-5160] - guarantee before of
    FilteringAwareObserver.contentChanged to be Nonnull
    [OAK-5161] - Improve logging of compaction cycles
    [OAK-5162] - Increase default size of the observation queue from
    1000 to 10000
    [OAK-5163] - ReadWriteVersionManager#getExistingBaseVersion throws
    an opaque exception if baseVersion doesn't exist
    [OAK-5166] - Change default cache distribution
    [OAK-5168] - GlobbingPathFilter recompiles wildcard patterns on
    each change
    [OAK-5169] - ChangeSetFilterImpl should support large exclude-path
    sets
    [OAK-5170] - Remove duplicate constants in
    DocumentNodeStoreService
    [OAK-5172] - TarMK Revision Diff should also print the deleted
    nodes properties
    [OAK-5181] - show correct path information for listeners with new
    filters
    [OAK-5182] - CugAccessControlManager.removePolicy should remove
    the mixin
    [OAK-5185] - Improved JMX descriptions for the query engine
    [OAK-5186] - ChangeSetFilterImpl: support many includePaths by
    filtering for 1st path name
    [OAK-5188] - Add support for includePropertyTypes to
    IndexDefinitionBuilder
    [OAK-5189] - SegmentRevisionGC should expose unformatted
    timestamps
    [OAK-5190] - Expose the builder instance used by
    IndexDefinitionBuilder
    [OAK-5191] - Deprecate stubs and fixtures related to oak-segment
    [OAK-5196] - IndexDefinitionBuilder should allow to disable
    indexing some property definitions
    [OAK-5206] - Avoid merge sort of changes in intermediate split
    documents
    [OAK-5207] - Reduce reads in NodeDocument.getVisibleChanges()
    [OAK-5211] - OakDirectory should not save dir listing if no change
    is done
    [OAK-5212] - Avoid updating the index nodestate if no change is
    done in index
    [OAK-5216] - AsyncIndexUpdate: CONCURRENT_UPDATE should contain
    relevant stacktrace
    [OAK-5218] - Enable use of hybrid index before first async
    indexing is done
    [OAK-5219] - Reindexing for async indexes should only be done when
    IndexUpdate is running in async mode
    [OAK-5232] - Add option to datastorecheck command to add blob ids
    to tracker offline
    [OAK-5234] - IndexDefinitionBuilder should be able to work with
    existing NodeBuilder
    [OAK-5237] - Change default query limit configuration
    [OAK-5247] - Allow setting property node name in
    IndexDefinitionBuilder
    [OAK-5255] - Flags in the oak-upgrade should allow to set boolean
    parameter value
    [OAK-5271] - IndexDefinitionBuilder should ignore safe change in
    "async" for determining reindex flag value
    [OAK-5273] - Reintroduce tests disabled or removed for OAK-5223
    [OAK-5295] - Allow chaining of include in building aggregation
    rule via IndexDefinitionBuilder
    [OAK-5303] - Improve readability of SegmentNodeStoreService
    [OAK-5317] - MongoBlobStore creates _id index unnecessarily
    [OAK-5337] - LastRevRecoveryAgent should avoid recovering
    documents from its own cluster id if the instance is running
    [OAK-5366] - Optimize pre-filtering with long paths
    [OAK-5406] - LuceneIndexEditor context should only log perf log if
    index is updated
    [OAK-5417] - Refactor registration of PropertyIndexAsyncReindex
    [OAK-5421] - Add LuceneDoc directly to queue from
    LuceneIndexEditor
    [OAK-5425] - Log warning when revision GC is skipped
    [OAK-5438] - FileStore and ReadOnlyFileStore might leak journal
    file descriptors
    [OAK-5443] - VersionGarbageCollector:measure time to sort docIds
    separately
    [OAK-5448] - Aggregate logic should optimize for case where
    patterns do not include wildcard
    [OAK-5452] - Fix typo in CheckpointMBean type value
    [OAK-5456] - Reduce reads in NodeDocument.getVisibleChanges()
    [OAK-5474] - Use random ports when running Cold Standby tests
    [OAK-5490] - Add validation for LdapIdentityProvider config.
    [OAK-5494] - Allow to disable mounting path fragments in the
    MultiplexingNodeStore
    [OAK-5518] - Skip tests from oak-tarmk-standby when running on
    Jenkins
    [OAK-5524] - Remove deprecated constants from SegmentVersion

New Feature

    [OAK-1312] - Bundle nodes into a document
    [OAK-1710] - Extend authentication with intelligent
    loginid->userid mapping
    [OAK-3574] - Query engine: support p=lowercase('x') and other
    function-based indexes
    [OAK-4003] - Add support for Group-Membership actions
    [OAK-4101] - Consider separate external (group) principal
    management
    [OAK-4129] - Use CredentialsSupport in TokenConfigurationImpl and
    TokenProviderImpl
    [OAK-4144] - Expose PropertyIndex stats
    [OAK-4180] - Use another NodeStore as a local cache for a remote
    Document store
    [OAK-4265] - XPath: support limited form of "union"
    [OAK-4412] - Lucene hybrid index
    [OAK-4476] - Option to check datastore consistency in oak-run
    [OAK-4521] - Oak-run: add profiling and analysis tools
    [OAK-4522] - Improve CommitRateLimiter to optionally block some
    commits
    [OAK-4566] - Multiplexing store support in Lucene Indexes
    [OAK-4626] - Use oak-upgrade to initialize the DocumentMK local
    cache nodestore
    [OAK-4654] - Allow to mount the secondary node store as a
    read-only subtree
    [OAK-4655] - Enable configuring multiple segment nodestore
    instances in same setup
    [OAK-4681] - Automatically convert *all* "or" queries to "union"
    for SQL-2
    [OAK-4712] - Publish S3DataStore stats in JMX MBean
    [OAK-4850] - List checkpoints
    [OAK-4871] - Multiplexing NodeStore
    [OAK-4922] - Implement number of facets retrieved in query
    configurable for LucenePropertyIndex
    [OAK-4983] - Add --verify mode to the RepositorySidegrade
    [OAK-5236] - LuceneIndexMBean: JMX method to get fields data
    [OAK-5324] - Enable property index reindexing via oak-run

Task

    [OAK-2403] - Improve monitoring capabilities for TarMk revision gc
    [OAK-3211] - Document External Identity Management
    [OAK-4073] - Release Oak 1.4.0
    [OAK-4076] - Benchmark to measure affect of number of indexes on
    uuid lookup performance
    [OAK-4084] - Add 1.4 branch in Jenkins matrix
    [OAK-4100] - ClusterNodeInfo lease renewal: add logging
    [OAK-4115] - Release Oak 1.5.0
    [OAK-4118] - Benchmarks for Membership Operations
    [OAK-4132] - JaasConfigSpiTest fails intermittently with missing
    LoginModule exception
    [OAK-4140] - Release Oak 1.4.1
    [OAK-4143] - Release oak 1.2.13
    [OAK-4178] - Release Oak 1.5.1
    [OAK-4192] - continously testing JR SNAPSHOT on oak trunk
    [OAK-4244] - Create new module oak-segment-next
    [OAK-4245] - Decide on a final name for oak-segment-next
    [OAK-4246] - Update segment tooling to choose target store
    [OAK-4247] - Deprecate oak-segment
    [OAK-4259] - Implement fixtures for running again oak-segment
    and/or oak-segment-next
    [OAK-4260] - Define and implement migration from oak-segment to
    oak-segment-tar
    [OAK-4272] - Release Oak 1.4.2
    [OAK-4273] - Disable testConcurrentWithConflict on Derby
    [OAK-4276] - Refactor / rework compaction strategies
    [OAK-4278] - Fix backup and restore
    [OAK-4279] - Rework offline compaction
    [OAK-4282] - Make the number of retained gc generation
    configurable
    [OAK-4286] - Rework failing tests in CompactionAndCleanupIT
    [OAK-4288] - TarReader.calculateForwardReferences only used by
    oak-run graph tool
    [OAK-4289] - Remove the gc generation from the segment meta data
    [OAK-4290] - Update segment parser to work with the new segment
    format
    [OAK-4303] - Use the oak-segment-next in the oak-upgrade tests
    [OAK-4308] - Align the UpgradeTest#upgradeFrom10 to
    oak-segment-next
    [OAK-4309] - Align property labels and descriptions in
    SegmentNodeStoreService
    [OAK-4312] - Fix test failures in SegmentDataStoreBlobGCIT
    [OAK-4352] - Release Oak 1.5.2
    [OAK-4355] - [oak-blob-cloud] Update to latest version of
    aws-sdk-java
    [OAK-4364] - Initial Benchmarks for oak-auth-external
    [OAK-4399] - Benchmark results for dynamic membership
    [OAK-4411] - DocumentNodeStore: Improve test coverage for
    concurrent updates and queries
    [OAK-4417] - Missing LoginModule Test and Documentation for
    OAK-3508
    [OAK-4427] - NodeDocument.fromString should also seal the returned
    document
    [OAK-4433] - Release Oak 1.5.3
    [OAK-4442] - S3DataStoreService should initialize
    SharedS3DataStore
    [OAK-4452] - Consistently use the term segment-tar
    [OAK-4469] - Implement unit tests for TarRevisions
    [OAK-4470] - Remove read revision method from DocumentNodeState
    [OAK-4484] - Release oak 1.5.4
    [OAK-4541] - Update Oak to Jackrabbit 2.13.0
    [OAK-4551] - Update Oak to Jackrabbit 2.13.1
    [OAK-4592] - Make DocumentNodeState immutable
    [OAK-4606] - Avoid persisting rootRevision in PathFilteringDiff
    [OAK-4607] - Add support for multiple directory in IndexCopier
    [OAK-4625] - Release Oak 1.5.7
    [OAK-4670] - Release Oak 1.5.8
    [OAK-4686] - DocumentNodeStoreTest#compareOnBranch fails for
    update.limit=10000
    [OAK-4720] - segment-tar should be used for the inplace JCR2
    upgrade
    [OAK-4753] - Add nrt as another index mode
    [OAK-4755] - Change default log of test to info
    [OAK-4774] - Check usage of DocumentStoreException in
    MongoDocumentStore
    [OAK-4781] - Release Oak 1.4.7
    [OAK-4791] - Enable animal sniffer plugin
    [OAK-4823] - Upgrade Oak Segment Tar dependency to 0.0.12
    [OAK-4889] - Update Oak trunk to Jackrabbit 2.13.4
    [OAK-4938] - clarify contract for UpdateOp with missing operation
    on _id
    [OAK-4977] - Add ProviderType annotation to MBean interfaces
    [OAK-4985] - Upgrade Oak Segment Tar dependency to 0.0.16
    [OAK-4988] - JournalGarbageCollector: re-order method signature
    [OAK-5000] - Upgrade Oak Segment Tar dependency to 0.0.18
    [OAK-5031] - Log configuration deprecation messages at WARN level
    [OAK-5036] - switch o.a.j.oak.jcr.observation.filter version to
    1.0.0 before oak 1.6 release
    [OAK-5039] - Change globbing definition of GlobbingPathFilter
    [OAK-5040] - Remove backup/restore methods in
    RepositoryManagementMBean
    [OAK-5049] - Add @Description annotations to methods in
    RepositoryManagementMBean
    [OAK-5054] - Disable oak-run build for Jackrabbit
    [OAK-5071] - Persistent cache: use the asynchronous mode by
    default
    [OAK-5075] - Refactor IndexCopier to make it more modular
    [OAK-5080] - Enable bundling by default
    [OAK-5134] - temporarily allow prefiltering test mode to be
    configured via an osgi config
    [OAK-5136] - remove prefiltering testmode (feature/config) before
    1.6
    [OAK-5165] - Close AsyncIndexUpdate instance upon deactivate
    [OAK-5171] - Get rid of test dependency to json.org JSON parser
    [OAK-5198] - Javadoc and Documentation of ExternalGroupRef
    [OAK-5199] - Test coverage for ExternalGroupRef
    [OAK-5202] - Update Oak trunk to Jackrabbit 2.13.5
    [OAK-5221] - Do not set :indexPath in index definition node
    [OAK-5230] - AsyncIndexService should ensure that async lanes
    should confirm to naming convention
    [OAK-5248] - Use segment-tar in webapp example
    [OAK-5256] - Add type property to LuceneIndexEditorProvider
    [OAK-5257] - Pass CommitContext as part of CommitInfo in
    OakInitializer
    [OAK-5293] - Static code analysis and code cleanup
    [OAK-5294] - Update Oak trunk to Jackrabbit 2.13.6
    [OAK-5318] - Update Oak trunk to Jackrabbit 2.13.7
    [OAK-5319] - Remove ReversedLinesFileReaderTestParamBlockSize
    [OAK-5320] - Update Oak trunk to Jackrabbit 2.14.0
    [OAK-5335] - Clarify the various directories and their usages in
    SegmentNodeStoreService
    [OAK-5351] - Disable RevisionGCMBean registration for non primary
    SegmentNodeStore
    [OAK-5422] - Increase the DocumentQueue size to 10000
    [OAK-5432] - update html unit test dependency
    [OAK-5445] - Log the path of LuceneDoc while adding it to queue
    [OAK-5466] - Switch to oak-segment-tar in pojosr module
    [OAK-5523] - LeaseUpdateRetryLoop: add test coverage
    [OAK-5537] - Javadoc config fixes

Test

    [OAK-4181] - Ignore GetInfoTest.testPropertyChanged() and
    testPropertyRemoved()
    [OAK-4186] - DocumentMemoryFixture does not dispose node store
    [OAK-4187] - Add DOCUMENT_MEM to NodeStoreFixtures
    [OAK-4188] - RepositoryStub on MemoryDocumentStore
    [OAK-4191] - Speed up LargeLdapProviderTest
    [OAK-4216] - Improve testing of DefaultSyncHandler
    [OAK-4226] - Improve testing of DefaultSyncContext
    [OAK-4248] - More tests for the exposed 'basic' package
    [OAK-4264] - Improve testing of SyncMBeanImpl
    [OAK-4386] - Verify that external login with dynamic membership
    populates subject
    [OAK-4489] - Improve test coverage on DocumentStore for concurrent
    query and invalidate
    [OAK-4802] - Basic cache consistency test on exception
    [OAK-4955] - Write log messages to file only (oak-pojosr)
    [OAK-4973] - Speed up tests with MongoFixture
    [OAK-4976] - AcquireRecoveryLockTest fails occasionally
    [OAK-4993] - Report plan when QueryTest.nodeType() fails
    [OAK-4995] - DocumentS3DataStoreStatsTest.testNoS3BlobStore() does
    not unregister node store
    [OAK-5012] - SegmentDataStoreBlobGCIT times out on travis-ci
    [OAK-5027] - Test utils for commonly used functionality
    [OAK-5059] - DocumentCachingDataStoreStatsTest sometimes stuck
    [OAK-5062] - Test failure in
    DocumentNodeStoreConfigTest.testRDBDocumentStore_CustomBlobDataSource
    [OAK-5063] - Failure in QueryTest.nodeType
    [OAK-5115] - IndexCopier#cowCopyDoneOnCloseExceptionHandling test
    hangs intermittently
    [OAK-5217] - Test nodetype based query support in
    LucenePropertyIndex

In addition to the above-mentioned changes, this release contains
all changes included up to the Apache Jackrabbit Oak 1.4.x release.

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/


Reply via email to