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 2018/04/26 13:30:13 UTC

[ANNOUNCE] Apache Jackrabbit Oak 1.9.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.9.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.9.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.8.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.9.0
---------------------

Sub-task

    [OAK-7177] - Utility method to detect local change
    [OAK-7179] - Derive CountingTieredDiffCache from MemoryDiffCache
    [OAK-7225] - Replace AtomicCounter Supplier
    [OAK-7344] - Additional benchmark(s) to cover areas of
    improvements
    [OAK-7345] - Benchmark Results for Oak 1.8 (status quo)
    [OAK-7346] - Benchmark Results for Initial Patch

Technical task

    [OAK-6812] - UpdateOp Condition: be consistent about the support
    for non-revision properties
    [OAK-7060] - RDBDocumentStore.getStats() for SQLServer
    [OAK-7137] - Upgrade to scr bnd plugin that places the metatype
    files in the correct location
    [OAK-7138] - Move metatype files in source control to correct
    location
    [OAK-7141] - Remove unused metatype.properties
    [OAK-7142] - RDBDocumentStoreDB: use try-with-resources in new
    code introduced for getStats()
    [OAK-7149] - RDBDocumentStore.getStats() for Derby
    [OAK-7159] - RDBDocumentStore: use try-with-resources for nodes
    cache locks
    [OAK-7181] - RDBDocumentStore: use try-with-resources for
    ChangesTracker
    [OAK-7184] - LengthCachingDataStoreTest: Remove unused import of
    Guava InputSupplier
    [OAK-7185] - Upgrade jclouds dependency to 2.0.3
    [OAK-7186] - avoid use of guava Iterators.emptyIterator()
    [OAK-7188] - guava: ListenableFuture.transform() changes to
    transformAsync in version 20
    [OAK-7201] - make Guava version configurable at build time
    [OAK-7204] - RDB*Store: update postgresql JDBC driver reference to
    42.2.0
    [OAK-7269] - DocumentStore: add test coverage for various types of
    IDs
    [OAK-7270] - RDBDocumentStore: guard against invalid strings in
    IDs
    [OAK-7289] - RDBDocumentStore: potential NPE in error handling
    code
    [OAK-7292] - RDB*Store: update tomcat jdbc dependency to 8.5.28
    [OAK-7299] - RDB*Store: update postgresql JDBC driver reference to
    42.2.1
    [OAK-7305] - Introduce DocumentStoreException type
    [OAK-7306] - MongoDocumentStore: use transient
    DocumentStoreException type where appropriate
    [OAK-7307] - RDBDocumentStore: use transient
    DocumentStoreException type where appropriate
    [OAK-7308] - Retry commit on transient DocumentStoreException
    [OAK-7313] - RDB*Store: add DEBUG level logging for filters in
    RDBVersionGCSupport
    [OAK-7329] - RDB*Store for SQLServer: name the PK index for better
    readability
    [OAK-7330] - RDBDocumentStore: make indices on SD* sparse where
    possible
    [OAK-7331] - RDBDocumentStore: add index on _MODIFIED to improve
    VersionGC performance
    [OAK-7333] - RDBDocumentStore: refactor index report
    [OAK-7342] - RDBDocumentStore: missing rollback after delete
    failures
    [OAK-7359] - Update to MongoDB Java driver 3.6
    [OAK-7360] - Migrate to the MongoDB Java driver API 3.0
    [OAK-7399] - add build profile "guava-latest" to build with latest
    supported Guava version
    [OAK-7406] - relax guava version range in Import-Package
    declarations
    [OAK-7430] - RDB*Store: update postgresql JDBC driver reference to
    42.2.2

