jackrabbit-announce mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Parvulescu <alexparvule...@apache.org>
Subject [ANNOUNCE] Apache Jackrabbit Oak 0.5 released
Date Mon, 01 Oct 2012 21:11:53 GMT
The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit Oak 0.5. The release is available for download at:


See the full release notes below for details about this release.

Release Notes -- Apache Jackrabbit Oak -- Version 0.5


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.5 is to be considered alpha-level software. Use at your
own risk
with no stability or compatibility guarantees.

Changes in Oak 0.5


[OAK-239] - MicroKernel.getRevisionHistory: maxEntries behavior should be
[OAK-255] - Implement Node#getReferences() both for REFERENCE and
[OAK-258] - Dummy implementation for session scoped locks
[OAK-263] - Type of bindings should be covariant in
[OAK-264] - MicroKernel.diff for depth limited, unspecified changes
[OAK-274] - Split NodeFilter into its own class
[OAK-275] - Introduce TreeLocation interface
[OAK-282] - Use random port in oak-run tests
[OAK-284] - Reduce memory usage of KernelNodeState
[OAK-285] - Split CommitEditor into CommitEditor and Validator interfaces
[OAK-289] - Remove TreeImpl.Children
[OAK-290] - Move Query related interfaces in oak.spi.query
[OAK-292] - Use Guava preconditions instead of asserts to enforce contract
[OAK-315] - Separate built-in node types from ReadWriteNodeTypeManager

Bug fixes

[OAK-136] - NodeDelegate leakage from NodeImpl
[OAK-221] - Clarify nature of 'path' parameter in oak-api
[OAK-228] - inconsistent paths used in oak tests
[OAK-229] - Review root-node shortcut in NamePathMapperImpl
[OAK-230] - Review and fix inconsistent usage of oak-path in oak-jcr
[OAK-238] - ValueFactory: Missing identifier validation when creating
(weak)reference value from String
[OAK-240] - mix:mergeConflict violates naming convention
[OAK-242] - Mixin rep:MergeConflict is not a registered node type
[OAK-243] - NodeImpl.getParent() not fully encapsulated in a
[OAK-245] - Add import for org.h2 in oak-mk bundle
[OAK-248] - Review path constants in the oak source code
[OAK-252] - Stop sending observation events on shutdown
[OAK-254] - waitForCommit returns null in certain situations
[OAK-256] - JAAS Authentication failing in OSGi env due to classloading
[OAK-257] - NPE in o.a.j.oak.security.privilege.PrivilegeDefinitionImpl
[OAK-265] - waitForCommit gets wrongly triggered on private branch commits
[OAK-268] - XPathQueryEvaluator generates incorrect XPath query
[OAK-272] - every session login causes a mk.branch operation
[OAK-278] - Tree.getStatus() and Tree.getPropertyStatus() fail for items
whose parent has been removed
[OAK-279] - ChangeProcessor getting stuck while shutdown
[OAK-286] - Possible NPE in LuceneIndex
[OAK-287] - PrivilegeManagerImplTest.testJcrAll assumes that there are no
custom privileges
[OAK-291] - Clarify paths in Root and Tree
[OAK-294] - nt:propertyDefinition has incorrect value constraints for
property types
[OAK-296] - PathUtils.isAncestor("/", "/") should return false but returns
[OAK-299] - Node Type support: SQL2QueryResultTest fails
[OAK-311] - Remapping a namespace breaks existing content
[OAK-313] - Trailing slash not removed for simple path in JCR to Oak path
[OAK-316] - CommitFailedException.throwRepositoryException swallows parts
of the stack traces
[OAK-330] - Some MongoMK tests do not use CommitImpl constructor correctly
[OAK-332] - [MongoMK] Node is not visible in head revision
[OAK-334] - Add read-only lucene directory

Changes in Oak 0.4

New Features

  [OAK-182] - Support for "invisible" internal content
  [OAK-193] - TODO class for partially implemented features
  [OAK-227] - MicroKernel API: add depth parameter to diff method


  [OAK-153] - Split the CommitHook interface
  [OAK-156] - Observation events need Session.refresh
  [OAK-158] - Specify fixed memory settings for unit and integration tests
  [OAK-161] - Refactor Tree#getChildStatus
  [OAK-163] - Move the JCR TCK back to the integrationTesting profile
  [OAK-164] - Replace Tree.remove(String) with Tree.remove()
  [OAK-165] - NodeDelegate should not use Tree.getChild() but rather
  [OAK-166] - Add Tree.isRoot() method instead of relying on
