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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6392815/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 15:43:26  来源:igfitidea点击:

What does ModeShape offer that HymanRabbit doesn't?

javacomparisonHymanrabbitjcrmodeshape

提问by lisak

I just familiarized myself with Apache HymanRabbit. I've done a little multi-user repository for document management.

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

If anybody used both of them, could you please answer these questions ?

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

  1. Is ModeShape somehow linked to JBoss ? I don't have much experience with JBoss AS or any other JBoss tools. I see a support for tomcat, but a lot of JBossy stuff

  2. Documentation says that future releases should have UI integration, is it far future ? What kind of UI integration would it be ? Is there something that uses ModeShape as it is in case of Hippo CMS with HymanRabbit ? It's a shame that Gatein doesn't use it.

  3. How does HymanRabbit compare to ModeShape in regard to fulltext search, indexing and the overall processing of text content ?

  4. How about CMIS support ? I see an unresolved issue MODE-650. Hymanrabbit is supported by OpenCMIS (Apache chmistry), even for secondary types in near future.

  5. What about support/utils libraries, for developer convenience when working with Nodes

  1. ModeShape 是否以某种方式与 JBoss 相关联?我对 JBoss AS 或任何其他 JBoss 工具没有太多经验。我看到了对 tomcat 的支持,但是很多 JBossy 的东西

  2. 文档说未来的版本应该有 UI 集成,它是遥远的未来吗?什么样的 UI 集成会是这样?有没有什么东西可以使用 ModeShape,就像在带有 HymanRabbit 的 Hippo CMS 的情况下一样?很遗憾Gatein 不使用它。

  3. HymanRabbit 在全文搜索、索引和文本内容的整体处理方面与 ModeShape 相比如何?

  4. CMIS 支持如何?我看到一个未解决的问题MODE-650。Hymanrabbit 受 OpenCMIS (Apache chmistry) 支持,即使在不久的将来也会支持次要类型。

  5. 为了开发人员在使用 Nodes 时的方便,support/utils 库怎么样

I'm interested in any other comparison comments, thank you

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

回答by Randall Hauch

I can answer some of your questions. Full disclosure: I'm the founder and project lead for ModeShape.

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

Briefly, ModeShapeis a lightweight, embeddable, extensible open source JCR repository implementation that federates and unifies content from multiple systems, including files systems, databases, data grids, other repositories, etc. You can use the JCR API to access the information you already have, or use it like a conventional JCR system.

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

Here are some of the higher-level features of ModeShape:

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

  • Supports all of the JCR 2.0 required features: repository acquisition; authentication; reading/navigating; query; export; node type discovery; permissions and capability checking
  • Supports most of the JCR 2.0 optional features: writing; import; observation; workspace management; versioning; locking; node type management; same-name siblings; orderable child nodes; shareable nodes; and mix:etag, mix:createdand mix:lastModifiedmixins with autocreated properties.
  • Supports the JCR 1.0 and JCR 2.0 languages (e.g., XPath, JCR-SQL, JCR-SQL2, and JCR-QOM) plus a full-text search language based upon the JCR-SQL2 full-text search expression grammar. Additionally, ModeShape supports some very useful extensions to JCR-SQL2:
    • subqueries in criteria
    • set operations (e.g, "UNION", "INTERSECT", "EXCEPT", each with optional "ALL" clause)
    • limits and offsets
    • duplicate removal (e.g., "SELECT DISTINCT")
    • additional depth, reference and path criteria
    • set and range criteria (e.g., "IN", "NOT IN", and "BETWEEN")
    • arithmetic criteria (e.g., "SCORE(t1) + SCORE(t2)")
    • full outer join and cross joins
    • and more
  • Choose from multiple storage options, including RDBMSes (via Hibernate), data grids (e.g., Infinispan), file systems, or write your own storage connectors as needed.
  • Use the JCR API to access information in existing services, file systems, and repositories. ModeShape connectors project the external information into a JCR repository, potentially federating the information from multiple systems into a single workspace. Write custom connectors to access other systems, too.
  • Upload files and have ModeShape automatically parse and derive structured information representative of what's in those files. This derived information is stored in the repository, where it can be queried and accessed just like any other content. ModeShape supports a number of file types out-of-the-box , including: CND, XML, XSD, WSDL, DDL, CSV, ZIP/JAR/EAR/WAR, Java source, Java classfiles, Microsoft Office, image metadata, and Teiidmodels and VDBs. Writing sequencers for other file types is also very easy.
  • Automated and extensible MIME type detection, with out-of-the-box detection using file extensions and content-based detection using Aperture.
  • Extensible text extraction framework, with out-of-the-box support for Microsoft Office, PDF, HTML, plain text, and XML files using Tika.
  • Simple clustering using JGroups.
  • Embed ModeShape into your own application.
  • RESTful API (requires deployment into an application server).
  • 支持所有 JCR 2.0 所需的特性:存储库获取;验证; 阅读/导航;询问; 出口; 节点类型发现;权限和能力检查
  • 支持大部分 JCR 2.0 可选功能:写入;进口; 观察;工作空间管理;版本控制;锁定; 节点类型管理;同名兄弟姐妹;可排序的子节点;可共享的节点;和mix:etag,mix:created以及mix: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(需要部署到应用服务器中)。