Bug

    [OAK-4401] - Excerpt Highlighting for a property is not correct
    [OAK-6707] - TarWriter.close() must not throw an exception on
    subsequent invocations
    [OAK-6891] - Executions of background threads might pile up
    [OAK-6956] - RepositoryUpgrade hardcodes SecurityProvider
    [OAK-7058] - oak-run compact reports success even when it was
    cancelled
    [OAK-7131] - xpath to sql2 conversion drops order by clause for
    some cases
    [OAK-7132] - SNFE after full compaction
    [OAK-7136] - Stop storing metatype.properties files under
    OSGI-INF/metatype
    [OAK-7147] - Oak run LuceneIndexer indexes excluded parent nodes
    [OAK-7155] - Executor in S3DataStoreFactory is not shut down
    [OAK-7162] - Race condition on revisions head between compaction
    and scheduler could result in skipped commit
    [OAK-7168] - The debug command returns a zero exit code on error
    [OAK-7169] - The datastorecheck returns a zero exit code on error
    [OAK-7171] - The history command returns a zero exit code on error
    [OAK-7174] - The check command returns a zero exit code on error
    [OAK-7176] - RevisionVector from empty string throws
    StringIndexOutOfBoundsException
    [OAK-7178] - RemoteSolrServerProvider should release connections
    on ping failures
    [OAK-7198] - Index rule with REGEX_ALL_PROPS includes relative
    node
    [OAK-7200] - Sync propery indexes don't get planned if /:async
    exists but indexing lane hasn't completed its first cycle
    [OAK-7208] - Various disallowed control characters are accepted in
    item names
    [OAK-7209] - Race condition can resurrect blobs during blob GC
    [OAK-7223] - Files could be kept partially in case of
    disconnection from backends
    [OAK-7227] - MountPermissionProvider getNumEntries prone to
    overflow
    [OAK-7236] - The diff command returns a zero exit code on error
    [OAK-7237] - The backup and restore comands return a zero exit
    code on error
    [OAK-7241] - oak-run documentation typo for "checkpoints" command
    [OAK-7244] - RDBDocumentStore: fix typo in metadata
    [OAK-7252] - Function index for name() and localname() don't allow
    sorting
    [OAK-7265] - Standalone example application fails to start
    [OAK-7266] - Standalone example system console fails to render
    [OAK-7274] - Test failure: various upgrade tests
    [OAK-7284] - Reindexing using --doc-traversal-mode can hit
    ConcurrentModificationException during aggregation
    [OAK-7285] - Reindexing using --doc-traversal-mode can OOM while
    aggregation in some cases
    [OAK-7291] - MongoStatusTest.testReadConcern fails on MongoDB 3.6
    [OAK-7294] - FlatFileBufferLinkedList#add doesn't throw
    IllegalArgumentException on null
    [OAK-7309] - MongoDocumentStoreMetricsTest fails sporadically
    [OAK-7317] - SegmentParser#parseBlob does not long ids of external
    blobs
    [OAK-7337] - CommitsTracker data is always empty when exposed via
    JMX
    [OAK-7339] - Fix all sidegrades breaking with
    UnsupportedOperationException on MissingBlobStore by introducing
    LoopbackBlobStore
    [OAK-7341] - PermissionStoreEditor fails to reconnect collision
    entries if main entry is removed
    [OAK-7354] - Test failure
    ExternalIdentityImporterTest.importExternalUserWithPrincipalNames
    [OAK-7356] - CugConfiguration may not pick up CugExclude
    [OAK-7357] - NPE on activation of LuceneIndexProviderService with
    disabled CoR and CoR
    [OAK-7375] - Wrong full text parsing in Oak Solr index with
    boolean operators
    [OAK-7378] - Continuous Revision GC counts _deletedOnce with every
    run
    [OAK-7389] - Mongo/FileBlobStore does not update timestamp for
    already existing blobs
    [OAK-7393] - A single StatisticsProvider is shared between all
    SegmentNodeStoreFactory instances
    [OAK-7394] - ConsolidatedCacheStats broken on the Composite Node
    Store
    [OAK-7396] - ReadOnlyFileStore.readSegment does not correctly
    throw SegmentNotFoundException
    [OAK-7398] - SegmentArchiveManager#listArchives should only return
    tar files
    [OAK-7401] - Changes kept in memory when update limit is hit in
    commit hook
    [OAK-7404] - ReadOnlyFileStore doesn't use custom persistence
    [OAK-7408] - LuceneIndexProviderService uses default tracker
    constructor with disabled CoR

