| Release Notes -- Apache Jackrabbit Oak -- Version 1.9.0 |
| |
| Introduction |
| ------------ |
| |
| Jackrabbit Oak is a scalable, high-performance hierarchical content |
| repository designed for use as the foundation of modern world-class |
| web sites and other demanding content applications. |
| |
| Apache Jackrabbit Oak 1.9.0 is an unstable release cut directly from |
| Jackrabbit Oak trunk, with a focus on new features and other |
| improvements. For production use we recommend the latest stable 1.8.x |
| release. |
| |
| The Oak effort is a part of the Apache Jackrabbit project. |
| Apache Jackrabbit is a project of the Apache Software Foundation. |
| |
| Changes in Oak 1.9.0 |
| --------------------- |
| |
| Sub-task |
| |
| [OAK-7177] - Utility method to detect local change |
| [OAK-7179] - Derive CountingTieredDiffCache from MemoryDiffCache |
| [OAK-7225] - Replace AtomicCounter Supplier |
| [OAK-7344] - Additional benchmark(s) to cover areas of |
| improvements |
| [OAK-7345] - Benchmark Results for Oak 1.8 (status quo) |
| [OAK-7346] - Benchmark Results for Initial Patch |
| |
| Technical task |
| |
| [OAK-6812] - UpdateOp Condition: be consistent about the support |
| for non-revision properties |
| [OAK-7060] - RDBDocumentStore.getStats() for SQLServer |
| [OAK-7137] - Upgrade to scr bnd plugin that places the metatype |
| files in the correct location |
| [OAK-7138] - Move metatype files in source control to correct |
| location |
| [OAK-7141] - Remove unused metatype.properties |
| [OAK-7142] - RDBDocumentStoreDB: use try-with-resources in new |
| code introduced for getStats() |
| [OAK-7149] - RDBDocumentStore.getStats() for Derby |
| [OAK-7159] - RDBDocumentStore: use try-with-resources for nodes |
| cache locks |
| [OAK-7181] - RDBDocumentStore: use try-with-resources for |
| ChangesTracker |
| [OAK-7184] - LengthCachingDataStoreTest: Remove unused import of |
| Guava InputSupplier |
| [OAK-7185] - Upgrade jclouds dependency to 2.0.3 |
| [OAK-7186] - avoid use of guava Iterators.emptyIterator() |
| [OAK-7188] - guava: ListenableFuture.transform() changes to |
| transformAsync in version 20 |
| [OAK-7201] - make Guava version configurable at build time |
| [OAK-7204] - RDB*Store: update postgresql JDBC driver reference to |
| 42.2.0 |
| [OAK-7269] - DocumentStore: add test coverage for various types of |
| IDs |
| [OAK-7270] - RDBDocumentStore: guard against invalid strings in |
| IDs |
| [OAK-7289] - RDBDocumentStore: potential NPE in error handling |
| code |
| [OAK-7292] - RDB*Store: update tomcat jdbc dependency to 8.5.28 |
| [OAK-7299] - RDB*Store: update postgresql JDBC driver reference to |
| 42.2.1 |
| [OAK-7305] - Introduce DocumentStoreException type |
| [OAK-7306] - MongoDocumentStore: use transient |
| DocumentStoreException type where appropriate |
| [OAK-7307] - RDBDocumentStore: use transient |
| DocumentStoreException type where appropriate |
| [OAK-7308] - Retry commit on transient DocumentStoreException |
| [OAK-7313] - RDB*Store: add DEBUG level logging for filters in |
| RDBVersionGCSupport |
| [OAK-7329] - RDB*Store for SQLServer: name the PK index for better |
| readability |
| [OAK-7330] - RDBDocumentStore: make indices on SD* sparse where |
| possible |
| [OAK-7331] - RDBDocumentStore: add index on _MODIFIED to improve |
| VersionGC performance |
| [OAK-7333] - RDBDocumentStore: refactor index report |
| [OAK-7342] - RDBDocumentStore: missing rollback after delete |
| failures |
| [OAK-7359] - Update to MongoDB Java driver 3.6 |
| [OAK-7360] - Migrate to the MongoDB Java driver API 3.0 |
| [OAK-7399] - add build profile "guava-latest" to build with latest |
| supported Guava version |
| [OAK-7406] - relax guava version range in Import-Package |
| declarations |
| [OAK-7430] - RDB*Store: update postgresql JDBC driver reference to |
| 42.2.2 |
| |
| Bug |
| |
| [OAK-4401] - Excerpt Highlighting for a property is not correct |
| [OAK-6707] - TarWriter.close() must not throw an exception on |
| subsequent invocations |
| [OAK-6891] - Executions of background threads might pile up |
| [OAK-6956] - RepositoryUpgrade hardcodes SecurityProvider |
| [OAK-7058] - oak-run compact reports success even when it was |
| cancelled |
| [OAK-7131] - xpath to sql2 conversion drops order by clause for |
| some cases |
| [OAK-7132] - SNFE after full compaction |
| [OAK-7136] - Stop storing metatype.properties files under |
| OSGI-INF/metatype |
| [OAK-7147] - Oak run LuceneIndexer indexes excluded parent nodes |
| [OAK-7155] - Executor in S3DataStoreFactory is not shut down |
| [OAK-7162] - Race condition on revisions head between compaction |
| and scheduler could result in skipped commit |
| [OAK-7168] - The debug command returns a zero exit code on error |
| [OAK-7169] - The datastorecheck returns a zero exit code on error |
| [OAK-7171] - The history command returns a zero exit code on error |
| [OAK-7174] - The check command returns a zero exit code on error |
| [OAK-7176] - RevisionVector from empty string throws |
| StringIndexOutOfBoundsException |
| [OAK-7178] - RemoteSolrServerProvider should release connections |
| on ping failures |
| [OAK-7198] - Index rule with REGEX_ALL_PROPS includes relative |
| node |
| [OAK-7200] - Sync propery indexes don't get planned if /:async |
| exists but indexing lane hasn't completed its first cycle |
| [OAK-7208] - Various disallowed control characters are accepted in |
| item names |
| [OAK-7209] - Race condition can resurrect blobs during blob GC |
| [OAK-7223] - Files could be kept partially in case of |
| disconnection from backends |
| [OAK-7227] - MountPermissionProvider getNumEntries prone to |
| overflow |
| [OAK-7236] - The diff command returns a zero exit code on error |
| [OAK-7237] - The backup and restore comands return a zero exit |
| code on error |
| [OAK-7241] - oak-run documentation typo for "checkpoints" command |
| [OAK-7244] - RDBDocumentStore: fix typo in metadata |
| [OAK-7252] - Function index for name() and localname() don't allow |
| sorting |
| [OAK-7265] - Standalone example application fails to start |
| [OAK-7266] - Standalone example system console fails to render |
| [OAK-7274] - Test failure: various upgrade tests |
| [OAK-7284] - Reindexing using --doc-traversal-mode can hit |
| ConcurrentModificationException during aggregation |
| [OAK-7285] - Reindexing using --doc-traversal-mode can OOM while |
| aggregation in some cases |
| [OAK-7291] - MongoStatusTest.testReadConcern fails on MongoDB 3.6 |
| [OAK-7294] - FlatFileBufferLinkedList#add doesn't throw |
| IllegalArgumentException on null |
| [OAK-7309] - MongoDocumentStoreMetricsTest fails sporadically |
| [OAK-7317] - SegmentParser#parseBlob does not long ids of external |
| blobs |
| [OAK-7337] - CommitsTracker data is always empty when exposed via |
| JMX |
| [OAK-7339] - Fix all sidegrades breaking with |
| UnsupportedOperationException on MissingBlobStore by introducing |
| LoopbackBlobStore |
| [OAK-7341] - PermissionStoreEditor fails to reconnect collision |
| entries if main entry is removed |
| [OAK-7354] - Test failure |
| ExternalIdentityImporterTest.importExternalUserWithPrincipalNames |
| [OAK-7356] - CugConfiguration may not pick up CugExclude |
| [OAK-7357] - NPE on activation of LuceneIndexProviderService with |
| disabled CoR and CoR |
| [OAK-7375] - Wrong full text parsing in Oak Solr index with |
| boolean operators |
| [OAK-7378] - Continuous Revision GC counts _deletedOnce with every |
| run |
| [OAK-7389] - Mongo/FileBlobStore does not update timestamp for |
| already existing blobs |
| [OAK-7393] - A single StatisticsProvider is shared between all |
| SegmentNodeStoreFactory instances |
| [OAK-7394] - ConsolidatedCacheStats broken on the Composite Node |
| Store |
| [OAK-7396] - ReadOnlyFileStore.readSegment does not correctly |
| throw SegmentNotFoundException |
| [OAK-7398] - SegmentArchiveManager#listArchives should only return |
| tar files |
| [OAK-7401] - Changes kept in memory when update limit is hit in |
| commit hook |
| [OAK-7404] - ReadOnlyFileStore doesn't use custom persistence |
| [OAK-7408] - LuceneIndexProviderService uses default tracker |
| constructor with disabled CoR |
| |
| New Feature |
| |
| [OAK-6921] - Support pluggable segment storage |
| [OAK-6922] - Azure support for the segment-tar |
| |
| Improvement |
| |
| [OAK-2907] - Move DocumentMK to test |
| [OAK-4857] - Support space chars common in CJK inside item names |
| [OAK-6031] - Add TarFiles to the architecture diagram |
| [OAK-6373] - oak-run check should also check checkpoints |
| [OAK-7057] - Segment.toString: Record table should include an |
| index into the hexdump |
| [OAK-7134] - DocumentNodeStore.newMergeCommit() base parameter is |
| always non-null |
| [OAK-7139] - Wrap MongoException when query fails |
| [OAK-7140] - Retry query on MongoException |
| [OAK-7153] - Avoid persistent cache read access when key is not |
| cached |
| [OAK-7157] - Minimize the amount of generations retained by the |
| Cold Standby |
| [OAK-7158] - Users shouldn't be able to change the number of |
| retained generations |
| [OAK-7175] - Reduce cache misses on local diff-cache |
| [OAK-7195] - Node.getMixinNodeTypes() may check for child node |
| named jcr:mixinTypes |
| [OAK-7196] - ValidNamesTest improvements |
| [OAK-7213] - Avoid call for child node when bundle contains all |
| children |
| [OAK-7215] - Add configurable repository size cap to |
| SegmentOverflowExceptionIT |
| [OAK-7222] - Log a warn when CoW opens input from remote due to |
| size mismatch |
| [OAK-7231] - Remove PermissionEntryCache.getNumEntries |
| [OAK-7232] - MountPermissionProvider.load can return null |
| [OAK-7235] - Remove unused code from SegmentTarUtils |
| [OAK-7248] - Remove deprecated deep option from check command |
| [OAK-7251] - BinaryTextExtractor should not ignore parse exception |
| - they should at least be logged at DEBUG in all cases |
| [OAK-7253] - Benchmarks: cleanup duplications in AC setup |
| [OAK-7259] - Improve SegmentNodeStoreStats to include number of |
| commits per thread and threads currently waiting on the semaphore |
| [OAK-7262] - LockBasedScheduler#getHeadNodeState poor performance |
| due to lock contention in commitTimeHistogram implementation |
| [OAK-7280] - Remove superfluous methods from SegmentWriter |
| [OAK-7290] - Reindexing using --doc-traversal-mode should have |
| configurable upper bound for mem usage |
| [OAK-7298] - Remove debug logging to the console during tests |
| [OAK-7310] - Empty package-info.java causes unnecessary rebuild |
| [OAK-7326] - Add a way to disable the SegmentCache |
| [OAK-7340] - Remove SecurityProviderImpl usage from tests |
| [OAK-7384] - SegmentNodeStoreStats should expose stats for |
| previous minute per thread group |
| [OAK-7388] - MergingNodeStateDiff may recreate nodes that were |
| previously removed to resolve conflicts |
| [OAK-7403] - AzureSegmentArchiveReader should get the metadata |
| from listBlobs() operation |
| [OAK-7416] - Contribute a 'proc' subtree for the Segment Node |
| Store |
| [OAK-7418] - SecurityProviderBuilder ignores configuration option |
| authorizationCompositionType |
| [OAK-7420] - Introduce SegmentNodeStoreMonitorService for exposing |
| writerGroups as an OSGi config property |
| [OAK-7424] - SecurityProviderBuilder expects |
| CompositeConfiguration |
| |
| Test |
| |
| [OAK-7107] - Ability to run AbstractJCRTest derived tests with |
| different fixtures |
| [OAK-7133] - DocumentNodeStore resilience test on MongoDB |
| [OAK-7145] - Share initialized NodeStore for read-only repository |
| tests |
| [OAK-7238] - Benchmark : random read for different sets of |
| principals |
| |
| Task |
| |
| [OAK-5922] - Utils.abortingIterable should implement Closeable |
| [OAK-7024] - java.security.acl deprecated in Java 10, marked for |
| removal in Java 12 |
| [OAK-7075] - Document oak-run compact arguments and system |
| properties |
| [OAK-7126] - make RDBCacheConsistency2Test store-agnostic |
| [OAK-7128] - Update Oak trunk to Jackrabbit 2.17.0 |
| [OAK-7130] - Update README.md with Java 8 requirement |
| [OAK-7143] - Run oak-jcr tests and ITs in parallel on travis-ci |
| [OAK-7156] - CacheChangesTracker should implement Closeable |
| [OAK-7160] - Update commons-codec dependency to 1.11 |
| [OAK-7161] - LengthCachingDataStore's use of LineIterator.close() |
| [OAK-7163] - Upgrade commons-io dependency to 2.6 |
| [OAK-7165] - Update baseline comparison version to latest stable |
| 1.8.0 |
| [OAK-7172] - Document TarMK specific MBeans |
| [OAK-7173] - Update documentation for oak-run check |
| [OAK-7183] - Update Oak trunk to Jackrabbit 2.17.1 |
| [OAK-7189] - Improve code coverage for InitialContentMigrator |
| [OAK-7216] - Remove support for binaries and documents in |
| persistent cache |
| [OAK-7219] - Update Logback version to >= 1.2.0, SLF4J accordingly |
| [OAK-7220] - add benchmark focused on string write performance |
| [OAK-7249] - segment store: create charset encoding utility that |
| detects malformed input |
| [OAK-7255] - Upgrade jackson dependencies to version 2.9.4 |
| [OAK-7257] - oak-examples: update Tomcat dependency |
| [OAK-7268] - document store: create charset encoding utility that |
| detects malformed input |
| [OAK-7272] - improve BackgroundLeaseUpdate warning messages |
| [OAK-7273] - ValidNamesTest for unpaired surrogates and NUL fails |
| for PostgreSQL |
| [OAK-7275] - Update easymock test dependency to 3.4 |
| [OAK-7282] - RDB: enable default continuous revision GC |
| [OAK-7295] - Print path of files with unapproved licences |
| [OAK-7297] - New fixture for the Azure Segment Store |
| [OAK-7304] - Deploy oak-pojosr as part of standard deployment |
| [OAK-7314] - RDB*Store: use SDMAXREV column in RevisionGC query |
| [OAK-7315] - Remove redundant JavaDoc link to Java 7 API |
| [OAK-7320] - Upgrade surefire and failsafe plugins to 2.21.0 |
| [OAK-7322] - Mention SHA512 checksums in release notes |
| [OAK-7324] - RDBDocumentStore: Refactor exception handling |
| [OAK-7325] - restore line wrapping in release notes |
| [OAK-7332] - Benchmarks failure on Oak-Segment-* fixtures due to |
| concurrentlinkedhashmap version conflict |
| [OAK-7335] - oak-upgrade long name filter should consider the path |
| length |
| [OAK-7336] - stop advertising MD5 checksums |
| [OAK-7338] - Javadocs for the |
| org.apache.jackrabbit.oak.segment.spi |
| [OAK-7347] - Incorrect link to KEYS in release notes |
| [OAK-7350] - stop creating MD5 checksums for releases |
| [OAK-7355] - Move the pluggable storage interfaces to the SPI |
| package |
| [OAK-7364] - code coverage checks fail on Java 10 |
| [OAK-7366] - update to mockito version compatible with jdk 10 |
| [OAK-7387] - Update Oak trunk to Jackrabbit 2.17.2 |
| [OAK-7407] - oak-solr-core test failures with java 10 |
| [OAK-7421] - link Guava javadoc |
| [OAK-7422] - Update jackson dependencies to 2.9.5 |
| [OAK-7426] - RDB*Store: update Tomcat JDBC pool dependency to |
| 8.5.30 |
| |
| Documentation |
| |
| [OAK-5089] - Document illegal item names in Oak |
| [OAK-6964] - Document tail compaction |
| [OAK-7112] - Update documentation for cold standby |
| [OAK-7148] - Document excerpt support (specially excerpts for |
| properties) |
| [OAK-7242] - OAK API overview documentation links NodeState from |
| spi |
| |
| In addition to the above-mentioned changes, this release contains |
| all changes included up to the Apache Jackrabbit Oak 1.7.x release. |
| |
| For more detailed information about all the changes in this and other |
| Oak releases, please see the Oak issue tracker at |
| |
| https://issues.apache.org/jira/browse/OAK |
| |
| Release Contents |
| ---------------- |
| |
| This release consists of a single source archive packaged as a zip |
| file. |
| The archive can be unpacked with the jar tool from your JDK |
| installation. |
| See the README.md file for instructions on how to build this release. |
| |
| The source archive is accompanied by SHA1 and MD5 checksums and a PGP |
| signature that you can use to verify the authenticity of your |
| download. |
| The public key used for the PGP signature can be found at |
| http://www.apache.org/dist/jackrabbit/KEYS. |
| |
| About Apache Jackrabbit Oak |
| --------------------------- |
| |
| Jackrabbit Oak is a scalable, high-performance hierarchical content |
| repository designed for use as the foundation of modern world-class |
| web sites and other demanding content applications. |
| |
| The Oak effort is a part of the Apache Jackrabbit project. |
| Apache Jackrabbit is a project of the Apache Software Foundation. |
| |
| For more information, visit http://jackrabbit.apache.org/oak |
| |
| About The Apache Software Foundation |
| ------------------------------------ |
| |
| Established in 1999, The Apache Software Foundation provides |
| organizational, |
| legal, and financial support for more than 140 freely-available, |
| collaboratively-developed Open Source projects. The pragmatic Apache |
| License |
| enables individual and commercial users to easily deploy Apache |
| software; |
| the Foundation's intellectual property framework limits the legal |
| exposure |
| of its 3,800+ contributors. |
| |
| For more information, visit http://www.apache.org/ |