自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上面的应用程序如下图所示。

\\

\\

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

\\

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

\\

\\

相关资源

\\

  • 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

Thorntail 2.2.0提供从WildFly Swarm自动迁移的特性相关推荐

  1. swarm 容器_Oracle应用容器云上的WildFly Swarm

    swarm 容器 在此博客文章中,我将描述如何将打包在WildFly Swarmüber -jar中的CloudEE Duke应用程序部署到Oracle Application Container C ...

  2. forge开发_使用Forge,WildFly Swarm和Arquillian开发微服务

    forge开发 在这篇文章中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试. WildFly Swarm提 ...

  3. Oracle应用容器云上的WildFly Swarm

    在此博客文章中,我将描述如何将打包在WildFly Swarmüber -jar中的CloudEE Duke应用程序部署到Oracle Application Container Cloud . 在O ...

  4. 使用Forge,WildFly Swarm和Arquillian开发微服务

    在本文中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试. WildFly Swarm提供了一种创新的方法来 ...

  5. WildFly Swarm –将Java EE应用程序部署为独立的Jar

    WildFly Swarm为将Java EE应用程序部署为独立的Jar文件提供了一种简单的解决方案. 这使得部署应用程序特别是REST或Web服务非常容易. Swarm在这方面与Spring Boot ...

  6. WildFly Swarm:使用Java EE构建微服务

    "完美无缺,不是在没有其他可添加的东西时,而是在没有其他东西要带走时实现的" Antoine de Saint-Exupery 法国作家安托万·德·圣艾修伯里 ( Antoine ...

  7. Wildfly Swarm,朝着成熟和一小部分贡献

    我最近关注的项目之一是Wildfly Swarm . 最终,在今年的JBoss BOF Devoxx期间,我的考虑更改项目名称的请求没有通过(由于与著名的Docker Swarm发生冲突). 那么什么 ...

  8. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

    为什么80%的码农都做不了架构师?>>>    错误信息:未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序. 解决办法: 立即下载 ...

  9. asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册Microsoft.Jet.OLEDB.4.0 提供程序...

    笔者在项目中做做了一个从Excel表格中导入数据的模块.大体上asp.net项目中导入Excel大体分成三类: 1)采用c#内置方案System.Data.OleDb(限制较小, 通用) 2)采用Ex ...

最新文章

  1. 关于MATLAB处理大数据坐标文件2017529
  2. 第一章 计算机网络 3 标准化工作和相关组织 [计算机网络笔记] -简单浏览了解即可
  3. Mysql windows 安装提示MSVCR120.dll文件丢失
  4. OpenShift 4 - 应急响应Demo应用(AMQ+Knative+Quay+BPM+BDM+SSO)
  5. 用NAnt 将StarTeam中的文件CheckOut回本地计算机
  6. K3 Cloud 数据库查询表常用语句
  7. 使用电信光猫+华为路由器实现内网穿透,外网访问内网 之 光猫超级管理员密码获取并设置桥接模式
  8. js获取浏览器默认语言设置
  9. 任天堂(Nintendo)(什么是ps4,什么是ns(switch))
  10. 海思芯片MPP工作流程
  11. CAD绘图次序快捷键是什么?怎么用?
  12. 嘉和美康科创板IPO:阿里健康是股东,副总姬铮并非核心技术人员
  13. CollaNote - 完全免费无广告的 iPad / iPhone 手写笔记应用(Notability / GoodNotes 的免费替代品)
  14. MapGIS应用操作题
  15. 大数据数据湖之hudi
  16. 什么是ChainLink (LINK)
  17. ffmpeg设置视频 tbr、tbn、tbc
  18. tensorflow——960M显卡深度学习_报错no kernel image is available for execution on the device详解
  19. Java接口限流算法
  20. 解压和压缩jar文件

热门文章

  1. JAVA中重写equals()方法的同时要重写hashcode()方法
  2. Android静态变量的生命周期
  3. 用VS(c#)创建、调试windows service以及部署卸载
  4. Git学习记录(一)
  5. 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
  6. The C10K problem原文翻译
  7. jquery技巧总结
  8. 数据库连接字在Web.config里的用法
  9. 图像处理库(fbc_cv):源自OpenCV代码提取
  10. windows7 64位机上CUDA7.0配置及在VS2010中的简单使用举例