Java Content Repository API 简介.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java Content Repository API 简介

Java Content Repository API 简介仓库模型我先从对仓库模型的高级讨论开始,以便让您熟悉 JCR。仓库模型是简单的层次结构,看起来就像一个有 n 个分叉的树。它由单一内容仓库构成,有一个或多个工作区。(这篇文章中的讨论仅限制于单一工作区。)每个工作区都包含一个项目?树;项目既可以是节点?也可以是属性。节点可以有零个或多个子节点以及零个或多个相关属性,实际的内容保存在子节点和属性中。每个节点都有且只有一个主节点类型。主节点类型定义了节点的特征,例如允许节点拥有的属性和子节点。除了主节点类型之外,节点还可以有一个或多个混合(mixin)类型。混合类型更像修饰器,向节点提供额外的特征。具体来说,JCR 实现可以提供三种预定义混合类型:mix:versionable:允许节点支持版本管理mix:lockable:支持节点的锁定功能mix:referenceable:提供自动创建的?jcr:uuid?属性,给节点一个惟一可以引用的标识符这个结构如图 1 所示。圆圈代表节点,矩形代表属性。请参见节点 A、B 和 C,它们都衍生自一个根节点。节点 A 有两个属性,即一个字符串 “John” 和一个整数 22。图 1. 有多个工作区的仓库模型预定义的节点类型每个仓库都必须支持主节点类型?nt:base。仓库还可以支持其他许多公共节点类型:nt:unstructured?是最灵活的节点类型。它允许使用任意数量的子节点或属性,并且可以使用任意名称。这个节点类型表示 JCRWiki 的条目。nt:file?表示文件。它需要一个叫做?jcr:content?的单一子节点。这个节点类型表示 JCRWiki 条目中的图片和其他二进制内容。nt:folder?节点类型可以表示文件夹,就像常规的文件系统中的文件夹一样。nt:resource?通常表示文件的实际内容。nt:version?是支持版本管理的仓库所必需的节点类型。整个节点类型的结构可以在 JSR-170 规范的 小节找到(请参阅?参考资料?获得链接)。名称空间仓库模型一个有用的却经常被忽视的特性就是它对名称空间?的支持。名称空间防止不同来源和不同应用程序域之间的项目和节点类型的命名冲突。名称空间被定义为带有一个前缀,中间用一个?:?(冒号)分隔。在这篇文章的教程中,已经遇到了一些名称空间:jcr?用于 JCR 的内部属性,mix?用于混合类型,nt?用于节点类型。在 JCRWiki 中,所有的数据都将使用?wiki?名称空间。回页首安装 JCR在编写这篇文章的时候,Apache Jackrabbit(即 Apache 基金会的 JSR-170 的开源实现)的发行版已经到了版本 1.0。编译好的字节码 JAR 可以直接从 Jackrabbit Web 站点下载(请参阅?参考资料)。虽然 Jackrabbit can 仍然可以用 SVN 从源代码进行编译,但是 Jackrabbit 库已经非常稳定,不再需要每夜构建(nightly builds)技术。这一节将提供尽可能快地安装 JCR 实现并运行它的详细说明。需要的库要使用和运行这篇文章中的示例,请将下面这些库放在类路径中:jackrabbit-core:针对 JSR-170 的 Jackrabbit 内容仓库核心实现和来自 Apache 的公共实用代码。commons-collections:包含强大数据结构的框架,该框架可以加快 Java 应用程序的开发。concurrent:这个库提供通常在 Java 并发编程中会遇到的工具类的标准化的、有效率的版本。derby:一个 Apache 数据库子项目,它提供完全用 Java 语言实现的关系数据库。jcr:一组符合 JSR-170 规范的接口。log4j:运行时日志库。lucene:高性能的全功能文本搜索引擎库。slf4j?(针对 Java 的简单日志 Facade):目的是充当不同日志 API 的简单 facade,允许用户在部署时插入需要的实现。xerces:高级 XML 解析器,支持 SAX 版本 2、DOM 1 级和 SAX 版本 1 API。如果用 SVN 构建 Jackrabbit,那么所有这些 JAR 文件都会在 Jackrabbit 构建过程中被下载,并位于 Maven 的缓存目录中。在 Linux 下,这些 JAR 位于主目录的 .maven 目录下。如果使用二进制构建,那么只需要从它们各自的 Web 站点下载其二进制版或浏览 Jackrabbit Web 站点的 “First Hops with Jackrabbit” 即可,那里会提供到所有这些资源的直接链接。在 JSR-170 规范的下载中还有一个 jcr-1.0.jar,在 Java 社区进程的 We

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档