SmallRye の使われ方について
1/7 MicroProfile実装 SmallRye smallrye.io の使われ方について、ちょっと覗いてみた。Quarkus、Thorntail、WildFly、Open Liberty に含まれていると標榜しているので。
2020-02-11 22:40:532/7 Open Liberty github.com/OpenLiberty/op… は SmallRye の Reactive Streams/Messaging を使っている。それ以外の、例えば MP Config などは Liberty が独自に実装している。
2020-02-11 22:40:543/7 Helidon MP github.com/oracle/helidon は MP OpenAPI 実装として SmallRye を採用している。それ以外はおそらく Helidon 独自だが、Config などは Helidon SE と共有しているので少々追いにくい。
2020-02-11 22:40:544/7 Thorntail github.com/thorntail/thor… と WildFly github.com/wildfly/wildfly の MicroProfile 実装は SmallRye で、かつ SmallRye Rest Client 最新版の実装は RESTEasy (の Client API 実装)―と書くとややこしいが、雑に言うと SmallRye は Red Hat の MicroProfile 実装。
2020-02-11 22:40:545/7 Payara Micro/Server github.com/payara/Payara 本体は SmallRye のコードを一切使用していない。ただし、テスト側では SmallRye Config を使っている。理由は Payara の MP Config 実装はカーネルの奥深いところに存在していて単独動作しないから。
2020-02-11 22:40:556/7 SmallRye 自体はライブラリ github.com/smallrye なので単独では動作せず、何らかのランタイムに組み込まれることが前提となっている。 最低限 CDI / JAX-RS / JSON-P / JSON-B とブートストラップを用意すれば、それに SmallRye を載せて MicroProfile のランタイムが作成できる。
2020-02-11 22:40:557/7 最後に、Quarkus は Extensions で SmallRye を取り込むことができるので、MicroProfile コミュニティが開発した API が使用できる(ただし MicroProfile 準拠ではない)
2020-02-11 22:40:56>MicroProfile 準拠ではない Quarkus は CDI を完全実装できていないが、MicroProfile の必須 API には CDI が含まれている、というのが理由。 今まさにそのことで揉めているため、これ以上の言及は避けます。 twitter.com/khasunuma/stat…
2020-02-11 22:45:21