graalvm-native-image-plugin のバージョン v1.3.0
をリリースしました。このリリースでは、 native-image-agent で生成された serialization-config.json
ファイルのマージ、 SerializationConfigurationFiles
オプションのサポートを追加しました。以下のリンクにあるとおり、 plugins
ブロックに指定すると利用できます。
Jigsaw でサービスプロバイダーを定義した場合には、 ServiceLoader は従来の引数なしコンストラクターに加えて provider という名前の static ファクトリーメソッドでオブジェクトを生成できる
GraalVM の native-image はモジュールには未対応ということで、モジュールによるアプリケーションのネイティブ化には一旦諦めましたが、モジュールの仕組みがまだよくわかってないので、もう少し勉強を続けることにした日本で 1,000,000 番目に Java のモジュールシステムに詳しいものです。
今回は Java9 で追加されていた ServiceLoader
のファクトリーメソッドによるオブジェクト生成について紹介します。
時間のない人のための 1 行まとめ
- Java9 のモジュールシステムによって、
ServiceLoader
は生成するオブジェクトを従来の引数なしコンストラクターだけでなく、provide ... with ...
ディレクティブに指定されたクラスのproviders
という static ファクトリーメソッドによって生成できるようになっていた
で、いつもどおりですが、詳しくは ServiceLoader
の javadoc を読むのがおすすめです。