Hi,

Welcome to the 6th edition of the informal news on what's going on in Oak.

- Last week Jukka held a small workshop on Oak at the ApacheCon EU. There was some work on integrating the MongoDB based Microkernel with oak-run and enabling remote JCR access through DavEx. Although there was no formal presentation on Oak, a few people were asking about it and Jukka gave quick 5 min intros.

- Many new features, improvements and bug fixes have been contributed to the MongoDB based Microkernel through OAK-424. See also the respective pull request on GitHub to get a better overview: https://github.com/apache/jackrabbit-oak/pull/6

- In relation to the various Microkernel implementations we now have, we need to figure out how to best expose them for development, testing and continuous integration. See also OAK-434: Setup build profiles to run against either of the Microkernel implementations.

- The progress in the area of the Microkernel also sparked new discussions on how garbage collection could work for the data store. Currently there seem to be mainly two ideas worth further exploration: keep an index of references to binaries (kind of reference counting) and generational garbage collection. See OAK-377 for the issue and http://markmail.org/message/egmcpupjbbljno4j for the discussion.

- In Oak core some state tracking functionality has been pushed down from the Tree implementation to the NodeBuilder implementation. This greatly improves read/write performance but also has an impact on transient move operations, which are not tracked the same any more. See OAK-391 and http://markmail.org/message/b6dcyae362akyogd for the discussion and sample code demonstration the problem. Relevant issues: ° OAK-413: TreeLocation.getStatus() cost increases as more content is read below this location
  ° OAK-422: Replace PurgeListener in TreeImpl with NodeBuilder.reset()
° OAK-417: Refactor/reimplement TreeImpl.getStatus and TreeImpl.getPropertyStatus to take advantage of the underlying NodeBuilder ° OAK-418: Reduce/avoid re-resolving the underlying tree instances on every access in Item/Property/NodeDelegate

- The Oak JCR bindings saw many fixes, improvements and new features. Most notably we now have initial support for XML imports (OAK-127: Support for XML imports) and validation for node type management (OAK-411: Validator for node type management). Further improvements include:
  ° OAK-395 : Inconsistency in Node#setProperty in case of null value
  ° OAK-408: Add Definition for the root node
° OAK-405: Node/Property getDefinition() returns first residual definition instead of matching named definition

- Since Apache Lucene does not provide OSGi bundles of their artefact, we decided to embed the Lucene dependency with Oak for the time being. The most transparent way to do so was through its own component "oak-lucene". See OAK-438: Provide the lucene index as an osgi bundle.

Michael





Reply via email to