このエントリは以下のエントリをベースにしています。
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
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
- サンプルアプリケーションのプロジェクト
Boost Maven Plugin Tutorial
https://github.com/OpenLiberty/boosted-microprofile-rest-client - GitHubプロジェクトページ
Boost Maven Plugin Prototype
https://github.com/OpenLiberty/boost/tree/master/boost-maven