Apache TomEE社区发布了 TomEE 7.1,这是一个重大的升级,提供了 Java SE 8 和MicroProfile 1.2 支持。
历史
2011 年,David Blevins当时受雇于 IBM,领导一个志愿者团队创建了 TomEE,一个“Tomcat”和“JavaEE”组成的复合产品,并在 JavaOne 2011 大会上进行了发布。TomEE 包含OpenWebBeans、OpenEJB和OpenJPA等 Apache 组件。TomEE 的核心价值观:小巧、有保证的 Tomcat。Blevins 于 2012 年离开 IBM 创建了Tomitribe,该公司的使命是:
为社区和所有与 TomEE 相关的一切提供支持。我们希望为开发者提供工作岗位,为客户提供支持,教人们使用 TomEE、开源和 JavaEE,并为社区中每个人的成功做出贡献。我们相信,开源是一个生态系统,这个生态系统中的每一个人都可以发挥作用,从开源项目的开发者到使用它的公司。
Blevins 目前是 Tomitribe 创始人兼首席执行官。
TomEE 7.1
Tomitribe 提供了一种便捷的方式来升级到这个最新版本,关于新特性和升级的更多细节可以在发布说明中找到。
一年前发布的MicroProfile 1.2引入了JWT-Auth、Fault Tolerance、Health Check和Metrics等 API。作为 Tomitribe 培训开发人员承诺的一部分,Tomitribe 提供了一份 JWT-Auth 的介绍和教程,并在 TomEE 7.1 发布后提供了一份Fault Tolerance的介绍和教程。
TomEE 8
TomEE 7.1 支持 Java 8,是作为 TomEE 8 正式版本的过渡版本,后者将兼容 Java EE 8/Jakarta EE 和MicroProfile 1.3。随着TomEE 8 M1的发布,TomEE 8 正式版本的开发加速了。
这个里程碑版本中的特性包括首次支持JSON-B(JSR-367)和 Java EE Security(JSR-375)。虽然没有在 M1 版本中实现,但是 Java EE Security 规范已经定义好,将在未来的里程碑版本中实现。TomEE 8 M1 还包括以下更新:CDI 2.0(JSR-365)、JAX-RS 2.1(JSR-370)、Servlet 4.0(JSR-369)、Bean Validation 2.0(JSR-380)和 JSF(JSR-372)。
其他项目
Tomitribe 还提供了许多其他的项目,包括TomEE/JAX-RS入门项目,这是作为 TomEE 的介绍。这个简单的 JAX-RS 演示应用是一个颜色建模程序。复制完库后,只需执行以下 Maven 命令:
服务器启动后,可以在命令行或浏览器上执行以下操作:
虽然这个演示应用程序已经使用了四年,但已经针对 TomEE 7.1 进行了更新。
Blevins 向 InfoQ 介绍了这个最新版本。
InfoQ:在 2011 年的时候,是什么启发您创建了 TomEE?
David Blevins:创建的 TomEE 的动机有许多,很难选择一个。在很大程度上,是为了改变这个行业。Tomcat 占据了 50%的市场份额,其他所有的 Java EE 应用服务器占据了其余的 50%。为历来讨厌 Java EE 的 Tomcat 社区创建 Java EE 实现有一个明确的目标,就是为了团结业界。另一个方面是为了将企业重新定义为“小型”企业——“小”一百倍。很明显,这个行业正在脱“大”向“小”,Java EE 中需要有人来推动这个方向的发展,开发一个专注于完善“小”的实现。最后,OpenEJB 社区有一种难以置信的热情,在 EJB 多年来备受攻击的情况下,它成了成功改变最顽固思想的不懈动力。在创建 TomEE 之前的两年里,我们在世界各地会面,这里一周,那里一周。每次我们相遇,我们的梦想都变得越来越强烈,直到 TomEE 最终诞生。
InfoQ:与其他中间件应用程序服务器相比,TomEE 有什么独特之处?
Blevins:我们不是“应用服务器”的传统粉丝。我们喜欢 public-static-void-main。如果它不能用一秒钟左右的开销在 IDE 中运行一个简单的单元测试,我们就对它失去耐心了。这是底线。TomEE 可以作为一个传统的应用服务器,但我和其他人通常是在没有 IDE 插件和独立进程的情况下以嵌入的方式运行它。TomEE JAX-RS 入门项目展示了一个简单的 JUnit/Arquillian 测试,它使用 TomEE Embedded,运行时间为 3-5 秒。运行 mvn tomee:exec,你就可以得到应用程序的 uber-jar 版本。
对 TomEE 用户来说,Tomcat 的行业投资是一个独特而重要的优势。所有 Java 相关的工具和云平台都提供某种形式的 Tomcat 支持。TomEE 只是 Tomcat 的另一个版本,它通常是开箱即用的。
TomEE 比较小,只有 30-40MB,2-5 秒即可启动,内存占用不足 50MB,并已在 Amazon AWS t3.micro 实例上获得认证。它无疑是 2011 年最轻量级的 Java EE 6 应用服务器。根据Antonio Goncalves在2016年对Java EE 7服务器的测试,TomEE 仍处于领先地位。我们要看看谁将获得 Java EE 8 的这个头衔。每个人都在迎头赶上,这真的很棒。
InfoQ:TomEE 8 预计会在什么时候发布?
Blevins:给出时间表是 Apache 开源项目的禁忌,所以我的回答是非正式的。我认为,Java 11 的兼容性工作至少会持续几周的时间,并在这之后发布 TomEE 8 的另一个里程碑版本。在那之后,我们会讨论我们希望新开源但尚未发布的 Jakarta EE 8 TCK 开始时在哪个 TomEE 版本上运行。可能的情况是,我们会在 1 月份发布 TomEE 8 最终版,然后将 Jakarta EE 8 的目标定为 TomEE 8.1。
InfoQ:您关注IBM最近宣布收购红帽了吗?这可能会对 TomEE、Thorntail、OpenLiberty、Payara 和 MicroProfile 产生怎样的影响?
Blevins:就开源来说,我们对行业的潜在影响远远超过供应商,因此,如果我们想要这些项目好,它们就会好。难的是自我意识。
去年 Equifax 被黑,丢失了 1.4 亿社会保障号码,损失了 42 亿美元的市值,然后就指责 Struts,我在 Apache Struts 社区的很多朋友特别沮丧。攻击不是物质上的。已经修复漏洞的、苦苦挣扎的开源项目也不是物质上的。故事是这样的,我们作为一个行业,怎么样反复导致了自己的失败,因为我们不懂,我们拥有自己使用的开源项目,它是我们的责任。
如果你在公司里使用开源项目,有自己的预算,但并没有把其中一部分预算用于你使用的开源项目,那么你面对的所有问题都是自己造成的。你让高管在对你而言至关重要的东西上投资不足。这是一个冒险的选择,公司任何经济上的损失都会算在你头上。
聪明点。拿出你的计算器,算一下,迁移需要花费多少时间和精力。把那些时间和精力按照一定的比例每年投入到你使用的开源项目上,绝对很好。
多好?我们再看下 Struts。Equifax 被黑后 12 个月,Indeed.com 显示,企业已经发布了 1721 个要求 Struts 经验的就业机会,保守估计,人均 8 万美元,则有约 1.37 亿美元计划花在 Struts 上。如果这个行业把中 5%定向投到 Struts 上,则有 685 万美元。因此,只需从每个招聘 Struts 工程师的岗位上拿出 3980 美元投入项目本身,就相当于从代码中节省了 85.6 个全职员工。哪个更好,一个全职员工 8 万美元,还是把 85 个全职员工 4000 美元?
我们不仅不善于开源,也不擅长数学。我们有大量的开源开发人员。我们需要更多的开源高管。
如果你担心 OpenLiberty 或 Thorntail,在出现任何整合之前,你有三年左右的时间可以开始投入。你的行动将决定会发生什么,所以如果你没有“投票”,那么未来就不要抱怨。如果你认为这个行业需要更多的“红帽”,即使是把少量的业务转向 Payara 和 Tomitribe,我保证你在两年内就会惊讶于其行业级影响。
InfoQ: TomEE 的路线图是什么样子,尤其是在 MicroProfile 2.0 支持方面?
Blevins:我认为,MicroProfile 2.0 的工作有很大的几率在 TomEE 8 的早期完成。MicroProfile 1.4 和 2.0 在功能上相同,TomEE 目前仅支持到 1.4。现在,只有一个专门的 TomEE 发行版包含 MicroProfile 技术。它没有包含在 TomEE Plus 或 Plume 中。我希望有个好机会把那些都添加到 Plus 和 Plume 中,或者我们可能会看到另一个 TomEE 发行版,包含所有 Java EE 和 MicroProfile 支持。这只会比现在的 TomEE Plus 大 4MB。我希望看到一个在新的 Amazon AWS t3.nano 实例上经过 Jakarta EE 8 认证的 TomEE。
人们应该可以预见到整体活动的显著增多。在过去的 12 个月里,TomEE 社区增加的提交者比前六年的总和还要多,这是新版本和社区活跃的主要原因。随着 MicroProfile 的蓬勃发展和 Jakarta EE 的兴起,最终,我们行业的各个方面将再次开始变得强大,包括 TomEE 在内。
现在是令人兴奋的时刻。是时候投入进来了。TomEE 社区的未来一片光明。
相关资源
TomEE:升级很简单!(Jonathan Gallimore,2018 年 9 月 6 日)
TomEE:7.1版本概述(Roberto Cortez,2018 年 9 月 10 日)
MicroProfile JSON Web Token (JWT) (Jean-Louis Monteiro,20018 年 9 月 17 日)
TomEE:MicroProfile JWT教程(Cesar Hernandez,2018 年 9 月 20 日)
MicroProfile Fault Tolerance第二部分(Bruno Baptista,2018 年 9 月 27 日)
MicroProfile Fault Tolerance注解(Bruno Baptista,2018 年 10 月 1 日)
TomEE:MicroProfile Fault Tolerance教程(Bruno Baptista,2018 年 10 月 4 日)
TomEE:TomEE 8 M1发布(Roberto Cortez,2018 年 11 月 5 日)
查看英文原文:Apache Releases TomEE 7.1 with Support for Java 8 and MicroProfile 1.2
评论