BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース WildFly Swarmからの自動マイグレーションを備えたThorntail 2.2.0

WildFly Swarmからの自動マイグレーションを備えたThorntail 2.2.0

原文(投稿日:2018/09/18)へのリンク

6月下旬にWildFly Swarm 2018.5.0からThorntail 2.0.0にブランド変更したRed Hatが、Thorntailのバージョン2.1.02.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
                
<properties>
    <version.wildfly.swarm>2018.5.0</version.wildfly.swarm>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.wildfly.swarm</groupId>
            <artifactId>bom</artifactId>
            <version>${version.wildfly.swarm}</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>
                
            
                
<properties>
    <version.wildfly.swarm>2.1.0.Final</version.wildfly.swarm>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>bom</artifactId>
            <version>${version.wildfly.swarm}</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>
                
            

JaegerOpen Tracingの変更により、潜在的なコードの非互換性が発生している。従来は、Jaegerをプロジェクトに追加することにより、MicroProfileのOpen Tracingも合わせて追加されていたが、バージョン2.1.0では、サポートを改善する目的で、Open TracingがJaegerから切り離されているのだ。リリースには次のような説明がある。

現在、jaegerが使用されるのは、トレーサのコンフィギュレーションのためのみです。トレーシング部分については、手動で取り込む必要があります — 旧opentracingか、あるいは新しいmicroprofile-opentracingのいずれかを選択してください。

これまでopentracingではなくjaegerのトレーシングを使用していた場合は、同じ動作を維持するために、opentracingへの依存を明示的に追加する必要があります。

Thorntail 2.2.0

最新リリースでは、特にMicroProfile APIやMetricsJWTOpenAPIRest Clientに関連する多くのバグがあった。

バージョン2.2.0では、Thorntailへの名称変更を反映して、新たなログメッセージコードが導入されている。これまでWFSWARMnnnnnあるいはWFSxxxnnnnnであったものが、THORNnnnnnおよびTTxxxnnnnnに変更された。数値コードは変わらない。これが大きな変更となるのは、古いメッセージコードを検索するパーザを使用している開発者に限られる。

新しいロゴ

Thorntailの新しいロゴのリリースには、意図的な遅れがあった。McWhirter氏がInfoQとの先日のインタビューで、次のように説明している。

ロゴは現在、JBoss.orgの優秀なデザインチームが作成中です。今後数週間のうちに、いくつかの候補ができると思います。ロゴより先に名前をリリースしたかったのは、Red Hat Summitがあったことと、新しいアーキテクチャであるv4.xの概念実証を進めたかったからです。

待望の新しいロゴは、2018年9月17日にリリースされている。

リソース

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT