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.6.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.
Jackrabbit Oak 1.6 is an incremental feature release based on and
compatible with earlier stable Jackrabbit Oak 1.x releases. Jackrabbit
Oak 1.6.x releases are 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.6.0
---------------------
Sub-task
[OAK-2405] - Monitoring to track old NodeStates
[OAK-2629] - Cleanup Oak Travis jobs
[OAK-5035] - Implement mini-benchmark for PersistentCache
[OAK-5038] - Extend PersistentCacheStats with async queue-related
stats
[OAK-5167] - Document garbage collection
[OAK-5274] - Document CLI tools for oak-segment-tar
[OAK-5292] - The README in oak-run should link to the
documentation for oak-segment-tar
[OAK-5299] - Introduce BlobFactory in OakDirectory
Technical task
[OAK-3159] - Extend documentation for SegmentNodeStoreService in
http://jackrabbit.apache.org/oak/docs/osgi_config.html#SegmentNodeStore
[OAK-3309] - Segment Tar SegmentCache loader stats
[OAK-3403] - Multiplexing store support in Property indexes
[OAK-3404] - Path to logical store mapping
[OAK-3758] - Multiplexing store support in Reference index
[OAK-3840] - Clean up the FileStore constructor
[OAK-3869] - Refactor RecordWriter.write to always return a
RecordId
[OAK-3977] - RDBDocumentStore: remove PostgreSQL workaround after
upgrading to JDBC driver 9.4.1208
[OAK-3982] - DocumentStore: add method to remove with a condition
on an indexed property
[OAK-3983] - JournalGarbageCollector: use new DocumentStore
remove() method
[OAK-3984] - RDBDocumentStore: implement new conditional remove
method
[OAK-3985] - MongoDocumentStore: implement new conditional remove
method
[OAK-4094] - RDBDocumentStore: upgrade PostgreSQL JDBC driver
dependency to 9.4.1208
[OAK-4102] - Break cyclic dependency of FileStore and
SegmentTracker
[OAK-4113] - RDBJDBCTools: fix JDBC driver version check
[OAK-4134] - RDBBlobStore: improve error handling and logging
[OAK-4156] - RDBConnectionHandler: add logging when getting the
connection takes long
[OAK-4184] - DocumentNodeStore and DocumentMK.Builder should allow
read-only mode
[OAK-4190] - DocumentMK: refactor RDB-specific code
[OAK-4193] - RDBBlobStore: logging for garbage collection has
parameters reversed
[OAK-4197] - Remove deprecated constructors from SegmentNodeStore
[OAK-4199] - RDBBlobStore: garbage collection fails to delete DATA
records when there was subsequent blobstore activity
[OAK-4200] - [BlobGC] Improve collection times of blobs available
[OAK-4203] - ExternalSortTest doesn't cleanup temp files
[OAK-4204] - GarbageCollectorFileState.copy() leaks
FileOutputStream
[OAK-4205] - SegmentGraphTest doesn't correctly delete the
temporary directory on cleanup
[OAK-4206] - JournalReaderTest creates multiple temporary files
and doesn't delete them
[OAK-4207] - TarWriterTest creates a temporary TAR file that is
never deleted
[OAK-4208] - Unit and integration tests in oak-segments don't
clean up after test data
[OAK-4209] - FileStoreStatsTest doesn't close the temporary
FileStore instances
[OAK-4210] - JournalEntryTest doesn't close a JournalReader at the
end of the test
[OAK-4213] - IndexCopierTest#basicTestWithFS leaves temp files
[OAK-4214] - Many tests of LucenePropertyIndexTest leave temp
files undleted
[OAK-4217] - UpgradeTest does not clean up temp file
[OAK-4225] - AbstractOak2OakTest never calls
getSoureContainer().clean()
[OAK-4227] - OakDirectoryTest#dirNameInException_Writes leaves
temp files
[OAK-4228] - Some tests in LuceneIndexTest leave out CoR/CoW-ed
directories
[OAK-4232] - Bump segment version to 12
[OAK-4236] - SegmentNodeStoreConfigTest#testDeadlock in oak-pojosr
leaves out tmp file
[OAK-4237] - NodeStoreBinaryResourceProviderTest#csvGenerator
leaks temporary folder
[OAK-4241] - JdbcNodeStoreContainer does not correctly clean up H2
temp files
[OAK-4250] - DocumentStore: add test coverage for find() with
ultra-long keys
[OAK-4257] - Findbug issues in security modules
[OAK-4326] - Add a flag to choose between segment store
implementations in the "backup" command
[OAK-4327] - Add a flag to choose between segment store
implementations in the "restore" command
[OAK-4328] - Add a fixture to choose between segment store
implementations in the "benchmark" command
[OAK-4329] - Add a flag to choose between segment store
implementations in the "console" command
[OAK-4330] - Add a flag to choose between segment store
implementations in the "debug" command
[OAK-4331] - Add a flag to choose between segment store
implementations in the "graph" command
[OAK-4332] - Add a flag to choose between segment store
implementations in the "history" command
[OAK-4333] - Add a flag to choose between segment store
implementations in the "check" command
[OAK-4334] - Add a flag to choose between segment store
implementations in the "compact" command
[OAK-4335] - Add a flag to choose between segment store
implementations in the "server" command
[OAK-4336] - Add a flag to choose between segment store
implementations in the "scalability" command
[OAK-4337] - Add a flag to choose between segment store
implementations in the "explore" command
[OAK-4338] - Add a flag to choose between segment store
implementations in the "checkpoints" command
[OAK-4339] - Add a flag to choose between segment store
implementations in the "tika" command
[OAK-4340] - Add a flag to choose between segment store
implementations in the "tarmkdiff" command
[OAK-4341] - Add a flag to choose between segment store
implementations in the "tarmkrecovery" command
[OAK-4342] - Add a flag to choose between segment store
implementations in the "dumpdatastorerefs" command
[OAK-4343] - Add a flag to choose between segment store
implementations in the "resetclusterid" command
[OAK-4369] - Introduce interface for Secondary NodeStore provider
[OAK-4373] - Refactor SegmentTracker
[OAK-4388] - RDBDocumentStore: conditional update to _modified
property sometimes applied unconditionally
[OAK-4389] - RDBDocumentStore: add system property for disabling
appending updates
[OAK-4394] - Remove deprecated string cache
[OAK-4398] - RDBDocumentStore: dead code in internalUpdate
[OAK-4409] - RDB*Store: bump up recommended DB2 version to 10.5
[OAK-4416] - Move temp files to target directory
[OAK-4419] - Benchmark Results for SyncMBeanImpl with Batch Mode
[OAK-4425] - RDBDocumentStore: upgrade MySQL JDBC driver
dependency to 5.1.39
[OAK-4463] - Remove SegmentNodeStore.getSuperRoot()
[OAK-4464] - Move FileStore.ChangeDispatcher to TarRevisions
[OAK-4477] - RDBDatasourceFactory should use pool config similar
to sling datasource defaults
[OAK-4482] - RDB*Store: update tomcat-jdbc test dependency
[OAK-4490] - Expose SegmentNodeStore as a secondary NodeStore
[OAK-4495] - RDBDocumentStore: consistent handling of invalidate
methods
[OAK-4497] - RDBDocumentStore: potential race condition between
update and invalidate can cause stale cache entries
[OAK-4509] - RDBDocumentStore: low-level read method should also
support condition on MODIFIED value
[OAK-4510] - RDBDocumentStore: can't persist _modified value of
null
[OAK-4536] - Avoid premature branch
[OAK-4539] - Calculate children cache entry on commit
[OAK-4554] - RDBBlobStoreTest should use RDBDatasourceWrapper
[OAK-4557] - RDBPreparedStatementWrapper: do not hide
implementation bugs
[OAK-4559] - RDB*Store: failures with Tomcat JDBC pool's
StatementCache interceptor
[OAK-4562] - BasicDocumentStore max id test might return
misleading results
[OAK-4583] - RDB*Store: update Tomcat JDBC pool dependency
[OAK-4584] - Move DocumentMK specific methods from
DocumentNodeStore
[OAK-4593] - Remove usage of DocumentMK in
DocumentNodeStoreService
[OAK-4597] - Improve test coverage of blob GC
[OAK-4629] - Make it possible to override blob accessing methods
in DataStoreBlobStore
[OAK-4633] - Multiplexing store support for Node type indexes
[OAK-4793] - Check usage of DocumentStoreException in
RDBDocumentStore
[OAK-4794] - RDBDocumentStore: update PostgresQL JDBC driver
[OAK-4833] - Document storage format changes
[OAK-4838] - Move S3 classes to oak-blob-cloud module
[OAK-4848] - Improve oak-blob-cloud tests
[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-4885] - RDB*Store: update mysql JDBC driver reference to
5.1.40
[OAK-4905] - RDB*Store: update postgresql JDBC driver reference to
9.4.1211
[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-4952] - reject UpdateOp with set operation for _id, clarify
API, add tests, fix implementations
[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
[OAK-5095] - Improve normalization of configured path in
AbstractSharedCachingDataStore
[OAK-5098] - improve DocumentNodeStoreService robustness for RDB
configs
[OAK-5119] - JournalGarbageCollector: journalGcBatchSize
configuration is irrelevant post implementation tasks of bulk
remove support in DocumentStore
[OAK-5126] - Support ChangeSet merging and serialization
[OAK-5174] - Introduce API to pass options while writing blobs in
BlobStore/DataStore
[OAK-5175] - Pass option for synchronized uploads when writing
lucene blobs
[OAK-5176] - Allow configuring ignoreReindexFlags on per
IndexUpdate basis
[OAK-5201] - Support upgrade of DataStore cache
[OAK-5220] - Remove usage of NodeBuilder in IndexDefinition
[OAK-5252] - Disable IPv6 tests on Jenkins nodes labelled "beam"
[OAK-5414] - Refactor LuceneIndexEditor to move out logic related
to making Lucene Document to separate class
[OAK-5415] - Refactor Binary text extraction logic from
LuceneIndexEditor
[OAK-5430] - Provide an extension point in DocumentNodeStore
Journal support
[OAK-5431] - Expose withAsyncIndexing name variant in Jcr builder
[OAK-5508] - add test cases for interesting node names
Bug
[OAK-2072] - Lucene: inconsistent usage of the config option
"persistence"
[OAK-2722] - IndexCopier fails to delete older index directory
upon reindex
[OAK-2819] - Persistent cache: tool to dump the contents
[OAK-3072] - LuceneIndexEditorTest#copyOnWriteAndLocks failing on
windows
[OAK-3232] - Oak Console cannot deal with spaces in node names
[OAK-3328] - checked-in state should only affect properties with
OPV!=IGNORE
[OAK-3488] - LastRevRecovery for self async?
[OAK-3629] - Index corruption seen with CopyOnRead when index
defnition is recreated
[OAK-3753] - Test failure: HeavyWriteIT
[OAK-3887] - Test failure: BroadcastTest
[OAK-3910] - Migrating node inheriting from mix:versionable
without version history
[OAK-3972] - Forward edges missing in SegmentGraph
[OAK-4048] - [regression] SyncHandler.listIdentities() returns all
users, not only external ones
[OAK-4064] - Ensure oak-remote runs ITs only with
integrationTesting
[OAK-4065] - Counter index can get out of sync
[OAK-4082] - RDBDocumentStore on MySQL may fail when using
useServerPrepStmts=true
[OAK-4083] - Simplify concurrency when loading data from the
primary
[OAK-4088] - CacheLIRS prevents cleanup from being effective
[OAK-4089] - The standby store shouldn't start the observation
subsystem
[OAK-4091] - The standby store shouldn't initialize the segment
node store with an initial state
[OAK-4099] - Lucene index appear to be corrupted with compaction
enabled
[OAK-4107] - NPE in
MongoDocumentStore.determineServerTimeDifferenceMillis
[OAK-4110] - Test failure: testProxySkippedBytesIntermediateChange
[OAK-4114] - Cached lucene index gets corrupted in case of unclean
shutdown and journal rollback in SegmentNodeStore
[OAK-4116] - Broadcasting cache: disabled by default
[OAK-4125] - Test failure: testUpdateAndDelete [MyFixture:
RDB-Derby(embedded)]
[OAK-4126] - Suggestion and spellcheck queries throw exception if
result contain lucene query character
[OAK-4127] - Cleanup creates new generation of tar file without
removing any segments
[OAK-4128] - RepositorySidegrade doesn't copy root node properties
[OAK-4135] - Test failure:
org.apache.jackrabbit.j2ee.TomcatIT.testTomcat
[OAK-4145] - LeaseFailureHandler might be called multiple
times/concurrently on a lease failure
[OAK-4148] - RAT plugin complains about derby files
[OAK-4153] - segment's compareAgainstBaseState wont call
childNodeDeleted when deleting last and adding n nodes
[OAK-4155] - oaj.oak.spi.security.authentication.credentials not
exported
[OAK-4166] - Simple versionable nodes are invalid after migration
[OAK-4170] - QueryEngine adding invalid property restriction for
fulltext query
[OAK-4174] - SegmentToJdbcTest failing with improvements of
OAK-4119
[OAK-4189] - Increase Java language level to 1.7
[OAK-4195] - Use clock when waiting in ClusterNodeInfo
[OAK-4196] - EventListener gets removed event for denied node
[OAK-4211] - FileAccess.Mapped leaks file channels
[OAK-4219] - ExternalLoginModuleTestBase doesn't remove synced
User/Group accounts
[OAK-4224] - DefaultSyncContext.sync(ExternalIdentity) should
verify IDP
[OAK-4231] - DefaultSyncContext creates Value of type String for
Binary|Inputstream Object
[OAK-4251] - Guard against NPE in
DefaultSyncConfig.Authorizable.setAutoMembership
[OAK-4253] - CLONE - TarReader#loadGraph wrongly detects segment
graph as corrupt
[OAK-4255] - CLONE - FileStore.containsSegment returns alway true
(almost)
[OAK-4258] - Don't release oak-segment-next when the reactor
project is released
[OAK-4263] - LIRS cache: excessive use of notifyAll
[OAK-4267] - SyncedIdentity for foreign authorizable always has
isGroup set to false
[OAK-4269] - Firebug warning: possible null-pointer dereference in
S3Backend
[OAK-4291] - FileStore.flush prone to races leading to corruption
[OAK-4296] - Oak-run console's lucene command is broken
[OAK-4300] - Cost per entry for Lucene index of type v1 should be
higher than that of v2
[OAK-4301] - Missing protection for system-maintained
rep:externalId
[OAK-4302] - DefaultSyncContextTest contains duplicate test
[OAK-4304] - SegmentParserTest leaks temporary folders
[OAK-4305] - BulkCreateOrUpdateTest.testConcurrentWithConflict
failing on jenkins
[OAK-4307] - SegmentWriter saves references to external blobs
[OAK-4310] - Avoid instanceof checks in
SegmentDiscoveryLiteService
[OAK-4311] - SegmentNodeStoreService should unregister the
registered cluster ID descriptors
[OAK-4313] - QueryImpl should avoid traversal with queries
containing native constraints
[OAK-4316] - The Jcr builder should accept a fully initialized Oak
instance
[OAK-4325] - Autocreation of properties fails if user id is null
[OAK-4345] - Bulk update constructs malformed query
[OAK-4346] - SyncMBeanImpl.syncExternalUsers doesn't check for
foreign IDP
[OAK-4351] - Non-root lucene index throws exception if query
constraints match root of sub-tree
[OAK-4353] - IndexOutOfBoundsException in FileStore.writeStream
[OAK-4357] - javadoc plugin should be java 7
[OAK-4358] - Stale cluster ids can potentially lead to lots of
previous docs traversal in NodeDocument.getNewestRevision
[OAK-4359] - Lucene index / compatVersion 2: search for 'a=b=c'
does not work
[OAK-4360] - SyncMBeanImpl.syncUsers swallows errors
[OAK-4362] - SyncMBeanImpl.purgeOrphanedUsers swallows sync-error
[OAK-4363] - SyncMBeanImpl: result lacks 'uid' if error messages
has been created from ExternalIdentityRef
[OAK-4366] - SyncMBeanImpl.testSyncExternalUsersLastSyncedProperty
makes assumption about System.currentTimeMillis()
[OAK-4375] - oak-jcr has compile dependencies on oak-segment and
oak-segment-tar
[OAK-4376] - XPath: queries starting with "//" are not always
converted correctly
[OAK-4377] - TestS3Ds overwrites system property 'config'
[OAK-4387] - XPath: querying for nodes named "text", "element",
and "rep:excerpt" fails
[OAK-4396] - HttpStore.containsSegment throws SNFE instead of
returning false for non existing segments
[OAK-4397] - DefaultSyncContext.syncMembership may sync group of a
foreign IDP
[OAK-4403] - Diff traversal in persisted branch commit traversing
to unrelated paths
[OAK-4420] - RepositorySidegrade: oak-segment to oak-segment-tar
should migrate checkpoint info
[OAK-4423] - Possible overflow in checkpoint creation
[OAK-4426] - RepositorySidegrade: oak-segment to oak-segment-tar
should drop the name length check
[OAK-4429] - [oak-blob-cloud] S3Backend#getAllIdentifiers should
not store all elements in memory
[OAK-4430] - DataStoreBlobStore#getAllChunkIds fetches DataRecord
when not needed
[OAK-4431] - Index path property should be considered optional for
copy on read logic
[OAK-4432] - Ignore files in the root directory of the
FileDataStore in #getAllIdentifiers
[OAK-4436] - HeavyWriteIT sporadically fails
[OAK-4438] - Segments created by an unsuccessful compaction run
should get cleaned
[OAK-4439] - Fix the errors reported by the Javadoc tool in JDK8
[OAK-4441] - [BlobGC] Writing of strings should be escaped
[OAK-4448] - Test failures that rely on expiration time to
experience a re-sync.
[OAK-4468] - Inconsistent return values on subsequent calls to
JournalReader.iterator
[OAK-4475] - CI failing on branches due to unknown fixture
SEGMENT_TAR
[OAK-4478] - Enable writer cache for offline compaction
[OAK-4486] - [IT][Failures] testPreferenceConversion,
testMongoReadPreferencesWithAge
[OAK-4491] - version conflict in oak-segment-tar during release
[OAK-4493] - Offline compaction persisted mode
[OAK-4494] - Stale documents after revision GC in cluster
[OAK-4496] - Enable DataStoreBlobStore#getAllRecords to support
non-shared DataStore
[OAK-4499] - LucenePropertyIndexTest#longRepExcerpt is too
aggressive
[OAK-4502] - LucenePropertyIndex doesn't use filter's path for ACL
checks of suggest queries
[OAK-4503] - Update count increases with rebase
[OAK-4507] - [oak-mongo.js] oak.indexStats() does not compute
counts properly
[OAK-4515] - Catch NPE and log serverResult in
MongoDocumentStore.determineServerTimeDifferenceMillis
[OAK-4518] - ConcurrentAddReferenceTest fails occasionally
[OAK-4527] - [oak-blob-cloud] Access parameters configured leak
out in the exception message
[OAK-4532] - race-condition in commit-rate-limiter
[OAK-4537] - rat-plugin does not ignore oak-segment-tar/target
[OAK-4538] - IndexDefinition.createCodec class loading deadlock
[OAK-4544] - Fix failing test
DataStoreCheckTest.testMissingOpParams()
[OAK-4548] - SegmentDataStoreBlobGCIT failures
[OAK-4552] - Checkpoints.getOldestRevisionToKeep() returns newest
valid revision
[OAK-4565] - S3Backend fails to upload large metadata records
[OAK-4568] - JournalEntry.applyTo() creates complete change tree
in memory
[OAK-4571] - consolidated listener stats confuses
cluster-external/local flags
[OAK-4572] - Overflow to disk threshold too high
[OAK-4588] - Upgrade from JCR2 with S3DataStore doesn't work
[OAK-4595] - OSGiIT failure LuceneIndexProviderService exception
[OAK-4599] - SecurityProviderRegistration fails to update config
param of SecurityConfiguration(s)
[OAK-4600] - In case of branch commits, nodeChildrenCache gets
entries for branch revision without "br" prefix
[OAK-4602] - IndexOutOfBoundsException when sorting by jcr:score +
field
[OAK-4628] - Using non default dir name causes index directory to
be deleted
[OAK-4652] - indexName logged in QueryImpl is wrong in case of
multiple indexes satisfying the query
[OAK-4656] - release Oak 1.4.6
[OAK-4658] - Outer join: name(b) and localname(b) can throw a NPE
[OAK-4660] - TokenProviderImpl.getTokenParent may return
non-existing tree
[OAK-4662] - Include Commons Lang Math 3 as a dependency in
oak-run
[OAK-4663] - Include Commons Lang Math 3 as a dependency in
oak-upgrade
[OAK-4664] - Disabling lease check via DocumentMK builder does not
work
[OAK-4676] - Index definition on nt:base with analyzed property
incorrectly matches query with different property
[OAK-4682] - ConcurrentModificationException in
JournalEntry.TreeNode
[OAK-4684] - RepositorySidegrade should also run commit hooks as
they are run in upgrade
[OAK-4687] - Issue with backgroundOperationLock handling in
exception case
[OAK-4692] - DocumentNodeStore does not close journal persistent
cache
[OAK-4705] - Fulltext parser doesn't allow stand-alone hyphen in
search expression
[OAK-4717] - TarNodeStore.checkpoint methods represent endless
loop
[OAK-4718] - Tests in oak-upgrade depend on an archived repository
[OAK-4721] - Switch to oak-segment-tar by default when using CLI
tools
[OAK-4722] - Adapt the primary and standby commands in oak-run
[OAK-4734] - AsyncIndexUpdateClusterTestIT fails occasionally
[OAK-4770] - Missing exception handling in
ClusterNodeInfo.renewLease()
[OAK-4776] - Query engine: "like" conditions with only escaped
wildcards
[OAK-4779] - ClusterNodeInfo may renew lease while recovery is
running
[OAK-4807] - SecondaryStoreConfigIT intermittently failing due to
incorrect MongoURL
[OAK-4820] - oak-auth-external can't handle full-width logins
[OAK-4828] - oak-ugrade tests fail with segment tar 0.0.12 (on
Windows)
[OAK-4830] - StringUtils.estimateMemoryUsage() can throw
NullPointerException
[OAK-4832] - Upgrade breaks if the SecurityManager section in
repository.xml is empty
[OAK-4840] - Incorrect branch commit value
[OAK-4841] - Error during MongoDB initialization
[OAK-4842] - Upgrade breaks if there's no SearchManager configured
in repository.xml
[OAK-4845] - Regression: DefaultSyncContext does not sync
membership to a local group
[OAK-4879] - Proper implementation of getOrCreateReferenceKey in
CachingFDS
[OAK-4882] - Bottleneck in the asynchronous persistent cache
[OAK-4894] - Potential NPE in Commit.apply()
[OAK-4909] - NRTIndex can get closed while in use
[OAK-4912] - MongoDB:
ReadPreferenceIT.testMongoReadPreferencesForLocalChanges()
occasionally fails
[OAK-4921] - SegmentS3DataStoreStatsTest failing
[OAK-4925] - Don't call @Nonnull TypeEditor.getEffective() from
constructor
[OAK-4931] - LdapIdentityProvider doesn't use configured custom
attributes for all searches
[OAK-4937] - JournalGC failing with RDB DocumentStore
[OAK-4954] - SetPropertyTest benchmark fails on Segment Tar
[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-5009] - ExternalToExternalMigrationTest failures on Windows
[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-5069] - Backup fails when called from
RepositoryManagementMBean#startBackup
[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-5083] - SegmentNotFoundExceptionListener logs Listener ID
instead of SegmentId
[OAK-5084] - oak-jcr does not export all public api
[OAK-5085] - XPath: union bugfix
[OAK-5087] - Primary instance logs expected SNFEs at ERROR level
[OAK-5088] - o.a.j.o.p.b.d.DataStoreBlobStore#getReference logs
WARNING for missing records
[OAK-5093] - Failed compaction should return the number of the
incomplete generation
[OAK-5094] - NPE when failing to get the remote head
[OAK-5096] - node type aggregate filter should be added in OR mode
(not in AND)
[OAK-5099] - mixing starstar with star.foo in glob path is broken
[OAK-5102] - includeAncestorRemove should not do prefiltering just
based on / but actual ancestors
[OAK-5104] - GlobbingPathFilter does not match /a/**/b corrctly
[OAK-5107] - Avoid NullPointerException in ChangeSetFilterImpl
[OAK-5108] - [Blob GC] checkConsistency() should sync available
blobs from the datastore
[OAK-5109] - [Test] Ignore if config properties file not available
[OAK-5112] - oak-upgrade breaking versionStorage node when started
with copy-versions=false
[OAK-5114] - oak-segment-tar should declare embedded dependencies
using compile scope
[OAK-5120] - Automatically convert *all* "or" queries to "union"
for SQL-2, take 2
[OAK-5125] - Some implementations of CacheValue.getMemory() don't
care about integer overflow.
[OAK-5133] - StoreArgument class getter method opens repo in
read/write and unsafe MMAP mode
[OAK-5135] - The flush of written data via TarRevisions is
asynchronous in relation to FileStore.close()
[OAK-5137] - Standby client and server miss an exception handler
[OAK-5138] - NodeCache.getIfPresent() may result in writing to
persistent cache
[OAK-5139] - Asynchronous puts to persistent cache doesn't update
stats
[OAK-5148] - Misleading diffJournalChildren debug message
[OAK-5151] - Overflown ChangeSets are not handled correctly in
ChangeSetFilterImpl
[OAK-5153] - explode entire node type/mixin inheritence hierarchy
in observation node type filter
[OAK-5164] - ChangeSet's maxPathDepth must be taken into account
by ChangeSetFilterImpl
[OAK-5177] - Non default MissingIndexProviderStrategy is not being
passed to child editor
[OAK-5178] - Default mode for local_diff cache must be synchronous
[OAK-5179] - MultiplexingNodeStoreService does not register an
OSGi service for oak.api.Descriptors
[OAK-5180] - Fix and enable RemoteServerIT
[OAK-5183] - ClusterRepositoryInfo.getOrCreateId should explicitly
check for a null argument
[OAK-5184] - Inconsistent nullability annotation for CommitInfo in
DocumentNodeStore.done()
[OAK-5193] - Version tree may become inconsistent after removing a
version
[OAK-5195] - ExternalPrincipalConfiguration uses
'group.autoMembership' instead of 'user.autoMembership'
[OAK-5200] - OAK-4930 introduced critical bug confusing id and
principal name
[OAK-5203] - [oak-run] Rename dumdatastorerefs comand to
datastorecheck command
[OAK-5204] - Fix logger name for DataStoreCacheUtils class
[OAK-5205] - Lucene index causes many split documents
[OAK-5215] - remove use of deprecated guava methods
[OAK-5223] - SegmentNodeStoreService components don't unregister
with the blobstore
[OAK-5226] - Incorrect memory calculation for bundled node states
[OAK-5228] - Incorrect minTimestamp in
DocumentNodeStore.diffImpl()
[OAK-5231] - Proper resource cleanup in BlobTrackerTest
[OAK-5233] - Parameter --src-datastore is being ignored for JCR2
upgrade
[OAK-5238] - IndexCopier causes concurrent update on NodeBuilder
[OAK-5240] - Test failure: IndexSanityCheckerTest.sizeMismatch()
[OAK-5241] - Test failure: TomcatIT.testTomcat()
[OAK-5251] - Test failure:
externalAddOffline(org.apache.jackrabbit.oak.plugins.blob.datastore.BlobIdTrackerTest)
[OAK-5254] - MultiplexingNodeStoreService does not pick up
Observers registered through the whiteboard
[OAK-5258] - LuceneIndexEditor skips indexing for unknown nodetype
due to stale NodeType registry state
[OAK-5259] - Better default for size delta estimation
[OAK-5260] - Incorrect handling of subpaths with leading left
curly bracket
[OAK-5262] - Test failure:
NodeTypeIndexingUtilsTest.testSynonymsFileCreation
[OAK-5285] - Test failures in
org.apache.jackrabbit.oak.plugins.blob
[OAK-5296] - MutableRoot.refresh does not correctly refresh tree
permissions
[OAK-5297] - Check for null homeDir in DataStoreCacheUpgradeUtils
[OAK-5300] - OakDirectory.fileLength() must throw
FileNotFoundException if file does not exist
[OAK-5304] - DefaultSyncContext.sync(ExternalIdentity) does not
verify same identity provider
[OAK-5305] - NRTIndex link to previous index leads to memory leak
[OAK-5326] - Not able to move segment store directory on
filesystem after closing FileStore
[OAK-5327] - Change default query limit configuration, take 2
[OAK-5328] - Fix the errors reported by the Javadoc tool in JDK8
[OAK-5333] - Standalone example does not work with mongo
[OAK-5336] - Update milestone dependency to
org.apache.directory.api.api-all
[OAK-5339] - Test failure:
BackgroundObserverTest.testExcludeSomeCommits()
[OAK-5348] - ChangeCollectorProvider should be registered as
EditorProvider
[OAK-5349] - RepositoryManager does not register VersionHook
[OAK-5353] - Services registered by SegmentNodeStoreService should
consistently expose the role
[OAK-5354] - Security: the order of child should be correct if the
child nodes are readable.
[OAK-5358] - test failures for oak-auth-ldap on Windows
[OAK-5359] - Cancelled garbage collection not reported to
GCMonitor
[OAK-5388] - Test failure:
persistentCache.BroadcastTest.broadcastTCP
[OAK-5413] - XPath: "union" combined with "or" is not converted
correctly
[OAK-5416] - Async reindex of a sync property does't release
created checkpoint
[OAK-5423] - MultiplexingNodeStoreService: Missing element AD in
element OCD
[OAK-5436] - o.a.j.o.segment.file.Manifest#load leaks a file
descriptor
[OAK-5454] - Failed test:
org.apache.jackrabbit.oak.plugins.blob.CachingDataStoreTest.zeroStagingCacheAddGetDelete
[OAK-5461] - [BlobGC] BlobIdTracker remove() should merge
generations
[OAK-5462] - Expensive NodeDocument.split() with multi-valued
binary property
[OAK-5465] - StandbyClientSyncExecution uses an unbound segment
cache
[OAK-5471] - Too many files with unapproved license
[OAK-5479] - Overdue document split with many cluster nodes
[OAK-5480] - oak-core/repository left after a build
[OAK-5497] - Inverted logic for ignoring/reporting SNFE
[OAK-5513] - Compaction estimation log is missing the generation
[OAK-5517] - SNFE when running compaction after a cancelled gc
[OAK-5522] - Deactivation code in StandbyStoreService is not
resilient to errors
[OAK-5528] - leaseUpdateThread might be blocked by
leaseUpdateCheck
[OAK-5533] - Lucene indexing of mv facets fails because of hidden
persisted FacetsConfig
[OAK-5545] - Replica Set Info seems to close and open Mongo
connections in a loop
Documentation
[OAK-4133] - Document oak.fastQuerySize parameter
[OAK-4151] - Broken link to oak-mongo.js function on Command Line
Tools page
[OAK-4466] - Incorrect description for "Simple Inheritance with
Restrictions" inthe Permission Evaluation Page
[OAK-5014] - Minor description change for OSGi
blobTrackSnapshotIntervalInSecs property
[OAK-5235] - Document the new caching datastore
Epic
[OAK-2849] - Improve revision gc on SegmentMK
[OAK-3269] - Improve indexing resilience
[OAK-3270] - Improve DocumentMK resilience
[OAK-3286] - Persistent Cache improvements
[OAK-4215] - Improve test-coverage for External Authentication
[OAK-4383] - Benchmarks tests for oak-auth-external
[OAK-4391] - Dynamic Membership for External Authentication
Improvement
[OAK-1322] - Reduce calls to MongoDB
[OAK-1558] - Expose FileStoreBackupRestoreMBean for supported
NodeStores
[OAK-1571] - OSGi Configuration for Query Limits
[OAK-2065] - JMX stats for operations being performed in
DocumentNodeStore
[OAK-2108] - Killing a node may stop async index update to to 30
minutes (Tar storage)
[OAK-2110] - potential performance issues with
VersionGarbageCollector
[OAK-2392] - [DocumentMK] Garbage Collect older revisions of
binary properties in main document
[OAK-2460] - Resolve the base directory path of persistent cache
against repository home
[OAK-2719] - Misleading warn message about local copy size
different than remote copy in oak-lucene with copyOnRead enabled
[OAK-2821] - PersistentCache not used for RDBBlobStore
[OAK-2910] - oak-jcr bundle should be usable as a standalone
bundle
[OAK-3001] - Simplify JournalGarbageCollector using a dedicated
timestamp property
[OAK-3018] - Use batch-update in backgroundWrite
[OAK-3036] - DocumentRootBuilder: revisit update.limit default
[OAK-3348] - Cross gc sessions might introduce references to
pre-compacted segments
[OAK-3563] - Improve DefaultSyncContext
[OAK-3725] - Add oak:Indexable mixin type
[OAK-3748] - Heuristic method to decide if the document may be a
part of the bulk update
[OAK-3790] - Back Port Support including and excluding paths for
PropertyIndex to Oak 1.2 branch
[OAK-3796] - Prevent blob gc and revision gc from running
concurrently
[OAK-3797] - SegmentTracker#collectBlobReferences should retain
fewer SegmentId instances
[OAK-3846] - Add parameter to skip SNS nodes
[OAK-3858] - Review slow running tests
[OAK-3865] - New strategy to optimize secondary reads
[OAK-3886] - Delegate supported Credentials types to
ExternalIdentityProvider
[OAK-3976] - journal should support large(r) entries
[OAK-4005] - LdapIdentityProvider.getEntries() is prone to OOME.
[OAK-4029] - RDBDocumentStore: optimize the bulk update method
[OAK-4043] - Oak run checkpoints needs to account for multiple
index lanes
[OAK-4069] - Use read concern majority when connected to a replica
set
[OAK-4087] - Replace Sync of configured AutoMembership by Dynamic
Principal Generation
[OAK-4095] - Include timestamp in journal log entries
[OAK-4096] - Limit the number of times a LuceneResultRow based
iterator get reset
[OAK-4108] - Reduce logging from JournalGarbageCollector
[OAK-4109] - Fix typo in async indexer thread name
[OAK-4111] - Include mongo version details in log
[OAK-4112] - Replace the query exclusive lock with a cache tracker
[OAK-4119] - Improvements Take 1
[OAK-4123] - Persistent cache: allow to configure the add data
concurrency
[OAK-4124] - Persistent cache: consider using callstack blocking
[OAK-4130] - Simplify IdentifierManager.getReferences
[OAK-4136] - release profile in maven
[OAK-4139] - Idle session warnings for observation sessions
[OAK-4142] - allow skip UT in pedantic profile
[OAK-4152] - Expose the index path to IndexEditor
[OAK-4159] - Expose an option in Oak class to enable failing of
commit upon missing index editor provider
[OAK-4160] - Expose type property for ReferenceEditorProvider
[OAK-4163] - LastRevRecoveryAgent: improve startup diagnostics
[OAK-4164] - Expose path stats for Lucene index
[OAK-4168] - Replace the massive lock acquire with cache tracker
in bulk createOrUpdate()
[OAK-4169] - Make the bulk createOrUpdate retry count configurable
in Mongo
[OAK-4172] - Expose 'omitAdminPw' configuration
[OAK-4173] - Add log message when a custom tika config files is
used by an index
[OAK-4175] - Allow to skip the repository initialization in
oak-upgrade
[OAK-4182] - oak-run->console should have a read-only mode to
connect to document stores (mongo, rdb, etc)
[OAK-4185] - Add DOCUMENT_MEM to FixturesHelper
[OAK-4198] - oak-run console should have command to export
relevant documents (same as oak-mongo.js' printMongoExportCommand)
[OAK-4212] - Add the segments blob references to the tar files.
[OAK-4218] - Base SyncMBeanImpl on Oak API
[OAK-4220] - ExternalLoginModuleFactoryTest should extend from
ExternalLoginModuleTestBase
[OAK-4221] - Move duplicate constants to
ExternalLoginModuleTestBase
[OAK-4222] - Cleanup ExternalLoginModuleTest
[OAK-4223] - Minor improvements to ExternalIdentityRefTest
[OAK-4230] - Remove unused JsopWriter in Commit
[OAK-4233] - Property index stored locally
[OAK-4242] - Counter index should be rebuilt after successful
migration
[OAK-4249] - Extract abstract test-base without OSGi registrations
[OAK-4254] - CLONE - BackgroundThread should log and re-throw
instances of Error
[OAK-4261] - Add PropInfo.asPropertyState
[OAK-4262] - Provide a way to abort an async indexing run
[OAK-4266] - NodeDocumentCache#get method should be synchronized
[OAK-4280] - Compaction cannot be cancelled
[OAK-4284] - Garbage left behind when compaction does not succeed
[OAK-4294] - Consider making FileStore.writer volatile
[OAK-4297] - Oak-run console should allow to setup FDS of
repository
[OAK-4298] - oak-run->console should have a read-only mode to
connect to segment store
[OAK-4299] - oak-run console should connect to repository in
read-only mode by default
[OAK-4306] - Disable cleanup when compaction is paused
[OAK-4314] - BlobReferenceRetriever#collectReferences should allow
exceptions
[OAK-4317] - Similar and Native queries should return no results
if no index can handle them
[OAK-4320] - Use the cache tracker in the RDB Document Store
[OAK-4321] - Improve conflict exception message to show if
conflict is unexpected
[OAK-4344] - LdapIdentityProvider always retrieves all attributes
when looking up an LDAP entity.
[OAK-4347] - Use the indexPath from hidden property instead of
taking this as input as part of index config
[OAK-4361] - Reduce performance impact of observation ACFilter
[OAK-4365] - Redundant Action Class Lookup in
DefaultAuthorizableActionProvider
[OAK-4368] - Excerpt extraction from the Lucene index should be
more selective
[OAK-4370] - Unreferenced empty VersionHistories should be deleted
automatically
[OAK-4372] - VersionGarbageCollector uses more temporary memory
than needed
[OAK-4379] - Batch mode for SyncMBeanImpl
[OAK-4380] - DocumentNodeState should override getPropertyCount
[OAK-4381] - Query engine: decouple nodetype lookup
[OAK-4384] - Benchmarks: add support 'automembership' config
option
[OAK-4385] - Benchmarks: proper init of
ExternalPrincipalConfiguration with dynamicMembership
[OAK-4393] - Decouple FileStoreStatsTest
[OAK-4395] - Run SegmentParserTest off memory store instead of
file store
[OAK-4400] - Correlate index with the index definition used to
build it
[OAK-4413] - IndexCopier logs too verbose
[OAK-4421] - Optimize Revison fromString and toString
implementation
[OAK-4422] - support cluster for FileBlobStore
[OAK-4424] - Optimize PathUtils.concat by using a properly sized
StringBuilder
[OAK-4428] - Optimize RevisionVector methods
[OAK-4434] - Remove segment version argument from segment writer
and and related classes
[OAK-4444] - Reduce number of calls to NodeBuilder.getNodeState
from MergingNodeStateDiff
[OAK-4447] - RepositorySidegrade: oak-segment to oak-segment-tar
migrate without external datastore
[OAK-4449] - SegmentNodeStore and SegmentStore builders should log
their parameters on build()
[OAK-4454] - Create consistent API in ExternalSort to write and
read escaped line breaks
[OAK-4455] - Reduce log level in
CompositeAuthorizationConfiguration
[OAK-4457] - Range constructor should use parametrized assertion
message
[OAK-4461] - Improve logging during compaction cycles
[OAK-4472] - Decouple SegmentReader from Revisions
[OAK-4479] - Move EmptyPrincipalProvider to oak-core
[OAK-4483] - Remove synchronized access requirement from
MetricStatisticsProvider#getStats
[OAK-4487] - Move the apache-release profile in oak-parent
[OAK-4488] - Create separate reactor POM to perform releases
[OAK-4500] - Create tooling for reducing a document-based
repository to a list of paths
[OAK-4505] - Offline compaction clearer output values
[OAK-4512] - Detect and log commits to the read-only stores
[OAK-4514] - ResurrectNodeAfterRevisionGCTest's cleanup may
interfere with DS disposal
[OAK-4516] - Configurable option to lucene index defs to index
original (unanalyzed value as well)
[OAK-4523] - Query: first selector should be main selector
[OAK-4528] - diff calculation in DocumentNodeStore should try to
re-use journal info on diff cache miss
[OAK-4533] - make DELAY_THRESHOLD & MAX_DELAY of ChangeProcessor
configurable
[OAK-4534] - add trace logging to CommitRateLimiter
[OAK-4540] - Cache update blocks new commits
[OAK-4542] - PerfLogger should also allow a threshold to log at
INFO
[OAK-4543] - Add info about event generation and consumption by
observer
[OAK-4545] - Configurable maxBackOffMillis
[OAK-4553] - Retain journal entries for valid checkpoints
[OAK-4556] - Track branch on newBranchCommit()
[OAK-4561] - Avoid embedding Apache Commons Math in Segment Tar
[OAK-4563] - Specify thread pool name which should be used by
Async Indexing task
[OAK-4564] - Use Lucene index to look for long-named nodes in JCR2
upgrade
[OAK-4567] - Define oak:Resource nodetype as non referenceable
alternative to nt:resource
[OAK-4569] - Clean-up the oak-upgrade dependencies
[OAK-4573] - S3 fetching record leads to multiple calls and
background download
[OAK-4574] - [BlobGC] Remove adding of paths in file maintained
for blob references
[OAK-4577] - BlobGC performance improvements
[OAK-4578] - Clarify weight related methods/parameters/arguments
of the LIRS cache
[OAK-4580] - Update to Mongo Java Driver 3.2.x
[OAK-4585] - Text extraction: runtime status monitoring
[OAK-4586] - Collect affected node types on commit
[OAK-4587] - Don't ignore the cached NULLs in bulk createOrUpdate
for Mongo
[OAK-4594] - Remove DocumentNodeState.copyTo()
[OAK-4605] - Separate persistent cache for diff and local_diff
[OAK-4613] - Suggest directory should be opened in read only mode
[OAK-4616] - Record suggestor status in suggest-data node
[OAK-4622] - SessionDelegate.lock speedup
[OAK-4623] - Log more information when null DocumentNodeState is
read for a child while fetching children
[OAK-4624] - Optionally ignore missing blobs during sidegrade
[OAK-4627] - [BlobGC] Reduce logging during delete
[OAK-4630] - Create segment and segment tar directory only when
it's missing
[OAK-4636] - PropertyIndexLookup#getIndexNode should be more
tolerant towards property types
[OAK-4639] - Enable --missingblobstore by default for the
sidegrade
[OAK-4640] - Provide a way for commit hook to record meta data for
a given commit
[OAK-4641] - Using same index definition for both async and sync
indexing
[OAK-4642] - Provide a way to pass indexing related state to
IndexEditorProvider
[OAK-4661] - TokenLoginModule: improve log output
[OAK-4668] - Make async index more resilient on documentmk
[OAK-4674] - Log a message when asynchronous persistent cache is
enabled
[OAK-4677] - stop oak-core bundle only transiently on lease
failure
[OAK-4680] - Unify the usage of Commons Math 3 across the project
[OAK-4691] - Use utility backends from oak-segment-tar in oak-run
[OAK-4696] - Improve logging for SyncHandler
[OAK-4697] - Optimize read of old node state
[OAK-4703] - Update Jackrabbit version to 2.13.2
[OAK-4710] - AsyncIndexUpdate delay time should show clock time
left
[OAK-4713] - Builder class to simplify Lucene Index Definition
building
[OAK-4715] - Reduce DocumentStore reads for local changes
[OAK-4716] - Upgrade dependency to oak-segment-tar to version
0.0.10
[OAK-4723] - Optimize PathRev as/from String
[OAK-4724] - Prefetch external changes
[OAK-4725] - Enable mmap mode by default for migration to
SegmentNodeStore
[OAK-4733] - Reduce DocumentStore reads for local changes (2)
[OAK-4742] - Improve FileStoreStatsMBean
[OAK-4748] - Migration tool should check if the source and
destination repositories are different
[OAK-4749] - Include initial cost in stats for observation
processing
[OAK-4750] - Leaderboard in ConsolidatedListenerMBean
[OAK-4751] - Improve the checkpoint migration performance
[OAK-4757] - Adjust default timeout values for MongoDocumentStore
[OAK-4758] - Allow tweaking of node migration logs threshold
[OAK-4761] - Reduce the number of calls to
/jcr:system/jcr:versionStorage during the upgrade
[OAK-4762] - Rebuild indexes only for partial sidegrades
[OAK-4764] - Update httpclient to 4.3.6
[OAK-4767] - Provide a way to report additional stats as part of
benchmark run
[OAK-4768] - Provide an option to enable Metrics collection for
benchmark run
[OAK-4769] - Update Jackrabbit version to 2.13.3
[OAK-4771] - Clarify exceptions in DocumentStore
[OAK-4788] - Fulltext parser sorts and unique-s parsed terms
[OAK-4789] - SegmentBlob should return null contentIdentity for
inlined blobs
[OAK-4792] - Replace usage of AssertionError in ClusterNodeInfo
[OAK-4796] - filter events before adding to ChangeProcessor's
queue
[OAK-4799] - Unnecessary unboxing in ClusterNodeInfo
[OAK-4800] - Log info message when background operation is
successful again
[OAK-4805] - Misconfigured lucene index definition can render the
whole system unusable
[OAK-4806] - Remove usage of Tree in LuceneIndexEditor
[OAK-4808] - Index external changes as part of NRT indexing
[OAK-4809] - JMX Stats for NRT Indexing
[OAK-4815] - ReferenceIndex slowdown due to OAK-3403
[OAK-4816] - Property index: cost estimate with path restriction
is too optimistic
[OAK-4817] - QueryEngineSettings without MBean
[OAK-4819] - Improve revision GC resilience
[OAK-4825] - Support disabling of users instead of removal in
DefaultSyncHandler
[OAK-4826] - Auto removal of orphaned checkpoints
[OAK-4831] - Don't break the upgrade tests if the directory can't
be cleaned-up
[OAK-4834] - Make the role configurable for the SegmentNodeStore
[OAK-4835] - Provide generic option to interrupt online revision
cleanup
[OAK-4836] - Avoid excessive logging in case of corrupt index or
mis-configured index defnition
[OAK-4837] - Improved caching for DataStore
[OAK-4839] - Allow to register DocumentNodeStore as a
NodeStoreProvider
[OAK-4847] - Support any types of node builders in the
initializers
[OAK-4849] - Refactor the MigrationCliArguments from implicit to
explicit
[OAK-4854] - Simplify TarNodeStore
[OAK-4855] - Expose actual listener.toString in consolidated
listener mbean
[OAK-4858] - Use Integer.getInteger() to read system property
[OAK-4859] - Warn if lease update is invoked with large delay
[OAK-4863] - Reduce query batch size for deleted documents
[OAK-4867] - Avoid queries for first level previous documents
during GC
[OAK-4873] - Avoid running GC too frequently
[OAK-4874] - Improve the warning logged when traversal happens
within property index
[OAK-4881] - Make merge semaphore in SegmentNodeStore fair by
default
[OAK-4888] - Warn or fail queries above a configurable cost value
[OAK-4890] - Invalidate cache on missing previous document
[OAK-4892] - Speed up DocumentNodeStoreStatsCollectorIT
[OAK-4898] - Allow for external changes to have a CommitInfo
attached
[OAK-4899] - Include option to stop GC in RevisionGCMBean and
RepositoryManagementMBean
[OAK-4900] - Enable persistent caches by default
[OAK-4902] - Blob GC completion time should be logged in millis
[OAK-4903] - Async uploads in S3 causes issues in a cluster
[OAK-4904] - For unique indexes avoid consulting indexes other
than property index
[OAK-4910] - Update segment tar to 0.0.14
[OAK-4919] - Better feedback from method invocations on
RevisionGCMBean
[OAK-4930] - External Principal Management: DynamicSyncContext
makes redundant calls to IdentityProvider.getIdentity()
[OAK-4935] - support prefiltering of async index updates
[OAK-4939] - Isolate corrupted index and make async indexer more
resilient
[OAK-4940] - Consider collecting grand-parent changes in ChangeSet
[OAK-4950] - LIRS cache: improve hit rate
[OAK-4957] - SegmentRevisionGC MBean should report more detailed
gc status information
[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-4978] - Expose maintainence related MBeans for Segment
NodeStores created via factory
[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-5025] - Speed up ACE node name generation
[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-5060] - Make DocumentNodeStore.alignWithExternalRevisions
more chatty
[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-5074] - Configure Async Indexer via OSGi
[OAK-5076] - CopyOnWrite directory should clear working set of
files being written upon start
[OAK-5078] - Improper handling of relative paths in
OakFileDataStore#getAllIdentifiers
[OAK-5079] - Diff would not work for bundled nodes when done
without journal support
[OAK-5092] - Add support for weighing the cache entries in caches
[OAK-5097] - Allow passing custom service prop while registering
scheduled jobs
[OAK-5100] - Provide source store external references flag via
command line if available
[OAK-5101] - Enable prefiltering for external changes
[OAK-5105] - withIncludeAncestorsRemove should support **
[OAK-5106] - Reuse NioEventLoopGroup in standby client
[OAK-5110] - Use Metrics based stats collection in
AsyncIndexUpdate
[OAK-5111] - Change default size of the node deduplication cache
[OAK-5113] - Avoid dispatching changes for checkpoint related
changes
[OAK-5116] - GCJournal should persist size only when compaction is
successful
[OAK-5117] - Improve checkMemory for compaction
[OAK-5123] - Catch any exception in ChangeSetFilterImpl.excludes -
and warn.
[OAK-5127] - add 'enabled' flag to ChangeCollectorProvider
[OAK-5130] - Prevent FileStore wrapping the segment buffer twice
for the generation info
[OAK-5131] - IndexDefinitionBuilder to allow for useInSpellcheck
and useInSuggest
[OAK-5132] - Limit diff cache entries in size
[OAK-5140] - Collect stats around number of nodes traversed by
AsyncIndexer
[OAK-5142] - Make sure that metadata entries are eventually
removed
[OAK-5145] - Warn traversal queries: avoid repeated log entries
[OAK-5146] - S3 getOrCreateReferenceKey() should provide a default
implementation
[OAK-5149] - Set root revision for child nodes in
DocumentNodeStore.getChildNodes()
[OAK-5150] - Log stats for JournalDiffLoader
[OAK-5154] - Checkpoints should only be migrated if no custom
paths are defined
[OAK-5155] - Remove oak.documentMK.cacheConcurrency system
property
[OAK-5156] - Limit JournalDiffLoader to subtree
[OAK-5157] - Source repository should be opened in read-only mode
for sidegrade
[OAK-5158] - Online compaction progress monitor
[OAK-5160] - guarantee before of
FilteringAwareObserver.contentChanged to be Nonnull
[OAK-5161] - Improve logging of compaction cycles
[OAK-5162] - Increase default size of the observation queue from
1000 to 10000
[OAK-5163] - ReadWriteVersionManager#getExistingBaseVersion throws
an opaque exception if baseVersion doesn't exist
[OAK-5166] - Change default cache distribution
[OAK-5168] - GlobbingPathFilter recompiles wildcard patterns on
each change
[OAK-5169] - ChangeSetFilterImpl should support large exclude-path
sets
[OAK-5170] - Remove duplicate constants in
DocumentNodeStoreService
[OAK-5172] - TarMK Revision Diff should also print the deleted
nodes properties
[OAK-5181] - show correct path information for listeners with new
filters
[OAK-5182] - CugAccessControlManager.removePolicy should remove
the mixin
[OAK-5185] - Improved JMX descriptions for the query engine
[OAK-5186] - ChangeSetFilterImpl: support many includePaths by
filtering for 1st path name
[OAK-5188] - Add support for includePropertyTypes to
IndexDefinitionBuilder
[OAK-5189] - SegmentRevisionGC should expose unformatted
timestamps
[OAK-5190] - Expose the builder instance used by
IndexDefinitionBuilder
[OAK-5191] - Deprecate stubs and fixtures related to oak-segment
[OAK-5196] - IndexDefinitionBuilder should allow to disable
indexing some property definitions
[OAK-5206] - Avoid merge sort of changes in intermediate split
documents
[OAK-5207] - Reduce reads in NodeDocument.getVisibleChanges()
[OAK-5211] - OakDirectory should not save dir listing if no change
is done
[OAK-5212] - Avoid updating the index nodestate if no change is
done in index
[OAK-5216] - AsyncIndexUpdate: CONCURRENT_UPDATE should contain
relevant stacktrace
[OAK-5218] - Enable use of hybrid index before first async
indexing is done
[OAK-5219] - Reindexing for async indexes should only be done when
IndexUpdate is running in async mode
[OAK-5232] - Add option to datastorecheck command to add blob ids
to tracker offline
[OAK-5234] - IndexDefinitionBuilder should be able to work with
existing NodeBuilder
[OAK-5237] - Change default query limit configuration
[OAK-5247] - Allow setting property node name in
IndexDefinitionBuilder
[OAK-5255] - Flags in the oak-upgrade should allow to set boolean
parameter value
[OAK-5271] - IndexDefinitionBuilder should ignore safe change in
"async" for determining reindex flag value
[OAK-5273] - Reintroduce tests disabled or removed for OAK-5223
[OAK-5295] - Allow chaining of include in building aggregation
rule via IndexDefinitionBuilder
[OAK-5303] - Improve readability of SegmentNodeStoreService
[OAK-5317] - MongoBlobStore creates _id index unnecessarily
[OAK-5337] - LastRevRecoveryAgent should avoid recovering
documents from its own cluster id if the instance is running
[OAK-5366] - Optimize pre-filtering with long paths
[OAK-5406] - LuceneIndexEditor context should only log perf log if
index is updated
[OAK-5417] - Refactor registration of PropertyIndexAsyncReindex
[OAK-5421] - Add LuceneDoc directly to queue from
LuceneIndexEditor
[OAK-5425] - Log warning when revision GC is skipped
[OAK-5438] - FileStore and ReadOnlyFileStore might leak journal
file descriptors
[OAK-5443] - VersionGarbageCollector:measure time to sort docIds
separately
[OAK-5448] - Aggregate logic should optimize for case where
patterns do not include wildcard
[OAK-5452] - Fix typo in CheckpointMBean type value
[OAK-5456] - Reduce reads in NodeDocument.getVisibleChanges()
[OAK-5474] - Use random ports when running Cold Standby tests
[OAK-5490] - Add validation for LdapIdentityProvider config.
[OAK-5494] - Allow to disable mounting path fragments in the
MultiplexingNodeStore
[OAK-5518] - Skip tests from oak-tarmk-standby when running on
Jenkins
[OAK-5524] - Remove deprecated constants from SegmentVersion
New Feature
[OAK-1312] - Bundle nodes into a document
[OAK-1710] - Extend authentication with intelligent
loginid->userid mapping
[OAK-3574] - Query engine: support p=lowercase('x') and other
function-based indexes
[OAK-4003] - Add support for Group-Membership actions
[OAK-4101] - Consider separate external (group) principal
management
[OAK-4129] - Use CredentialsSupport in TokenConfigurationImpl and
TokenProviderImpl
[OAK-4144] - Expose PropertyIndex stats
[OAK-4180] - Use another NodeStore as a local cache for a remote
Document store
[OAK-4265] - XPath: support limited form of "union"
[OAK-4412] - Lucene hybrid index
[OAK-4476] - Option to check datastore consistency in oak-run
[OAK-4521] - Oak-run: add profiling and analysis tools
[OAK-4522] - Improve CommitRateLimiter to optionally block some
commits
[OAK-4566] - Multiplexing store support in Lucene Indexes
[OAK-4626] - Use oak-upgrade to initialize the DocumentMK local
cache nodestore
[OAK-4654] - Allow to mount the secondary node store as a
read-only subtree
[OAK-4655] - Enable configuring multiple segment nodestore
instances in same setup
[OAK-4681] - Automatically convert *all* "or" queries to "union"
for SQL-2
[OAK-4712] - Publish S3DataStore stats in JMX MBean
[OAK-4850] - List checkpoints
[OAK-4871] - Multiplexing NodeStore
[OAK-4922] - Implement number of facets retrieved in query
configurable for LucenePropertyIndex
[OAK-4983] - Add --verify mode to the RepositorySidegrade
[OAK-5236] - LuceneIndexMBean: JMX method to get fields data
[OAK-5324] - Enable property index reindexing via oak-run
Task
[OAK-2403] - Improve monitoring capabilities for TarMk revision gc
[OAK-3211] - Document External Identity Management
[OAK-4073] - Release Oak 1.4.0
[OAK-4076] - Benchmark to measure affect of number of indexes on
uuid lookup performance
[OAK-4084] - Add 1.4 branch in Jenkins matrix
[OAK-4100] - ClusterNodeInfo lease renewal: add logging
[OAK-4115] - Release Oak 1.5.0
[OAK-4118] - Benchmarks for Membership Operations
[OAK-4132] - JaasConfigSpiTest fails intermittently with missing
LoginModule exception
[OAK-4140] - Release Oak 1.4.1
[OAK-4143] - Release oak 1.2.13
[OAK-4178] - Release Oak 1.5.1
[OAK-4192] - continously testing JR SNAPSHOT on oak trunk
[OAK-4244] - Create new module oak-segment-next
[OAK-4245] - Decide on a final name for oak-segment-next
[OAK-4246] - Update segment tooling to choose target store
[OAK-4247] - Deprecate oak-segment
[OAK-4259] - Implement fixtures for running again oak-segment
and/or oak-segment-next
[OAK-4260] - Define and implement migration from oak-segment to
oak-segment-tar
[OAK-4272] - Release Oak 1.4.2
[OAK-4273] - Disable testConcurrentWithConflict on Derby
[OAK-4276] - Refactor / rework compaction strategies
[OAK-4278] - Fix backup and restore
[OAK-4279] - Rework offline compaction
[OAK-4282] - Make the number of retained gc generation
configurable
[OAK-4286] - Rework failing tests in CompactionAndCleanupIT
[OAK-4288] - TarReader.calculateForwardReferences only used by
oak-run graph tool
[OAK-4289] - Remove the gc generation from the segment meta data
[OAK-4290] - Update segment parser to work with the new segment
format
[OAK-4303] - Use the oak-segment-next in the oak-upgrade tests
[OAK-4308] - Align the UpgradeTest#upgradeFrom10 to
oak-segment-next
[OAK-4309] - Align property labels and descriptions in
SegmentNodeStoreService
[OAK-4312] - Fix test failures in SegmentDataStoreBlobGCIT
[OAK-4352] - Release Oak 1.5.2
[OAK-4355] - [oak-blob-cloud] Update to latest version of
aws-sdk-java
[OAK-4364] - Initial Benchmarks for oak-auth-external
[OAK-4399] - Benchmark results for dynamic membership
[OAK-4411] - DocumentNodeStore: Improve test coverage for
concurrent updates and queries
[OAK-4417] - Missing LoginModule Test and Documentation for
OAK-3508
[OAK-4427] - NodeDocument.fromString should also seal the returned
document
[OAK-4433] - Release Oak 1.5.3
[OAK-4442] - S3DataStoreService should initialize
SharedS3DataStore
[OAK-4452] - Consistently use the term segment-tar
[OAK-4469] - Implement unit tests for TarRevisions
[OAK-4470] - Remove read revision method from DocumentNodeState
[OAK-4484] - Release oak 1.5.4
[OAK-4541] - Update Oak to Jackrabbit 2.13.0
[OAK-4551] - Update Oak to Jackrabbit 2.13.1
[OAK-4592] - Make DocumentNodeState immutable
[OAK-4606] - Avoid persisting rootRevision in PathFilteringDiff
[OAK-4607] - Add support for multiple directory in IndexCopier
[OAK-4625] - Release Oak 1.5.7
[OAK-4670] - Release Oak 1.5.8
[OAK-4686] - DocumentNodeStoreTest#compareOnBranch fails for
update.limit=10000
[OAK-4720] - segment-tar should be used for the inplace JCR2
upgrade
[OAK-4753] - Add nrt as another index mode
[OAK-4755] - Change default log of test to info
[OAK-4774] - Check usage of DocumentStoreException in
MongoDocumentStore
[OAK-4781] - Release Oak 1.4.7
[OAK-4791] - Enable animal sniffer plugin
[OAK-4823] - Upgrade Oak Segment Tar dependency to 0.0.12
[OAK-4889] - Update Oak trunk to Jackrabbit 2.13.4
[OAK-4938] - clarify contract for UpdateOp with missing operation
on _id
[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-5036] - switch o.a.j.oak.jcr.observation.filter version to
1.0.0 before oak 1.6 release
[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
[OAK-5080] - Enable bundling by default
[OAK-5134] - temporarily allow prefiltering test mode to be
configured via an osgi config
[OAK-5136] - remove prefiltering testmode (feature/config) before
1.6
[OAK-5165] - Close AsyncIndexUpdate instance upon deactivate
[OAK-5171] - Get rid of test dependency to json.org JSON parser
[OAK-5198] - Javadoc and Documentation of ExternalGroupRef
[OAK-5199] - Test coverage for ExternalGroupRef
[OAK-5202] - Update Oak trunk to Jackrabbit 2.13.5
[OAK-5221] - Do not set :indexPath in index definition node
[OAK-5230] - AsyncIndexService should ensure that async lanes
should confirm to naming convention
[OAK-5248] - Use segment-tar in webapp example
[OAK-5256] - Add type property to LuceneIndexEditorProvider
[OAK-5257] - Pass CommitContext as part of CommitInfo in
OakInitializer
[OAK-5293] - Static code analysis and code cleanup
[OAK-5294] - Update Oak trunk to Jackrabbit 2.13.6
[OAK-5318] - Update Oak trunk to Jackrabbit 2.13.7
[OAK-5319] - Remove ReversedLinesFileReaderTestParamBlockSize
[OAK-5320] - Update Oak trunk to Jackrabbit 2.14.0
[OAK-5335] - Clarify the various directories and their usages in
SegmentNodeStoreService
[OAK-5351] - Disable RevisionGCMBean registration for non primary
SegmentNodeStore
[OAK-5422] - Increase the DocumentQueue size to 10000
[OAK-5432] - update html unit test dependency
[OAK-5445] - Log the path of LuceneDoc while adding it to queue
[OAK-5466] - Switch to oak-segment-tar in pojosr module
[OAK-5523] - LeaseUpdateRetryLoop: add test coverage
[OAK-5537] - Javadoc config fixes
Test
[OAK-4181] - Ignore GetInfoTest.testPropertyChanged() and
testPropertyRemoved()
[OAK-4186] - DocumentMemoryFixture does not dispose node store
[OAK-4187] - Add DOCUMENT_MEM to NodeStoreFixtures
[OAK-4188] - RepositoryStub on MemoryDocumentStore
[OAK-4191] - Speed up LargeLdapProviderTest
[OAK-4216] - Improve testing of DefaultSyncHandler
[OAK-4226] - Improve testing of DefaultSyncContext
[OAK-4248] - More tests for the exposed 'basic' package
[OAK-4264] - Improve testing of SyncMBeanImpl
[OAK-4386] - Verify that external login with dynamic membership
populates subject
[OAK-4489] - Improve test coverage on DocumentStore for concurrent
query and invalidate
[OAK-4802] - Basic cache consistency test on exception
[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
[OAK-5062] - Test failure in
DocumentNodeStoreConfigTest.testRDBDocumentStore_CustomBlobDataSource
[OAK-5063] - Failure in QueryTest.nodeType
[OAK-5115] - IndexCopier#cowCopyDoneOnCloseExceptionHandling test
hangs intermittently
[OAK-5217] - Test nodetype based query support in
LucenePropertyIndex
In addition to the above-mentioned changes, this release contains
all changes included up to the Apache Jackrabbit Oak 1.4.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/