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 2019/04/15 09:30:38 UTC

[ANNOUNCE] Apache Jackrabbit Oak 1.12.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.12.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.12.0 is an incremental feature release based
on and compatible with earlier stable Jackrabbit Oak 1.x
releases. This release is 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.12.0
---------------------

Technical task

    [OAK-7960] - RDB: add to Oak documentation
    [OAK-7970] - RDB*Store: add profile for DB2 11.1 JDBC driver
    [OAK-7971] - RDB*Store: update DB2 JDBC reference to 4.19.77
    [OAK-7978] - guava-latest profile defunct
    [OAK-7979] - DeclaredMembershipPredicate does not compile with
    Guava 20
    [OAK-8002] - RDBDocumentStore: add RDB-specific
    MissingLastRevSeeker
    [OAK-8004] - oak-run: support "recovery" command for
    RDBDocumentStore
    [OAK-8016] - RDBDocumentStore: minor improvements to GZIP
    compression of BLOB contents
    [OAK-8043] - RDB: expose DDL generation functionality in oak-run
    [OAK-8058] - RDB*Store: update Tomcat JDBC pool dependency to
    8.5.38
    [OAK-8069] - Log warning for too many transient modifications of
    direct child nodes
    [OAK-8071] - Logging to detect commits carrying over from previous
    GC generation can block other threads from committing
    [OAK-8074] - RDB*Store: update mysql-connector-java dependency to
    8.0.15
    [OAK-8080] - RDB*Store: move DB-specific config hints from Javadoc
    into oak-doc
    [OAK-8083] - RDB*Store: add SQLServer specific documentation
    [OAK-8087] - RDB*Store: update mssql-jdbc driver reference to
    7.2.1.jre8
    [OAK-8147] - RDBBlobStore: add perf logging for JDBC read
    operations
    [OAK-8200] - MongoDocumentStore in ReadOnly mode should never
    modify persistence

Bug

    [OAK-6749] - Segment-Tar standby sync fails with "in-memory" blobs
    present in the source repo
    [OAK-7027] - Test failure:
    ExternalPrivateStoreIT.testSyncFailingDueToTooShortTimeout
    [OAK-7719] - CheckCommand should consistently use an alternative
    journal if specified
    [OAK-7938] - Test failure: MBeanIT.testClientAndServerEmptyConfig
    [OAK-7951] - Datastore GC stats not updated with failure when "Not
    all repositories have marked references available"
    [OAK-7953] - Test failure:
    JdbcToSegmentWithMetadataTest.validateMigration()
    [OAK-7966] - Avoid adding excluded principal to cug policy
    [OAK-7975] - Facet extraction fails while requesting multiple
    facets and one of the requested facets doesn't have indexed values
    [OAK-7982] - ACL.addEntry: check for mandatory restrictions only
    respects single value restrictions
    [OAK-7986] - Incorrect MongoDB URI in
    ReplicaSetDefaultWriteConcernIT
    [OAK-7987] -
    LdapIdentityProviderImpl#getIdentity(ExternalIdentityRef) won't
    work with useUidForExtId enabled
    [OAK-7993] -
    CompositeAuthorizationConfiguration.getRestrictionProvider()
    should filter duplications
    [OAK-7997] - Adding restrictions to ACLs yields empty results for
    queries in Jackrabbit Oak
    [OAK-8001] - Lucene index can be empty (no :data node) in
    composite node store setup
    [OAK-8003] - MongoDocumentStore does not log server details
    [OAK-8006] - SegmentBlob#readLongBlobId might cause
    SegmentNotFoundException on standby
    [OAK-8007] - RDBDocumentStore: potential off-heap memory leakage
    due to unclosed GzipInputStream
    [OAK-8012] - Unmerged branch changes visible after restart
    [OAK-8013] - [Direct Binary Access] DataRecordDownloadOptions
    creates invalid Content-Disposition headers - Workaround
    [OAK-8017] - Test failure: LastRevRecoveryRandomizedIT
    [OAK-8023] - AccessControlManagerImpl can not handle repository
    level when editing policies by principal
    [OAK-8024] - oak-http generates invalid html
    [OAK-8026] - Warn message when branch is created
    [OAK-8033] - Node states sometimes refer to more than a single
    generation of segments after a full compaction
    [OAK-8035] - Debug logging when two or more indices have same or
    very close cost amounts doesn't work in case both indices belong
    to the same type of Query Index
    [OAK-8044] - AccessControlManagerImpl.getEffectivePolicies returns
    empty ACLs
    [OAK-8045] - Allow for ranking being specified with
    UserAuthenticatonFactory implementations
    [OAK-8049] - AbstractSecurityTest: fix PartialValueFactory field
    and it's usages.
    [OAK-8051] - PersistentCache: error during open can lead to
    incomplete initialization and subsequent NPEs
    [OAK-8052] - PersistentCache: failure during construction may lead
    to resource leak
    [OAK-8054] - RepMembersConflictHandler creates property with wrong
    type
    [OAK-8060] - Incorrect read preference when parentId refers to
    NodeDocument.NULL
    [OAK-8063] - The cold standby client doesn't correctly handle
    backward references
    [OAK-8065] - AbstractSecurityTest.getAccessControlManager: should
    use getNamePathMapper() instead of DEFAULT
    [OAK-8070] - The date-based copy-versions directive doesn't work
    correctly with include-paths
    [OAK-8089] - DocumentNodeStore dispose can fail when duration of
    final background ops exceeds lease time
    [OAK-8091] - Build failure: artifact does not exist on remote
    repository
    [OAK-8092] - The cold standby server cannot handle blob requests
    for long blob IDs
    [OAK-8093] - AccessControlManagerImpl: respect local namespaces
    when writing back ACEs
    [OAK-8095] - VersionStorageEditor can prevent upgrade of version
    store
    [OAK-8101] - AccessControlValidator prevents alternative
    authorization models to use restrictions
    [OAK-8106] - High memory usage when large branch is reset
    [OAK-8108] - Branch reset does not remove all branch commit
    entries
    [OAK-8117] - NPE when adding ACE with restrictions and remapped
    namespaces
    [OAK-8122] - MongoDocumentStore init may fail with authentication
    [OAK-8124] - Sidegrade operation doesn't run security-related
    commit hooks
    [OAK-8126] - Load Lucene index files before writing to the index:
    close directory
    [OAK-8127] - TreeLocation: imcomplete Nullable/NotNull annotations
    [OAK-8130] - Index corruption stats should get updated also when
    no failing index remains
    [OAK-8133] - Word SHA1 no longer allowed
    [OAK-8161] - Build failure: Too many files with unapproved license
    [OAK-8176] - Inaccurate calculation of RevisionVector memory
    [OAK-8195] - AutoSaveEnabledManager.createSystemUser calls
    createUser on delegatee

