Release Notes -- Apache Jackrabbit Oak -- Version 1.3.15 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.3.15 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.2.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.3.15 --------------------- Sub-task [OAK-3559] - Bulk document updates in MongoDocumentStore [OAK-3924] - Fix database-level row deadlock during bulk updates in RDB Technical task [OAK-3724] - Use the bulk createOrUpdate in Commit [OAK-3833] - Allow to acquire multiple locks [OAK-3855] - oak-run compact should check segment version [OAK-3892] - RDBDocumentStore: StripedNodeDocumentLocks - special case root? [OAK-3896] - RDBDocumentStore: export tool - improve handling of export files allowing to override column order [OAK-3925] - oak-run backup/recover should check segment version [OAK-3926] - oak-run checkpoint should check segment version [OAK-3927] - oak-run primary/standby should check segment version [OAK-3928] - oak-run debug should use a read-only store [OAK-3934] - Log ids of segments being released for gc because of their age. [OAK-3937] - Batch createOrUpdate() may fail with primary key violation [OAK-3938] - Occasional failure in MultiDocumentStoreTest.batchUpdateCachedDocument() [OAK-3943] - Check for the right segment version uniformly in oak-run [OAK-3945] - RDBDocumentStore: internalCreateOrUpdate() needs to check return code of insertDocuments() [OAK-3954] - [oak-blob-cloud] Update oak-blob-cloud with jackrabbit-aws-ext updates [OAK-3969] - CacheConsistencyRDBTest creates overlong table names [OAK-3971] - RDBDocumentStore: include table name when logging slow/excessive queries Bug [OAK-2480] - Incremental (FileStore)Backup copies the entire source instead of just the delta [OAK-3672] - discovery-lite should not set (cluster)Id for tarMk and mongoMk (was: SegmentDiscoveryLiteService does not persist clusterView.id) [OAK-3742] - FileStoreBackup and FileStoreRestore have a reference on Segment Store classes [OAK-3879] - Lucene index / compatVersion 2: search for 'abc!' does not work [OAK-3881] - TCPBroadcaster causes shutdown delay [OAK-3889] - SegmentMk StringCache memory leak [OAK-3897] - Branch reset does not revert all changes [OAK-3900] - AtomicCounterClusterIT fails occasionally [OAK-3901] - SecurityProviderRegistration must respect service ranking of aggregated configurations [OAK-3902] - SecurityProviderRegistration doesn't fill the composite context [OAK-3903] - Commit fails even though change made it to the DocumentStore [OAK-3908] - Don't skip maven-bundle-plugin:baseline when skipTests is true [OAK-3909] - Documentation site failure [OAK-3911] - Integer overflow causing incorrect file handling in OakDirectory for file size more than 2 GB [OAK-3912] - Segment bundle tests have wrong package name [OAK-3913] - FileStoreIT#testRecovery fails on Windows [OAK-3917] - SuggestionHelper creating unnecessary temporary directories [OAK-3920] - OakDirectory not usable in readOnly mode with a readOnly builder [OAK-3922] - Provide flag to disable template cache in segments [OAK-3923] - Async indexing delayed by 30 minutes because stop order is incorrect [OAK-3929] - RevisionGC does not invalidate document cache [OAK-3932] - DocumentStore.getIfCached() must not return NodeDocument.NULL [OAK-3939] - SegmentMK Template equals and hashCode broken [OAK-3949] - Deadlock with bulk acquire of TreeLocks [OAK-3951] - TimingDocumentStoreWrapper throws NPE [OAK-3955] - AtomicCounterEditorTest - Remove spurious import [OAK-3956] - Oak run extract the dummy BlobStore impl to be used by the readonly FileStore [OAK-3961] - Cold Standby revisit timeout setup [OAK-3963] - Cold Standby optimize sync for checkpoints [OAK-3966] - Indexing all properties for facets is way too much [OAK-3968] - Wrong initialization of used/ignored properties from OSGi configuration [OAK-3974] - regression: OakSolrConfigurationProviderService.activate can throw a NPE Documentation [OAK-3894] - Atomic counter documentation Epic [OAK-3744] - Move the Segment Store into its own bundle Improvement [OAK-1744] - GQL queries with "jcr:primaryType='x'" don't use the node type index [OAK-2066] - DocumentStore API: batch create, but no batch update [OAK-2477] - Move suggester specific config to own configuration node [OAK-2675] - Include change type information in perf logs for diff logic [OAK-3066] - Persistent cache for previous documents [OAK-3071] - Add a compound index for _modified + _id [OAK-3253] - Support caching in FileDataStoreService [OAK-3527] - Improve logging for blob GC [OAK-3537] - Move the Segment Store to its own bundle [OAK-3572] - enhance logging in TypeEditorProvider [OAK-3811] - Provide option to pass external data store to oak-run check [OAK-3825] - Including Resource name to suggestions [OAK-3862] - Move integration tests in a different Maven module [OAK-3871] - ability to override ClusterNodeInfo#DEFAULT_LEASE_DURATION_MILLIS [OAK-3898] - Add filter capabilities to the segment graph run mode [OAK-3904] - Compaction Map predicate should use cached state for evaluation [OAK-3905] - configurable atomic counter task timeout [OAK-3907] - Sync the files to directory upon copy from remote [OAK-3915] - Include suggest directory size into lucene stats jmx [OAK-3918] - Include index details in exception thrown by OakDirectory [OAK-3921] - DataStoreBlobStore - Limit resolveChunks only to non inlined blobs [OAK-3931] - Identify own repository id in shared datastore gc stats [OAK-3935] - SharedDataStore - Allow unique repository ID to be specified by config [OAK-3936] - [oak-run] Option to dump blob references [OAK-3940] - SegmentMK FileStore should provide a listing of the successfully opened readers [OAK-3944] - OsgiWhiteboard should handle multiple unregister call [OAK-3953] - Switch S3DataStoreService to use oak-blob-cloud S3DataStore [OAK-3957] - Move the commands of oak-run in independent units [OAK-3958] - Split SegmentWriter records cache into 2: strings and templates [OAK-3964] - Add bulk createOrUpdate() to DocumentStoreStats New Feature [OAK-3185] - Port and refactor jackrabbit-webapp module to Oak [OAK-3687] - Oak standalone application example based on Spring Boot [OAK-3970] - Utility methods for MongoDB indexes Task [OAK-3842] - Adjust package export declarations [OAK-3906] - NodeDocumentCache cleanup used inconsistently [OAK-3942] - Convert tests for TreeLocation and ImmutableTree to regular unit tests In addition to the above-mentioned changes, this release contains all changes included up to the Apache Jackrabbit Oak 1.2.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/