These are just some of the highlights. For details on these and other ModeShape features, please see the ModeShape documentation.

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

Now, here are some specific answers to your numbered questions:

现在,这里是您编号问题的一些具体答案:

  1. ModeShape is hosted at JBoss.org and uses/integrates with other JBoss technology, because we thought it better to reuse the best-of-breed libraries. But ModeShape definitely is not tied to the JBoss Application Server. ModeShape can be used on other application servers in much the same way as other JCR implementations (typically embedded into a web application). Plus, ModeShape can be embedded into any application; it is, after all, just a regular Java library. It even uses SLF4J so that ModeShape log messages can be sent to the application's logging framework.

    Now, having said that, we do make it easier to deploy ModeShape to a JBoss AS installationwith a simple kit: simply unzip, customize the configuration a bit (depending upon your needs), and start your app server. ModeShape will run as a service within the app server, allowing your deployed apps to simply lookup, use and share repositories. ModeShape can even be monitored using the JBoss AS console.

  2. I believe you're referring to our plans to develop a repository visualization tool (much less than a fully-fledged CMS system). Work on that has just recently begun, and we'd welcome any insight, requests for functionality, and interest in collaborating with us. I know that Magnolia can be run on top of ModeShape, but not sure if other CMS apps are able to do this. The JBoss Enterprise Data Services (EDS) platformalso includes ModeShape and uses it as a metadata repository. The JBoss Business Rules Management Systemcan also use ModeShape as its JCR repository.

  3. ModeShape and Hymanrabbit both internally use Lucene for full-text search and querying. In that regard, they're pretty similar. Of course, ModeShape's implementation of search and query parsing and execution is different than Hymanrabbits, and was actually written by some of the same folks that implemented the MetaMatrix relationally-oriented integration & federation engine (now part of JBoss EDS). As a result, ModeShape has a separate parser for each of its query languages, but after that all validation, planning, planning, and execution of all queries is done in the same way. We're very proud of the capabilities and performance of our query engine!

  4. ModeShape does not have a connector to other CMIS systems, but as you point out that's currently in-work (MODE-650). We'd also like to work with the Apache Chemistry team to make sure the JCR adapter works with ModeShape. We've just not had the time to do so.

  5. ModeShape does have a JcrToolsutility class that may prove useful. But any utility class written on top of the JCR API should work just fine.

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

    现在,话虽如此,我们确实使用一个简单的工具包使将 ModeShape 部署到 JBoss AS 安装变得更容易:只需解压缩,稍微自定义配置(取决于您的需要),然后启动您的应用程序服务器。ModeShape 将作为应用服务器内的服务运行,允许您部署的应用程序简单地查找、使用和共享存储库。ModeShape 甚至可以使用 JBoss AS 控制台进行监控。

  2. 我相信您指的是我们开发存储库可视化工具(远不及成熟的 CMS 系统)的计划。这方面的工作最近才刚刚开始,我们欢迎任何见解、功能要求以及与我们合作的兴趣。我知道 Magnolia 可以在 ModeShape 之上运行,但不确定其他 CMS 应用程序是否能够做到这一点。在JBoss企业数据服务(EDS)平台还包括振形,并用它作为一个元数据信息库。在JBoss的业务规则管理系统还可以使用振形为JCR存储库。

  3. ModeShape 和 Hymanrabbit 都在内部使用 Lucene 进行全文搜索和查询。在这方面,它们非常相似。当然,ModeShape 对搜索和查询解析和执行的实现与 Hymanrabbits 不同,实际上是由实现 MetaMatrix 面向关系的集成和联合引擎(现在是 JBoss EDS 的一部分)的一些人编写的。因此,ModeShape 对其每种查询语言都有一个单独的解析器,但之后所有查询的所有验证、计划、计划和执行都以相同的方式完成。我们为我们的查询引擎的功能和性能感到非常自豪!

  4. ModeShape 没有连接到其他 CMIS 系统的连接器,但正如您指出的那样,它目前正在运行(MODE-650)。我们还希望与 Apache Chemistry 团队合作,以确保 JCR 适配器与 ModeShape 配合使用。我们只是没有时间这样做。

  5. ModeShape 确实有一个可能有用的JcrTools实用程序类。但是在 JCR API 之上编写的任何实用程序类都应该可以正常工作。

