我们正在研究基于Java的CMS(是的Java,我们正在远离脚本语言)。
任何人都有使用Magnolia和Jahia社区版本的经验,制作模块较容易,您的总体经验如何?
对于内容编辑
对于开发人员(制作模块)
处理变更请求有多容易(您可以将其添加到页面foo / bar中)
rvt
最佳答案
免责声明:我是Jahia CTO。我希望这个答案可以被StackOverflow标准接受,否则请立即让我来,我会对其进行改进。我首先想作为对答案的直接评论来回答,但这似乎是不可能的。
我只想解决GKrost列出的缺点,因为其中有些不再完全准确(因为这是写的,至少发布了一个主要的Jahia版本),而另一些则不正确。
Jahia缺点:
JCR似乎是大型网站(超过10000个页面,> 50000个内容元素)的瓶颈,尤其是在使用mysql时。捆绑的Java-In-Memory-DB更快。
实际上,JCR与此无关,因为它只是一个规范。您正在谈论底层的JCR实现,在本例中是Jackrabbit。尽管确实很难击败像HSQLDB(http://hsqldb.org)这样的内存数据库的性能,但也不建议在生产环境中使用这种数据库,因为它不是为企业部署(例如集群)而设计的环境。不建议这样做的另一个原因是,它将在与CMS相同的JVM上耗尽宝贵的堆空间,这将随着数据的增长而出现问题。
至于大小限制,10000个以上的页面确实是一个很大的站点,大多数安装很少达到此大小,但是如果它们这样做,则存在多种分发数据的方式。 10000+也是一个限制,主要适用于Jahia 6.5和较早版本的CMS,但现在很有可能超过该限制。至于50000个内容元素,此限制是不正确的。我们已经部署了具有更多内容的安装,但是,确实,内容设计结构对于确保不会引入瓶颈很重要,但是对于其中的任何CMS或什至必须适当分片的技术(例如ElasticSearch)都是如此设法避免性能问题。
Jahias Lucene版本已过时
Jahia的默认Lucene版本实际上是底层Jackrabbit JCR实现所使用的版本。从允许开发OSGi模块的Jahia 7开始,可以在您自己的捆绑包中嵌入另一版本的Lucene甚至ElasticSearch,而不会干扰JCR后端所需的版本。据我所知,这在非OSGi CMS(例如Magnolia)中是不可能的(但对于使用Apache Sling(基于OSGi的Web框架)的Adobe来说,这是不可能的)。
在开发自己的应用程序/模块时,您必须使用JSP,而不能使用JSF(Jahia计划集成Spring Webflow,但您永远不知道何时以及何时...)
实际上,您可以使用JSP / Groovy / Velocity或Java脚本API支持的任何语言。 Spring Webflow已集成在Jahia 7中,该版本现已可用,并且所有管理模块都使用Spring WebFlow(http://www.jahiaone.com/home/program/session/MVC-in-Jahia7-Using-SpringWebFlow)进行了完全开发。对于JSP,我们提供了强大的标记库,这些标记库使我们可以轻松开发视图而无需任何脚本,因为我们自己的大多数视图都不包含Java代码。 JSF集成也应该可行,但是不是开箱即用的,并且需要对如何将JSF集成到现有servlet控制器中有很好的了解。
支持是减慢反应时间的方法
这是不正确的。我们的SLA非常清楚,我们一直尊重它们:http://www.jahia.com/services/technical-assistance。但是,总支持时间还取决于客户的答复速度。
有时需要数周的时间才能对重要错误进行修补程序/补丁
两年前就是这种情况,但是从那时起,我们就建立了每月一次的修补程序发布系统,并且在出现安全问题的情况下可以加快这种情况。
无法导出/导入历史版本;唯一的方法是从基础数据库手动复制内容
这确实是设计使然。大多数导入/导出操作被设计为不处理版本,因为它们最常用于将预生产环境迁移到生产中,或相反。并不是说,如果在导入同一对象时存在内容对象的版本,则不会删除它们。虽然可以使用JCR导出版本,但是开箱即用没有提供。为了进行备份,我们建议在系统级别进行备份。
Jahia旨在作为集群工作,但无法复制用户会话。这意味着,当用户通过身份验证的集群节点掉线时,用户必须重新登录。
这不再是事实,而是过去。在Jahia 6.5之前,我们的会话无法序列化,但情况不再如此。因此,这主要是对应用程序服务器配置的限制,默认情况下,该服务器未配置为复制会话。在现实生活中,这并不是(很多)问题,因为群集节点故障不应该发生,并且在发生故障时会受到较小的限制。
群集节点必须共享数据库和文件系统。您不能群集数据库。 Jahia不支持(技术上)MySQL Cluster。 (背景:他们将索引放在BLOB / CLOB上,而MySQL Cluster不支持该索引)
我也不认为这是正确的。我只是仔细检查了我们在MySQL上设置的所有索引,但没有在BLOB / TEXT上设置任何索引,也没有对它们的任何长版本进行设置。同样,在我们的大多数集群部署中,客户通常更喜欢使用Oracle,因为Oracle已经针对此类解决方案而更加成熟。 Jahia还支持其他强大的数据库,例如PostgreSQL或Microsoft SQL Server,它们也支持群集。
常规文档还有改进的空间,JavaDoc / Source文档基本上不存在
我同意这一点,文档总是可以改进的,我们正在不断地努力。我们的JavaDocs可在这里找到:http://downloads.jahia.com/downloads/jahia/digitalfactory7.0.0/digital-factory-root-7.0.0.0-javadoc/,并且源代码文档是我们一直致力于的工作。
弱势社区; jahia论坛中的大多数答案来自jahia员工。
但是,大多数情况是这样,但是与此同时,我们的许多集成来自合作伙伴,他们很不幸没有时间或机会参与。这就是为什么Jahia员工会在闲暇时间回答问题,但大多数问题都能得到答案,这毕竟是一件好事吗,您不认为吗?当然,我们一直在寻找扩展社区的新方法,而我们的首次用户大会JahiaOne超过了我们最乐观的预测。在论坛上,我认为增加每月摘要将是一件好事,因为当前没有用户回头的动力。
没有可用的公共模板(除了来自jahia的模板)
那里没有评论。我们提供了一些默认模板,这些模板尽可能通用且完整,但是我们欢迎您提供所有帮助。
关于comparison - 拥有(+6个月) Jade 兰和贾伊亚州的经验,哪个更好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4752981/