yuxing 发表于 2017-1-3 06:24:34

Apache项目Research之Graffito

Apache Graffito是一个用于建立一个基于应用程序目录的开源的框架。它提供的功能包括版本控制,协作编辑,发布工作流,序列,查询等等。并且支持多种文档类型如:XML,HTML,PDF, MS OFFICE,OPEN Office, RDF等等。它是对于JCR API的一种扩展,或者说是加强了” business logic”,使得访问JCR Node和该Node的property更加附和真正的商业对象(POJO)的需要。这里我要介绍的是它提供的一个独立的JCR Object/Content 映射框架。
让我们看一下他的一个实现方式吧:
他的O/C Mapping有两种实现方式,一种就是使用Xml描述文件,另一种就是使用Annotation。使用Annotaion这里就不多说了。这里具体看一下多版本的“一对多”的Xml下的实现方式。

xml 代码


[*]<class-descriptor className="com.impl.MappingObject1" jcrMixinTypes="mix:versionable">
[*]<!---->
[*]    <collection-descriptor fieldName="list" jcrName="list" elementClassName="com.impl.MappingObject2"/>
[*]<!---->class-descriptor>
[*]<class-descriptor className="com.impl.MappingObject2">
[*]    <!---->
[*]<!---->class-descriptor>



就这样的简单的描述文件的配置我们就可以实现,对象到内容的映射关系了。全部的映射对象都会以节点的形式被存入JCR 库中,而List内的MappingObject2对象会以MappingObject1的子节点的方式存入。当查询时我们也可以直接通过Query来找到相关条件的MappingObject2。
<o:p> </o:p>虽然该项目目前还没有Release版本,但基础Mapping关系已经完成,可以通过SVN来获得源码,自行打包即可。至少我已经把它JCR O/C mapping的功能用在了实际项目中了。
页: [1]
查看完整版本: Apache项目Research之Graffito