New Feature

    [OAK-8062] - PrincipalProvider: optional lookup of
    ItemBasedPrincipal by path

Improvement

    [OAK-7731] - Order by jcr:score descending is not always ignored
    [OAK-7924] - Reduce Lucene index size footprint with compressing
    Codec
    [OAK-7944] - Minor improvements to oak security code base
    [OAK-7947] - Lazy loading of Lucene index files startup
    [OAK-7968] - Active deletion of Lucene binaries: configuration
    option to disable
    [OAK-7974] - Detailed merge metrics
    [OAK-7976] - Non-blocking commit rollback
    [OAK-7977] - Add multi-threaded segment transfer to oak-run
    segment-copy
    [OAK-7984] - Batch update documents in commit rollback
    [OAK-7988] - The node counter jmx bean should show 0 if a node
    exists
    [OAK-7991] - Composite node store: tests with queries
    [OAK-7994] - Principal Management APIs don't allow for search
    pagination
    [OAK-8009] - Remove unused code in NodeDocument
    [OAK-8018] - Move LazyValue from oak-core to oak-commons
    [OAK-8019] - Replace deprecated NodeUtil in AbstractOakCoreTest
    [OAK-8020] - Create ImmutableACL from another
    AbstractAccessControlList
    [OAK-8021] - PrivilegeBitsProvider.getBits(Privilege[],NameMapper)
    should use getOakNameOrNull
    [OAK-8025] - Improve branch state comparison
    [OAK-8027] - Extract public utility for handling jcr:all privilege
    bits
    [OAK-8028] - Avoid unnecessary query in
    UnsavedModifications.persist()
    [OAK-8029] - Additional merge metrics
    [OAK-8036] - Improve test in oak-security-spi
    [OAK-8041] - IndexDefinitionBuilder should support facets and
    boost for property definitions
    [OAK-8042] - IndexDefinitionBuilder should support deprecated
    properties on index definition
    [OAK-8046] - Result items are not always correctly counted against
    the configured read limit if a query uses a lucene index
    [OAK-8053] - Add intermediate report to ExternalLoginTest
    [OAK-8055] - Add conflict handler for rep:lastSynced property on
    external groups
    [OAK-8066] - Nodes with many direct children can lead to OOME when
    saving
    [OAK-8078] - UserPrincipalProvider support for range search
    [OAK-8084] - LogCustomizer should allow instantiation with Java
    class (in addition to class name)
    [OAK-8088] - Add refresh head revision time to background update
    stats
    [OAK-8094] - JMX monitoring to detect commits carrying over from
    previous GC generation can block other threads from committing
    [OAK-8096] - CompositeAccessControlManager: misleading local field
    name
    [OAK-8097] - Load Lucene index files before writing to the index
    [OAK-8102] - LoginModule error metrics
    [OAK-8111] - Create read-only DocumentNodeStore for oak-run
    recovery dry run
    [OAK-8113] - Add ability to push metrics to prometheus pushgateway
    from oak-run
    [OAK-8114] - IndexDefinitionBuilder should be smarter when to
    reindex while updating a definition
    [OAK-8121] - RDBExport should handle db2 dump where del files
    refers to lob files without offset and length params
    [OAK-8125] - PrincipalProviderImpl support for range search
    [OAK-8131] - Principal Management APIs full text search support
    [OAK-8135] - HTTP service may not select correct media type if
    multiple are specified in Accept header field
    [OAK-8137] - Oak run tooling to run a RepositoryInitializer on top
    a list index definitions
    [OAK-8138] - In cases where search hit count is less than sample
    size defined for statistical mode for facets, secure mode should
    be used so that the counts are accurate for non-admin users.
    [OAK-8140] - UserPrincipalProvider support for full text search
    [OAK-8142] - CompositePrincipalProvider support for full text
    search
    [OAK-8143] - Configurable persistent cache for Oak-Mongo fixture
    [OAK-8159] - GroupPrincipalWrapper.getName is redundant
    [OAK-8160] - Missing notnull/nullable annotations with
    GroupPrincipals
    [OAK-8164] - CompositePrincipalProvider.findPrincipals lacks
    NotNull and Overrides annotation
    [OAK-8168] - Improve readability of AccessControlAction
    [OAK-8169] - Missing nullability annotations with
    UserPrincipalProvider and PrincipalProviderImpl
    [OAK-8171] - Remove DocumentNodeState.getId()
    [OAK-8175] - ExternalGroupPrincipalProvider support for full text
    search
    [OAK-8177] - Add logging around getReferenceCheckpoint method
    [OAK-8182] - Improvements to PasswordUtil
    [OAK-8205] - Add benchmark for Node.isNodeType()

