You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Michael Dürig <md...@apache.org> on 2012/10/26 23:56:29 UTC
[NEWS] Oak news (5th edition)
Hi,
Apologies for being so late this time. Unfortunately some business
unrelated to Oak kept me busy recently. In the meanwhile a lot has been
going on in the Oak code base. To get a better overview, I roughly
grouped related topics into categories. As always, please share any
missing bits, corrections, concerns and thoughts.
General
-------
- Jukka will host an Oak Hackathon at ApacheCon EU on Monday 5th
November. This is a great opportunity to get involved and learn more
about the ins and outs of Jackrabbit Oak. See Jukka's original
announcement (http://markmail.org/message/namjgc5djy4bnoll) and the
ApacheCon wiki page (http://wiki.apache.org/apachecon/HackathonEU12) for
further details.
- The discussion about whether Oak should evolve into a project of its
own rights or whether it should stay within Jackrabbit seems to converge
into the latter direction
(http://markmail.org/message/ga4mn2x2xqsvzwg6). Jukka came up with an
initial draft of a road map where Oak would finally become Jackrabbit
3.0 after branching 2.6. and 2.x
(http://markmail.org/message/u7dsue7ezb4cd4ox).
JCR repository / bindings
-------------------------
- Oak now has a simple mechanism for constructing content repositories
for use in embedded deployments and test cases (OAK-352). The mechanism
allows for easy set up of the repository and all its component and
plugins. Documentation and examples at
https://github.com/apache/jackrabbit-oak/blob/trunk/doc/construct.md.
- Support for orderable nodes improved and now also covers moved and
copied nodes (OAK-169).
- There is now some initial support for auto created properties and
nodes (OAK-249). Nothing pluggable yet but a good start.
- Initial repository setup saw some improvement/clean up and
refactoring. It does not depend on internal representations any more but
rather uses the NodeStore abstraction now. It is now also capable of
handling custom name spaces (OAK-41).
Oak API / core
--------------
- The behaviour of Root and Tree instances after the ContentSession from
which they have been obtained has been closed is now defined. A call to
any method of such instances will now result in an IllegalStateException
(OAK-387).
- The unification of PropertyState with CoreValue (see below) introduced
an explicit method for creating Blob values through the Oak API while
formerly such Blobs would have been implicitly created through the (now
gone) CoreValueFactory (OAK-375). There is an ongoing discussion on the
security implications of this capability. See OAK-392 and
http://markmail.org/message/5omo54jpue4si3e4
- The usage of WeakReference in Tree instances is necessary for tracking
sub trees across move operation but is troublesome with respect to
performance. It would be nice if we could get rid of these and replace
them with the new state tracking code we have in NodeBuilder. It seems
we have to make some concession for transient move operations and let
tree instance become invalid under some circumstances (OAK-391). See
http://markmail.org/message/b6dcyae362akyogd for the discussion and
sample code demonstration the problem.
Security
--------
- There has been quite some activity around user management (OAK-50),
privilege management (OAK-64), principal management (OAK-90) and
authentication support (OAK-91) lately. Unfortunately I didn't have the
time to follow it all and from the mostly terse commit messages, I can't
really make out what's the state of affairs here. Angela, could you jump
in and provide us with a short update?
Query and indexing
------------------
- Query and indexing underwent some refactoring to make it use the
NodeStore APIs instead of depending on the Microkernel directly
(OAK-353, OAK-288).
- There is now an index for node types (OAK-388).
- With the return of the index manager (OAK-394) index definitions and
changes thereof are automatically picked up.
- Various bug fixes and improvements:
° Query engine should pick the index with the lowest cost (OAK-400)
° JCR-SQL 'ESCAPE' parsing & support (OAK-361)
° NodeIterator limit and offset don't work as expected (OAK-308)
Miscellaneous
-------------
- PropertyState and CoreValue have been unified (OAK-350, OAK-371) such
that PropertyState instances now provide direct access to the various
representations of a value as Java types. Conversion between these
representations have been factored into the Conversions utility class
(OAK-380). Property states can be either created through the
PropertyStates utility class or through a PropertyBuilder instance. We
might make the latter directly available from a NodeBuilder later on
(OAK-372).
- The "add-property" json diff syntax has been removed since it used to
create confusion and its original intent is no longer valid (OAK-384).
See http://apache.markmail.org/thread/3mc3bah2evvfd3ut for the
discussion and http://wiki.apache.org/jackrabbit/Jsop for the updated
syntax.
- The JCR TCK tests turned out to leak sessions (JCR-3444). Since this
is only the case for tests witch fail the setup method (and we still
happen to have quite a few of those) this caused problem with our build
(OAK-373). The current work around splits the test suite into several
suites to release hard references to such sessions.
Michael