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

Sub-task

    [OAK-2382] - Move NodeStore implementations to separate modules
    [OAK-3262] - oak-jcr: update test exclusions once JCR-3901 is
    resolved
    [OAK-4648] - Improve documentation about structure of TAR files
    [OAK-5869] - Annotate documents with branch commits
    [OAK-5964] - Invalidate documents through journal
    [OAK-5968] - Introduce RevisionContext.getClock()
    [OAK-6227] - There should be a way to retrieve oldest timestamp to
    keep from nodestores
    [OAK-6445] - Ensure mounted node stores don't contain versionable
    nodes
    [OAK-6798] - Basic Blob GC test for in-memory NodeStore and
    BlobStore
    [OAK-6799] - OSGi service tests for Blob GC
    [OAK-6841] - Revert Changes made in OAK-6575 before 1.7.10 is
    released.
    [OAK-7011] - Add setter/getter to ConfigurationBase and
    CompositeConfiguration
    [OAK-7012] - Add references to SecurityProviderImpl and
    SecurityProviderRegistration
    [OAK-7013] - Replace usage in oak-auth-external
    [OAK-7015] - Deprecate TreeFactory/RootFactory
    [OAK-7016] - Replace usage in oak-authorization-cug
    [OAK-7017] - Replace usage in oak-core
    [OAK-7022] - Prepare for usage of Root/TreeProvider in security
    tests
    [OAK-7028] - MongoDocumentStore.getStats() implementation
    [OAK-7029] - RDBDocumentStore.getStats() implementation
    [OAK-7032] - Remove usage of DocumentMK
    [OAK-7049] - SecurityProviderBuilder : pass Root/TreeProvider to
    SecurityConfigurations

Technical task

    [OAK-3690] - Decouple SegmentBufferWriter from SegmentStore
    [OAK-3777] - Multiplexing support in default PermissionStore
    implementation
    [OAK-4456] - Setup Windows builds
    [OAK-4612] - Multiplexing support for CugPermissionProvider
    [OAK-5547] - Document TarMK design
    [OAK-5554] - RDB*Store: update postgresql JDBC driver reference to
    9.4.1212
    [OAK-5555] - RDB*Store: update Tomcat JDBC pool dependency to
    7.0.73
    [OAK-5627] - RDBDocumentStore: improve long query logging
    [OAK-5650] - RDBDocumentStore on Oracle:
    ArrayIndexOutOfBoundsException in Oracle JDBC driver
    [OAK-5652] - RDB*Store: update Oracle JDBC driver reference to
    12.1.0.2.0
    [OAK-5653] - RDB*Store: update Derby to release 10.13
    [OAK-5667] - RDBDocumentStore: remove support for DBs without
    support for CASE statements in SELECT
    [OAK-5751] - RDBDocumentStore: properly handle null values for
    system properties
    [OAK-5852] - RDB*Store: update Tomcat JDBC pool dependency to
    7.0.75
    [OAK-5855] - RDBDocumentStore: improve query support for VersionGC
    [OAK-5918] - Document enhancements in DocumentNodeStore in 1.6
    [OAK-5975] - Document enhancements in Observation in 1.6
    [OAK-5977] - Document enhancements in S3DataStore in 1.6
    [OAK-5981] - SegmentTar version check with disabled mmaping
    [OAK-6083] - RDBDocumentStore: implement support for
    VersionGCSupport extensions added for OAK-4780
    [OAK-6113] - update spring to 1.5.x release
    [OAK-6117] - Enable lucene indexing via oak-run
    [OAK-6134] - RDB*Store: update PostgreSQL JDBC
    [OAK-6140] - Create RDB-specific BlobReferenceIterator
    [OAK-6143] - RDB*store fixtures: shorten table name prefixes for
    Oracle
    [OAK-6176] - Service to provide access to async indexer state
    [OAK-6192] - Lucene IndexInfoProvider implementation
    [OAK-6196] - Improve Javadoc of multiplexing SPI
    [OAK-6216] - Property IndexInfoProvider implementation
    [OAK-6224] - Enable dumping index definitions and stats via
    oak-run
    [OAK-6226] - RDBDocumentStoreDB: missing @Override statements
    [OAK-6228] - Enable index consistency check via oak-run
    [OAK-6231] - Enable dumping index content via oak-run
    [OAK-6236] - Improve the help output from oak-run commands
    [OAK-6237] - Tomcat JDBC pool's StatementCache interceptor may
    cache borked PreparedStatements with DB2
    [OAK-6244] - RDB*Store: update postgresql JDBC driver reference to
    42.1.1
    [OAK-6247] - RDB*Store: update Tomcat JDBC pool dependency to
    7.0.78
    [OAK-6248] - Enable use of pre extracted text cache
    [OAK-6270] - There should be a way for editors to be notified by
    AsyncIndexUpdate about success/failure of indexing commit
    [OAK-6271] - Support for importing index files
    [OAK-6282] - Implement a DummyDataStore to be used to test setup
    with no BlobStore access
    [OAK-6286] - Use BlobStore in read only mode by default unless
    read-write mode enabled
    [OAK-6414] - Use Tika config to determine non indexed mimeTypes
    [OAK-6415] - Use dynamic service loader by default
    [OAK-6487] - IndexUpdate should not reindex newly imported index
    definitions
    [OAK-6505] - Ensure mounted node stores don't contain
    referenceable nodes
    [OAK-6506] - Ensure unique property indexes are consistent when
    mounting NodeStores
    [OAK-6524] - Provide an extension point to customize the NodeStore
    builders
    [OAK-6546] - JsonSerializer should taken an instance of JsopWriter
    [OAK-6580] - Ensure mounts are consistent with the node type
    registry
    [OAK-6581] - Ensure mounts are consistent with the namespace
    registry
    [OAK-6591] - Refactor ValuePattern related logic to utility
    methods
    [OAK-6603] - [oak-blob-cloud] Remove the older S3 connector
    relying on JR caching
    [OAK-6612] - Refactor encoding logic in property index to utility
    class
    [OAK-6627] - The backup command should not silently upgrade the
    FileStore
    [OAK-6630] - Remove older cached FileDataStore relying on JR
    caching
    [OAK-6649] - Provide callback support for newly inserted entries
    in unique index
    [OAK-6652] - RDB*Store: update postgresql JDBC driver reference to
    42.1.4
    [OAK-6660] - RDB*Store: update mysql JDBC driver reference to
    5.1.44 (2017-08-30)
    [OAK-6666] - Clean up tests depending on DocumentNodeStore
    [OAK-6669] - Blob serializer to serialize BlobStoreBlob
    [OAK-6671] - Enable support for custom types in ExternalSort
    [OAK-6679] - Remove dependency on SimpleCommitContext
    [OAK-6686] - Move OakVersion to oak-commons
    [OAK-6696] - RDB*Store: update Tomcat JDBC pool dependency to
    7.0.81
    [OAK-6697] - Use OakVersion in oak-commons
    [OAK-6699] - Move PathFilter to oak-store-spi
    [OAK-6705] - Replace usage of RootFactory and TreeFactory in
    spi.security test
    [OAK-6706] - Replaces usage of NamePathMapper implementations in
    AbstractAccessControlListTest
    [OAK-6712] - Move ChangeSet/Builder to oak-core-spi
    [OAK-6713] - AsyncIndexInfoService - Method to detect change in
    indexer state
    [OAK-6714] - Support non root index in ContentMirrorStoreStrategy
    [OAK-6716] - RDB*Store: update DB2 JDBC dependency to 4.19.66
    [OAK-6724] - Create empty module structure and dependencies
    from/to other oak modules
    [OAK-6725] - Move o.a.j.oak.plugins.tree.impl.ChildOrderDiff to
    o.a.j.oak.security.authorization.permission
    [OAK-6731] - Remove implementation dependencies in non-factory
    classes
    [OAK-6743] - Copy RootFactory, TreeFactory to separate package
    (and deprecate existing)
    [OAK-6755] - Convert oak-core and oak-store-document to OSGi R6
    annotations
    [OAK-6763] - Convert oak-examples to OSGi R6 annotations
    [OAK-6779] - IndexTracker should check diff on :status node to
    detect index updates
    [OAK-6781] - Reindex handling with synchronous lucene property
    indexes
    [OAK-6782] - RDBDocumentStore: inconsistent handling of cache
    invalidation on remove()
    [OAK-6787] - Delete property index entries recursively in batches
    to avoid large transaction
    [OAK-6811] - BasicDocumentStore: avoid use of API edge case in
    test of cache invalidation
    [OAK-6813] - DocumentStore conditional remove: reduce set of
    supported conditions to what the Version GC needs
    [OAK-6826] - Refactor Jcr class to remove dependency on
    o.a.j.oak.plugins.index
    [OAK-6832] - Synchronous nodetype lucene index support
    [OAK-6857] - Lucene unique index should check path validity for
    uniqueness constraint
    [OAK-6860] - RDB*Store: update Derby to release 10.14
    [OAK-6863] - RDB*Store: update Oracle JDBC dependency to 12.2.0.1
    [OAK-6903] - RDB*Store: update Tomcat JDBC pool dependency to
    7.0.82
    [OAK-6906] - RDB*Store: update Tomcat JDBC pool dependency to
    8.5.23 (for branches compatible with Java 7)
    [OAK-6907] - RDB*Store: require ojdbc 12.2.0.1 because of known
    issues in earlier versions
    [OAK-6938] - Add package export version for spi.xml
    [OAK-6939] - Non-existing package o.a.j.oak.util is exported twice
    [OAK-6942] - Add package export versions for core-spi
    [OAK-6944] - org.apache.jackrabbit.oak.management is exported but
    not used outside of oak-core
    [OAK-6945] - Add package export versions for oak-commons
    [OAK-6946] -
    org.apache.jackrabbit.oak.security.authentication.ldap must not be
    exported / filtered in parent
    [OAK-6949] - Non-existing package o.a.j.oak.util is filtered in
    parent/pom.xml
    [OAK-6951] - Add package export versions for oak-query-spi
    [OAK-6955] - Remove export for
    org.apache.jackrabbit.oak.plugins.itemsave
    [OAK-6958] - Remove package export for
    org.apache.jackrabbit.oak.plugins.atomic
    [OAK-6959] - Remove package export for
    org.apache.jackrabbit.oak.plugins.index.counter
    [OAK-6960] - Remove package export for
    org.apache.jackrabbit.oak.plugins.index.nodetype
    [OAK-6961] - Remove package export for
    org.apache.jackrabbit.oak.plugins.index.property.jmx
    [OAK-6974] - RDBDocumentSerializer: factor out columnProperties
    [OAK-6985] - RDBDocumentStoreJDBC: remove unused parameter
    [OAK-6987] - The restore command should not silently upgrade the
    FileStore
    [OAK-6988] - The checkpoints command should not silently upgrade
    the FileStore
    [OAK-6990] - The composite-prepare command should not silently
    upgrade the FileStore
    [OAK-6991] - The console command should not silently upgrade the
    FileStore
    [OAK-6992] - The datastorecheck command should not silently
    upgrade the FileStore
    [OAK-6994] - The garbage command should not silently upgrade the
    FileStore
    [OAK-6996] - The json-index command should not silently upgrade
    the FileStore
    [OAK-6997] - The recovery command should not silently upgrade the
    FileStore
    [OAK-6998] - The repair command should not silently upgrade the
    FileStore
    [OAK-6999] - The resetclusterid command should not silently
    upgrade the FileStore
    [OAK-7001] - The tika command should not silently upgrade the
    FileStore
    [OAK-7002] - The index command should not silently upgrade the
    FileStore
    [OAK-7003] - The export command should not silently upgrade the
    FileStore
    [OAK-7004] - The server command should not silently upgrade the
    FileStore
    [OAK-7019] - RDBDocumentStore: refactor table upgrade code
    [OAK-7023] - Replacement for DocumentMK.Builder
    [OAK-7036] - add JDBC information to metadata map
    [OAK-7037] - Remove package oaj.oak.commons.hash and move SipHash
    to oak-core
    [OAK-7039] - IndexDefinition should provides names of indexed
    relative node names
    [OAK-7040] - Fix unbindTreeProvider method on
    SecurityProviderRegistration
    [OAK-7059] - RDBDocumentStore.getStats() for MySQL
    [OAK-7062] - RDB*Store: update mysql driver reference to 5.1.45
    [OAK-7068] - RDBBlobStore may wrap SQLExceptions into
    RuntimeExceptions
    [OAK-7069] - RDBDataSourceWrapper: properly name
    setTemporaryUpdateException
    [OAK-7073] - Expose readOnly status for MongoDocumentStore

Bug

    [OAK-2114] - Aggregate index returns the ancestor node as well
    [OAK-3374] - Concurrent Updates of Group's Membership Results in
    Conflict
    [OAK-4390] - DocumentStoreStatsIT.update fails when RDB's append
    mode is disabled
    [OAK-4529] - DocumentNodeStore does not have a repository software
    version range check
    [OAK-5017] - Standby test failures
    [OAK-5173] - Path in uniqueness constraint violation exception is
    always the root
    [OAK-5239] - Test failure:
    ExternalPrivateStoreIT. testSyncUpdatedBinaryProperty()
    [OAK-5301] - Possible null dereference in MapRecord
    [OAK-5355] - Too eager refreshing of tree permissions in
    SecureNodeBuilder
    [OAK-5357] - StringUtils conversion functions can throw
    NullPointerException
    [OAK-5408] - Test failure: segment.standby.BrokenNetworkTest
    [OAK-5426] - Test failure: LuceneIndexQueryTest.sql2() query took
    too long
    [OAK-5441] - Test failure: BasicServerTest.testServerOk() Address
    already in use
    [OAK-5450] - Documented example for relativeNode in index
    aggregation does not work.
    [OAK-5482] - Test failure: LdapProviderTest - Address already in
    use
    [OAK-5485] - Test failure: LdapDefaultLoginModuleTest address
    already in use
    [OAK-5500] - Oak Standalone throws ClassNotFoundException:
    remoting/protectedHandlersConfig.xml
    [OAK-5501] - Oak Standalone: Webdav configuration is set to
    remoting mode by default
    [OAK-5521] - CommunicationObserver and its MBeans need proper
    synchronization
    [OAK-5536] - Facets on relative properties do not work properly
    [OAK-5542] - Test failure:
    security.authentication.ldap.LdapProviderTest (Address already in
    use)
    [OAK-5552] - Test failure: query.SQL2OptimiseQueryTest.orToUnions
    (Query took too long)
    [OAK-5557] - incomplete diffManyChildren during commitHook
    evaluation in a persisted branch
    [OAK-5573] -
    org.apache.jackrabbit.oak.segment.standby.StandbyTestIT.testSyncLoop
    [OAK-5580] - Show statistics about I/O operations in the check
    command
    [OAK-5587] - Node counter index estimates must not be used before
    first async index cycle
    [OAK-5590] - The check command doesn't do any check when "deep"
    option is not provided
    [OAK-5601] - documentMk backgroundRead should handle missing
    journal entries
    [OAK-5603] - Test failure: oak.upgrade.cli.blob.CopyBinariesTest
    [OAK-5612] - Test failure:

org.apache.jackrabbit.oak.run.osgi.DocumentNodeStoreConfigTest.testRDBDocumentStoreRestart
    [OAK-5619] - withIncludeAncestorsRemove reports unrelated
    top-level node deletion
    [OAK-5621] - Warn traversal queries: false positives for joins and
    SQL-2 queries using "or"
    [OAK-5624] - Test failure:
    org.apache.jackrabbit.oak.cache.ConcurrentTest.testLoaderBlock
    [OAK-5626] - ChangeProcessor doesn't reset 'blocking' flag when
    items from queue gets removed and commit-rate-limiter is null
    [OAK-5636] - potential NPE in ReplicaSetInfo
    [OAK-5649] - Error in RefreshPolicy can lead to IndexNode lock
    leak
    [OAK-5651] - java.lang.IllegalStateException logged when migrating
    Segment to Document
    [OAK-5656] - InitialContent depends on
    document.bundlor.BundlingConfigInitializer
    [OAK-5657] - leverage project.version in oak-examples
    [OAK-5668] - Test failure:
    observation.ObservationQueueFullWarnTest.warnOnRepeatedQueueFull
    [OAK-5703] - The replica set info gets invalid cluster id
    [OAK-5705] - Negative cost calculation for native Solr query
    [OAK-5738] - Potential NPE in LargeLdapProviderTest
    [OAK-5740] - deliver overflow change even without new commit
    [OAK-5750] - Test failure: PojoSR
    run.osgi.SecurityProviderRegistrationTest
    [OAK-5753] - Consistency check incorrectly fails for broken
    partial paths
    [OAK-5772] - Test failure:
    segment.standby.MBeanIT.testClientAndServerEmptyConfig
    [OAK-5773] - BlobCache does not implement Closeable
    [OAK-5783] - Test failure:

security.authentication.ldap.LdapProviderTest.testSplitDNIntermediatePath2
    [OAK-5836] - Permissions.isAggregate returns true for
    NO_PERMISSION placeholder
    [OAK-5850] - Weight reported by the record cache is off by one
    [OAK-5854] - Incorrect VersionGarbageCollector log message
    [OAK-5862] - Consistency check outputs wrong number of binary
    properties in debug messages
    [OAK-5863] - SegmentNodeBuilder getNodeState can trigger eager
    flush of child node builder
    [OAK-5864] - Missing license header: ThrowingCallbackHandler
    [OAK-5867] - Oak Lucene depends on 'org.junit' OSGi package
    [OAK-5874] - Duplicate uploads might happen with
    AbstractSharedCachingDataStore
    [OAK-5875] - project.version in oak-example fails release-plugin
    [OAK-5876] - SplitDocumentCleanup should implement Closeable
    [OAK-5877] - Oak upgrade usage note refers to oak-run
    [OAK-5878] - SplitDocumentCleanup iterates twice over
    splitDocGarbage
    [OAK-5879] - CompositeConfiguration: service ranking not respected
    upon later comparision
    [OAK-5887] - Stricter validation on primary type change
    [OAK-5888] - ReferenceBinaryIT fails after switching to
    oak-segment-tar
    [OAK-5891] - Test failure: org.apache.jackrabbit.oak.osgi.OSGiIT
    [OAK-5896] - fix typo in Not condition handling
    [OAK-5906] - PrivilegeContext.definesLocation returns true for
    siblings of privilege root path
    [OAK-5908] - BlobIdTracker should not resurrect deleted blob ids
    in a clustered/shared setup after GC
    [OAK-5909] - PrivilegeContext.definesContextRoot should take
    primary type into account
    [OAK-5915] - NPE in LIRS cache
    [OAK-5916] - OOM in SegmentReferenceLimitTestIT
    [OAK-5920] - Checkpoint migration will fail if the
    MissingBlobStore is used
    [OAK-5930] - incorrect test assumption in CacheConsistencyTestBase
    wrt batching
    [OAK-5933] - Checkpoints are not sorted correctly in
    RepositorySidegrade
    [OAK-5934] - AbstractSharedCachingDataStore initializes a loader
    which closes input stream retrieved prematurely
    [OAK-5943] - oak-examples/standalone using Spring fwk version
    referencing vulnerable version of commons-collections
    [OAK-5947] - Allowing non-admin user to set repository permissions
    fails
    [OAK-5948] - SegmentCompactionIT skips compaction runs because
    they are too frequent
    [OAK-5949] - XPath: string literals parsed as identifiers
    [OAK-5952] - Wrong eviction count reported by PriorityCache
    statistics
    [OAK-5955] - Don't expose SegmentRevisionGCMBean on standby
    instances
    [OAK-5966] - Not able to connect in read only mode with old
    DocumentNodeStore repo
    [OAK-5971] - Offline compaction corrupts the journal
    [OAK-5979] - FileStore version check should disable memory mapping
    [OAK-5993] - Utils.isIdFromLongPath() may throw
    StringIndexOutOfBoundsException
    [OAK-6006] - MultiplexingNodeStore sometimes fails to release
    checkpoint
    [OAK-6010] - UserContext.definesProperties doesn't respect system
    user nt
    [OAK-6011] - Test failure: JdbcToSegmentTest:validateMigration
    [OAK-6016] - DocumentNodeStore.compare() fails with
    IllegalStateException in read-only mode
    [OAK-6023] - UserImporter: handlePropInfo for rep:authorizableId
    never returns true
    [OAK-6028] - UserImporter.start: should return false for User tree
    [OAK-6033] - Test failure:
    CompactionAndCleanupIT.concurrentCleanup
    [OAK-6037] - Bulk and data segments are used as input for cleanup
    [OAK-6041] - o.a.j.oak.plugins.identifier.ClusterRepositoryInfo
    should have private constructor
    [OAK-6043] - org.apache.jackrabbit.oak.commons.jmx.JmxUtil must
    have a private constructor
    [OAK-6044] - org.apache.jackrabbit.oak.util.OakVersion must have
    private constructor
    [OAK-6045] -
    org.apache.jackrabbit.oak.plugins.tika.TextExtractorMain must have
    private constructor
    [OAK-6046] - Include references from unpersisted segments when
    running cleanup
    [OAK-6047] - incorrect metatype annotations
    [OAK-6048] - Java 8 compilation failure in
    ConfigurationParametersTest.java
    [OAK-6049] - incorrect metatype annotations in
    CustomRestrictionProvider exercise
    [OAK-6056] - Refactor SegmentStream to reduce buffering
    [OAK-6057] - incorrect system property check in blob/upgrade tests
    [OAK-6060] - Build failures on travis-ci
    [OAK-6061] - Test failure: StandbyTestIT.testSyncLoop
    [OAK-6063] - Oak run console not loading
    [OAK-6064] - Oak run logging not working
    [OAK-6066] - Migration of binaries relies on implementation
    details of the TarMK
    [OAK-6078] - oak.util.ApproximateCounter must have private
    constructor
    [OAK-6086] - Incorrect usage of RDBDocumentStore.unwrap()
    [OAK-6090] - Move exercise code to separate packages to avoid
    build warnings
    [OAK-6094] - Test failure: SecondaryStoreConfigIT
    [OAK-6100] - Test failure:
    CompositeDataStoreCacheTest.concurrentGetCached()
    [OAK-6110] - Offline compaction uses too much memory
    [OAK-6116] - SQL generated from xpath with 3 or more ORed paths
    along with order by clause throws parseException
    [OAK-6118] - XPathConditionVisitor wrongly escapes string values
    for ImpersonationCondition
    [OAK-6127] - Incorrect annotation for aggregator parameter in
    EventQueue constructor
    [OAK-6133] - Incorrect parent pom reference
    [OAK-6149] - AtomicCounter fails with LuceneIndexEditorProvider
    [OAK-6150] - Javadoc plugin fails on Java 8
    [OAK-6151] - Minor bugs in AccessControlImporter
    [OAK-6152] - AccessControlImporter doesn't handle multivalued
    restrictions
    [OAK-6155] - AccessControlManagerImpl: removing entries through
    principal-set-acl fails
    [OAK-6158] - AccessControlManagerImpl: adding mv-restrictions with
    principal-based-entry fails
    [OAK-6160] - PrincipalAcl.equals doesn't include principal
    [OAK-6164] - IOUtils.nextPowerOf2() returns lower power of 2 for
    very high int values
    [OAK-6168] - UserUtil.getAuthorizableRootPath when user/group path
    are equal or nested
    [OAK-6174] - Test failure: VersionGCTest.gcMonitorStatusUpdates
    [OAK-6181] - MongoMissingLastRevSeeker may return incomplete
    candidate set
    [OAK-6193] - IllegalStateException when closing the FileStore
    during garbage collection
    [OAK-6203] - Skip the WikipediaImport benchmark if no dump is
    specified
    [OAK-6204] - Reduce the verboseness of the ManyNodes benchmark
    [OAK-6205] - SecureNodeBuild keeps unused Context field
    [OAK-6208] - oak-run compact should have an option to
    disable/enable memory mapping
    [OAK-6219] - Test failure: OSGiIT
    [OAK-6229] - NPE when running datastorecheck command with S3
    [OAK-6230] - Minor cleanup for S3 tests
    [OAK-6233] - Typed properties not handled properly in the
    initialization of DataStore in oak-run
    [OAK-6250] - oak-run enforcer fails on size
    [OAK-6252] - re-introduce ServerCommand
    [OAK-6259] - Test failure: VersionGCTest.gcMonitorInfoMessages
    [OAK-6260] - Specify Total Reindexing time in ms
    [OAK-6266] - SolrQueryIndexProviderService should always have
    NodeAggregator
    [OAK-6267] - Version restore fails if restore would not change
    bundling root but changes bundled nodes
    [OAK-6273] -
    FilteringNodeStateTest#shouldHaveCorrectChildOrderProperty is
    failing
    [OAK-6277] - UserQueryManager: redundant check for colliding bound
    and offset
    [OAK-6278] - UserQueryManager: scope filtering for everyone
    groupId compares to principal name
    [OAK-6283] - FileCache should ignore when file evicted with
    replacement
    [OAK-6285] - Test failure: UploadStagingCacheTest.testUpgrade
    [OAK-6290] - UserQueryManager.findAuthorizables fails with
    IllegalArgumentException when there are multiple selectors
    [OAK-6292] - SecurityProviderRegistration.maybeUnregister: typo on
    comment
    [OAK-6293] - Enable test log creation for oak-blob-plugins
    [OAK-6294] - The "missing" node cache value breaks the
    DocumentNodeStore#applyChanges
    [OAK-6300] - CacheConsistencyTestBase: potential NPE in teardown
    [OAK-6306] - upgrade uses lucene wrong version (transient
    dependency)
    [OAK-6314] - ActiveDeletedBlobCollectorTest.multiThreadedCommits
    is failing intermittently for a few users
    [OAK-6317] - LMSEstimator update amount depending on cost amount
    [OAK-6321] - oak-blob-plugins exports all packages
    [OAK-6335] - Baseline check fails in oak-api
    [OAK-6338] - AbstractCompositeProviderTest reverse order flag is
    ignored
    [OAK-6342] - Cost overrides for Lucene index not always working
    [OAK-6360] - Failed to retrieve previously indexed checkpoint in
    composite node store
    [OAK-6365] - oak-store-spi fails on javadoc
    [OAK-6368] - Builder options not picked up after MongoDB is set
    [OAK-6372] - ListRecord cannot handle more than 16581375 entries
    [OAK-6374] - S3Backend masks actual thrown error when problem in
    filtering properties
    [OAK-6375] - RevisionGCMbeans are not filtered correctly in the
    RepositoryManagement
    [OAK-6376] - Race condition in the CompositeNodeStore#merge
    [OAK-6377] - Text extraction with oak-run and tika requires fake
    string in the command to work
    [OAK-6378] - Move the SegmentWriter API to its own interface
    [OAK-6379] - NPE in MergingNodeStateDiff on
    DELETE_DELETED_PROPERTY
    [OAK-6383] - Changes visible before merge
    [OAK-6384] - Dependency missing in oak-run
    [OAK-6386] - GarbageCollector#compact() throws NPE
    [OAK-6391] - With FastQuerySize, getSize() returns -1 if there are
    exactly 21 rows
    [OAK-6392] - Partial lastRev update with branches disabled
    [OAK-6393] - Remove
    NodeRecordTest#unreferencedNodeRecordShouldBeRoot
    [OAK-6404] - Move TAR handling logic in its own package
    [OAK-6410] - NPE when removing inexistent property from checked in
    node
    [OAK-6411] - Build failure due to unresolved oak-lucene bundle
    [OAK-6413] - FileCache getIfPresent doesn't update cache hit/miss
    counters
    [OAK-6416] - Test failure: MapRecordTest.testOak1104
    [OAK-6420] - Incorrect revisions sweep stats
    [OAK-6423] - MongoDocumentStore re-creates old index on
    _deletedOnce
    [OAK-6424] - LuceneSupportTest::fullTextSearch is still flaky
    [OAK-6438] - LuceneSupportTest.fullTextSearch failing
    [OAK-6440] - Incorrect node type diff
    [OAK-6442] - Update Oak 1.6 to Jackrabbit 2.14.2
    [OAK-6443] - NodeStoreFixtureProvider not closing
    DocumentNodeStore
    [OAK-6447] - CompositeNodeStore initialisation fails if
    ignoreReadOnlyWrites config property is not set
    [OAK-6451] - MultiplexingPermissionProvider is ignored by the
    CompositeAuthorizationConfiguration
    [OAK-6452] - IllegalStateException: too much data for a segment
    during oak-upgrade from segment to segment-tar
    [OAK-6454] - Inaccurate data in the oak-upgrade progress logger
    [OAK-6455] - Don't call observer concurrently from the
    CompositeNodeStore
    [OAK-6462] - Incorrect memory calculation for bundled node states
    [OAK-6463] - Property index update fails in composite NodeStore
    setup
    [OAK-6465] - Path supporting fragments should be an unbounded
    property
    [OAK-6481] - Missing versionable path property for
    oak:mount-libs-crx.default
    [OAK-6483] - Segment-based composite node store performance
    degradation
    [OAK-6486] - NPE in CompositeNodeStore
    [OAK-6490] - Pre-Extraction support fails for empty binaries
    [OAK-6493] - LuceneIndexProviderService.enableHybridIndexing=false
    results in NullPointerException
    [OAK-6499] - MultiplexingPermissionProvider wrong privileges
    composition
    [OAK-6500] - NRTIndex leaks file handles due to unclosed
    IndexReader
    [OAK-6502] - Property index: include/exclude key pattern list
    (escaping)
    [OAK-6503] - Active deletion of blobs tries to delete sub-16k
    inlined blobs in case of seg-tar
    [OAK-6504] - Active deletion of blobs needs to indicate
    information about purged blobs to mark-sweep collector
    [OAK-6507] - Cleanup incorrectly removes base state created by
    full compaction
    [OAK-6527] - CompositeNodeStore permission evaluation fails for
    open setups
    [OAK-6529] - IndexLoaderV1 and IndexLoaderV2 should not rely on
    Buffer.array()
    [OAK-6541] - While importing new index property indexes are
    getting marked for reindex
    [OAK-6542] - java.lang.NoClassDefFoundError:
    com/codahale/metrics/Reservoir
    [OAK-6547] - The machine id conflicts when running Oak in Docker
    containers
    [OAK-6548] - Composite node builder/state keeps references to all
    the ancestor states
    [OAK-6560] - Sidegrade uses too much memory
    [OAK-6562] - OakDirectory should recreate file node upon create
    [OAK-6567] - Fix OSGi wiring after netty update to 4.1.x
    [OAK-6572] - IndexReaderClosed exception seen after some run
    [OAK-6573] - The --src-external-ds option does not mandate
    argument but reads it later
    [OAK-6596] - Blob store consistency check can show bogus errors
    about missing blobs
    [OAK-6598] - LuceneIndexAggregationTest2 doesn't get executed by
    mvn test
    [OAK-6601] - SegmentWriteOperation.isOldGeneration() too eager
    [OAK-6602] - Improve resource management in BulkTransferBenchmark
    [OAK-6604] - Oak Blob Cloud is not used by oak-upgrade
    [OAK-6611] - [upgrade][oak-blob-cloud] Many S3DataStore errors
    during migration with oak-upgrade
    [OAK-6620] - NodeStoreFixtureProvider should unregister services
    registered with whiteboard
    [OAK-6624] - InitialContentMigrator overwrites an existing
    repository
    [OAK-6633] - Overwriting a versionable node with the
    copy-versions=false doesn't remove versionable properties
    [OAK-6635] - IndexReader closed exception in DocumentQueue
    [OAK-6640] - test failure in ResponseDecoderTest
    [OAK-6641] - test failure in
    org.apache.jackrabbit.oak.segment.standby.ExternalPrivateStoreIT
    [OAK-6645] - 1.7.7 release fails on javadoc
    [OAK-6648] - test failure seen in
    org.apache.jackrabbit.oak.segment.upgrade.UpgradeIT
    [OAK-6653] - Standby server must always send the persisted head to
    clients
    [OAK-6656] - OrderedPropertyIndexEditorProvider does not return
    Editor to IndexUpdate leading to "ordered" being marked as missing
    type
    [OAK-6659] - Cold standby should fail loudly when a big blob can't
    be timely transferred
    [OAK-6678] - Syncing big blobs fails since StandbyServer sends
    persisted head
    [OAK-6680] - Test failure:
    DocumentNodeStoreTest.disabledBranchesWithBackgroundWrite
    [OAK-6685] - Background operation may fail when document is
    malformed
    [OAK-6687] - ReadOnly connection to fresh SegmentNodeStore setup
    failing
    [OAK-6691] - RepeatedRepositorySidegradeTest flushes an already
    closed FileStore
    [OAK-6704] - Set default merge polity to tiered as
    CommitMitigatingTieredMergePolicy seems to be bad for performance
    [OAK-6717] - DefaultIndexWriter using incorrect merge scheduler
    [OAK-6722] - Incorrect and unused dependencies in oak-query-spi
    [OAK-6723] - Incorrect scope of logback-classic in
    oak-blob-plugins
    [OAK-6729] - PojoSR: RepositoryFactory tests should have timeouts
    [OAK-6730] -

oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java
    does not compile with jdk 9
    [OAK-6740] - Test failure: StandbyTestIT.testSyncLoop()
    [OAK-6744] - OAK Solr Core on JDK 9: Could not find artifact
    jdk.tools:jdk.tools:jar:1.6
    [OAK-6745] - Oak Web Application Example: Execution default-war of
    goal org.apache.maven.plugins:maven-war-plugin:2.6:war failed
    [OAK-6748] - Test failure:
    ExternalPrivateStoreIT.testSyncBigBlob()
    [OAK-6750] - Lucene facets don't work with relative properties
    [OAK-6753] - Wrong binding in TokenConfigurationImpl
    [OAK-6776] - Correctly use IndexPlan.supportsPathRestrictions
    [OAK-6777] - IndexReader closed exception in previous reader
    [OAK-6778] - XPath union with "explain" doesn't explain
    [OAK-6780] - Duplicated _exportcontents directive in oak-lucene's
    pom.xml
    [OAK-6783] - Slow queries JMX bean: sort by rows, not time
    [OAK-6784] - Exceptions are inhibited in oak-run compact
    [OAK-6786] - Existing version histories are not removed when using
    --include-versions=false
    [OAK-6789] - RDB: RevisionGC performance on Oracle
    [OAK-6790] - FacetResult class isn't exposed anymore
    [OAK-6796] - DataStoreTestBase.testSyncBigBlob failures
    [OAK-6800] - Minor typo in message returned by consistency check
    through mbean
    [OAK-6808] - update surefire plugin to 2.20.1 for use with Java 9
    [OAK-6816] - DataStoreTrackerGCTest failures
    [OAK-6825] - oak-examples/standalone test failure on Java 9
    [OAK-6827] - Consistency check fails with active deletions
    [OAK-6829] -
    ExternalPrivateStoreIT/ExternalSharedStoreIT.testSyncBigBlob
    failures
    [OAK-6837] - MTFulltextQueryTermsProvider should catch exceptions
    due to Joshua errors
    [OAK-6838] - IS NOT NULL condition for relative properties not
    working as expected
    [OAK-6840] - Tar recovery chokes on bulk segments
    [OAK-6843] - Log correct path while initializing the DataStore
    [OAK-6845] - org.apache.jackrabbit.oak.jcr.query.QueryJcrTest1IT
    on java 9 fails with OutOfMemory
    [OAK-6852] - RDBDocumentStore conditional remove: check condition
    properly
    [OAK-6861] - Warn messages when building oak-query-spi
    [OAK-6864] - IndexUpdate should disable superseded indexes only
    during an async cycle run
    [OAK-6865] - Account for active deletion in oak-run datastorecheck
    [OAK-6866] - Force compaction timeout logs wrong number of seconds
    [OAK-6869] - oak-http and oak-remote use potentially vulnerable
    versions of com.fasterxml.jackson
    [OAK-6871] - Composite roles are not compatible with Windows
    [OAK-6874] - Segment-Tar-Cold fixture doesn't correctly set up
    standby blob store
    [OAK-6875] - Lucene index: the query read limit is ignored
    [OAK-6876] - IndexDisabler should not use NodeBuilder#isReplaced
    [OAK-6877] - NodeBuilder#isReplaced behaves incorrectly for
    SegmentNodeStore
    [OAK-6884] - TarMK disk space check is not synchronized with
    FileStore opened state
    [OAK-6885] - Add missing id field setting in CloudSolrServer
    [OAK-6886] - OffRC always logs 0 for the number of compacted nodes
    in gc.log
    [OAK-6888] - Flushing the FileStore might return before data is
    persisted
    [OAK-6889] - Followup on OAK-6755: fix OSGi component descriptors
    [OAK-6890] - Background threads might not be automatically
    restarted
    [OAK-6894] -

org.apache.jackrabbit.oak.segment.upgrade.UpgradeIT.offRCUpgradesSegments
    failing
    [OAK-6895] - Suggest directory lookup (query) isn't closed
    [OAK-6901] - Unknown channel option 'TCP_NODELAY' for channel
    warning in cold standby
    [OAK-6902] - Cost estimation for path tranformable queries is
    incorrect
    [OAK-6909] - FileStore.compact does not persist compacted head to
    journal
    [OAK-6912] - Cold standby performance regression due to segment
    caching
    [OAK-6923] - Update Oak trunk to Jackrabbit 2.15.8
    [OAK-6926] - Lucene: contains "a -b" with path restriction ignored
    "a"
    [OAK-6928] - RootFactory: deprecated method createSystemRoot lost
    during to m12n effort
    [OAK-6930] - TreeUtil.getString(Tree,String,String defaultValue)
    is not static
    [OAK-6935] - Active deletion logs warn messages when it tries to
    delete blobs already purged by DSGC
    [OAK-6943] - Build failure: baseline error for o.a.j.o.spi.xml
    [OAK-6950] - Active deletion can delete blobs from a shared store
    when a clone setup is created
    [OAK-6953] - CacheLIRS cannot be disabled
    [OAK-6966] - SizeDeltaGcEstimation should compute the repository
    size from the same source
    [OAK-6967] - Skip problematic binaries: spurious warning in log
    file
    [OAK-6968] - Cumulative RGC stats always shows timeActive=0
    [OAK-6972] - DefaultIndexReader closes suggest directory multiple
    times
    [OAK-6975] - test failure seen in
    org.apache.jackrabbit.oak.segment.upgrade.UpgradeIT
    [OAK-6977] - The oak-run process started by UpgradeIT interferes
    with Surefire
    [OAK-6982] - Test failure:
    TokenCleanupTest.testAllExpiredReachingThreshold
    [OAK-6984] - High read IO in compaction retry cycles
    [OAK-6986] - Tooling should not silently upgrade the FileStore
    [OAK-7005] - Test failure:
    DocumentLeaseUpdateRetryTest.testLeaseRetryLoopWithDelay
    [OAK-7007] - Test failure: FacetTest.testFacetsNA()
    [OAK-7008] - Estimation for FULL can be off sometimes
    [OAK-7020] - Windows test failures for oak-solr-core
    [OAK-7026] - DataStoreCheckTes#testConsistencyVerbose* test
    failures
    [OAK-7030] - DeleteOnCloseFileInputStream logs to the wrong logger
    [OAK-7044] - Misleading log message by LeaseFailureHandler
    [OAK-7045] - Incorrect module name in Utils.getModuleVersion()
    [OAK-7052] - Active deletion purge can OOM if number of blobs
    listed in a file become too large
    [OAK-7053] - Commit fails even though change made it to the
    DocumentStore
    [OAK-7054] - Build failure: ClassNotFoundException:
    solr.JsonUpdateRequestHandler
    [OAK-7070] - rep:excerpt selector broken as regression of OAK-6750
    [OAK-7078] - NullPointerException in
    FilteredSortedSetDocValuesFacetCounts during query evaluation
    [OAK-7082] - ArrayIndexOutOfBoundsException when upgrading from
    Oak 1.6
    [OAK-7093] - ActiveDelete synchronization with BlobTracker leaves
    temp files
    [OAK-7095] - NodeStoreFixtureProvider should use BlobStore from
    DocumentNodeStore if no DataStore configured
    [OAK-7097] - DocumentStoreIndexer should clear the index state
    prior to indexing
    [OAK-7101] - Stale documents in RDBDocumentStore cache
    [OAK-7108] - TraverseWithSortStrategy fails to register memory
    pool listener with heap less than 2GB
    [OAK-7111] - Constraint violation message is imprecise when an
    unexpected child node is found
[OAK-7119] - Restrict de-serialization mechanism for older serialized cache
    map in DataStoreCacheUtils to the classes required
    [OAK-7123] - ChildNodeStateProvider does not return all immediate
    children

Documentation

    [OAK-3914] - Copy on read mbean is not properly documented anymore
    [OAK-4030] - DocumentNodeStore: required server time accuracy
    [OAK-4414] - Document IndexStatsMBean features
    [OAK-5424] - Add documentation about revision garbage collection
    [OAK-5665] - use of -R in diagnostic-build.md
    [OAK-5692] - Oak Lucene analyzers docs unclear on viable
    configurations
    [OAK-5789] - Oak does not enforce jcr:namespaceManagement at path
    level
    [OAK-5938] - Sort runmodes in README.md
    [OAK-5946] - Document indexing flow
    [OAK-5974] - Move references to various third party link to
    separate page from main page
    [OAK-6253] - Document logging and option format in oak-run
    [OAK-6370] - Improve documentation for text pre-extraction
    [OAK-6623] - Document QueryEngineSettings.FastQuerySize /
    QueryEngineSettingsService

Epic

    [OAK-3287] - DocumentMK revision GC
    [OAK-3341] - lucene technical debt
    [OAK-4243] - Oak Segment Tar Module
    [OAK-4933] - Create a data store implementation that integrates
    with Microsoft Azure Blob Storage
    [OAK-5599] - Slim oak-run
    [OAK-5664] - Require Java 8
    [OAK-6460] - Index related tooling
    [OAK-6727] - Oak should compile & test on Java 9

Improvement

    [OAK-937] - Query engine index selection tweaks: shortcut and hint
    [OAK-2621] - Too many reads for child nodes
    [OAK-2710] - Remove Utils.unshareString
    [OAK-2808] - Active deletion of 'deleted' Lucene index files from
    DataStore without relying on full scale Blob GC
    [OAK-3070] - Use a lower bound in VersionGC query to avoid
    checking unmodified once deleted docs
    [OAK-3342] - move benchmarks in oak-benchmark module
    [OAK-3381] - Provide Common Ancestor To ConflictHandler
    [OAK-3498] - DN can't be used as the group name in the external
    auth handler
    [OAK-3606] - Improvements for IndexStatsMBean usage
    [OAK-3801] - Move solr dependency into oak-benchmarks module
    [OAK-3878] - Avoid caching of NodeDocument while iterating in
    BlobReferenceIterator
    [OAK-3987] - Indexer dry run mode
    [OAK-4318] - Upgrade oak-solr to Solr 5.x
    [OAK-4462] - LoginModuleImpl: option to have AuthInfo populated
    with userId instead of loginName
    [OAK-4513] - Detect and log references across stores
    [OAK-4619] - Unify RecordCacheStats and CacheStats
    [OAK-4637] - Property index: include/exclude key pattern list
    [OAK-4732] - (Slightly) prioritise reads over writes
    [OAK-4839] - Allow to register DocumentNodeStore as a
    NodeStoreProvider
    [OAK-4887] - Query cost estimation: ordering by an unindexed
    property not reflected
    [OAK-4906] - Lucene: Support relative property based query by
    transforming the path
    [OAK-4920] - DefaultSyncHandler.listIdentities() search too broad,
    triggers traversal warning
    [OAK-5048] - Upgrade to Tika 1.15 version
    [OAK-5052] - Make update.limit configurable via OSGi
    [OAK-5192] - Reduce Lucene related growth of repository size
    [OAK-5194] - 'Dynamic' Automembership should respect both User and
    Group Config Values
    [OAK-5222] - Optimize the multiplexing node store
    [OAK-5275] - The check command should accept the path to the store
    as a positional argument
    [OAK-5276] - The check command overloads the meaning of the "deep"
    option
    [OAK-5277] - The check command defines a useless default value for
    the "bin" option
    [OAK-5302] - Remove legacy upgrade code from
    AbstractFileStore.collectFiles
    [OAK-5309] - Supporting roles in RepositoryManager execution of
    maintenance tasks
    [OAK-5350] - Improve code coverage of oak-segment-tar
    [OAK-5412] - Use GCMonitor for revision gc task run in
    DocumentNodeStore
    [OAK-5483] - Move TemporaryPort to the oak-commons module
    [OAK-5495] - Allow to migrate only paths matching given path
    fragment
    [OAK-5505] - Delete o.a.j.o.segment.http.HttpStore
    [OAK-5514] - Standby Automatic Cleanup should be on by default
    [OAK-5515] - Allow to ignore writes for some of the read-only
    paths
    [OAK-5525] - VisibleEditor should use the NodeStateUtils to
    determine visibility
    [OAK-5546] - [BlobGC] Adapt time to delete blobs based on lucene
    indexing activity
    [OAK-5559] - Reduce reads with overlapping previous documents
    [OAK-5571] - VersionGarbageCollector can remove leaf nodes eagerly
    [OAK-5572] - Enable instrumentation of I/O operations
    [OAK-5589] - GlobbingPathFilter constructor is expensive
    [OAK-5594] - leaderboard of consolidated listener stats should
    show path as well
    [OAK-5595] - The check command should do deep traversals by
    default
    [OAK-5602] - Avoid missing journal entries
    [OAK-5604] - The check command should accept a non-argument "bin"
    option for checking binaries
    [OAK-5605] - Speed up time to cancel revision GC
    [OAK-5617] - Metrics for DocumentStore.remove()
    [OAK-5620] - Simplify consistency check
    [OAK-5631] - IOMonitor should expose the time spent reading
    segments
    [OAK-5632] - IOMonitor should expose the time spent writing
    segments
    [OAK-5637] - Increase time granularity in IOMonitor
    [OAK-5654] - Improve log output with UserImporter
    [OAK-5666] - oak-upgrade should validate the paths
    [OAK-5690] - Remove duplicated code from TarRevisions and
    ReadOnlyRevisions
    [OAK-5691] - Remove duplicated code from FileStore and
    ReadOnlyFileStore
    [OAK-5704] - VersionGC: reset _deletedOnce for documents that have
    been resurrected
    [OAK-5742] - more logging when ChangeProcessor.stopAndWait fails
    [OAK-5743] - UserQueryManager: omits nt-name when searching for
    properties without path deliminator
    [OAK-5752] - Remove duplicate code for background operation timing
    log
    [OAK-5761] - Move commit value resolution to DocumentNodeStore
    [OAK-5784] - hashCode of RestrictionImpl doesn't include value
    [OAK-5788] - Perform update of single node in one remote call if
    possible
    [OAK-5790] - Chronologically rebase checkpoints on top of each
    other during compaction
    [OAK-5794] - Track time to check GC candidate nodes
    [OAK-5827] - Don't use SHA-1 for new DataStore binaries
    [OAK-5833] - Intermediate commits during (re-)indexing of
    synchronous index
    [OAK-5835] - JournalReader should include timestamp information
    (if available)
    [OAK-5837] - Consistency check should log more details when
    traversing a corrupt node
    [OAK-5861] - SegmentGCOptions toString duplicates
    gcSizeDeltaEstimation info
    [OAK-5873] - Improve SegmentNodeStoreService OSGi description for
    customBlobStore to remove default False
    [OAK-5881] - Reduce code duplication in
    ConfigurationParameters.Milliseconds.of
    [OAK-5886] - Confusing log message from lease update
    [OAK-5890] - Benchmarks: add utility for system login to
    AbstractTest
    [OAK-5892] - ResultRowToAuthorizable: create user/group from tree
    [OAK-5893] - Async index abort should work even during traversals
    without index updates
    [OAK-5894] - IndexDefinitionBuilder shouldn't set type=lucene if
    type=disabled in existing tree
    [OAK-5895] - Avoid jcr-path conversion in AuthorizableIterator
    [OAK-5899] - PropertyDefinitions should allow for some
    tweakability to declare usefulness
    [OAK-5900] - Add Nonnull Annotation to
    TokenInfo.matches(TokenCredentials)
    [OAK-5901] - Minor improvements to TokenProviderImpl and
    TokenValidator
    [OAK-5902] - Cold standby should allow syncing of blobs bigger
    than 2.2 GB
    [OAK-5904] - Property index: log when reindexing is done
    [OAK-5910] - Reduce copying of data when reading mmapped records
    [OAK-5921] - Make import org.apache.log4j optional
    [OAK-5926] - Readability of membership code
    [OAK-5929] - Redundant test for null with
    AuthorizableImpl.checkValidTree implementations
    [OAK-5935] - AbstractSharedCachingDataStore#getRecordIfStored
    should use the underlying cache.get
    [OAK-5936] - Remove unused depth parameter
    SegmentWriteOperation#writeNode and related methods
    [OAK-5939] - MembershipWriter.removeMembers writes back too often
    [OAK-5940] - Remove CachedNodeDocument
    [OAK-5941] - Improve the checkpoint release & retrieve for
    multiplexing node store
    [OAK-5951] - Enable Metrics for SegmentCompactionIT test
    [OAK-5953] - PriorityCache statistics should support load
    exception count
    [OAK-5954] - Unify and simplify the deduplication caches
    [OAK-5956] - Improve cache statistics of the segment cache
    [OAK-5957] - Avoid direct access to fields in DocumentNodeStore
    [OAK-5959] - Hide DocumentNodeStore.backgroundRead()
    [OAK-5961] - Handle scenario where jansi library cannot be loaded
    [OAK-5967] - Null instances for SegmentId and RecordId
    [OAK-5969] - SegmentCompactionIT should expose SegmentNodeStore
    statistics via JMX
    [OAK-5972] - Provide a way to abort indexing / reindexing of
    synchronous indexes
    [OAK-5983] - BlobGC should log the amount of space reclaimed after
    GC run is done
    [OAK-5985] - add CloseableIterator similar to CloseableIterable
    [OAK-5988] - Hide DocumentNodeStore.backgroundWrite()
    [OAK-5989] - Create a partial index on _deletedOnce instead of
    sparse index
    [OAK-5991] - FileStoreBuilder should print out a more helpful
    error message when buildReadOnly fails
    [OAK-5996] - Revisions.setHead(Function) should return the new
    head or null instead of boolean
    [OAK-6000] - Support for the checkpoint metadata retrieval/update
    in oak-run
    [OAK-6001] - Remove unused code from FileStore and TarWriter
    [OAK-6002] - Encapsulate TAR files handling in its own class
    [OAK-6003] - Allow to migrate checkpoints for all type of
    sidegrades
    [OAK-6005] - Add record id of the compacted root to the GC journal
    [OAK-6012] - Add annotation with ImpersonationImpl
    [OAK-6013] - Add annotations to AuthorizablePropertiesImpl
    [OAK-6014] - AuthorizablePropertiesImpl.removeProperty if
    non-existing property outside of scope
    [OAK-6018] - UserImporter: session field can avoided by passing to
    init method
    [OAK-6019] - UserImporter: Redundant assignment of UserManager
    [OAK-6020] - add a Guava Stopwatch like duration formatter
    [OAK-6021] - Remove segment graph functionality from oak-run
    [OAK-6026] - spi.xml.PropInfo: missing error msg in case of
    multivalue mismatch
    [OAK-6027] - UserImporter.Impersonators : use Oak path to user
    instead of ID
    [OAK-6029] - UserImporter.startChildInfo: rather check state than
    for currentMembership being null
    [OAK-6030] - Add tests for TarFiles
    [OAK-6032] - Enable tests from SegmentCachingDataStoreStatsTest
    [OAK-6034] - Move security related service trackers from
    spi.whiteboard to oak.security package space
    [OAK-6035] - Mark AbstractLoginModule and Authentication as
    provider types
    [OAK-6036] - Remove WhiteboardUtils#registerObserver method
    [OAK-6038] - Drop dependency of spi.security.* tests from
    AbstractSecurityTest
    [OAK-6039] - TarFiles shouldn't need to regularly create a new
    list of TarReader instances
    [OAK-6040] - FileStore: Log version at creation time
    [OAK-6042] - Allow to support mount path fragments under specified
    subtrees
    [OAK-6050] - Unify used version of osgi-mock
    [OAK-6052] - Cleanup blocks writers
    [OAK-6053] - Move OakInitializer from
    org.apache.jackrabbit.oak.spi.lifecycle to o.a.j.oak
    [OAK-6059] - Revert VersionGC supplier change
    [OAK-6068] - Assign meaningful names to cold standby threads
    [OAK-6070] - Location of ClusterRepositoryInfo in
    o.a.j.oak.plugins.identifier package
    [OAK-6072] - Move check for cyclic membership to GroupImpl
    [OAK-6073] - Get rid of dependency from oak-blob-azure from
    oak-core
    [OAK-6076] - Ensure tracking of slow queries includes the full
    execution time including getting result nodes
    [OAK-6122] - enforce oak-run size
    [OAK-6123] - Filter documents not matching path restriction in
    LucenePropertyIndex even when evaluatePathRestriction isn't set
    [OAK-6126] - ValueImpl can be package private
    [OAK-6129] - Create compound index on _sdType and _sdMaxRevTime
    [OAK-6131] - No need to rebuild the counter/uuid index anymore
    [OAK-6136] - Extract the multiplexing implementation code into a
    separate bundle
    [OAK-6142] - Warn or fail queries above a configurable cost value:
    use log level "warning"
    [OAK-6145] - Move MembershipWriter#setMembers() to oak-upgrade
    [OAK-6146] - LoginModuleImpl could also clear local state after
    successful commit
    [OAK-6147] - Review SessionOperation usage in security code
    [OAK-6154] - Use Closer in DocumentNodeStoreService
    [OAK-6169] - Add "/jcr:root" to o.a.j.oak.spi.query.QueryConstants
    [OAK-6177] - AddMembersTest should add unique items to groups
    [OAK-6179] - Simplify collecting Oak setup details via Felix
    Inventory
    [OAK-6180] - Tune cursor batch/limit size
    [OAK-6184] - Avoid repository read for built-in aggregations upon
    PrivilegeBitsProvider.getAggregatedPrivilegeNames
    [OAK-6188] - Allow to exclude nodes containing name fragment
    during the migration
    [OAK-6190] - Allow to migrate checkpoints even if the custom
    include paths are specified
    [OAK-6195] - Reduce visibility of some member of Segment
    [OAK-6197] - Remove DocumentNodeStore dependency in
    UnsavedModifications
    [OAK-6198] - Fix formatting of README.md
    [OAK-6207] - RDBDocumentStore: allow schema evolution part 2:
    record schema version when updating/inserting rows
    [OAK-6210] - Provide a consistent and extensible way to handle
    oak-run options while creating NodeStore
    [OAK-6212] - AccessControlAction: minor improvement when user or
    group privileges are empty
    [OAK-6213] - Remove force flag from oak-run compact
    [OAK-6218] - Including id in DocumentStoreException which wrap
    MongoException
    [OAK-6221] - Deprecate SecurityProviderImpl
    [OAK-6223] - Expose socket keep-alive option
    [OAK-6242] - Add 'container' as an acceptable property name for s3
    bucket
    [OAK-6256] - Prevent creating the across-mounts references
    [OAK-6263] - Create test covering removal of a referenced node
    [OAK-6269] - Support non chunk storage in OakDirectory
    [OAK-6272] - AbstractNodeState.toString does not scale to many
    child nodes
    [OAK-6289] - Unreferenced argument reference in method
    SegmentBufferWriter.writeRecordId
    [OAK-6295] - Move constants from oak.query.QueryImpl to
    oak.spi.query.QueryConstants
    [OAK-6296] - Move JACKRABBIT_2_SINGLE_QUOTED_PHRASE from
    o.a.j.oak.query.ask.FullTextSearchImpl to
    oak.fulltext.FullTextParser
    [OAK-6298] - FacetHelper should have private constructor
    [OAK-6299] - FilterIterators should have a private constructor
    [OAK-6301] - Make QueryEngineSettingsMBeanImpl an inner class of
    o.a.j.oak.Oak
    [OAK-6302] - UserInitializer: createSystemRoot can get null value
    for QueryEngineSettings
    [OAK-6307] - Function to find all large docs in Mongo
    [OAK-6313] - Support properties filtering in the Whiteboard track
    method
    [OAK-6320] - Allow to disable the read-only mode in composite node
    store
    [OAK-6323] - Remove StandbyTest
    [OAK-6324] - Remove SegmentNodeStoreFactoryTest#nodeStoreProvider
    [OAK-6325] - Turn CacheWeightsTest into a command-line utility
    [OAK-6326] - Remove unused field SegmentNodeStore.reader
    [OAK-6327] - Convert FileStore.maxFileSize fiels into local
    variable
    [OAK-6328] - Declare StandbyStoreService.closer final
    [OAK-6329] - Declare immutable field of FileStore.CompactionResult
    final
    [OAK-6330] - LockBasedScheduler.execute declares exception that is
    never thrown
    [OAK-6331] - Closeable.close in StandbyStoreService declares
    exception that is never thrown
    [OAK-6332] - Add missing @Nonnull annotations
    [OAK-6333] - IndexPlanner should use actual entryCount instead of
    limiting it to 1000
    [OAK-6336] - Use the oak-blob-cloud for s3 support in oak-upgrade
    [OAK-6339] - MapRecord#getKeys should should initialize child
    iterables lazily
    [OAK-6340] - Don't restart the composite node store on every node
    store bind/unbind
    [OAK-6341] - oak-run redirects reindexing info to STDERR
    [OAK-6347] - Don't track local changes in the document cache
    tracker
    [OAK-6348] - Active deletion of blobs should have larger queue for
    blobs being deleted
    [OAK-6349] - Randomized permission tests
    [OAK-6350] - Improve log reporting if multiple indexes compete for
    same query
    [OAK-6351] - Invalidate cache entries when getChildNodes() is
    aborted
    [OAK-6353] - Use Document order traversal for reindexing performed
    on DocumentNodeStore setups
    [OAK-6354] - Move DocumentNodeStoreMBean implementation in
    separate file
    [OAK-6355] - Usage of NodeAggregator creates cyclic dependency
    between oak.spi.query and oak.plugins.index.*
    [OAK-6356] - Allow CompositePermissionProvider to OR entries
    [OAK-6359] - Change behavior for very complex queries
    [OAK-6361] - Oak run tika command should connect to NodeStore in
    read only mode
    [OAK-6362] - Use NodeStoreFixtureProvider in tika command of
    oak-run
    [OAK-6363] - BlobStoreFixtureProvider should support '.cfg' files
    also
    [OAK-6364] - BlobStoreFixtureProvider should configure a default
    'secret' value if none specified
    [OAK-6369] - Reduce cache segments for revisions sweep
    [OAK-6381] - Improved index analysis tools
    [OAK-6388] - Enable Azure shared access signature for blob store
    connector
    [OAK-6394] - Reduce impact of default multiplexing setup on the
    ReferenceIndex
    [OAK-6395] - Refactor monitoring of deduplication caches
    [OAK-6396] - Reduce usages of DefaultSegmentWriter in favour of
    SegmentWriter
    [OAK-6406] - Cleanup constants in Segment class
    [OAK-6407] - Refactor oak.spi.query into a separate module/bundle
    [OAK-6409] - Oak-run indexing: improved (user friendly) output
    [OAK-6425] - Make the CompositeNodeStore thread-safe
    [OAK-6428] - Add flag for controlling percentile of commit time
    used in scheduler
    [OAK-6430] - Remove Apache Commons Math3 dependency from Segment
    Tar
    [OAK-6432] - Make dynamic reference greedy and static to simplify
    LuceneIndexProviderService
    [OAK-6436] - Log message on checkpoint MBean invocation
    [OAK-6437] - NodeStateCopyUtils should not copy hidden props and
    node in JCR mode
    [OAK-6450] - Stop relying on the service.pid property in
    SecurityProviderRegistration
    [OAK-6459] - VisibleValidator duplicated in chain for each
    hierarchy level
    [OAK-6461] - Merge all security related validators into a single
    hook
    [OAK-6464] - Public constructor for RandomStream
    [OAK-6466] - Suppress NOP info message from revision GC
    [OAK-6469] - CompositePermissionProvider should implement
    AggregatedPermissionProvider
    [OAK-6470] - Remove extra call to createGroupPrincipal in
    UserPrincipalProvider
    [OAK-6472] - Expose constructor in JsonSerializer which takes
    filer and JsopBuilder
    [OAK-6475] - JsonSerializer should not emit :childNodeCount
    property
    [OAK-6482] - Remove org.apache.sling.testing.osgi-mock dependency
    from oak-run
    [OAK-6488] - Move journal maxRevisionAge to DocumentNodeStore
    [OAK-6489] - Datastorecheck command should output the path of
    missing datastore
    [OAK-6491] - Add JCR_CREATED support to
    JcrLastModifiedConflictHandler
    [OAK-6492] - Allow DummyDataStore to read files written by it
    [OAK-6494] - Change journalGCMaxAge default
    [OAK-6495] - Fallback to classic diff when journal is broken
    [OAK-6497] - Support old Segment NodeStore setups for oak-run
    index tooling
    [OAK-6510] - Fix string representation of the old generation
    reclaimer
    [OAK-6518] - Implement transparent usage of different TAR index
    formats
    [OAK-6520] - Improve tail compactions resilience when base state
    cannot be determined
    [OAK-6523] - Tune DocumentNodeStore setup for indexing flow for
    index command
    [OAK-6525] - Index consistency checker should check all indexes
    even after failure
    [OAK-6526] - Slow queries: ability to track them via JMX
    [OAK-6528] - Implement transparent usage of different binary
    references index formats
    [OAK-6530] - Expose last RGC result via Supplier
    [OAK-6534] - Compute indexPaths from index definitions json
    [OAK-6536] - Periodic log message from continuous RGC
    [OAK-6537] - Don't encode the checksums in the TAR index tests
    [OAK-6539] - Decrease version export for
    org.apache.jackrabbit.oak.spi.security.authentication
    [OAK-6540] - Session.hasAccess(...) should reflect read-only
    status of mounts
    [OAK-6543] - NodeCounter: JMX description
    [OAK-6549] - Move gcType to SegmentGCOptions
    [OAK-6550] - Make BlobTracker snapshot process smarter
    [OAK-6551] - Add an option to datastorecheck command to include
    path details in the missing blobs report
    [OAK-6552] - Dump index command should fallback to dumping
    NodeState incase of error
    [OAK-6556] - gc.log should contain recordId of compacted root
    after offline compaction
    [OAK-6558] - Remove the 'parent' field from the
    CompositeNodeBuilder
    [OAK-6559] - Don't allow to place mounts under mounts
    [OAK-6563] - Session.hasCapability(...) should reflect read-only
    status of mounts
    [OAK-6564] - Update netty dependency to 4.1.x
    [OAK-6565] - GetBlobResponseEncoder should not write all chunks at
    once
    [OAK-6568] - TarFiles returns null instead of an empty list in the
    graph
    [OAK-6569] - TarFiles should uniformly use TAR file names instead
    of paths
    [OAK-6570] - TarFiles represents referenced segments in a graph as
    a list instead of a set
    [OAK-6574] - Lucene index: include/exclude key pattern list
    [OAK-6578] - Enhance the UniqueEntryStoreStrategy to return list
    of matching values and paths
    [OAK-6585] - Allow to use patterns in the
    Mount#pathSupportingFragments
    [OAK-6586] - [oak-run] Add option to datastorecheck command to
    report misconfigured external binary references
    [OAK-6587] - Provide a way to "force" Tika to treat binaries with
    a different mime type than the jcr:mimeType property
    [OAK-6588] - MongoDocumentStore should avoid logging warning when
    connect in read only mode
    [OAK-6589] - Close the fixture in oak run console
    [OAK-6590] - Avoid logging import statements for :load command
    execution
    [OAK-6592] - Remove path and rootBuilder from the
    CompositeNodeBuilder
    [OAK-6595] - Pre-populate the default store when running composite
    node store
    [OAK-6605] - Provide job name for async index update
    [OAK-6609] - Provide job name for JournalGC and RevisionGC job
    [OAK-6613] - Provide list of all bundled nodes within a given
    DocumentNodeState
    [OAK-6614] - Add ability to add 'excludeFromAggregation' setting
    while building index definition
    [OAK-6615] - Add new segment-tar fixture for attaching a
    cold-standby to benchmarked primary
    [OAK-6617] - Mounts.DefaultMount.getName() should not be empty
    [OAK-6621] - Initialize a default sensible stats provider in
    UploadStagingCache
    [OAK-6622] - Configure default core pool size for thread pool used
    by oak-lucene
    [OAK-6625] - Avoid oak-run compact inadvertently upgrading the
    segment format
    [OAK-6626] - Replace standby blob chunk size configuration with
    feature flag
    [OAK-6634] - Confusing log entries when memory requirements are
    not met at start of OnRC
    [OAK-6636] - Create a path cache for the CompositeNodeState
    [OAK-6637] - Release IndexNode lock in finally clause
    [OAK-6638] - Add a composite-prepare command in oak-run
    [OAK-6644] - Use ReadOnlyNodeBuilder for the read-only mounts
    [OAK-6646] - Make it possible to set timeouts in Solr index
    connections
    [OAK-6647] - Reduce reads by RevisionGC
    [OAK-6650] - new release checksum requirements
    [OAK-6654] - Remove duplicate code in OakRepositoryStub classes
    [OAK-6661] - ResponseDecoder should check that the length of the
    received blob matches the length of the sent blob
    [OAK-6662] - Extend CredentialsSupport pluggability
    [OAK-6663] - Revisit MountInfoProvider usage in
    AuthorizationConfigurationImpl
    [OAK-6664] - Revisit MountInfoProvider usage in CugConfiguration
    [OAK-6667] - Refactor StandbyDiff for better clarity and
    understandability
    [OAK-6681] - Remove PropInfo dependency on EffectiveNodeType
    [OAK-6683] - Use less resource intensive method to determine
    number of docs in lucene index
    [OAK-6684] - IndexPathService should work with Oak 1.0 setups
    [OAK-6690] - Refactor constants classes NodeTypeConstants,
    NamespaceConstants, VersionConstants
    [OAK-6692] - Log exception in case of import via JMX operation
    fails
    [OAK-6693] - Ensure that IndexNodeManager releases lock in case of
    error in acquiring it
    [OAK-6694] - Expose TokenConstants.java
    [OAK-6695] - Expose an abstract Credentials class
    [OAK-6703] - Refactor oak.namepath package
    [OAK-6708] - Move plugins.value.jcr package to oak-store-spi
    [OAK-6710] - CommitMitigated merge policy should not reduce
    performance significantly
    [OAK-6715] - Log elapsed time even if actual count is more than
    estimate
    [OAK-6718] - Configure RAM buffer size used by IndexWriter with
    oak-run indexing
    [OAK-6719] - add ability to run benchmarks with continuous version
    GC enabled (RDB fixtures)
    [OAK-6726] - Use addDocument instead of updateDocument while
    reindexing with Lucene
    [OAK-6734] - IndexPlan: add supportsPathRestrictions
    [OAK-6735] - Lucene Index: improved cost estimation by using
    document count per field
    [OAK-6736] - Upgrade PojoSR to handle SCR spec 1.3
    [OAK-6738] - MemoryDocumentStore should optionally maintain
    _modCount
    [OAK-6739] - Improve oak-it-osgi to support SCR spec 1.3
    [OAK-6742] - Upgrade to jline2 2.14.5
    [OAK-6752] - Conditional update on _modCount
    [OAK-6775] - Suggest directory should utilize CopyOnRead if
    available
    [OAK-6792] - rep:facet not supported in xpath
    [OAK-6801] - Set minRecordLength to the recommended 4096 in
    OakFileDataStore
    [OAK-6802] - Manage 'secret' property internally in
    S3/AzureDataStore
    [OAK-6803] - Provide a way to for persistent cache to determine
    which all nodes can be cached
    [OAK-6806] - RDBDocumentStore: version GC does not scale when
    there are many docs with long paths
    [OAK-6807] - Query Recorder
    [OAK-6809] - Allow RevisionGCTest to operate on "long" paths
    [OAK-6815] - Support specifying queryPaths in
    IndexDefinitionBuilder
    [OAK-6822] - RevisionGC: measure timeToDeleteSplitDocs separately
    (when possible)
    [OAK-6830] - RDBDocumentStore: allow schema evolution part 3
    [OAK-6831] - Nodetype index support in Lucene Index
    [OAK-6834] - Make TypeEditor publically accessible and allow
    pluggable constraint violation handling
    [OAK-6839] - RDBDocumentStore: queries done by GC processes should
    not thrash the cache
    [OAK-6842] - Refactor FileStore.close
    [OAK-6849] - Avoid creating empty properties node under indexRules
    [OAK-6851] - Disabled index with reindex flag enabled should not
    lead to reindex report
    [OAK-6859] - Schedule Revision GC in DocumentNodeStoreService
    [OAK-6862] - Active deletion of Lucene binaries: JMX bean, and
    ability to disable automatic
    [OAK-6867] - Enable index hints on UUID lookup query
    [OAK-6868] - Simplify setup of access tracking of the file store
    caches
    [OAK-6873] - UserInitializer should not use hard coded
    QueryIndexProvider
    [OAK-6878] - Populate S3DataStore fields with the passed
    properties in oak-upgrade
    [OAK-6883] - The compaction estimator should take the compaction
    type (tail vs. full) into consideration
    [OAK-6887] - Change default value for autoCompact
    [OAK-6896] - Log SegmentStore size at startup
    [OAK-6899] - Add explicit dependency versions for aws-java-sdk in
    oak-run
    [OAK-6905] - Query engine: support coalesce function as in-built
    method
    [OAK-6908] - Change RDB default scheduling on RDB
    [OAK-6910] - Offline compaction should not use mmap on Windows
    [OAK-6915] - Minimize the amount of uncached segment reads
    [OAK-6917] - Configuration presets for DocumentNodeStoreService
    [OAK-6918] - AbstractCredentials lack nullability annotations and
    test coverage
    [OAK-6931] - Enable the -Dcache of offline compaction
    [OAK-6933] - Fix nullable annotations in PasswordUtil
    [OAK-6940] - Login token name generation is prone to race
    conditions
    [OAK-6969] - Reduce the responsibilities of CompactCommand in
    favour of Compact
    [OAK-6980] - Replacement for RootFactory and TreeFactory
    [OAK-6981] - move OsgiContext defined in derived tests to
    AbstractExternalAuthTest
    [OAK-7009] - Test factories for SecurityProvider should have
    private constructor
    [OAK-7010] - Replace usages of RootFactory/TreeFactory by service
    reference
    [OAK-7018] - Move setup of composite security configurations to
    SecurityProviderBuilder
    [OAK-7031] - DeleteOnCloseFileInputStream should properly handle
    errors when deleting the file
    [OAK-7038] - Make deletion of temp files resilient in some common
    utility methods
    [OAK-7042] - Pin async indexer on cluster leader
    [OAK-7051] - Remove dangling reference to compress-interval system
    property from oak-run documentation
    [OAK-7055] - Expose observation queue max length as metric
    [OAK-7064] - Remove duplicated code from the FileStore logging
    implementation
    [OAK-7066] - Active deletion blob list files can grow too large
    due to inlined blobs
    [OAK-7072] - Add log message upon compacted call in GCMonitor in
    Lucene indexer
    [OAK-7080] - Segment-Tar-Cold fixture should have options for
    secure communication and one shot runs
    [OAK-7094] - Log cli arguments and vm arguments passed to indexer
    command
    [OAK-7096] - Compaction should log generation info
    [OAK-7099] - DocumentStoreIndexer should log estimate of ETA for
    dumping phase
    [OAK-7103] - Enable compression by default on DocumentStoreIndexer
    logic
    [OAK-7104] - Support read and write to compressed file in
    ExternalSort
    [OAK-7105] - Implement a traverse with sort strategy for
    DocumentStoreIndexer
    [OAK-7113] - IndexerMBean should allow to import without depending
    on all IndexStatsMbean available
    [OAK-7115] - Store NodeState json in bytes when storing in
    in-memory queue
    [OAK-7121] - DocumentStore testing: allow config of
    DocumentMK.Builder in AbstractDocumentStoreTest
    [OAK-7124] - Support MemoryNodeStore with NodeStoreFixtureProvider