New Feature

    [OAK-6921] - Support pluggable segment storage
    [OAK-6922] - Azure support for the segment-tar

Improvement

    [OAK-2907] - Move DocumentMK to test
    [OAK-4857] - Support space chars common in CJK inside item names
    [OAK-6031] - Add TarFiles to the architecture diagram
    [OAK-6373] - oak-run check should also check checkpoints
    [OAK-7057] - Segment.toString: Record table should include an
    index into the hexdump
    [OAK-7134] - DocumentNodeStore.newMergeCommit() base parameter is
    always non-null
    [OAK-7139] - Wrap MongoException when query fails
    [OAK-7140] - Retry query on MongoException
    [OAK-7153] - Avoid persistent cache read access when key is not
    cached
    [OAK-7157] - Minimize the amount of generations retained by the
    Cold Standby
    [OAK-7158] - Users shouldn't be able to change the number of
    retained generations
    [OAK-7175] - Reduce cache misses on local diff-cache
    [OAK-7195] - Node.getMixinNodeTypes() may check for child node
    named jcr:mixinTypes
    [OAK-7196] - ValidNamesTest improvements
    [OAK-7213] - Avoid call for child node when bundle contains all
    children
    [OAK-7215] - Add configurable repository size cap to
    SegmentOverflowExceptionIT
    [OAK-7222] - Log a warn when CoW opens input from remote due to
    size mismatch
    [OAK-7231] - Remove PermissionEntryCache.getNumEntries
    [OAK-7232] - MountPermissionProvider.load can return null
    [OAK-7235] - Remove unused code from SegmentTarUtils
    [OAK-7248] - Remove deprecated deep option from check command
    [OAK-7251] - BinaryTextExtractor should not ignore parse exception
    - they should at least be logged at DEBUG in all cases
    [OAK-7253] - Benchmarks: cleanup duplications in AC setup
    [OAK-7259] - Improve SegmentNodeStoreStats to include number of
    commits per thread and threads currently waiting on the semaphore
    [OAK-7262] - LockBasedScheduler#getHeadNodeState poor performance
    due to lock contention in commitTimeHistogram implementation
    [OAK-7280] - Remove superfluous methods from SegmentWriter
    [OAK-7290] - Reindexing using --doc-traversal-mode should have
    configurable upper bound for mem usage
    [OAK-7298] - Remove debug logging to the console during tests
    [OAK-7310] - Empty package-info.java causes unnecessary rebuild
    [OAK-7326] - Add a way to disable the SegmentCache
    [OAK-7340] - Remove SecurityProviderImpl usage from tests
    [OAK-7384] - SegmentNodeStoreStats should expose stats for
    previous minute per thread group
    [OAK-7388] - MergingNodeStateDiff may recreate nodes that were
    previously removed to resolve conflicts
    [OAK-7403] - AzureSegmentArchiveReader should get the metadata
    from listBlobs() operation
    [OAK-7416] - Contribute a 'proc' subtree for the Segment Node
    Store
    [OAK-7418] - SecurityProviderBuilder ignores configuration option
    authorizationCompositionType
    [OAK-7420] - Introduce SegmentNodeStoreMonitorService for exposing
    writerGroups as an OSGi config property
    [OAK-7424] - SecurityProviderBuilder expects
    CompositeConfiguration

Test

    [OAK-7107] - Ability to run AbstractJCRTest derived tests with
    different fixtures
    [OAK-7133] - DocumentNodeStore resilience test on MongoDB
    [OAK-7145] - Share initialized NodeStore for read-only repository
    tests
    [OAK-7238] - Benchmark : random read for different sets of
    principals

