天天看点

JCR

  一段时间以来市场上出现了各个厂家开发的不同的CMS系统,这些系统都建立在他们各自的内容仓库之上。

  问题出现了,每个CMS开发商都提供了他们自己的API来访问内容仓库。这对应用程序的开发者带来了困扰,因为他们要学习不同的开发商提供的API,同时,他们的代码也与这些特定的API产生了绑定。

  JSR-170正是为解决这一问题而出现的,它提供了一套标准的API来访问任何数据仓库。通过JSR-170,你开发代码只需要引用 javax.jcr.* 这些类和接口。它适用于任何兼容JSR-170规范的内容仓库。

  我们将通过一个例子来逐步了解JSR-170。

  为什么需要 Java Content Repository API

  JSR-170 API对不同的人员提供了不同的好处。

  ●对于开发者无需了解厂家的仓库特定的API,只要兼容JSR-170就可以通过JSR-170访问其仓库。

  ●对于使用CMS的公司则无需花费资金用于在不同种类CMS的内容仓库之间进行转换。

  ●对于CMS厂家,无需自己开发内容仓库,而专注于开发CMS应用。\

  除了Node和Property之外,API中还有几个重要的对象。Repository代表整个内容仓库,Credentials代表一个用户身份,Ticket代表进入该内容仓库的门票。获得内容根节点的代码大致如下:

  Repository repository = (Repository)java.rmi.Naming.lookup("MyRepo");

  Credentials credentials = new SimpleCredentials("MyName", "MyPassword".toCharArray());

  Ticket myTicket = repository.login(credentials, "MyWorkspace");

  Node root = myTicket.getRootNode();