Test

    [OAK-8172] - Basic test for LoggingDocumentStoreWrapper

Wish

    [OAK-8151] - Let ACE.getPrincipal return principals obtained from
    PrincipalManager
    [OAK-8173] - Add branch coverage to Jacoco check

Task

    [OAK-7904] - Exporting query duration per index metrics with Sling
    Metrics / DropWizard
    [OAK-7961] - LSH should truncate to first decimal place
    [OAK-7962] - FV reranking should be enabled by default
    [OAK-7969] - Update tika dependency to 1.20
    [OAK-8011] - Benchmark on QUERY_DURATION metrics implemented in
    OAK-7904
    [OAK-8022] - Update Oak trunk to Jackrabbit 2.19.0
    [OAK-8030] - oak-jcr NodeTypeTest improvements
    [OAK-8031] - Update Oak trunk to Jackrabbit 2.19.1
    [OAK-8037] - add test case for making a node type referenceable
    [OAK-8050] - Make it possible to use CompressingCodec via system
    property
    [OAK-8059] - Update Jackson dependency to 2.9.8
    [OAK-8068] - Update slf4j dependency to 1.7.26
    [OAK-8072] - Aggregate jcr:content result nodes as their parent
    [OAK-8085] - Upgrade spotbugs to 3.1.11
    [OAK-8090] - Update baseline comparisonVersion to 1.10.1
    [OAK-8098] - oak-examples/webapp: update spring boot dependency to
    1.5.19
    [OAK-8103] - TimingHookTest.commitTime failing occasionally
    [OAK-8112] - Change log pattern to have complete date for oak-run
    datastore command
    [OAK-8115] - Allow disabling of BlobTracker when not required
    [OAK-8116] - Expose text extraction metrics as sling metrics
    [OAK-8118] - Index selected properties to enhance feature vector
    similarity search results
    [OAK-8119] - Let similarity search rerank use distance as exact
    score
    [OAK-8120] - Update http components to 4.5.7/4.4.11
    [OAK-8134] - Index Copier Stats MBean shows stale info
    [OAK-8148] - [Indexing] Implement sling metric to calculate number
    of slow queries(relative to all queries)
    [OAK-8156] - Update baseline comparisonVersion to 1.10.2
    [OAK-8163] - examples: update Tomcat dependency to 7.0.93
    [OAK-8179] - Update jacoco to 0.8.3
    [OAK-8180] - Update mockito to 2.25.1
    [OAK-8189] - Getting warning message in error logs while trying to
    search using filters
    [OAK-8196] - Update httpclient/mime dependencies to 4.5.8
    [OAK-8206] - Revert Jackrabbit dependency from 2.19.1 to last
    stable (2.18.0) for stable Oak release

Documentation

    [OAK-8178] - Document missing support for multiplexing in Cug
    Authorization
    [OAK-8193] - Update docs with new release strategies

In addition to the above-mentioned changes, this release contains all
changes up to the previous 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 SHA512 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
https://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/