Tree.getParent() == null
  [OAK-171] - Add NodeState.compareAgainstBaseState()
  [OAK-172] - Optimize KernelNodeState equality checks
  [OAK-174] - Refactor RootImpl and TreeImpl to take advantage of the child
node state builder introduced with OAK-170
  [OAK-176] - Reduce CoreValueFactoryImpl footprint
  [OAK-183] - Remove duplicate fields from NodeImpl and PropertyImpl which
are already in the ItemImpl super class
  [OAK-184] - Allow PropertyState.getValues() to work on single-valued
  [OAK-186] - Avoid unnecessary rebase operations
  [OAK-192] - Define behavior of Tree#getParent() if the parent is not
  [OAK-194] - Define behavior of Tree#getProperty(String) in case of lack
of access
  [OAK-195] - State that Tree#hasProperty returns false of the property is
not accessible
  [OAK-196] - Make Root interface permission aware
  [OAK-198] - Refactor RootImpl#merge
  [OAK-199] - KernelNodeStore defines 2 access methods for the CommitEditor
  [OAK-200] - Replace Commons Collections with Guava
  [OAK-232] - Hardcoded "childOrder" in NodeDelegate

Bug fixes

  [OAK-155] - Query: limited support for the deprecated JCR 1.0 query
language Query.SQL
  [OAK-173] - MicroKernel filter syntax is not proper JSON
  [OAK-177] - Too fast timeout in MicroKernelIT.waitForCommit
  [OAK-179] - Tests should not fail if there is a jcr:system node
  [OAK-185] - Trying to remove a missing property throws
  [OAK-187] - ConcurrentModificationException during gc run
  [OAK-188] - Invalid JSOP encoding in CommitBuilder and
  [OAK-207] - TreeImpl#getStatus() never returns REMOVED
  [OAK-208] - RootImplFuzzIT test failures
  [OAK-209] - BlobStore: use SHA-256 instead of SHA-1, and use two
directory levels for FileBlobStore
  [OAK-211] - CompositeEditor should keep the base node state stable
  [OAK-213] - Misleading exception message in NodeImpl#getParent
  [OAK-215] - Make definition of ItemDelegate#getParent permission aware
  [OAK-219] - SessionDelegate#getRoot throws IllegalStateException if the
root node is not accessible
  [OAK-224] - Allow the ContentRepositoryImpl to receive a CommitEditor in
the constructor

Changes in Oak 0.3

New Features

  [OAK-9] - Internal tree builder
  [OAK-12] - Implement a test suite for the MicroKernel
  [OAK-33] - Values in oak-core
  [OAK-45] - Add support for branching and merging of private copies to
  [OAK-68] - Extension point for commit validation
  [OAK-75] - specify format and semantics of 'filter' parameter in
MicroKernel API
  [OAK-100] - Proper CommitHook handling in NodeStore
  [OAK-119] - Oak performance benchmark
  [OAK-133] - Session.refresh(true) should allow for manual conflict


  [OAK-15] - Clean up oak-jcr
  [OAK-19] - Consolidate JSON utilities
  [OAK-32] - Drop MicroKernel.dispose()
  [OAK-40] - Define session-info like user identification for communication
with oak-api
  [OAK-54] - IOUtils.readVarInt and readVarLong can result in an endless
loop on EOF
  [OAK-65] - Naming of NodeState and related classes
  [OAK-80] - Implement batched writing for KernelNodeStore
  [OAK-84] - Delegates for Session, Node, Property and Item
  [OAK-86] - Make setProperty methods of NodeStateBuilder and Tree return
the affected property
  [OAK-87] - Declarative services and OSGi configuration
  [OAK-89] - Improve exception handling
  [OAK-92] - Remove org.apache.jackrabbit.mk.HelloWorld
  [OAK-96] - PathUtils should use assertions to enable validation instead
of system property
  [OAK-97] - Implement Item.toString() for logging and debugging purposes
  [OAK-102] - Expose the branch feature from NodeStore
  [OAK-106] - Use NodeStateBuilder instances to record changes in TreeImpl
  [OAK-109] - Efficient diffing against the base node state
  [OAK-112] - Refactor ModifiedNodeState and related classes to use type
safe iterator utilities
  [OAK-113] - drop MicroKernel getNodes(String, String) convenience
  [OAK-115] - ItemDelegate and sub classes should throw
IllegalItemStateException on stale items
  [OAK-116] - MicroKernel API: clarify semantics of getNodes depth, offset
and count parameters
  [OAK-120] - MicroKernel API: specific retention policy of binaries
  [OAK-122] - Performance test suite
  [OAK-126] - remove unused code
  [OAK-138] - Move client/server package in oak-mk to separate project
  [OAK-145] - Set up Travis CI builds
  [OAK-142] - MicroKernel API: returning the :hash property should be
  [OAK-143] - Refactor conflict reconciliation from OAK-133: move inner
