天天看點

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();