Hi.
I just committed JCRStore prototype based on JCRv1 to sandbox/jcrstore
Ideas of the prototype:
1. use value objects for storage (xwiki data model proposal:
sandbox/org.xwiki.model)
org.xwiki.store.value.*
value objects allow us to eliminate xwiki-core dependency in
jcrstore.
we can reuse value objects in new data model later as in
sandbox/org.xwiki.model.
2. put all storage specific code in DAO classes.
Stores will remain only business code and delegate storage stuff to DAOs.
(stores will deprecated by new data model later)
3. convert value objects to/from xwiki business objects.
org.xwiki.store.value.ValueConverter
planed jcr hierarchy:
(node name (node type))
/
<space> (xwiki:space)
<docname> (xwiki:document)
objects
<class.name>
<number> (xwiki:object)
properties (Jcr Value or Value[])
attachments
<filename> (xwiki:attachment extends nt:resource)
lock (xwiki:lock)
translations
<language> (xwiki:document) (translations of document)
the main problem:
JCRStore needs JCRSQL2 language from JCRv2 (JCRv1 has very limited query
languages), but:
JSR-283 aka JCR v2 isn't still out. It was planed for September.
http://jcp.org/en/jsr/detail?id=283
Jackrabbit's JCRSQL2 parser is still in progress (and unusable yet).
eXoJCR v2 also in progress:
http://jira.exoplatform.org/browse/JCRS
I'm afraid JCR v2 may not release before XE-1.7. JCRv2 release was
shifted several times before. :(.
JcrStore plans:
implement base JcrDAOs. (JcrDocumentDAO is ready)
try to run xwiki on jcrstore. (not fully possible without JCRSQL2, but
may show some problems in store)
implement XWQL to JCRSQL2 translator.
wait for JCRv2 or at least working JCRSQL2.
test XWQL on JCRSQL2.
rewrite all HQL queries to XWQL.
Delivery date:
If JCRv2 (or JCRSQL2) will release in a ~week then I'll implement base
functionality in 1.7M2 and improve it in 1.7RC1.
If not then 1.8M1
PS: I'm sorry for long delay. I was ill 2.5 last weeks. It very reduce
my activity.
--
Artem Melentyev