classes to o.a.j.oak.plugins.value
  [OAK-148] - Drop feature checks from WorkspaceImpl
  [OAK-149] - Automatic session refresh after namespace registry changes
  [OAK-151] - Merge oak-it-jcr to oak-jcr
  [OAK-159] - Do not use in memory Microkernel for TCK

Bug fixes

  [OAK-16] - Proper ValueFactory implementation and Value handling
  [OAK-43] - Incomplete journal when move and copy operations are involved
  [OAK-47] - Wrong results and NPE with copy operation
  [OAK-49] - Session.getRepository() should return the object through which
the Session was acquired
  [OAK-55] - Provide reasonable way to set property on NodeStateEditor
  [OAK-58] - connection leak in h2 persistence
  [OAK-60] - occasional test case failure
  [OAK-73] - JsopReader and JsopWriter lack javadocs
  [OAK-79] - Copy operation misses some child nodes
  [OAK-83] - Copy operation would recurse indefinitely if memory permitted
  [OAK-85] - NPE and wrong result on copy operation
  [OAK-93] - Tree has wrong parent after move
  [OAK-94] - oak-it/osgi fails due to required packages not being exported
  [OAK-95] - path mapping needs to deal with relative paths
  [OAK-99] - reading binary content fails for certain types of content
  [OAK-105] - Workspace move operation should not do sanity checks in the
scope of the current session
  [OAK-110] - NPE in KernelNodeStoreBranch.diffToJsop
  [OAK-121] - Occasional test failure in MicroKernelIT.testBlobs:
java.net.SocketException: Broken pipe
  [OAK-130] - Unexpected result of MicroKernel#getJournal after
  [OAK-131] - Session.save() silently discards pending changes
  [OAK-134] - Session.save() should do an implicit refresh(true)
  [OAK-135] - Better support for RangeIterators
  [OAK-139] - Remove JsonBuilder
  [OAK-146] - Wrong value passed to before parameter of
CommitHook.afterCommit in KernelNodeStore.merge
  [OAK-147] - Incorrect Comparator in CommitBuilder.persistStagedNodes

Changes in Oak 0.2.1

New features

  [OAK-59] - Implement Session.move
  [OAK-63] - Implement workspace copy and move


  [OAK-29] - Simplify SessionContext
  [OAK-30] - Strongly typed wrapper for the MicroKernel
  [OAK-31] - In-memory MicroKernel for testing
  [OAK-44] - Release managements tweaks
  [OAK-46] - Efficient diffing of large child node lists
  [OAK-48] - MicroKernel.getNodes() should return null for not existing
nodes instead of throwing an exception
  [OAK-52] - Create smoke-test build profile
  [OAK-53] - exclude longer running tests in the default maven profile
  [OAK-67] - Initial OSGi Bundle Setup
  [OAK-70] - MicroKernelInputStream test and optimization
  [OAK-71] - Logging dependencies
  [OAK-81] - Remove offset and count parameters from

Bug fixes

  [OAK-20] - Remove usages of MK API from oak-jcr
  [OAK-62] - ConnectionImpl should not acquire Microkernel instance
  [OAK-69] - oak-run fails with NPE
  [OAK-78] - waitForCommit() test failure for MK remoting
  [OAK-82] - Running MicroKernelIT test with the InMem persistence creates
a lot of GC threads

Changes in Oak 0.1

New features

  [OAK-3] - Internal tree model
  [OAK-4] - Runnable jar packaging
  [OAK-5] - JCR bindings for Oak
  [OAK-6] - Setup integration tests and TCK tests
  [OAK-7] - In-memory persistence


  [OAK-1] - Setup basic build structure
  [OAK-2] - Use Java 6 as base platform
  [OAK-8] - Make return types of NodeState#getProperties() and
NodeState#getChildNodeEntries() covariant
  [OAK-10] - Impedance mismatch between signatures of
NodeState#getChildeNodeEntries and MicroKernel#getNodes
  [OAK-24] - Separate component for the microkernel
  [OAK-25] - Factor repository descriptors into separate class
  [OAK-26] - MVCC causes write skew
  [OAK-42] - Prepare for first release

Bug fixes

  [OAK-27] - Remove Authenticator and CredentialsInfo in oak-jcr
  [OAK-38] - KernelNodeState should handle multi valued properties
  [OAK-39] - KernelNodeState does not handle boolean values correctly

For more detailed information about all the changes in this and other
Oak releases, please see the Oak issue tracker at


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

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/

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message