`
dingqijie
  • 浏览: 102222 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsr170初探

阅读更多
ecm:enterprise content manager(企业内容管理),好像有点意思,就介绍下吧。企业内容应该包括两部分:文档类和元数据。说到ecm,就不得不说Java Content Repository(Java内容仓库),在java体系中,有专门的标准即jsr170,是jcp(Java community process)制定。
一什么是内容仓库?
  1、定义
  JSR-170 是这样定义内容仓库的,内容仓库由一组 workspace(工作空间)组成,这些workspace通常应该包含相似的内容。一个内容仓库有一个到多个 workspace。每个workspace都是一个树状结构,都有一个唯一的树根节点(root node)。树上的item(元素)或者是个node(节点)或者是个property(属性)。每个node都可以有零个到多个子节点和零个到多个子属性。只有根节点没有父节点,其余所有的节点都有一个父节点。property 也必须有一个父节点,但它没有子节点或是子属性,property 是叶子元素。property是真正存储数据的元素。类似于linux下的文件系统,还有点类似于ldap中的数据组织方式(最近看的东西有点杂,分不清了);
  2、级别
   jsr定义了三种级别,依次是:
   Level 1:定义了一个只读的内容仓库。
   Level 2:定义了可写的内容仓库。
   Advanced options:定义实现五种附加功能,版本控制、JTA、SQL查询、清晰的内容锁定和监视。
二、java对内容仓库的支持
    java制定了内容仓库的标准(个人认为是api接口),但没有制定底层的实现技术,即不管持久层采用的什么技术,无论是xml、rdb、文件等方式;
三、jackrabbit的介绍:
    既然java只是制定了实现的接口,没有具体制定实现,下面就介绍一个对jsr170支持很好的项目javarabbit。
   1、内容仓库的目录结构
   D:\workspace\TestJackRabbit
                             ---repository.xml
                             ---repository
                                      ----repository
                                      ----version
                                      ----workspaces
   2、jackrabbit的底层数据存储方式:采用java自带的内嵌数据库derby。
    3、java操作内容库
       a)获得根节点
         Repository r = new TransientRepository();
        Session session = r.login(new SimpleCredentials("userid", "".toCharArray()));
        Workspace ws = session.getWorkspace();
        Node rn = session.getRootNode();
       b)插入数据
       //将内容添加到内容仓库
  Node encyclopedia = rn.addNode("wiki:encyclopedia");
  Node p = encyclopedia.addNode("wiki:entry");
  p.setProperty("wiki:title", new StringValue("rose"));
  p.setProperty("wiki:content", new
     StringValue("A rose is a flowering shrub."));
  p.setProperty("wiki:category",
     new Value[]{
        new StringValue("flower"),
        new StringValue("plant"),
        new StringValue("rose")});

  Node n = encyclopedia.addNode("wiki:entry");
  n.setProperty("wiki:title", new StringValue("Shakespeare"));
  n.setProperty("wiki:content", new
     StringValue("A famous poet who likes roses."));
  n.setProperty("wiki:category", new StringValue("poet"));
  session.save();

   
分享到:
评论

相关推荐

    Portlet JSR-170标准手册跟帮助文档

    JSR-170,全称为Java Portlet API 1.0,是Java Community Process(JCP)发布的一项标准,用于定义portlet如何在门户环境中运行、交互和共享数据。本文档将深入探讨JSR-170标准的核心概念、API以及开发实践。 ...

    JSR133中文版.pdf

    本文是JSR-133规范,即JavaTM内存模型与线程规范,由JSR-133专家组开发。本规范是JSR-176(定义了JavaTM平台 Tiger(5.0)发布版的主要特性)的一部分。本规范的标准内容将合并到JavaTM语言规范、JavaTM虚拟机规范...

    Java Content Repository API(JSR-170)

    Further information about JSR 170 can be found at http://www.jcp.org/en/jsr/detail?id=170 The Reference Implementation (RI) and the Technology Compatibility Kit (TCK) and the Specification Changelog ...

    JSR268门户标准

    ### JSR268门户标准概述 #### 一、JSR168与JSR286背景 JSR168(Java Specification Request 168)是Java门户技术的第一个标准化规范,发布于2003年10月。这一规范定义了一种通用框架,用于构建基于门户的应用程序...

    jsr168和jsr268中文文档及开发手册

    JSR(Java Specification Requests)是Java社区进程(JCP,Java Community Process)的一部分,用于提出和定义新的Java技术规范。JSR168和JSR268是两个与Java Portal技术相关的标准,它们主要涉及如何创建和管理可...

    jsr173_api

    **JSR 173 API**,全称为Java Specification Request 173,是Java社区进程(Java Community Process)发布的一个标准,旨在为Java平台引入标准化的可扩展性框架,以便处理XML流数据。该API的主要目标是为Java开发者...

    23 Spring Core参数校验之JSR303_JSR-349注解-慕课专栏1

    Spring Core提供了一种优雅的方式来处理参数校验,特别是通过JSR 303、JSR 349和JSR 380这些标准注解,实现了高效且易于维护的验证机制。 JSR 303最初定义了JavaBean验证的标准,而JSR 349是其修订版,主要增加了对...

    jsr268规范详解

    JSR268 规范详解 JSR268 是 Java Portlet Specification 的第二个版本,旨在提供更加强大和灵活的 Portlet 开发体验。该规范的出现是为了解决 JSR168 的一些限制和问题,例如仅支持基本用例、功能上有一些限制等。 ...

    jsr311-api-1.1.1-API文档-中文版.zip

    赠送jar包:jsr311-api-1.1.1.jar; 赠送原API文档:jsr311-api-1.1.1-javadoc.jar; 赠送源代码:jsr311-api-1.1.1-sources.jar; 赠送Maven依赖信息文件:jsr311-api-1.1.1.pom; 包含翻译后的API文档:jsr311-api...

    portlet 规范和API(jsr 168/286)

    JSR(Java Specification Request)168和286是定义portlet标准的两个关键版本,它们由Java Community Process(JCP)发布,旨在促进portlet在门户环境中的互操作性和可扩展性。 JSR 168是portlet规范的第一个主要...

    jsr133_content.pdf

    Java内存模型(JMM)是Java程序并发执行时的核心规范,由JSR-133专家小组开发。JSR-133全称为JavaTM Memory Model and Thread Specification,它的目标是确保多线程环境下程序的可见性和一致性。该规范与Java平台...

    JSR256 API

    **JSR256 API** 是Java Community Process (JCP) 定义的一个规范,全称为Java Specification Request 256。这个API专注于在Java 2 Micro Edition (J2ME) 平台上提供传感器接口,使得移动设备和嵌入式系统能够有效地...

    JSR133中文版

    **JSR133中文版** 是一份关于Java内存模型(Java Memory Model,JMM)的重要文档,它详细解释了JSR(Java Specification Requests)133中的规范,该规范对Java平台的并发编程有着深远的影响。JSR是Java社区进程...

    JSR303依赖的jar包

    JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。JSR 303 用于对 Java Bean 中的字段的值进行验证。 Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对...

    jsr305.jar

    jsr305.jar jsr305.jar jsr305.jar

    jsr311-api-1.1.1-API文档-中英对照版.zip

    赠送jar包:jsr311-api-1.1.1.jar; 赠送原API文档:jsr311-api-1.1.1-javadoc.jar; 赠送源代码:jsr311-api-1.1.1-sources.jar; 赠送Maven依赖信息文件:jsr311-api-1.1.1.pom; 包含翻译后的API文档:jsr311-api...

    jackson-datatype-jsr310-2.12.5-API文档-中文版.zip

    赠送jar包:jackson-datatype-jsr310-2.12.5.jar; 赠送原API文档:jackson-datatype-jsr310-2.12.5-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.12.5-sources.jar; 赠送Maven依赖信息文件:jackson-...

    JSR133规范中文版

    JSR133规范

    jsr305-3.0.2-API文档-中英对照版.zip

    赠送jar包:jsr305-3.0.2.jar; 赠送原API文档:jsr305-3.0.2-javadoc.jar; 赠送源代码:jsr305-3.0.2-sources.jar; 赠送Maven依赖信息文件:jsr305-3.0.2.pom; 包含翻译后的API文档:jsr305-3.0.2-javadoc-API...

Global site tag (gtag.js) - Google Analytics