You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Davide Giannella <da...@apache.org> on 2017/05/30 08:50:11 UTC

[ANNOUNCE] Apache Jackrabbit Oak 1.7.0 released

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.7.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.

Apache Jackrabbit Oak 1.7.0 is an unstable release cut directly from
Jackrabbit Oak trunk, with a focus on new features and other
improvements. For production use we recommend the latest stable 1.6.x
release.

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.7.0
---------------------

Sub-task

    [OAK-5869] - Annotate documents with branch commits
    [OAK-5964] - Invalidate documents through journal
    [OAK-5968] - Introduce RevisionContext.getClock()

Technical task

    [OAK-3690] - Decouple SegmentBufferWriter from SegmentStore
    [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-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-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-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-6207] - RDBDocumentStore: allow schema evolution part 2:
    record schema version when updating/inserting rows
    [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-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

Bug

    [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-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-5441] - Test failure: BasicServerTest.testServerOk() Address
    already in use
    [OAK-5450] - Documented example for relativeNode in index
    aggregation does not work.
    [OAK-5500] - Oak Standalone throws ClassNotFoundException:
    remoting/protectedHandlersConfig.xml
    [OAK-5501] - Oak Standalone: Webdav configuration is set to
    remoting mode by default
    [OAK-5536] - Facets on relative properties do not work properly
    [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-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-5619] - withIncludeAncestorsRemove reports unrelated
    top-level node deletion
    [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-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-5750] - Test failure: PojoSR
    run.osgi.SecurityProviderRegistrationTest
    [OAK-5753] - Consistency check incorrectly fails for broken
    partial paths
    [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-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-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-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-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-6063] - Oak run console not loading
    [OAK-6064] - Oak run logging not working
    [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-6110] - Offline compaction uses too much memory
    [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-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

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-5665] - use of -R in diagnostic-build.md
    [OAK-5692] - Oak Lucene analyzers docs unclear on viable
    configurations
    [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

Epic

    [OAK-3341] - lucene technical debt
    [OAK-4933] - Create a data store implementation that integrates
    with Microsoft Azure Blob Storage
    [OAK-5599] - Slim oak-run
    [OAK-5664] - Require Java 8

Improvement

    [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-3801] - Move solr dependency into oak-benchmarks module
    [OAK-4462] - LoginModuleImpl: option to have AuthInfo populated
    with userId instead of loginName
    [OAK-4619] - Unify RecordCacheStats and CacheStats
    [OAK-4839] - Allow to register DocumentNodeStore as a
    NodeStoreProvider
    [OAK-4920] - DefaultSyncHandler.listIdentities() search too broad,
    triggers traversal warning
    [OAK-5052] - Make update.limit configurable via OSGi
    [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-5412] - Use GCMonitor for revision gc task run in
    DocumentNodeStore
    [OAK-5483] - Move TemporaryPort to the oak-commons module
    [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-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-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-5794] - Track time to check GC candidate nodes
    [OAK-5827] - Don't use SHA-1 for new DataStore binaries
    [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-5900] - Add Nonnull Annotation to
    TokenInfo.matches(TokenCredentials)
    [OAK-5901] - Minor improvements to TokenProviderImpl and
    TokenValidator
    [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-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-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-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-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-6122] - enforce oak-run size
    [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-6145] - Move MembershipWriter#setMembers() to oak-upgrade
    [OAK-6146] - LoginModuleImpl could also clear local state after
    successful commit
    [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-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-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-6223] - Expose socket keep-alive option
    [OAK-6242] - Add 'container' as an acceptable property name for s3
    bucket
    [OAK-6263] - Create test covering removal of a referenced node

New Feature

    [OAK-3711] - Clean up _revision entries on commit root documents
    [OAK-5210] - Ability to resolve principal name from
    ExternalIdentityRef without IDP roundtrip
    [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-6080] - Index report service
    [OAK-6161] - Continuous flag for revisions collect command
    [OAK-6215] - Dump index stats and index definitions
    [OAK-6240] - Sidegrade support for DocumentNodeStore to Secondary
    NodeStore

Task

    [OAK-3134] - Identify functionality offered by oak-run
    [OAK-3766] - Investigate and remove dependencies from oak-run
    [OAK-4780] - VersionGarbageCollector should be able to run
    incrementally
    [OAK-4893] - Document conflict handling
    [OAK-5409] - Update Oak trunk to Jackrabbit 2.15.0
    [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-6055] - update to latest apache parent pom (18)
    [OAK-6082] - Service to determine index paths
    [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-6130] - Update Oak trunk to Jackrabbit 2.15.2
    [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

Test

    [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-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

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