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
相關文章
- KVM線上遷移(動態遷移)
- virt-v2v工具自動遷移vmware遷移至kvm
- 雲==資料和軟體的可自動遷移性
- 海量資料轉換遷移的程式碼自動生成
- 運維效率之資料遷移自動化運維
- 從Milvus遷移DashVector
- 自動化遷移七牛雲的資料到阿里雲 OSS阿里
- 自動化遷移七牛雲的資料到阿里雲OSS阿里
- 從Sql Server遷移資料到OracleSQLServerOracle
- Devops-運維效率之資料遷移自動化dev運維
- 從 SQL Server 到 MySQL(二):線上遷移,空中換髮動機ServerMySql
- 騰訊上萬節點大規模叢集的跨城自動遷移
- 從MySQL到Redis提升資料遷移的效率MySqlRedis
- 直播點贊View(從我的簡書遷移........)View
- 用RMAN遷移檔案到ASM或從ASM遷出ASM
- mysqldump從mysql遷移資料到OceanBaseMySql
- Karmada跨叢集優雅故障遷移特性解析
- Docker Swarm從部署到基本操作DockerSwarm
- 從Serv-U到vsftp的資料遷移FTP
- 猿題庫從 Objective-C 到 Swift 的遷移ObjectSwift
- 從MySQL到ORACLE程式遷移的注意事項(轉)MySqlOracle
- 遷移和移動 UNIX 檔案系統(轉)
- echarts遷移圖動態載入Echarts
- 從wordpress到hexo部落格遷移記錄Hexo
- Django資料從sqlite遷移資料到MySQLDjangoSQLiteMySql
- oracle 資料遷移案例 從 8.1.7.4到9.2.0.8Oracle
- wildfly 21的domain配置AI
- Azure ASM到ARM遷移 (三) Reserved IP的遷移ASM
- 【ASM】自動儲存管理的新特性ASM
- Oracle 11.2.0.3RAC新特性-遷移spfile[Oracle基礎]Oracle
- Oracle10g新特性——利用RMAN遷移表空間Oracle
- 利用github提供的Webhooks實現自動化部署GithubWebHook
- 動態SQL完成大表資料的遷移SQL
- 從底層資料庫遷移看CQRS的好處資料庫
- Django應用資料庫從MySQL到PostgreSql的遷移Django資料庫MySql
- 遷移HTML5移動專案到PhoneGapHTML
- [移動端新特性] Passive Event Listeners
- 【遷移】使用rman遷移資料庫資料庫