Apache项目Research之Graffito

Apache Graffito是一个用于建立一个基于应用程序目录的开源的框架。它提供的功能包括版本控制,协作编辑,发布工作流,序列,查询等等。并且支持多种文档类型如:XMLHTMLPDF MS OFFICEOPEN Office, RDF等等。它是对于JCR API的一种扩展,或者说是加强了” business logic”,使得访问JCR Node和该Nodeproperty更加附和真正的商业对象(POJO)的需要。这里我要介绍的是它提供的一个独立的JCR Object/Content 映射框架。

让我们看一下他的一个实现方式吧:
他的
O/C Mapping有两种实现方式,一种就是使用Xml描述文件,另一种就是使用Annotation。使用Annotaion这里就不多说了。这里具体看一下多版本的“一对多”的Xml下的实现方式。

xml 代码
  1. <class-descriptor className="com.impl.MappingObject1" jcrMixinTypes="mix:versionable">
  2. <!---->
  3. <collection-descriptor fieldName="list" jcrName="list" elementClassName="com.impl.MappingObject2"/>
  4. <!---->class-descriptor>
  5. <class-descriptor className="com.impl.MappingObject2">
  6. <!---->
  7. <!---->class-descriptor>

就这样的简单的描述文件的配置我们就可以实现,对象到内容的映射关系了。全部的映射对象都会以节点的形式被存入JCR 库中,而List内的MappingObject2对象会以MappingObject1的子节点的方式存入。当查询时我们也可以直接通过Query来找到相关条件的MappingObject2

<o:p> </o:p>虽然该项目目前还没有Release版本,但基础Mapping关系已经完成,可以通过SVN来获得源码,自行打包即可。至少我已经把它JCR O/C mapping的功能用在了实际项目中了。

你可能感兴趣的:(apache,xml,框架,SVN,Office)