关于Jackrabbit

To get started with Jackrabbit you should first become familiar with the JCR API. Download the JSR 170 specification, browse the API documentation, check our introduction to JCR levels, or read some of the JCR articles to understand the content repository model that Jackrabbit implements. You can also take a look at the various JCR and Jackrabbit applications to get an idea of what to do with a content repository.

jackRabbit是一个符合JCR2.0 JSR170和JSR283规范;基于java JCR API的开源内容存储库,提供了如版本控制、全文检索,访问控制,内容分类、内容事件监视等内容服务.

2 例子

import javax.jcr.Repository;

import javax.jcr.Session;

import org.apache.jackrabbit.core.TransientRepository;

public class FirstHop {

public static void main(String[] args) throws Exception {

Repository repository = new TransientRepository();//获得一个库实例

Session session = repository.login();//获得一个登陆的session实例

try {

String user = session.getUserID();

String name = repository.getDescriptor(Repository.REP_NAME_DESC);

System.out.println(

"Logged in as " + user + " to a " + name + " repository.");

} finally {

session.logout();

}

}

}

3 总体架构

jackRabbit总体架构分为三个部分:
1、内容应用(内容库API与JCR API相互配合而成)
2、内容库API 
3、内容库实现(主要基于JCR API)
总体架构图可以通过官方文档查看。

JCR API主要包括如下内容:
   javax.jcr:提供内容库interfaces and classes的Java技术
   javax.jcr.lock:提供内容库锁功能的interfaces and classes 
   javax.jcr.nodetype:提供了内容库节点类型功能的interfaces and classes 
   javax.jcr.observation:提供了内容库事件观察功能的interfaces and classes 
   javax.jcr.query:提供了内容库搜索功能的interfaces and classes 
   javax.jcr.query.qom:提供了内容库对象查询模式的interfaces and classes 
   javax.jcr.retention:提供了内容库保留管理功能的interfaces and classes 
   javax.jcr.security:提供了内容库访问控制管理功能interfaces and classes 
   javax.jcr.util:提供了内容库实用工具类API 
   javax.jcr.version:提供了内容库版本功能的interfaces and classes

4  jackrabbit 如何工作

下图说明了jackRabbit是如何的工作!

所有的工作都是基于JCR API来操作的。包括有工作区(workSpace)、会话(Session)、缓存(Cache)、查询搜索(index)、持久存储(Persistence Store)。

5 组件简介

Jackrabbit分成多个组件,包括

Jackrabbit API :包括标准API之外jackrabbit实现的扩展接口,可以使用这个API访问jackrabbit特定的功能;

Jackrabbit JCR Commons:包括使用JCR API时的一些公用类;

Jackrabbit JCR Tests:包括一组用以测试实现兼容性的测试案例;

Jackrabbit Core :jackrabbit的实现核心;

Jackrabbit Text Extractors :允许jackrabbit从二进制数据中抽取文本内容进行全文索引;

Jackrabbit JCR-RMI:允许远程访问内容存储库,这个组件适用于所有JCR实现;

Jackrabbit WebDAV Library :提供了建立WebDAV服务器和客户端时所需的接口和公共服务类;

Jackrabbit JCR Server:包括两个基于WebDAV的JCR服务器实现;

Jackrabbit Web Application:提供servlet以访问Jackrabbit存储库;

Jackrabbit JCA Resource Adapter:将内容存储库作为JCA 1.0规范的资源适配器,这样就可以各种应用服务器中部署JCR;

Jackrabbit SPI :定义一个分隔层,支持客户-服务器架构,减化JCR API的实现。应用程序一般不会直接使用这个组件;

Jackrabbit SPI Commons:SPI公共类及部件接口的缺省实现;

