java - ModeShape 提供 JackRabbit 不提供的哪些功能?

标签 java comparison jackrabbit jcr modeshape

我刚刚熟悉了 Apache JackRabbit。我已经完成了一个用于文档管理的多用户存储库。

如果有人同时使用它们,你能回答这些问题吗?

  • ModeShape 是否以某种方式与 JBoss 相关联?我对 JBoss AS 或任何其他 JBoss 工具没有太多经验。我看到对 tomcat 的支持,但是很多 JBossy 的东西
  • 文档说 future 的版本应该有 UI 集成,它是遥远的 future 吗?什么样的 UI 集成会是这样?有什么东西可以使用 ModeShape,就像在带有 JackRabbit 的 Hippo CMS 的情况下一样?很遗憾Gatein 不使用它。
  • JackRabbit 在全文搜索、索引和文本内容的整体处理方面与 ModeShape 相比如何?
  • CMIS 支持如何?我看到一个 Unresolved 问题 MODE-650 . Jackrabbit 受 OpenCMIS (Apache chmistry) 支持,即使在不久的将来也会支持次要类型。
  • 支持/实用程序库怎么样,为了开发人员在使用节点时的方便

  • 我对任何其他比较评论感兴趣,谢谢

    最佳答案

    我可以回答你的一些问题。完全披露:我是 ModeShape 的创始人和项目负责人。

    简而言之,ModeShape是一个轻量级、可嵌入、可扩展的开源 JCR 存储库实现,它联合和统一来自多个系统的内容,包括文件系统、数据库、数据网格、其他存储库等。您可以使用 JCR API 访问您已有的信息,或者像传统的 JCR 系统一样使用它。

    以下是 ModeShape 的一些高级功能:

  • 支持所有 JCR 2.0 所需的特性:存储库获取;验证;阅读/导航;询问;导出;节点类型发现;权限和能力检查
  • 支持大部分 JCR 2.0 可选功能:写入;进口;观察;工作空间管理;版本控制;锁定;节点类型管理;同名 sibling ;可排序的子节点;可共享节点;和 mix:etag , mix:createdmix:lastModified具有自动创建属性的 mixin。
  • 支持 JCR 1.0 和 JCR 2.0 语言(例如 XPath、JCR-SQL、JCR-SQL2 和 JCR-QOM)以及基于 JCR-SQL2 全文搜索表达式语法的全文搜索语言。此外,ModeShape 支持 JCR-SQL2 的一些非常有用的扩展:
  • 条件中的子查询
  • 设置操作(例如,“UNION”、“INTERSECT”、“EXCEPT”,每个都有可选的“ALL”子句)
  • 限制和偏移
  • 重复删除(例如,“SELECT DISTINCT”)
  • 附加深度、引用和路径标准
  • 设置和范围标准(例如,“IN”、“NOT IN”和“BETWEEN”)
  • 算术标准(例如,“SCORE(t1) + SCORE(t2)”)
  • 全外连接和交叉连接
  • 更多
  • 从多个存储选项中进行选择,包括 RDBMS(通过 Hibernate)、数据网格(例如,Infinispan)、文件系统,或根据需要编写自己的存储连接器。
  • 使用 JCR API 访问现有服务、文件系统和存储库中的信息。 ModeShape 连接器将外部信息投影到 JCR 存储库中,从而可能将来自多个系统的信息联合到一个工作区中。也可以编写自定义连接器来访问其他系统。
  • 上传文件并让 ModeShape 自动解析和派生代表这些文件中内容的结构化信息。派生的信息存储在存储库中,可以像任何其他内容一样在其中查询和访问。 ModeShape 支持多种开箱即用的文件类型,包括:CND、XML、XSD、WSDL、DDL、CSV、ZIP/JAR/EAR/WAR、Java 源、Java 类文件、Microsoft Office、图像元数据和Teiid模型和 VDB。为其他文件类型编写音序器也很容易。
  • 自动化和可扩展的 MIME 类型检测,使用文件扩展名的开箱即用检测和使用 Aperture 的基于内容的检测.
  • 可扩展的文本提取框架,使用 Tika 对 Microsoft Office、PDF、HTML、纯文本和 XML 文件提供开箱即用的支持.
  • 使用 JGroups 的简单集群。
  • 将 ModeShape 嵌入到您自己的应用程序中。
  • RESTful API(需要部署到应用服务器中)。

  • 这些只是其中的一些亮点。有关这些和其他 ModeShape 功能的详细信息,请参阅 ModeShape documentation .

    现在,这里是您编号问题的一些具体答案:
  • ModeShape 托管在 JBoss.org 并使用/集成其他 JBoss 技术,因为我们认为最好重用同类最佳库。但是 ModeShape 绝对与 JBoss 应用服务器无关 . ModeShape 可以以与其他 JCR 实现(通常嵌入到 Web 应用程序)大致相同的方式在其他应用程序服务器上使用。另外, ModeShape 可以嵌入到任何应用程序中 ;毕竟,它只是一个普通的 Java 库。它甚至使用 SLF4J,以便 ModeShape 日志消息可以发送到应用程序的日志框架。

    现在,话虽如此,我们确实让 deploy ModeShape to a JBoss AS installation 变得更容易了。使用一个简单的工具包:只需解压缩,稍微自定义配置(取决于您的需要),然后启动您的应用服务器。 ModeShape 将作为应用程序服务器内的服务运行,允许您部署的应用程序简单地查找、使用和共享存储库。甚至可以使用 JBoss AS 控制台监控 ModeShape。
  • 我相信您指的是我们开发存储库可视化工具(远不及成熟的 CMS 系统)的计划。这方面的工作最近才刚刚开始,我们欢迎任何见解、功能要求以及与我们合作的兴趣。我知道 Magnolia 可以在 ModeShape 之上运行,但不确定其他 CMS 应用程序是否能够做到这一点。 JBoss Enterprise Data Services (EDS) platform还包括 ModeShape 并将其用作元数据存储库。 JBoss Business Rules Management System也可以使用 ModeShape 作为其 JCR 存储库。
  • ModeShape 和 Jackrabbit 都在内部使用 Lucene 进行全文搜索和查询。在这方面,它们非常相似。当然,ModeShape 对搜索和查询解析和执行的实现与 Jackrabbits 不同,实际上是由实现 MetaMatrix 面向关系的集成和联合引擎(现在是 JBoss EDS 的一部分)的一些人编写的。因此,ModeShape 对其每种查询语言都有一个单独的解析器,但之后所有查询的所有验证、计划、计划和执行都以相同的方式完成。我们为我们的查询引擎的功能和性能感到非常自豪!
  • ModeShape 没有连接到其他 CMIS 系统的连接器,但正如您指出的那样,它目前正在运行 ( MODE-650 )。我们还希望与 Apache Chemistry 团队合作,以确保 JCR 适配器与 ModeShape 配合使用。我们只是没有时间这样做。
  • ModeShape 确实有一个 JcrTools可能证明有用的实用程序类。但是在 JCR API 之上编写的任何实用程序类都应该可以正常工作。

  • 希望有帮助!

    关于java - ModeShape 提供 JackRabbit 不提供的哪些功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6392815/

    相关文章:

    python - 在 Python 中处理意外值

    Php自定义日期格式及比较

    java - zip 文件与 jackrabbit

    java - 有没有办法在java中检查变量的标签?

    java - 解码时忽略命名空间 : JAXB

    java - 如何在java中将超过9的字符放在上标中?

    java - 如何将 MySQL 持久性管理器与 Jackrabbit 独立使用

    java - 使用 Schedulers.single() 在 Reactor StepVerifier 中重新抛出断言错误

    asp.net - MOSS 与传统 ASP.NET

    java - 如何将图像存储到 jackrabbit 并将这些图像传递到 HTML 页面?