The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit Oak 1.5.13 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.5.13
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.5.13 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.4.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.5.13
---------------------
Sub-task
[OAK-2629] - Cleanup Oak Travis jobs
[OAK-5035] - Implement mini-benchmark for PersistentCache
[OAK-5038] - Extend PersistentCacheStats with async queue-related
stats
Technical task
[OAK-3404] - Path to logical store mapping
[OAK-4868] - Update SegmentS3DataStoreBlobGCTest in oak-it once
oak-segment-tar updated
[OAK-4869] - Enable benchmarks for DataStore
[OAK-4870] - Implement caching for S3DataStore
[OAK-4907] - Collect changes (paths, nts, props..) of a commit in
a validator
[OAK-4908] - Best-effort prefiltering in ChangeProcessor based on
ChangeSet
[OAK-4915] - Interrupt online revision cleanup on documentmk
[OAK-4916] - Add support for excluding commits to
BackgroundObserver
[OAK-4929] - Clean GCMonitor#compacted method arguments
[OAK-4941] - Provide status for gc process
[OAK-4944] - Enable RefreshOnGCTest segment-tar fixture
[OAK-4945] - Update GCMonitor api on segment-tar
[OAK-4951] - UpdateOp without set operation for _id: clarify, add
unit tests, fix DocumentStore instances
[OAK-4964] - UpdateOp.set("_id", ...) should do a sanity check on
the id
[OAK-4971] - Implement caching for FileDataStore
[OAK-4979] - Caching sub-system implementation for DataStore
[OAK-4986] - RDBDocumentStore: potential NPE in document read
[OAK-5015] - Retry mechanism for failed async uploads
Bug
[OAK-2722] - IndexCopier fails to delete older index directory
upon reindex
[OAK-3232] - Oak Console cannot deal with spaces in node names
[OAK-4396] - HttpStore.containsSegment throws SNFE instead of
returning false for non existing segments
[OAK-4403] - Diff traversal in persisted branch commit traversing
to unrelated paths
[OAK-4879] - Proper implementation of getOrCreateReferenceKey in
CachingFDS
[OAK-4882] - Bottleneck in the asynchronous persistent cache
[OAK-4921] - SegmentS3DataStoreStatsTest failing
[OAK-4925] - Don't call @Nonnull TypeEditor.getEffective() from
constructor
[OAK-4930] - External Principal Management: DynamicSyncContext
makes redundant calls to IdentityProvider.getIdentity()
[OAK-4931] - LdapIdentityProvider doesn't use configured custom
attributes for all searches
[OAK-4937] - JournalGC failing with RDB DocumentStore
[OAK-4956] - SegmentGCOptions retainedGenerations setting not
exposed via OSGi
[OAK-4958] - Test failure: BrokenNetworkTest
[OAK-4961] - Default repository.home in DocumentNodeStoreService
hides framework property
[OAK-4963] - Test failure: SegmentDataStoreBlobGCIT
[OAK-4965] - Cold standby logs SNFE ERROR
[OAK-4969] - ColdStandby does not fetch missing blobs
[OAK-4980] - occasional test failure of JournalGCIT
[OAK-4984] - Server time unavailable with authenticated connection
to MongoDB
[OAK-4996] - Open up getBlobStore() to protected access in
SegmentDataStoreBlobGCTest
[OAK-4997] - RevisionGCTest.teardown() may fail with NPE when
store == null
[OAK-4998] - NPE when starting Oak Console
[OAK-4999] - ISE when starting Oak Console
[OAK-5002] - NPE when creating read only store
[OAK-5003] - no output from oak-run check
[OAK-5005] - S3 async upload fails to catch and log exceptions
other than DataStoreException
[OAK-5007] - Put oak-segment-tar back in the main release cycle
[OAK-5008] - SegmentRevisionGCMBean getLastRepositorySize wrong
value
[OAK-5010] - Document split with binary properties too eager
[OAK-5016] - OOM in SegmentDataStoreBlobGCIT
[OAK-5018] - Warn traversal queries: false positives
[OAK-5034] - FileStoreUtil#readSegmentWithRetry max retry delay is
too short to be functional
[OAK-5044] - The background flush operation might flush a closed
store
[OAK-5055] - o.a.j.o.s.s.RevisionGC returns status that don't
comply with the API
[OAK-5061] - ObservationTest.applyNodeTypeOnSelf sometimes fails
[OAK-5064] - XPath: chained conditions and union bugfix
[OAK-5067] - Node bundling does not work with SecondaryNodeStore
feature
[OAK-5068] - Aggregate index: superfluous warning "Full-text index
without plan"
[OAK-5070] - Journal diff not working for changes in bundled node
[OAK-5073] - Bug in JcrPathParser
[OAK-5077] - Class "AbstractS3DataStoreService" should be declared
abstract
[OAK-5078] - Improper handling of relative paths in
OakFileDataStore#getAllIdentifiers
[OAK-5084] - oak-jcr does not export all public api
Documentation
[OAK-5014] - Minor description change for OSGi
blobTrackSnapshotIntervalInSecs property
Epic
[OAK-2849] - Improve revision gc on SegmentMK
Improvement
[OAK-1558] - Expose FileStoreBackupRestoreMBean for supported
NodeStores
[OAK-2460] - Resolve the base directory path of persistent cache
against repository home
[OAK-2910] - oak-jcr bundle should be usable as a standalone
bundle
[OAK-3018] - Use batch-update in backgroundWrite
[OAK-3796] - Prevent blob gc and revision gc from running
concurrently
[OAK-4139] - Idle session warnings for observation sessions
[OAK-4314] - BlobReferenceRetriever#collectReferences should allow
exceptions
[OAK-4586] - Collect affected node types on commit
[OAK-4627] - [BlobGC] Reduce logging during delete
[OAK-4710] - AsyncIndexUpdate delay time should show clock time
left
[OAK-4713] - Builder class to simplify Lucene Index Definition
building
[OAK-4788] - Fulltext parser sorts and unique-s parsed terms
[OAK-4789] - SegmentBlob should return null contentIdentity for
inlined blobs
[OAK-4796] - filter events before adding to ChangeProcessor's
queue
[OAK-4817] - QueryEngineSettings without MBean
[OAK-4849] - Refactor the MigrationCliArguments from implicit to
explicit
[OAK-4855] - Expose actual listener.toString in consolidated
listener mbean
[OAK-4859] - Warn if lease update is invoked with large delay
[OAK-4881] - Make merge semaphore in SegmentNodeStore fair by
default
[OAK-4888] - Warn or fail queries above a configurable cost value
[OAK-4900] - Enable persistent caches by default
[OAK-4902] - Blob GC completion time should be logged in millis
[OAK-4919] - Better feedback from method invocations on
RevisionGCMBean
[OAK-4950] - LIRS cache: improve hit rate
[OAK-4966] - Re-introduce a blocker for compaction based on
available heap
[OAK-4968] - Query engine: sort order is calculated multiple times
unnecessarily
[OAK-4970] - Sidegrade disk usage issues related to copying
version storage
[OAK-4974] - Enable configuring QueryEngineSettings via OSGi
config
[OAK-4975] - Setup a default Bundling config
[OAK-4981] - Config option to disable specific bundling config
[OAK-4989] - Simplify GCListener
[OAK-4990] - SegmentBufferWriter should not depend on
SegmentTracker
[OAK-4991] - Persistent cache should not cache those paths which
are covered by DocumentNodeStateCache
[OAK-4992] - Use the role name as prefix for directory used by
SegmentNodeStoreFactory
[OAK-5004] - Offline compaction explodes checkpoints
[OAK-5006] - Persistent cache: improve concurrency
[OAK-5011] - Add event aggregation support to observation
filtering
[OAK-5013] - Introduce observation filter extension mechanism to
Oak
[OAK-5019] - Support glob patterns through OakEventFilter
[OAK-5020] - Improved support for node removals
[OAK-5021] - Improve observation of files
[OAK-5022] - add includeSubtreeOnDelete flag to OakEventFilter
[OAK-5023] - add applyNoteTypeOnSelf property to OakEventFilter
[OAK-5024] - Improve the usage of the SegmentWriter for compaction
[OAK-5026] - Enable default memory mapping for segment mode in
oak-run console
[OAK-5029] - Use head GC generation number to trigger cleanup on
standby instance
[OAK-5030] - Copying the versions store is slow and increase the
repository size
[OAK-5032] - Update Groovy version in oak-run to 2.4.7
[OAK-5041] - AbstractPropertyState.toString should handle case
when BlobStore is not configured
[OAK-5043] - Very old JR2 repositories may have invalid nodetypes
for groupsPath and usersPath
[OAK-5045] - Support bundling of nodes present in version store
[OAK-5046] - Remove the old estimation OSGi setting
(compaction.gainThreshold)
[OAK-5047] - Log clusterNodes document details in
ClusterNodeInfo.renewLease()
[OAK-5050] - Optimise ImmutableRecordNumbers
[OAK-5053] - Provide support for enabling fastResultSize via OSGi
config
[OAK-5065] - Make configuration optional for
SecondaryStoreCacheService
[OAK-5066] - Provide a config option to disable lease check at
DocumentNodeStoreService level
[OAK-5072] - ChangeCollectorProvider should enable metatype
support
[OAK-5076] - CopyOnWrite directory should clear working set of
files being written upon start
New Feature
[OAK-1312] - Bundle nodes into a document
[OAK-4681] - Automatically convert *all* "or" queries to "union"
for SQL-2
[OAK-4871] - Multiplexing NodeStore
Task
[OAK-4247] - Deprecate oak-segment
[OAK-4606] - Avoid persisting rootRevision in PathFilteringDiff
[OAK-4977] - Add ProviderType annotation to MBean interfaces
[OAK-4985] - Upgrade Oak Segment Tar dependency to 0.0.16
[OAK-4988] - JournalGarbageCollector: re-order method signature
[OAK-5000] - Upgrade Oak Segment Tar dependency to 0.0.18
[OAK-5031] - Log configuration deprecation messages at WARN level
[OAK-5039] - Change globbing definition of GlobbingPathFilter
[OAK-5040] - Remove backup/restore methods in
RepositoryManagementMBean
[OAK-5049] - Add @Description annotations to methods in
RepositoryManagementMBean
[OAK-5054] - Disable oak-run build for Jackrabbit
[OAK-5071] - Persistent cache: use the asynchronous mode by
default
[OAK-5075] - Refactor IndexCopier to make it more modular
Test
[OAK-4955] - Write log messages to file only (oak-pojosr)
[OAK-4973] - Speed up tests with MongoFixture
[OAK-4976] - AcquireRecoveryLockTest fails occasionally
[OAK-4993] - Report plan when QueryTest.nodeType() fails
[OAK-4995] - DocumentS3DataStoreStatsTest.testNoS3BlobStore() does
not unregister node store
[OAK-5012] - SegmentDataStoreBlobGCIT times out on travis-ci
[OAK-5027] - Test utils for commonly used functionality
[OAK-5059] - DocumentCachingDataStoreStatsTest sometimes stuck
In addition to the above-mentioned changes, this release contains
all changes included up to the Apache Jackrabbit Oak 1.5.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/