New Feature

    [OAK-3349] - Partial compaction
    [OAK-3710] - Continuous revision GC
    [OAK-3711] - Clean up _revision entries on commit root documents
    [OAK-3712] - Clean up uncommitted changes
    [OAK-4122] - Replace the commit semaphore in the segment node
    store with a scheduler
    [OAK-4348] - Cross language search via SMT
    [OAK-5210] - Ability to resolve principal name from
    ExternalIdentityRef without IDP roundtrip
    [OAK-5519] - Skip problematic binaries instead of blocking
    indexing
    [OAK-5556] - Allow filter paths for Check command
    [OAK-5558] - Consistency checker for Lucene indexes
    [OAK-5634] - Expose IOMonitor stats via JMX
    [OAK-5741] - DocumentStore UpdateOp: support removal of properties
    [OAK-5898] - Revision GC command line tool
    [OAK-5903] - Authentication: add extension to retrieve user
    principal
    [OAK-5970] - (Re-)Indexing: estimate progress / ETA
    [OAK-6080] - Index report service
    [OAK-6081] - Indexing tooling via oak-run
    [OAK-6161] - Continuous flag for revisions collect command
    [OAK-6215] - Dump index stats and index definitions
    [OAK-6220] - Copy on write node store implementation
    [OAK-6240] - Sidegrade support for DocumentNodeStore to Secondary
    NodeStore
    [OAK-6246] - Support for out of band indexing with read only
    access to NodeStore
    [OAK-6276] - expose way to detect "eventual consistency delay"
    [OAK-6382] - Adjust AccessControlList implementations to reflect
    JCR-4144
    [OAK-6456] - Include the tail generation in the TAR index
    [OAK-6457] - Increment the segment version number
    [OAK-6458] - Increment the manifest version number
    [OAK-6468] - Include the tail generation in the binary references
    index
    [OAK-6471] - Support adding or updating index definitions via
    oak-run
    [OAK-6476] - Support deserializing json as NodeState
    [OAK-6477] - RevisionGC metrics for DocumentNodeStore
    [OAK-6484] - Include tail generation in the GC journal
    [OAK-6485] - Expose tail and full compaction via different methods
    [OAK-6514] - Make Lucene merge policy configurable
    [OAK-6531] - Implement rolling upgrade from Oak 1.6
    [OAK-6535] - Synchronous Lucene Property Indexes
    [OAK-6545] - Support for dumping repository content as json along
    with blobs via oak-run
    [OAK-6553] - Progress indicator for compaction
    [OAK-6575] - Provide a secure external URL to a DataStore binary.
    [OAK-6593] - CacheStats metrics
    [OAK-6818] - TokenAuthentication/TokenProviderImpl: cleanup
    expired tokens
    [OAK-6820] - Implement support for disabling indexes which are
    replaced with newer index
    [OAK-6853] - Oak run tooling to store reindexed property index in
    segment store
    [OAK-7021] - Collect DocumentStore stats as part of status zip
    [OAK-7033] - MongoDocumentStore collection metrics

