6月下旬にWildFly Swarm 2018.5.0からThorntail 2.0.0にブランド変更したRed Hatが、Thorntailのバージョン2.1.0と2.2.0を、8月中旬の3週間のタイムフレームでリリースした。多くのバグ修正の他、特にMicroProfileに関連した、次のような新機能が含まれている。
- MicroProfile 1.3に準拠
- SmallRyeによるMicroProfile実装
- マイグレーションプロセスの自動化
Red Hatはまた、OpenTracingとJeagerとログメッセージコードの変更による、潜在的なコードの非互換性を文書で報告している。
背景
Heritage WildFly Swarmのベースとなっているのは、Red HatのオープンソースアプリケーションサーバであるWildFlyだ。従来のモノリシックアプリケーションサーバと同様に、アプリケーションは以下のようにWildFly上にデプロイされる。
これに対してWildFly Swarmは、アプリケーションに必要なAPIのみを選択してパッケージ化し、UberJarとして実行することが可能な、WildFlyの“分解”バージョンである。以下に示すアプリケーションでは、JAX-RSのみを使用している。
Thorntail 2.0.0
InfoQの先日のインタビューで、名称の変更について、同社シニアコンサルティングエンジニアであるBob McWhirter氏が説明している。
“WildFly Swarm”という名称は数年前から使っていたのですが、“Swarm”という名称が多くの企業やプロジェクトで頻繁に使われていることに気付いたのです。さらに、プロジェクトを新たなアーキテクチャへと進めていく中で、名称に“WildFly”を含める意味もなくなってきました。当初はWildFlyプロジェクトをコアとした完全なエクステンションだったのですが、成長して独立したことで、独自のアイデンティティが必要になったのです。この2つの理由から、名称を改めるのが適当だと判断しました。
名称の変更と合わせて、Red Hatは、最近の一般的なバージョン表記であるYYYY.MM.VV
を廃止して、よりトラディショナルなバージョン規則のmajor.minor.micro
形式に戻している。これにより、WildFly Swarm 2018.5.0からThorntail 2.0.0に変更された。
WildFly SwarmからThorntailにMavenプロジェクトを移行するプロセスは、Red Hatによって次のように文書化されている。
groupId
内のorg.wildfly.swarm
参照をすべてio.thorntail
に変更する。2018.5.0
などのWildFly Swarmバージョン参照を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に完全に準拠したMicroProfile仕様の共有実装を提供する、コミュニティ指向の新組織である。このSmallRyeへの移行を進めているのは、Red HatのプリンシパルソフトウェアエンジニアであるKen Finnigan氏だ。先日のRed Hatのブログには、次のように記されている。
MicroProfileは2年前の発表以来、急速に変化するターゲットであり、多くの進化を遂げています。このような仕様と、それに適合する実装の急速な進化に追随するには、すべてのベンダに多くのエネルギが必要になります。そこでKenは、このような実装作業の共通部分を、単一のベンダ中立的な実装にすることを提案し、プロジェクト名をSmallRyeとしました。
smallrye.ioでは、コミュニティ主導のこのプロジェクトが順調に進んでいることが理解できます。すべてのMicroProfile仕様に対して、それぞれの実装がすでに用意されています。
SmallRyeのソースコードはGitHubにある。
バージョン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の対応するバージョン番号に変更される。
WildFly Swarm | Thorntail |
|
|
JaegerとOpen Tracingの変更により、潜在的なコードの非互換性が発生している。従来は、Jaegerをプロジェクトに追加することにより、MicroProfileのOpen Tracingも合わせて追加されていたが、バージョン2.1.0では、サポートを改善する目的で、Open TracingがJaegerから切り離されているのだ。リリースには次のような説明がある。
現在、
jaeger
が使用されるのは、トレーサのコンフィギュレーションのためのみです。トレーシング部分については、手動で取り込む必要があります — 旧opentracing
か、あるいは新しいmicroprofile-opentracing
のいずれかを選択してください。これまで
opentracing
ではなくjaeger
のトレーシングを使用していた場合は、同じ動作を維持するために、opentracing
への依存を明示的に追加する必要があります。
Thorntail 2.2.0
最新リリースでは、特にMicroProfile APIやMetrics、JWT、OpenAPI、Rest Clientに関連する多くのバグがあった。
バージョン2.2.0では、Thorntailへの名称変更を反映して、新たなログメッセージコードが導入されている。これまでWFSWARMnnnnn
あるいはWFSxxxnnnnn
であったものが、THORNnnnnn
およびTTxxxnnnnn
に変更された。数値コードは変わらない。これが大きな変更となるのは、古いメッセージコードを検索するパーザを使用している開発者に限られる。
新しいロゴ
Thorntailの新しいロゴのリリースには、意図的な遅れがあった。McWhirter氏がInfoQとの先日のインタビューで、次のように説明している。
ロゴは現在、JBoss.orgの優秀なデザインチームが作成中です。今後数週間のうちに、いくつかの候補ができると思います。ロゴより先に名前をリリースしたかったのは、Red Hat Summitがあったことと、新しいアーキテクチャであるv4.xの概念実証を進めたかったからです。
待望の新しいロゴは、2018年9月17日にリリースされている。
リソース
- “WildFly Swarm Users Guide”
- “Right Size Your Services with WildFly and WildFly Swarm” -Dimitris Andreadis (October 2106)
- “Q&A with Bob McWhirter on WildFly Swarm Rename to Thorntail” — InfoQ (May 14, 2018)
- “Announcing Thorntail 2.0.0.Final” — the Thorntail Team (June 26, 2018)
- “MicroProfile REST API with MongoDB, Hibernate OGM and Thorntail” — Hayri Cicek (August 7, 2018)
- “Announcing Thorntail 2.1.0.Final” — the Thorntail Team (August 15, 2018)
- “Getting Started with MVC 1.0 (JSR-371)” — Hayri Cicek (August 20, 2018)
- “Announcing Thorntail 2.2.0.Final” — the Thorntail Team (September 4, 2018)
この記事を評価
- 編集者評
- 編集長アクション