Hope that helps!

希望有帮助!

回答by Mark Carter

Documentation of modeshape seems better. The folks at Hymanrabbit provide limited documentation, when compared to other apache projects. I suppose that if you need fancy (enterprise) features, they want you to pay for it. Also note that you are almost forced to used a sql database as backend. Because almost all other backends are 'not intended for production use'. Compare to modeshape who just comes out and says it:

模式形状的文档似乎更好。与其他 apache 项目相比,Hymanrabbit 的人提供的文档有限。我想如果您需要花哨的(企业)功能,他们希望您为此付费。另请注意,您几乎被迫使用 sql 数据库作为后端。因为几乎所有其他后端都“不适合生产使用”。和刚出来说的modeshape比较一下

This is in fact the main purpose of ModeShape: provide a JCR implementation that provides access to content stored in many different kinds of systems, including the federation of multiple systems. A ModeShape repository isn't yet another silo of information, but rather it's a JCR view of the information you already have in your environment: files systems, databases, other repositories, services, applications, etc. ModeShape can help you understand the systems and information you already have, through a standard Java API

这实际上是 ModeShape 的主要目的:提供一个 JCR 实现,该实现提供对存储在许多不同类型系统中的内容的访问,包括多个系统的联合。ModeShape 存储库不是另一个信息孤岛,而是您环境中已有信息的 JCR 视图:文件系统、数据库、其他存储库、服务、应用程序等。 ModeShape 可以帮助您了解系统和您已经拥有的信息,通过标准的 Java API

I'd rather prefer this clarity than letting people search their doc and google for information that doesn't exist.

我更喜欢这种清晰度,而不是让人们搜索他们的文档和谷歌搜索不存在的信息。

回答by Feras

The comparison above is outdated; Now you need to compare modeshare with Hymanrabbit oak. http://Hymanrabbit.apache.org/oak/

上面的比较已经过时了;现在您需要将 modeshare 与 Hymanrabbit Oak 进行比较。 http://Hymanrabbit.apache.org/oak/

Hymanrabbit Oak is an effort to implement a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications.

Hymanrabbit Oak 致力于实现可扩展且高性能的分层内容存储库,以用作现代世界级网站和其他要求苛刻的内容应用程序的基础。