Task

    [OAK-1588] - Create more tests/validation to LDAP integration
    [OAK-2046] - Cleaning-up double test artifacts between oak-core
    and oak-jcr
    [OAK-2476] - Move our CI to Jenkins
    [OAK-3134] - Identify functionality offered by oak-run
    [OAK-3766] - Investigate and remove dependencies from oak-run
    [OAK-4292] - Document oak-segment-tar
    [OAK-4511] - Enable collection of stats around persisted branch
    created in DocumentNodeStore
    [OAK-4780] - VersionGarbageCollector should be able to run
    incrementally
    [OAK-4891] - Mount-time sanity checks for mounted NodeStore
    instances
    [OAK-4893] - Document conflict handling
    [OAK-5028] - Remove DocumentStore.update()
    [OAK-5352] - Enable RevisionGC task for non primary
    SegmentNodeStore
    [OAK-5361] - switch to stable release of
    org.apache.directory.api.api-all
    [OAK-5409] - Update Oak trunk to Jackrabbit 2.15.0
    [OAK-5455] - Specify versions for maven plugins used in build for
    ensuring stable builds
    [OAK-5600] - Test coverage for CheckCommand
    [OAK-5623] - Enforce minimum line coverage for security related
    modules
    [OAK-5641] - Update AWS sdk dependency to latest version in
    oak-blob-cloud
    [OAK-5702] - Update Felix JAAS to 1.0.2
    [OAK-5834] - Remove the deprecated oak-segment module
    [OAK-5868] - oak-upgrade should reference oak-segment using a
    non-snapshot version
    [OAK-5883] - Update Oak trunk to Jackrabbit 2.15.1
    [OAK-5945] - update h2db dependency
    [OAK-6051] - Clarify migration tests failures when switching
    Commit#hasChanges implementations
    [OAK-6055] - update to latest apache parent pom (18)
    [OAK-6065] - Rework CheckpointTest and MergeTest after introducing
    the scheduler
    [OAK-6074] - Simplify merge logic in LockBasedScheduler
    [OAK-6077] - Add support for S3DataStore in oak-run console
    [OAK-6082] - Service to determine index paths
    [OAK-6088] -
    org.apache.jackrabbit.oak.management.ManagementOperation should
    use TimeDurationFormatter
    [OAK-6089] - update maven plugins
    [OAK-6091] - Location of TimeDurationFormatter (and test) in
    o.a.j.oak.util
    [OAK-6092] - Find a new home for ApproximateCounter
    [OAK-6093] - Find a new home for NodeUtil and TreeUtil including
    cleanup
    [OAK-6095] - Get rid of dependency from oak-segment-tar to
    oak-core tests
    [OAK-6097] - Reflect Modularisation in JIRA
    [OAK-6101] - Consistent naming of oak modules
    [OAK-6107] - Move README of oak-core to oak-api
    [OAK-6108] - Move DataStoreTextProviderService and
    DataStoreTextWriter to plugins.index.datastore
    [OAK-6114] - Move InitialContent to package
    org.apache.jackrabbit.oak
    [OAK-6121] - Add a metric to measure find document call resulting
    in null
    [OAK-6130] - Update Oak trunk to Jackrabbit 2.15.2
    [OAK-6137] - Remove call to getHeadNodeState in LockBasedScheduler
    constructor
    [OAK-6138] - Remove addObserver method from Scheduler API
    [OAK-6159] - BlobReferenceIterator: improve test coverage for RDB
    [OAK-6162] - BlobReferenceIterator refactoring
    [OAK-6171] - Refactor MongoBlobReferenceIterator
    [OAK-6194] - Pass the checkpoint time as part of CommitInfo in
    AsyncIndexUpdate
    [OAK-6232] - Utility class to dump lucene index content
    [OAK-6234] - Update jopt-simple version to 5.0.3
    [OAK-6243] - Refactor directory construction logic via
    DirectoryFactory
    [OAK-6249] - FSDirectoryFactory to manage indexes on local file
    system
    [OAK-6257] - Move the NodeStoreFixtureProvider support to
    oak-run-commons
    [OAK-6265] - Remove Mounts.defaultMount methods
    [OAK-6280] - Expose whiteboard from NodeStoreFixture to provide
    access to NodeStore components
    [OAK-6281] - Dump metrics data to system out if metrics option is
    enabled
    [OAK-6304] - Cyclic dependency between oak.spi.query an
    oak.query.*
    [OAK-6311] - Move generic part of PropertyStateValue and
    PropertyValues to oak-store-spi
    [OAK-6315] - Create CheckpointMBean implementation for the
    composite node store
    [OAK-6318] - Refactor oak.spi.security into a separate
    module/bundle
    [OAK-6319] - Review API and Utilities in oak.plugins.tree package
    [OAK-6337] - Decide major version bump of o.a.j.o.api.jmx
    [OAK-6343] - Add replacement for deprecated
    RootFactory.createSystemRoot
    [OAK-6380] - Revert bnd dependency overwrite for bundle plugin
    [OAK-6389] - Update Oak trunk to Jackrabbit 2.15.4
    [OAK-6399] - Re-establish full offline compaction functionality
    [OAK-6417] - Change log level for tests in oak-remote to INFO
    [OAK-6439] - Add dependency to lucene-suggest in oak-pojosr
    [OAK-6449] - Stop using the maven-scr-plugin
    [OAK-6473] - Use JsonSerializer instead of custom json logic in
    IndexDefinitionPrinter
    [OAK-6478] - Move LoggingGCMonitor from segment-tar to core-spi
    [OAK-6498] - Update Oak trunk to Jackrabbit 2.15.5
    [OAK-6511] - Switch to official OSGi versioning annotations
    [OAK-6519] - Properly handle tail compactions in deduplication
    caches
    [OAK-6522] - Implement unit tests for OnlineCompactor
    [OAK-6532] - Minimise usage of junit-addons
    [OAK-6533] - Adjust test classpath order to reduce number of error
    markers in Eclipse
    [OAK-6538] - Investigate cold standby memory consumption
    [OAK-6544] - Enable active blob deletion feature by default
    [OAK-6554] - Update Dropwizard Metrics bundles to 3.2 to eliminate
    sun.misc dependency.
    [OAK-6555] - Implement ITs for rolling upgrade
    [OAK-6576] - Refactor OakDirectory to be more manageable
    [OAK-6579] - Define how the counter index works in a composite
    setup
    [OAK-6582] - Review MBean interactions in a composite setup
    [OAK-6599] - Review testcases which do not confirm to Maven test
    pattern
    [OAK-6606] - Move BulkTransferBenchmark to oak-benchmarks module
    [OAK-6616] - Update Oak trunk to Jackrabbit 2.15.6
    [OAK-6629] - Remove unused datastore code relying on JR2 data
    store caching
    [OAK-6655] - Update travis build configuration
    [OAK-6657] - Remove travis webhook configuration
    [OAK-6665] - Move DocumentNodeStore into its own bundle
    [OAK-6670] - Move FSBlobSerializer to oak-blob-plugins module
    [OAK-6673] - Improve cold standby logging
    [OAK-6675] - Implement CompositeNodeStoreStatsMBean
    [OAK-6698] - Refactor UUID utilites from IdentifierManager to new
    UUIDUtils in oak-commons
    [OAK-6732] - Make it simpler to run tests from oak-it-osgi
    [OAK-6810] - oak-pojosr tests fail with java 9
    [OAK-6817] - Don't create metatype for MountInfoProviderService
    [OAK-6819] - Move Configuration out of DocumentNodeStoreService
    [OAK-6821] - Enforce minimum line coverage for oak-security-spi
    [OAK-6846] - update maven-failsafe-plugin to 2.20.1
    [OAK-6854] - Update Oak trunk to Jackrabbit 2.16.0
    [OAK-6893] - Add BasicWriteTest benchmark
    [OAK-6927] - RDBDocumentStore: allow schema evolution part 4: read
    VERSION column and let RDBRow handle it
    [OAK-6929] - Enforce minimal test-coverage with oak-core
    [OAK-6932] - Add test coverage of spi.xml package
    [OAK-6936] - use current Tika version 1.16
    [OAK-6937] - use Tika version consistent with other modules
    [OAK-6952] - add SHA512 checksums to releases
    [OAK-6965] - RDBDocumentStore: allow schema evolution part 5: add
    rows for performant VGC
    [OAK-6971] - Remove composite node store-related features from the
    oak-upgrade
    [OAK-7035] - Retire oak-remote
    [OAK-7046] - DocumentStore API: clarify key length
    [OAK-7077] - Documentation for RDBDocumentStore statistics
    [OAK-7100] - update htmlunit test dependency
    [OAK-7102] - Refactor DocumentIndexer logic to enable different
    sort approaches
    [OAK-7117] - Suppress Tika (> 1.16) startup warnings
    [OAK-7118] - oak-run: upgrade jetty version to 8.2.0.v20160908
    [OAK-7122] - Implement script to compare lucene indexes logically
    [OAK-7127] - use current Tika version 1.17

