| Release Notes -- Apache Jackrabbit Oak -- Version 0.11 |
| |
| 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.11 is to alpha-level software. Use at your own risk. |
| |
| Changes in Oak 0.11 |
| ------------------- |
| |
| New Features |
| |
| [OAK-335] Performance tests for microkernel - write tests |
| [OAK-619] Lock-free MongoMK implementation |
| [OAK-1121] Enhance observation mechanism to only listen to cluster local changes |
| |
| Improvements |
| |
| [OAK-51] Access Control Management |
| [OAK-66] JCR Node Type Management |
| [OAK-76] Initial content in oak-run |
| [OAK-91] Implement Authentication Support |
| [OAK-98] Source code formatting, code conventions, Javadocs |
| [OAK-366] MongoDB microkernal integration with OSGi |
| [OAK-392] Review ContentSession#createBlob |
| [OAK-414] Importing protected properties and nodes |
| [OAK-615] UserValidator should check for cyclic group membership |
| [OAK-630] SegmentMK: Implement compareAgainstBaseState |
| [OAK-657] Add oak:unstructured |
| [OAK-663] oak-jcr performance optimization |
| [OAK-741] Better toString() methods |
| [OAK-752] Remove deprecated code and code in "old" packages |
| [OAK-776] NodeState convenience accessors |
| [OAK-792] AccessControl Management: Document changes wrt. Jackrabbit |
| [OAK-801] Add Javadoc to JsonObject.create(JsopTokenizer) |
| [OAK-806] Content migration from Jackrabbit to Oak |
| [OAK-855] NodeState.equals is sometimes very slow |
| [OAK-874] Column names aren't reported properly for "select * from [nodeType]" queries |
| [OAK-900] Run Jackrabbit Observation tests |
| [OAK-910] Privilege Management: Document changes wrt Jackrabbit |
| [OAK-946] Improve support for debugging Oak |
| [OAK-949] UserQuery does not properly work for the optional everyone group |
| [OAK-954] Make Lucene analyzer configurable |
| [OAK-987] Implement the MicroKernel API |
| [OAK-993] Improve backward compatibility for Item.save and Item.refresh |
| [OAK-1018] Optimise Session.getNode |
| [OAK-1031] SegmentMK: Fewer segment lookups |
| [OAK-1032] SegmentMK: One SegmentWriter per SegmentNodeStore |
| [OAK-1036] SegmentMK: Auto-flushing SegmentNodeBuilder |
| [OAK-1037] Improve performance of XmlImport |
| [OAK-1048] Unify node type management in the query index impls |
| [OAK-1052] Introduce execution context for executing queries |
| [OAK-1058] Review TreeTypeProvider |
| [OAK-1060] Periodically poll for external events |
| [OAK-1078] Move node state based configuration to oak-solr-core |
| [OAK-1079] Create separate OSGi service classes for SolrQueryIndex/IndexEditor providers |
| [OAK-1084] Allow blacklisting of rogue observation listener |
| [OAK-1086] NodeTypes of successive calls to node.getPrimaryNodetypes() are not equal |
| [OAK-1088] Thread safe MongoDocumentStore |
| [OAK-1101] Improve concurrency of branch lookups |
| [OAK-1102] Isolate MicroKernel specific code in MongoMK |
| [OAK-1105] Osgi pluggability for the TokenProvider |
| [OAK-1110] Make NodeStateDiff composable |
| [OAK-1112] Support user data in local events |
| [OAK-1113] Immediate delivery of events from local commits |
| [OAK-1117] [MongoMk]Flag document with children |
| [OAK-1119] [MongoMK] Reduce number of calls made to Mongo DB when an Oak based application is restarted |
| [OAK-1123] Reusable NodeStoreBranch base implementation |
| [OAK-1126] Same node and property name support |
| [OAK-1127] MixinTest.testRemoveInheritedMixin() may fail depending on test order |
| [OAK-1131] Provide a way to inject Observer instances into NodeStore implementations |
| [OAK-1135] NPE in CompiledPermissionImpl.getTreePermission() |
| [OAK-1136] Revisit/Improve CompiledPermissionImpl.getTreePermission() |
| [OAK-1139] Avoid the duplicate property lookup during getProperty("name").getString() |
| [OAK-1142] Optimize node builders for the common case where there are no transient changes |
| [OAK-1144] Avoid wrapping TreePermission into SecurityContext |
| [OAK-1146] Remove equals/hashcode on SecureNodeState and TreePermissionImpl |
| [OAK-1147] SecureNodeBuilder/SecureNodeState: Consider using 'TreePermission#canReadProperties' |
| [OAK-1148] Incomplete Javadoc with NodeState#compareAgainstBaseState |
| [OAK-1149] Avoid exists check in NodeDelegate.getChild() with empty path |
| [OAK-1156] Improve the document cache invalidation logic to selectivly invalidate doc |
| [OAK-1162] Make Solr index asynchronous by default |
| [OAK-1169] Update Guava to version 15.0 |
| [OAK-1188] Input streams returned from Blob instances should implement available() |
| |
| Bug |
| |
| [OAK-127] JCR: Support for XML imports |
| [OAK-223] Missing path convertion in oak-jcr |
| [OAK-244] ExportDocViewTest test failing |
| [OAK-373] OOME running TCK |
| [OAK-436] apache.jackrabbit.mk.store.NotFoundException |
| [OAK-504] DefaultRevisionStore: Exception occurred in GC cycle: NotFoundException |
| [OAK-567] DiffBuilder performance problem |
| [OAK-587] DefaultRevisionStoreTest.testConcurrentGC fails every now and then. |
| [OAK-724] Text.getRelativeParent() does not work with paths containing fully qualified names |
| [OAK-745] Hardcoded OpenSecurityProvider in RootImpl constructor |
| [OAK-901] Test root node type is not reported correctly |
| [OAK-948] Compatibility - Oak not generates property change event for touched properties |
| [OAK-970] DocumentViewImportTest fails with SegmentMK |
| [OAK-1055] Occasional test failure in ObservationTest.observation() |
| [OAK-1083] Query with descendent node and access control fails to return result |
| [OAK-1085] Compatibility for queries with not(child/@prop) conditions |
| [OAK-1087] TCK tests fail with SegmentMK and MongoStore |
| [OAK-1089] Too many document splits |
| [OAK-1090] Event-listener not notified on Node.orderBefore |
| [OAK-1091] TokenLoginModule#commit should throw an exception if TokenInfo is not created |
| [OAK-1093] IllegalArgumentException on Row.getValues() |
| [OAK-1095] versionable path property has wrong type |
| [OAK-1096] QueryManager does not have autorefresh |
| [OAK-1097] VersionablePathHook ignores "modified" version histories |
| [OAK-1098] AuthorizableImpl methods should convert path to Oak path |
| [OAK-1104] SegmentNodeStore rebase operation assumes wrong child node order |
| [OAK-1106] Query engine does not deal with remapped namespaces |
| [OAK-1107] MongoMK may not detect changes with diffManyChildren() |
| [OAK-1109] SegmentMK: failed to load segment |
| [OAK-1111] Node#setProperty(String, Calendar) doesn't take time zone in account |
| [OAK-1122] Empty branch commit returns head revision on trunk |
| [OAK-1125] FileStore should inherit cache size setting |
| [OAK-1128] Conditions of the form "(x=1 or x=2) or y=3" are not processed correctly |
| [OAK-1129] Repeated MongoMK.rebase() always adds new revision |
| [OAK-1132] QueryEngine #executeQuery creates a new revision on each call |
| [OAK-1140] SecureNodeBuilder should use the base state for the security context |
| [OAK-1141] SecureNodeBuilder.getChildNode() should not optimize for SecurityContext.canReadAll() |
| [OAK-1143] [scala] Repository init throws "illegal cyclic reference involving class ChangeDispatcher" |
| [OAK-1154] MongoMK throws exception when there are many listeners |
| [OAK-1164] Duplicate binaries |
| [OAK-1165] Too frequent document splits |
| [OAK-1167] Background read may cause IllegalArgumentException |
| [OAK-1170] Inconsistent reads with concurrent benchmark tests |
| [OAK-1171] Query fails unexpectedly when property conversion is not possible |
| [OAK-1172] AbstractTree.getChildrenCount() not very performant due to INTERNAL_NODE_NAMES |
| [OAK-1173] NPE if checking for a non-existing node in version storage |
| [OAK-1177] Node#isModified returns true if node has non-readable child |
| [OAK-1178] MutableTree#isNew: replace implementation by NodeBuilder#isNew |
| [OAK-1192] NPE in Versioning when a Node has a hidden child node |
| [OAK-1194] Missing properties in Node.getReferences() |
| [OAK-1196] Node.getReferences() should not show references in version storage |
| |
| In addition to the above-mentioned changes, this release contains |
| all the changes included up to the Apache Jackrabbit Oak 0.10 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/ |