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

news/2024/7/5 5:09:26

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

\\
  • 符合MicroProfile 1.3\
  • 通过SmallRye实现MicroProfile\
  • 自动迁移过程\

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

\\

背景

\\

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

\\

682d98e6096464582b9d82646f0c7179.png

\\

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

\\

525ab78ced884254654c41caa5847d79.png

\\

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,包括相应的版本号。

\\
\\u0026lt;properties\u0026gt;\    \u0026lt;version.wildfly.swarm\u0026gt;2018.5.0\u0026lt;/version.wildfly.swarm\u0026gt;\    \u0026lt;maven.compiler.source\u0026gt;1.8\u0026lt;/maven.compiler.source\u0026gt;\    \u0026lt;maven.compiler.target\u0026gt;1.8\u0026lt;/maven.compiler.target\u0026gt;\\u0026lt;/properties\u0026gt;\\\u0026lt;dependencyManagement\u0026gt;\    \u0026lt;dependencies\u0026gt;\        \u0026lt;dependency\u0026gt;\            \u0026lt;groupId\u0026gt;org.wildfly.swarm\u0026lt;/groupId\u0026gt;\            \u0026lt;artifactId\u0026gt;bom\u0026lt;/artifactId\u0026gt;\            \u0026lt;version\u0026gt;${version.wildfly.swarm}\u0026lt;/version\u0026gt;\            \u0026lt;scope\u0026gt;import\u0026lt;/scope\u0026gt;\            \u0026lt;type\u0026gt;pom\u0026lt;/type\u0026gt;\        \u0026lt;/dependency\u0026gt;\    \u0026lt;/dependencies\u0026gt;\\u0026lt;/dependencyManagement\u0026gt;
\\\\
\\u0026lt;properties\u0026gt;\    \u0026lt;version.wildfly.swarm\u0026gt;2.1.0.Final\u0026lt;/version.wildfly.swarm\u0026gt;\    \u0026lt;maven.compiler.source\u0026gt;1.8\u0026lt;/maven.compiler.source\u0026gt;\    \u0026lt;maven.compiler.target\u0026gt;1.8\u0026lt;/maven.compiler.target\u0026gt;\\u0026lt;/properties\u0026gt;\\\u0026lt;dependencyManagement\u0026gt;\    \u0026lt;dependencies\u0026gt;\        \u0026lt;dependency\u0026gt;\            \u0026lt;groupId\u0026gt;io.thorntail\u0026lt;/groupId\u0026gt;\            \u0026lt;artifactId\u0026gt;bom\u0026lt;/artifactId\u0026gt;\            \u0026lt;version\u0026gt;${version.wildfly.swarm}\u0026lt;/version\u0026gt;\            \u0026lt;scope\u0026gt;import\u0026lt;/scope\u0026gt;\            \u0026lt;type\u0026gt;pom\u0026lt;/type\u0026gt;\        \u0026lt;/dependency\u0026gt;\    \u0026lt;/dependencies\u0026gt;\\u0026lt;/dependencyManagement\u0026gt;
\\

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日发布:

\\

6d46c0b96598f43f8476497fb709e44c.jpg

\\

相关资源

\\
  • WildFly Swarm用户指南\
  • 使用WildFly和WildFly Swarm正确定义服务规模(Dimitris Andreadis,2016年10月)\
  • Bob McWhirter访谈:WildFly Swarm改名为Thorntail (InfoQ,2018年5月14日)\
  • Thorntail 2.0.0.Final发布(Thorntail团队,2018年6月26日)\
  • 使用MongoDB、Hibernate OGM和Thorntail创建MicroProfile REST API (Hayri Cicek,2018年8月7日)\
  • Thorntail 2.1.0.Final发布(Thorntail团队,2018年8月15日)\
  • MVC 1.0 (JSR-371)入门 (Hayri Cicek,2018年8月20日)\
  • Thorntail 2.2.0.Final发布(Thorntail团队,2018年9月4日)\

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


http://lihuaxi.xjx100.cn/news/236160.html

相关文章

将光耦合进入单模光纤的最佳工作距离

摘要 光纤是现代光学系统中最通用的部件之一。它们最重要的特点之一是它们能够在远距离(甚至几公里)内以极低的损耗传输光能。另一方面,以一种能够达到尽可能高的效率的方式将光耦合到光纤中通常是一项非常精细的需求:例如&…

RISC-V架构上的Debian和Fedora现状

RISC-V仍然是开源/Linux用户非常感兴趣的,因为它是免版税且完全开放的CPU架构。部分原因是由于缺乏经济实惠的RISC-V硬件,限制了开发人员在这种架构上的更多工作,Linux发行版支持的RISC-V状态各不相同,但近年来至少有所改善。在上…

gsoap使用总结

WebService、soap、gsoap基本概念 WebService服务基本概念:就是一个应用程序,它向外界暴露出一个可以通过web进行调用的API,是分布式的服务组件。本质上就是要以标准的形式实现企业内外各个不同服务系统之间的互调和集成。 soap概念&#xff…

Win7安装ant

下载ant,当前版本是1.9.4。下载地址点击打开链接。 解压到你喜欢的路径下面,我喜欢D:\Program Files\apache-ant-1.9.4 配置环境变量ANT_HOME。右击计算机→选择属性→高级系统设置→“高级”标签→环境变量。 新建系统变量。变量名必须是“ANT_HOME…

Microsoft Visual Studio 2012 添加实体数据模型

Microsoft Visual Studio 2012 添加实体数据模型 1、创建一个web项目 2、添加ADO实体数据模型,如下图: 3、选择 从数据库生成,然后下一步 4、新建连接,如下图: 5、填写服务器名等,如下图: 6、选…

行为型模式:命令模式

LieBrother原文: 行为型模式:命令模式 十一大行为型模式之三:命令模式。 简介 姓名 :命令模式 英文名 :Command Pattern 价值观 :军令如山 个人介绍 : Encapsulate a request as an object,ther…

Win7编译volley成jar包

首先安装git和ant,当然jdk也是必须的。 git clone搞到volley的源码。 git clone https://android.googlesource.com/platform/frameworks/volley 此时volley的目录里面应该是这样的,没有AndroidManifest.xml文件。 cd进volley目录,敲下一…

springMVC自定义全局异常

SpringMVC通过HandlerExceptionResolver处理程序异常&#xff0c;包括Handler映射&#xff0c;数据绑定以及目标方法执行时所发生的异常。 SpringMVC中默认是没有加装载HandlerExceptionResolver&#xff0c;我们需要在SpringMVC.xml中配置 <mvc:annotation-driven /> 1、…