Test

    [OAK-5633] - Builds on travis-ci time out
    [OAK-5663] - Improve LogCustomizer to allow filtering on log
    messages too
    [OAK-5689] - AbstractSecurityTest: enforce test-failure for
    traversal queries
    [OAK-5785] - JCR tests: enforce failure upon query traversal
    [OAK-5793] - Improve coverage for spi.security code in oak-core
    [OAK-5866] - Some tests do not dispose fixture
    [OAK-5870] - Reduce serverSelectionTimeoutMS for tests on MongoDB
    [OAK-5882] - Improve coverage for oak.security code in oak-core
    [OAK-5911] - Test utility methods for setting Clock in Revision
    [OAK-5912] - SecondaryStoreConfigIT fails when MongoDB is
    available
    [OAK-5913] - DataStoreTrackerGCTest uses different Clocks for
    tests
    [OAK-5962] - Disable caching for S3 integration tests
    [OAK-6007] - Introduce a FailingDocumentStore
    [OAK-6008] - Create test base with a two node cluster
    [OAK-6017] - Reset timestamps on Revision.setClock()
    [OAK-6022] - ReadPreferenceIT uses incorrect clock
    [OAK-6024] - Use of DocumentMKBuilderProvider with virtual clock
    is fragile
    [OAK-6112] - Empty mongo.url default value in oak-parent
    [OAK-6119] - Build error on travis with Java 8
    [OAK-6128] - Speed up ValidNamesTest
    [OAK-6163] - Add unit test coverage for IOUtils.writeInt/writeLong
    and IOUtils.readInt/readLong
    [OAK-6173] - Add unit test coverage for IOUtils.copy
    [OAK-6175] - Add unit test coverage for
    IOUtils.humanReadableByteCount
    [OAK-6427] - Duplicate class: MongoDocumentStoreHelper
    [OAK-6639] -
    ObservationQueueFullWarnTest.testQueueFullThenFlushing fails
    sometimes
    [OAK-6848] - Improve
    ObservationQueueFullWarnTest.testQueueFullThenFlushing to not
    sleep arbitrarily when not required
    [OAK-6882] -
    ObservationQueueFullWarnTest.testQueueFullThenFlushing failing
    [OAK-7047] - Enable DocumentNodeStoreServiceTest.preset()
    [OAK-7061] - Run tests on travis-ci on MongoDB 3.4
    [OAK-7063] - SolrOakRepositoryStub.preCreateRepository() throws
    exception without cause

Wish

    [OAK-1327] - Cleanup NodeStore and MK implementations

In addition to the above-mentioned changes, this release contains
all changes included up to the Apache Jackrabbit Oak 1.6.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