jackrabbit官方英文文档加补充(转载)的更多相关文章

  1. Java-Hibernate官方英文文档地址

    Hibernate官方英文文档地址  http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/

  2. MindManager全部快捷键(官方英文文档+中文翻译)

    MindManager全部快捷键 [中文翻译版] ------------------------------------------------------------- 导图文件 创建一个新的导图 ...

  3. DoTween 部分中文文档

    前言 DOTween现在还处于 alpha,所以还有一些缺失的功能(如路径插件,附加回调和其它的tween选项),这个文档在不久的将来可能会改变. 一.术语 Tweener 一个tween控制valu ...

  4. 【Chromium中文文档】多进程资源加载

    多进程资源加载(需要更新) 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture ...

  5. 千呼万唤始出来,微软Power BI简体中文版官网终于上线了,中文文档也全了。。

    前几个月时间,研究微软Power BI技术,由于没有任何文档和资料,只能在英文官网瞎折腾,同时也发布了英文文档的相关文章:系列文章,刚好上周把文章发布完,结果简体中文版上线了.哈哈,心里有苦啊,早知道 ...

  6. axios 中文文档(转载)

    axios中文文档 转载来源:https://www.jianshu.com/p/7a9fbcbb1114 原始出处:lewis1990@amoy axios 基于promise用于浏览器和node. ...

  7. gitlab安装教程、gitlab官网、英文文档

    gitlab官网 https://about.gitlab.com/ gitlab安装和官网英文文档 https://about.gitlab.com/downloads/ 清华大学tuna镜像源 G ...

  8. mysql 新手入门 官方文档+官方中文文档附地址

    点评: 官方文档地址 官方中文文档地址 sql语句扩展

  9. PyTorch官方中文文档:torch.nn

    torch.nn Parameters class torch.nn.Parameter() 艾伯特(http://www.aibbt.com/)国内第一家人工智能门户,微信公众号:aibbtcom ...

随机推荐

  1. How to fix the gray screen bug in VirtualBox

    If you see a gray screen instead of GNOME when entering the system, simply switch to a virtual conso ...

  2. linux 下 异步IO

    方法一:使用fcntl来置O_ASYNC位. 这个方法的效果是,当输入缓存中的输入数据就绪时(输入数据可读),内核向用F_SETOWN来绑定的那个进程发送SIGIO信号.此时程序应该用getchar等 ...

  3. gcc 编译时 库链接

    gcc -l参数和-L参数 -l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把 ...

  4. 解决win2008下IIS7的HTTP500错误

    造成500错误常见原因有:ASP语法出错.ACCESS数据库连接语句出错.文件引用与包含路径出错.使用了服务器不支持的组件如FSO等.另外,对于win2008的IIS默认不显示详细出错信息的问题以下就 ...

  5. POJ 1011:木棒

    传送门 http://poj.org/problem?id=1011 题目大意 已知原来有等长若干木棒,现在给你一堆断了的木棒的长度,问原来的木棒最短是多长 题目类型 DFS + 剪枝 + “贪心优化 ...

  6. AC日记——Flag Codeforces 16a

    A. Flag time limit per test 2 seconds memory limit per test 64 megabytes input standard input output ...

  7. [原创][FPGA]Quartus实用小技巧(长期更新)

    0. 简介 在使用Quartus软件时,经常会时不时的发现一些小技巧,本文的目的是总结所查阅或者发现到的小技巧,本文长期更新. 1. Quartus中的模板功能 最近在Quartus II的菜单里找到 ...

  8. 洛谷—— P1561 [USACO12JAN]爬山Mountain Climbing

    https://daniu.luogu.org/problemnew/show/P1561 题目描述 Farmer John has discovered that his cows produce ...

  9. SD 胡策 Round 1 T3 彩尾巴猹的二进制数

    发现一个区间[L,R]代表的2进制数是3的倍数,当且仅当从L开始的后缀二进制值 - 从R+1开始的后缀二进制值 是 3 的倍数 (具体证明因为太简单而被屏蔽). 于是我们就可以在每个点维护从它开始的后 ...

  10. Jackson反序列化错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解决方法

    说明:出现这种问题的情况是由于JSON里面包含了实体没有的字段导致反序列化失败. 解决方法: // 第一种解决方案 // ObjectMapper对象添加 mapper.configure(Deser ...