11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

Thorntail 2.2.0 提供从 WildFly Swarm 自动迁移的特性

  • 2018-09-28
  • 本文字数:0 字

    阅读完需:约 1 分钟

自 6 月底宣布把 WildFly Swarm 2018.5.0改名 Thorntail 2.0.0 以来,Red Hat 在 8 月中旬以后的三个周里发布了 Thorntail  2.1.0 版本和 2.2.0 版本。除了许多 Bug 修复外,尤其是和 MicroProfile 相关的,新特性还包括:

  • 符合 MicroProfile 1.3
  • 自动迁移过程

由于修改了 OpenTracing、Jaeger 及日志消息代码,Red Hat 记录了可能带来的一些代码破坏。

背景

传统的 WildFly Swarm 以 Red Hat 的开源应用程序服务器 WildFly 为基础。和传统的单体应用程序服务器一样,部署在 WildFly 上面的应用程序如下图所示。

另一方面,WildFly Swarm 是 WildFly 的一个“解构”版本,开发人员只需要为打包成 UberJar 运行的应用程序选择所需的 API。下图的应用程序仅使用了 JAX-RS。

Thorntail 2.0.0

在最近接受 InfoQ采访时,对于改名,Red Hat 资深咨询工程师Bob McWhirter 指出:

虽然“WildFly Swarm”这个名字已经使用多年,但我们注意到,“Swarm”已经被用烂了,许多公司和项目都在用它。此外,随着我们把项目迁移到一个新的架构,在名字中包含“WildFly”开始变得没有意义。在开始的时候,我们其实是核心 WildFly 项目的一个扩展,但是,随着项目逐步成熟,我们需要自己的标识。出于这两个原因,我们决定起一个新名。

在名称变更的同时,Red Hat 放弃了最近比较流行的版本命名格式YYYY.MM.VV,回到了更为传统的命名格式major.minor.micro。因此,就从 WildFly Swarm 2018.5.0 变成了 Thorntail 2.0.0。

根据 Red Hat 的文档,把一个 Maven 项目从 WildFly Swarm 迁移到 Thorntail 的过程如下:

  • groupId中任何对org.wildfly.swarm的引用改成io.thorntail
  • 修改对 WildFly Swarm 版本的所有引用,如2018.5.02.0.0.Final
  • artifactId中任何对wildfly-swarm-plugin的引用改成thorntail-maven-plugin
  • 生成的 UberJar 包后缀由swarm.jar改成-thorntail.jar
  • Maven 插件名称从wildfly-swarm:run改成thorntail:run

因此,下面的 WildFly Swarm Java 和 Maven 命令:

复制代码
$ java -jar target/demo-0.1.0-swarm.jar
$ mvn wildfly-swarm:run

变成了下面的 Thorntail 命令:

复制代码
$ java -jar target/demo-0.1.0-thorntail.jar
$ mvn thorntail:run

Thorntail 2.1.0

Thorntail 通过 SmallRye 保持了与 MicroProfile  1.3 的完全一致。SmallRye 是一个社区驱动的新组织,提供 MicroProfile 规范的共享实现。 Ken Finnigan 是 Red Hat 的高级首席软件工程师,他发起成立了 SmallRye。在 Red Hat 最近发表的一篇博文中,他写道:

MicroProfile 发展迅速,从两年前宣布以来已经有了很大的发展。跟踪规范的快速发展以及与之匹配的实现需要所有供应商付出大量的精力,因此,Ken 提议,把这些实现工作的公共部分置入一个供应商无关的 MicroProfile 实现中,这个项目的名字就是 SmallRye。

smallrye.io 网站上,你可以看到,这个社区驱动的项目做得很好;所有 MicroProfile 规范现在都有了它们自己的实现。

GitHub 上提供了 SmallRye 的源代码。

2.1.0 版本引入了一种 Maven 项目自动迁移机制,通过执行下面的 Maven 命令就可以把项目从 WildFly Swarm 迁移到 Thorntail:

复制代码
mvn io.thorntail:thorntail-maven-plugin:2.1.0.Final:migrate-from-wildfly-swarm

这将把所有groupIdartifactId引用从 WildFly Swarm 修改为 Thorntail,包括相应的版本号。

复制代码
<properties>
<version.wildfly.swarm>2018.5.0</version.wildfly.swarm>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>bom</artifactId>
<version>${version.wildfly.swarm}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
复制代码
<properties>
<version.wildfly.swarm>2.1.0.Final</version.wildfly.swarm>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.thorntail</groupId>
<artifactId>bom</artifactId>
<version>${version.wildfly.swarm}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

Jaeger Open Tracing 中有一项修改可能带来代码破坏。之前,把 Jaeger 添加到项目意味着把 MicroProfile 的 Open Tracing 包含进来。然而,2.1.0 版本为了更好的支持 Open Tracing,把它从 Jaeger 解耦了。正如发布声明中所说的那样:

现在,jaeger部分只用于提供跟踪程序配置。你需要手工引入跟踪部分;可以是以前的opentracing,也可以是新的microprofile-opentracing

如果你之前依赖jaeger部分,而不是opentracing部分,那么你必须显式添加对opentracing部分的依赖才能保证同样的行为。

Thorntail 2.2.0

最新版本修复了许多 Bug,尤其是和 MicroProfile APIs、 Metrics JWT OpenAPI Rest Client 相关的。

2.2.0 版本引入了新的日志消息代码,以反映 Thorntail 的命名变化。之前的WFSWARMnnnnnWFSxxxnnnnn现在成了THORNnnnnnTTxxxnnnnn。数值代码保持不变。对于使用解析器搜索旧日志代码的开发人员而言,这是唯一的破坏性修改。

新标志

他们故意延迟 Thorntail 新标志的发布。McWhirter 在最近接受InfoQ 采访时解释说:

该标志目前正由杰出的 JBoss.org 设计团队进行设计。我们希望在接下来几周内可以有几个候选。考虑到 Red Hat 峰会,我们希望在发布标志之前发布名称,再者,我们也希望推广新的 v4.x 概念验证架构。

等待已经结束,因为新标志已于 2018 年 9 月 17 日发布:

相关资源

查看英文原文: Thorntail 2.2.0 Features Automated Migration from WildFly Swarm

2018-09-28 19:00863
用户头像

发布了 1008 篇内容, 共 346.6 次阅读, 收获喜欢 330 次。

关注

评论

发布
暂无评论
发现更多内容

Flink检查点、保存点及状态恢复-13

小知识点

scala 大数据 flink

JVM 内存模型、字节码、垃圾回收面试要点

escray

学习 面试 垃圾回收 字节码

NodeX Component - 滴滴集团 Node.js 生态组件体系

滴滴普惠出行

10万奖金等你拿!2020第四届易观OLAP算法大赛火热开启

易观大数据

Vue+Springboot项目部署

ZRK

Vue 前后端分离 springboot 部署

Docker 镜像的备份恢复迁移

哈喽沃德先生

Docker 容器 微服务 镜像

5G边缘计算:开源架起5G MEC生态发展新通路

华为云开发者联盟

开源 5G 边缘计算 公有云 EdgeGallery

一文带你深扒ClassLoader内核,揭开它的神秘面纱!

我没有三颗心脏

Java ClassLoader java基础 类加载器

OpenKruise:Kubernetes 核心控制器 Plus

郭旭东

Kubernetes 云原生 OpenKruise

Redis常见问题--单线程

是老郭啊

nosql redis 线程

开发者的福音,LR.NET模块化代码生成器

Learun

Java 敏捷开发 .net core 计算机程序设计艺术 软件设计

JAVA,.NET项目开发难上手?Learun敏捷开发框架解君愁

Philips

Java 敏捷开发 .net core

向云再出发:如数据般飞驰的内蒙古

脑极体

大事情!中国限制 AI 算法出口。网友:这是要阻止XX“下跪”

程序员生活志

Spring Boot中获取配置的一些方法

Geek_416be1

Spring Boot 2

Redis 持久化--AOF

是老郭啊

redis redis持久化 aof

Spring整合WebSocket

牛初九

银行大数据新玩法,构建“一湖两库”金融数据湖

华为云开发者联盟

大数据 数据湖 FusionInsight MRS DWS

LeetCode题解:155. 最小栈,单个栈同时存储最小值,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Redis常见问题--哈希冲突

是老郭啊

哈希表 Redis项目

易观CTO郭炜:如何构建企业级大数据Ad-hoc查询引擎

易观大数据

【译】Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases 上篇

花里胡哨

分布式数据库 异步 Amazon Aurora 日志驱动

OFD版式技术深度解读:卷首语

thuni

版式文档 OFD

一个空格引发的“救火之旅” - 记一次 SOFA RPC 的排查过程

阿里云金融线TAM SRE专家服务团队

30年技术积累,技术流RTC如何成为视频直播领域的黑马?

华为云开发者联盟

云计算 AI 5G RTC 华为云

一键洞察全量SQL ,远离性能异常

华为云开发者联盟

数据库 sql 大数据 数据治理 华为云

mPaas研发流程和线上运维介绍

阿里云金融线TAM SRE专家服务团队

ios android

数字化转型需要低/零代码平台的支持

代码制造者

低代码 数字化转型 企业信息化 零代码 编程开发

消息队列之事务消息,RocketMQ 和 Kafka 是如何做的?

yes

分布式事务 RocketMQ kafak 事务消息

开发任务管理分析报告

森林

面经手册 · 第8篇《LinkedList插入速度比ArrayList快?你确定吗?》

小傅哥

Java 数据结构 面试 小傅哥 linkedlist

Thorntail 2.2.0提供从WildFly Swarm自动迁移的特性_Java_Michael Redlich_InfoQ精选文章