Release Notes -- Apache Jackrabbit Oak -- Version 0.20.0 Introduction ------------ Jackrabbit Oak is an effort to implement a scalable and performant hierarchical content repository 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. Jackrabbit Oak 0.20.0 is to alpha-level software. Use at your own risk. Changes in Oak 0.20.0 --------------------- New Features [OAK-319] Similar (rep:similar) support [OAK-382] JMX service to configure auto-cancel or long running queries [OAK-593] Segment-based MK [OAK-631] SegmentMK: Implement garbage collection [OAK-904] Query: support "union" and "union all" [OAK-1341] DocumentNodeStore: Implement revision garbage collection [OAK-1543] Document the configuration steps for DataStore and BlobStores [OAK-1574] AbstractRebaseDiff: Implement refined conflict resolution for addExistingNode conflicts [OAK-1577] H2MK: Implement refined conflict resolution for addExistingNode conflicts [OAK-1636] Solr index: support "jcr:score" Improvements [OAK-262] Query: support pseudo properties like jcr:score() and rep:excerpt() [OAK-1056] Transient changes contributed by commit hooks are kept in memory [OAK-1295] Recovery for missing _lastRev updates [OAK-1329] Relaxed JCR locking behavior [OAK-1342] Cascading document history [OAK-1456] Non-blocking reindexing [OAK-1489] ValueImpl should implement JackrabbitValue [OAK-1496] Benchmark for concurrent file writes. [OAK-1559] Expose BlobGCMBean for supported NodeStores [OAK-1560] Expose RevisionGCMBean for supported NodeStores [OAK-1567] Return Iterator instead of returning List in DocumentStore.query [OAK-1568] Provide flag to not cache documents from queries [OAK-1573] Document External Login and LDAP specifically [OAK-1578] Configurable size of capped collection used by MongoDiffCache [OAK-1592] Performance of Session#hasPermission [OAK-1593] Guard against NPE in ConfigurationParameters.of(ConfigurationParameters...) [OAK-1601] Log warning on concurrent session access [OAK-1603] Operations tasks api improvements [OAK-1606] Omit warnings about accessing commit related info when external events are excluded [OAK-1607] EmbeddedSolrServerConfigurationProvider should not expose HTTP configuration [OAK-1608] Let oak-solr-osgi start also in containers different than Jetty [OAK-1612] Limit number of wildcards in rep:glob [OAK-1616] Password utility: prevent timing attacks [OAK-1627] Use non-orderable child nodes in ObservationRefreshTest [OAK-1637] SolrIndexInitializer should be more configurable [OAK-1638] Add QueryJcrTest suite coverage to Solr indexer [OAK-1640] When modifying node types, revalidate only affected content [OAK-1643] Implement BlobReferenceIterator optimized for Mongo [OAK-1646] MarkSweepGarbageCollector - Improvements in exception handling and initialization [OAK-1647] AsyncIndexUpdateTask creating too many checkpoint [OAK-1651] Fix oak-solr-core pom dependencies [OAK-1656] Provide lazy iterator for FileDataStore.getAllIdentifiers [OAK-1657] Don't expand FT conditions if FT constraints are available [OAK-1659] Improve CommitRateLimiter to delay commits [OAK-1660] SegmentMK: Optimize reading of large binaries [OAK-1661] JCR Event Info should contain NodeType for Events Type Node-Deleted [OAK-1671] Use request handlers instead of search components in Solr native support Bugs [OAK-204] short cutting the name mapping breaks path validation in value factory [OAK-828] Full-text support for index aggregates [OAK-1168] Invalid JCR paths not caught [OAK-1174] Inconsistent handling of invalid names/paths [OAK-1344] HierarchicalInvalidator hits query size limit [OAK-1415] OOME when moving large subtree [OAK-1465] performance degradation with growing index size on Oak-Mongo [OAK-1541] Concurrent creation of users chokes on intermediate paths [OAK-1554] Clarify behaviour for BlobStore api for invalid arguments [OAK-1564] ClockTest on Windows fails [OAK-1566] ArrayIndexOutOfBoundsException in Segment.getRefId() [OAK-1569] ClusterPermissionsTest occasionally fails on Windows [OAK-1579] ConcurrentAddNodesClusterIT.addNodes2() fails on travis [OAK-1580] DBCursor close missing [OAK-1581] NPE in OsgiWhiteboard#track() [OAK-1582] ClassCastException in MarkSweepGarbageCollector#init() [OAK-1583] Adjust release check script to remove all hidden files from the source comparison [OAK-1584] Performance regression of adding and removing child nodes after OAK-850 [OAK-1585] rollback logic issues incorrect Updates [OAK-1586] Implement checkpoint support in DocumentNodeStore [OAK-1587] NoSuchElementException in SegmentTracker.getSegment() [OAK-1594] Build fails on Java 8 [OAK-1595] Permissions#getPermissions(String, TreeLocation, boolean) does not work for permissions names [OAK-1596] Provide mechanism for pre authenticated shared credentials [OAK-1597] QueryStat MBean does not log any query [OAK-1602] 512 byte shard key limit in MongoMK [OAK-1604] Support for signed references in Blob [OAK-1605] Running into endless loop due to tika 1.4 [OAK-1613] Node aggregation over multiple levels does't work [OAK-1614] Oak Analyzer can't tokenize chinese phrases [OAK-1615] Incomplete escaping in XPathConditionVisitor [OAK-1620] Index cost calculation integer overflow [OAK-1621] NPE on concurrent session usage [OAK-1622] Duplicate configuration services (regression of OAK-1476) [OAK-1623] TokenConfiguration expects nested configuration options [OAK-1624] Item names with trailing spaces should not be allowed [OAK-1625] SegmentTracker: Blob references not added [OAK-1630] Solr parse exceptions for and/or full text expressions [OAK-1632] Solr parse exception for primary type restriction [OAK-1634] After crash, segment persistence is broken with failures in java.nio classes (with v0.19) [OAK-1635] SolrIndexEditor should better escape path when deleting [OAK-1644] Has Binary flag should also be copied to split documents [OAK-1652] Incorrect name mapping in NodeObserver [OAK-1654] Composite index aggregates [OAK-1655] DataStoreBlobStore does not take into maxLastModifiedTime when fetching all chunks [OAK-1662] Node not accessible after document split [OAK-1663] Long running RevisionTest [OAK-1664] org.apache.jackrabbit.oak.namepath package missing package-info file [OAK-1668] Lucene should not serve queries for what it doesn't index [OAK-1670] ConnectedHead.update() passes current state on to Unconnected instead of base state [OAK-1672] TarFileTest#testWriteAndRead failure [OAK-1675] The OrderedPropertyIndex track WARN and INFO too often In addition to the above-mentioned changes, this release contains all the changes included up to the Apache Jackrabbit Oak 0.19 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 https://svn.apache.org/repos/asf/jackrabbit/dist/KEYS. About Apache Jackrabbit Oak --------------------------- Oak is an effort implement a scalable and performant hierarchical content repository 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 100 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 2,500+ contributors. For more information, visit http://www.apache.org/