Task

    [OAK-5922] - Utils.abortingIterable should implement Closeable
    [OAK-7024] - java.security.acl deprecated in Java 10, marked for
    removal in Java 12
    [OAK-7075] - Document oak-run compact arguments and system
    properties
    [OAK-7126] - make RDBCacheConsistency2Test store-agnostic
    [OAK-7128] - Update Oak trunk to Jackrabbit 2.17.0
    [OAK-7130] - Update README.md with Java 8 requirement
    [OAK-7143] - Run oak-jcr tests and ITs in parallel on travis-ci
    [OAK-7156] - CacheChangesTracker should implement Closeable
    [OAK-7160] - Update commons-codec dependency to 1.11
    [OAK-7161] - LengthCachingDataStore's use of LineIterator.close()
    [OAK-7163] - Upgrade commons-io dependency to 2.6
    [OAK-7165] - Update baseline comparison version to latest stable
    1.8.0
    [OAK-7172] - Document TarMK specific MBeans
    [OAK-7173] - Update documentation for oak-run check
    [OAK-7183] - Update Oak trunk to Jackrabbit 2.17.1
    [OAK-7189] - Improve code coverage for InitialContentMigrator
    [OAK-7216] - Remove support for binaries and documents in
    persistent cache
    [OAK-7219] - Update Logback version to >= 1.2.0, SLF4J accordingly
    [OAK-7220] - add benchmark focused on string write performance
    [OAK-7249] - segment store: create charset encoding utility that
    detects malformed input
    [OAK-7255] - Upgrade jackson dependencies to version 2.9.4
    [OAK-7257] - oak-examples: update Tomcat dependency
    [OAK-7268] - document store: create charset encoding utility that
    detects malformed input
    [OAK-7272] - improve BackgroundLeaseUpdate warning messages
    [OAK-7273] - ValidNamesTest for unpaired surrogates and NUL fails
    for PostgreSQL
    [OAK-7275] - Update easymock test dependency to 3.4
    [OAK-7282] - RDB: enable default continuous revision GC
    [OAK-7295] - Print path of files with unapproved licences
    [OAK-7297] - New fixture for the Azure Segment Store
    [OAK-7304] - Deploy oak-pojosr as part of standard deployment
    [OAK-7314] - RDB*Store: use SDMAXREV column in RevisionGC query
    [OAK-7315] - Remove redundant JavaDoc link to Java 7 API
    [OAK-7320] - Upgrade surefire and failsafe plugins to 2.21.0
    [OAK-7322] - Mention SHA512 checksums in release notes
    [OAK-7324] - RDBDocumentStore: Refactor exception handling
    [OAK-7325] - restore line wrapping in release notes
    [OAK-7332] - Benchmarks failure on Oak-Segment-* fixtures due to
    concurrentlinkedhashmap version conflict
    [OAK-7335] - oak-upgrade long name filter should consider the path
    length
    [OAK-7336] - stop advertising MD5 checksums
    [OAK-7338] - Javadocs for the
    org.apache.jackrabbit.oak.segment.spi
    [OAK-7347] - Incorrect link to KEYS in release notes
    [OAK-7350] - stop creating MD5 checksums for releases
    [OAK-7355] - Move the pluggable storage interfaces to the SPI
    package
    [OAK-7364] - code coverage checks fail on Java 10
    [OAK-7366] - update to mockito version compatible with jdk 10
    [OAK-7387] - Update Oak trunk to Jackrabbit 2.17.2
    [OAK-7407] - oak-solr-core test failures with java 10
    [OAK-7421] - link Guava javadoc
    [OAK-7422] - Update jackson dependencies to 2.9.5
    [OAK-7426] - RDB*Store: update Tomcat JDBC pool dependency to
    8.5.30

Documentation

    [OAK-5089] - Document illegal item names in Oak
    [OAK-6964] - Document tail compaction
    [OAK-7112] - Update documentation for cold standby
    [OAK-7148] - Document excerpt support (specially excerpts for
    properties)
    [OAK-7242] - OAK API overview documentation links NodeState from
    spi

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/