Hi, devs.
I committed first version of XWQL (or XQL) language to our sandbox
(xwiki-query/xwql) for review.
I worked ~2 last weeks for it.
install info is in xwiki-query/README.
Currently it works according my proposal[1], but it is quite easy to modify.
It is not perfect, but it works and will be improved.
You can test it via QueryManager. (for example in velocity:
$xwiki.xWiki.store.queryManager.createQuery("select doc.fullName from
Document as doc, doc.XWiki.ArticleClass as a where a.title like
'%Launch'", "xwql").execute() )
plan for xwql (for fix in next week):
* use xwiki-bridge instead of xwiki-core in xwql.
(some methods in bridge are needed)
* create query velocity service
accessible like $services.query.xwql('...')
(according Vincent's velocity services proposal [2])
* move xwiki-query maven module from sandbox to platform/components/
* move QueryManager component from xwiki-core to xwiki-query
I would like to integrate xwql for hql in 1.6M2 (8 Sept) and improve it
in RC if needed.
JCRStore:
old JCRStore with some modifications is partly working (save/load
document is ok) on recent Jackrabbit, but missing some new stores and
need redesign.
plan:
* create xwiki-store/jcr maven module in platform/components (at
sandbox first)
it have to depend on xwiki-core (but not reverse). Is it a problem
for platform/components?
* split JCRStore into components. (RepositoryFacory, SessionFactory,
SessionPool, Stores, DAOs)
* jcrstore will contains DefaultStores which will contain only
business logic on data model, and use DAOs components for store/load data.
DefaultStores will be reused in future HibernateStore to remove
duplicating of code.
* get rid of patched graffito-jcr-mapping (~ORM for JCR). it is old and
unsupported.
candidates:
jcrom [3],
jackrabbit-ocm (former graffito),
simple hand-made annotation based mapping.
I'll look at jcrom first.
I already have some code and plan to work on it in sandbox, after finish
with xwql-hql.
I plan to create working version of JCRStore at the end of September.
xwql on JCRStore will work only on JCRv2 implementation.
[1]
http://xwiki.markmail.org/message/uar73uglivj6fbbn
[2]
http://markmail.org/message/jwcjomrck3yo2kjq
[3]
http://code.google.com/p/jcrom/
--
Artem Melentyev