Thorntail 2.2.0提供從WildFly Swarm自動遷移的特性
自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.0到2.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\
\\這將把所有groupId和artifactId引用從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的命名變化。之前的WFSWARMnnnnn或WFSxxxnnnnn現在成了THORNnnnnn或TTxxxnnnnn。數值程式碼保持不變。對於使用解析器搜尋舊日誌程式碼的開發人員而言,這是唯一的破壞性修改。
\\新標誌
\\他們故意延遲Thorntail新標誌的釋出。McWhirter在最近接受InfoQ採訪時解釋說:
\\\\\該標誌目前正由傑出的JBoss.org設計團隊進行設計。我們希望在接下來幾周內可以有幾個候選。考慮到Red Hat峰會,我們希望在釋出標誌之前釋出名稱,再者,我們也希望推廣新的v4.x概念驗證架構。
\
等待已經結束,因為新標誌已於2018年9月17日釋出:
\\\\相關資源
\\- Bob McWhirter訪談:WildFly Swarm改名為Thorntail (InfoQ,2018年5月14日)\
- Thorntail 2.0.0.Final釋出(Thorntail團隊,2018年6月26日)\
- 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
相關文章
- 從Milvus遷移DashVector
- 運維效率之資料遷移自動化運維
- AWS伺服器自動化遷移工具指南伺服器
- 基於 Windows Server 2022 2025 到未來版本的遷移指導框架 自動化遷移工具WindowsServer框架
- 自動化遷移七牛雲的資料到阿里雲OSS阿里
- 自動化遷移七牛雲的資料到阿里雲 OSS阿里
- win10如何使用自帶遷移工具 win10使用自帶遷移工具的方法Win10
- Devops-運維效率之資料遷移自動化dev運維
- Karmada跨叢集優雅故障遷移特性解析
- mysqldump從mysql遷移資料到OceanBaseMySql
- 金倉資料庫資料遷移實戰:從MySQL到KES的順利遷移資料庫MySql
- 使用aliyun提供的遷移工具把本地的虛擬機器或主機遷移到阿里雲上去虛擬機阿里
- 從 SQL Server 到 MySQL(二):線上遷移,空中換髮動機ServerMySql
- Ooredoo Qatar提供最佳移動服務
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- echarts遷移圖動態載入Echarts
- Docker Swarm從部署到基本操作DockerSwarm
- React-Router v6 新特性解讀及遷移指南React
- Apache Hudi重磅特性解讀之存量表高效遷移機制Apache
- [移動端新特性] Passive Event Listeners
- Codable 的遷移方案
- wildfly 21的domain配置AI
- win10自帶系統遷移工具怎麼用 win10自帶系統遷移工具使用方法Win10
- 在非 laravel 專案中使用 laravel 的特性 4: 資料庫遷移 migrationLaravel資料庫
- 如何從SVN遷移原始碼到Git倉庫原始碼Git
- Cloudflare 從 PHP 到 Go:遷移與經驗分享CloudPHPGo
- 從 webpack v1 遷移到 webpack v2 新特性Web
- 從以下四點,看企業是否需要移動自動化測試
- 利用github提供的Webhooks實現自動化部署GithubWebHook
- 遷移學習在NLP中的演化:從基礎到前沿遷移學習
- 從HTTP向HTTPS遷移,Chrome瀏覽器的UI變化HTTPChrome瀏覽器UI
- React專案從Javascript到Typescript的遷移經驗總結ReactJavaScriptTypeScript
- 哪些報表工具提供了移動端功能?
- 棧遷移
- 遷移公告
- 專案遷移的思考
- 遷移學習系列---基於例項方法的遷移學習遷移學習
- 從 Oracle 到 TiDB,全鏈路資料遷移平臺核心能力和杭州銀行遷移實踐OracleTiDB