Build your MicroProfile Apps Quickly with Boost

このエントリは以下のエントリをベースにしています。
This entry is based on the following one, written by Scott Kurz (IBM).
https://microprofile.io/2019/04/18/build-your-microprofile-apps-quickly-with-boost/

The Boost Vision

Open Libertyチームがプラグインとして “Boost”を現在プロトタイピング中です。この”Boost”は、デプロイされたプロジェクトアプリケーションに伴う個別のMicroProfile実装をインストール、構成の詳細を抽象化し、すべてのサポート対象ランタイムでシンプルかつ共通の設定を可能にすることを目指しています。

Watch a Demo

実際には36:10あたりから

Building your application with Boosters

MicroProfileテクノロジーを簡単な一連のBoostが定義する依存関係(”boosters”)を使ってアプリケーションにMicroProfileテクノロジーを追加できます。多くのMicroProfileアプリケーションにとって有用なので、Java EE(将来はJakatra EE)テクノロジー用のboosterも含まれています。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>boost.boosters</groupId>
                <artifactId>mp20-bom</artifactId>
                <version>0.1.3-SNAPSHOT</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <dependencies>
        <!-- Boosters -->
        <dependency>
            <groupId>boost.boosters</groupId>
            <artifactId>mpConfig</artifactId>
        </dependency>
        <dependency>
            <groupId>boost.boosters</groupId>
            <artifactId>mpRestClient</artifactId>
        </dependency>
        ...
        <dependency>
            <groupId>boost.boosters</groupId>
            <artifactId>jpa</artifactId>
        </dependency>
    </dependencies>

Runtimes

ターゲットのランタイム(MicroProfile実装)の選択はシンプルなMavenの依存関係を通して表現できます。

        <!-- Runtime -->
        <dependency>
            <groupId>boost.runtimes</groupId>
            <artifactId>openliberty</artifactId>
        </dependency>

        <!--  Switch runtime by switching dependencies
        <dependency>
            <groupId>boost.runtimes</groupId>
            <artifactId>tomee</artifactId>
        </dependency>
         -->

Databases

同様に、プロジェクトにサポート対象のJDBCドライバのMaven依存関係を追加すれば、自動構成されたアプリケーションデータベースを追加できます。

        <!-- Database -->
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>10.14.2.0</version>
            <scope>provided</scope>
        </dependency>
        
        <!--  Switch databases by switching dependencies
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
            <scope>provided</scope>
        </dependency>
        -->     

How does this fit in with the MicroProfile Starter ?

BoostはMicroProfile Starterを補完する目的で設計されています。Boostのアイデアは、MicroProfile Starterが提供するプロジェクトの作成機能の残りを利用しつつ、Mavenのpom.xmlを生成する異なる方法を提示することにあります。

MicroProfile Starter
https://start.microprofile.io/

MicroProfile Starterはboost:packageゴールが構成されているpom.xmlを生成することでBoostを組み込むことができます。これはサポートされているすべてのMicroProfile実装と同様で、Boostプラグインが内部的に違いを処理します。

    <build>
        <plugins>
            <plugin>
                <groupId>boost</groupId>
                <artifactId>boost-maven-plugin</artifactId>
                <version>0.1.3-SNAPSHOT</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>package</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

Next Steps

Boostは現時点ではMicroProfileならびにExtensions for MicroProfileコレクションとも関連していませんが、BoostのコードをMicroProfileコミュニティプロジェクトに貢献する用意があるそうです。

Learn More

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中