什么是JAVA内容仓库(Java Content Repository)(2)

内容仓库模型
JSR-170 是这样定义内容仓库的,内容仓库由一组 workspace(工作空间)组成,这些workspace通常应该包含相似的内容。一个内容仓库有一个到多个 workspace。每个workspace都是一个树状结构,都有一个唯一的树根节点(root node)。树上的item(元素)或者是个node(节点)或者是个property(属性)。每个node都可以有零个到多个子节点和零个到多个子属性。只有根节点没有父节点,其余所有的节点都有一个父节点。property 也必须有一个父节点,但它没有子节点或是子属性,property 是叶子元素。property是真正存储数据的元素。

下图描述了一个blog应用程序的内容仓库模型。每个root node(根节点)的子节点都代表了一个blog实体。与这个blog实体有关的数据都存储在 bolgEntry 节点的属性里,其中一个 blogAttachment property 存储了一个二进制图片文件。
repositorymodel3.gif
根据内容仓库实现的功能,JSR-170定义了三种级别:
Level 1:定义了一个只读的内容仓库。功能包括读取内容,将内容导出为XML和查找内容。
Level 2:定义了可写的内容仓库。Level 2是Level 1的扩展,新增的功能包括往内容仓库里写入内容,和从XML导入数据到仓库。
Advanced options:定义实现五种附加功能,版本控制、JTA、SQL查询、清晰的内容锁定和监视。

什么是Apache JackRabbit?
Apache JackRabbit是一个开放 源码的JSR-170 实现,实现了Level 2,但它还有许多扩展的功能。详细可以去它的官方网站。

下面我们决定用Apache JackRabbit来作为我们示例程序的内容仓库。

如何配置Apache JackRabbit
JackRabbit需要两个参数来配置一个内容仓库实例。
1.内容仓库主目录:这个文件目录下通常包含了所有的内容,搜索索引,内部配置文件和其他持久化信息。它的结构看起来会像下面这个样子:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->   c:/temp
        |
        |--Blogging
                |
                |-repository
                |       |
                |       |-index
                |       |-meta
                |       |-namespaces
                |       |-nodetypes             
                |
                |-version
                |
                |-workspace
                        |
                        |-- default

  在上面的情况下,内容仓库主目录是c:/temp/Blogging.
2.内容仓库配置文件:一个典型的配置文件如下:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><Repository>
 <FileSystem  class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
  <param name="path" value="${rep.home}/repository"/>
 </FileSystem>
 <Security appName="Jackrabbit">
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过 Java 代码实现修改 GitHub 文件,你需要使用 GitHub 的 API 接口。具体步骤如下: 1. 获取 Personal access token 首先需要在 GitHub 上生成一个 Personal access token。在 GitHub 的个人设置 -> Developer settings -> Personal access tokens 页面,点击 Generate new token 按钮,然后选择需要的权限,最后点击 Generate token 完成生成。记得将生成的 token 保存下来,因为只有在生成时可以看到。 2. 导入相关的依赖库 在 Java 代码使用 GitHub 的 API 接口需要使用相关的依赖库。这里推荐使用 org.eclipse.egit.github.core 库,可以通过 Maven 等方式进行导入。 3. 编写 Java 代码 在 Java 代码,你需要进行以下操作: - 创建一个 GitHubClient 对象,并设置 Personal access token; - 创建一个 RepositoryId 对象,表示要修改的仓库和文件; - 通过 RepositoryService 的方法获取要修改的文件内容; - 修改文件内容; - 调用 ContentService 的方法提交修改后的文件内容。 以下是修改 GitHub 文件的示例代码: ```java import org.eclipse.egit.github.core.*; import org.eclipse.egit.github.core.service.*; public class ModifyGithubFile { public static void main(String[] args) throws Exception { // 设置 Personal access token String accessToken = "your personal access token"; GitHubClient client = new GitHubClient(); client.setOAuth2Token(accessToken); // 设置要修改的仓库和文件 RepositoryId repo = new RepositoryId("github_username", "repository_name"); String path = "path/to/file"; // 获取要修改的文件内容 RepositoryService repoService = new RepositoryService(client); RepositoryContents file = repoService.getContents(repo, path); // 修改文件内容 String content = "new file content"; file.setContent(content); // 提交修改后的文件内容 ContentService contentService = new ContentService(client); contentService.updateFile(repo, path, file); } } ``` 需要注意的是,修改文件时需要提供文件的 SHA 值,用于验证提交的内容是否正确。具体可以参考 GitHub API 的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值