CLOVER🍀

That was when it all began.

CDI

WildFlyのMicroProfile Telemetryサブシステムを使って、トレースとメトリクスを送信してみる

これは、なにをしたくて書いたもの? 以前、WildFlyのMicroProfile Telemetryサブシステムを使って、トレースシグナルをJaegerに送信してみました。 WildFlyのMicroProfile Telemetryサブシステムを使って、トレースを試す - CLOVER 今回はもっと範囲を広げ…

リファクタリングツールOpenRewriteを、Java 21とJakarta EE 10への移行レシピで試してみる

これは、なにをしたくて書いたもの? ソースコードをリファクタリングしてくれるツールである、OpenRewriteというものがあります。 前々から名前は知っていたのですが、1度試してみようかなということで。 OpenRewrite OpenRewriteのドキュメントはこちら。 …

WildFly 35(RESTEasy)のServer-Sent Events(SSE)のイベント送信時にメディアタイプを指定する

これは、なにをしたくて書いたもの? 前に、WildFly(RESTEasy)を使ってJakarta RESTful Web Services(以降JAX-RS)でServer-Sent Events(SSE)が 扱えることを試してみました。 WildFly 35(RESTEasy)でServer-Sent Events(SSE)を試す - CLOVER この…

WildFly 35(RESTEasy)でServer-Sent Events(SSE)を試す

これは、なにをしたくて書いたもの? Jakarta RESTful Web Services(以降JAX-RS)ではServer-Sent Events(SSE)が扱えるようなのですが、そういえば見かけたことは あるものの試したことがなかったので簡単に使ってみることにしました。 WebSocketは扱って…

Weld Testing ExtensionsとJUnit 5を使って、Jakarta Contexts and Dependency Injection管理Beanのテストをする

CDI

これは、なにをしたくて書いたもの? Weld Testing Extensionsを使うと、Jakarta Contexts and Dependency Injection(以降CDI)管理Beanを使ってJUnitのテストを 書けるようなので試してみようかなと。 Weld Testing Extensions Weld Testing Extensionsは…

Jakarta Contexts and Dependency Injection(CDI)のコンテナ起動・終了時になにか処理をする

これは、なにをしたくて書いたもの? Jakarta Contexts and Dependency Injection(CDI)のコンテナ起動・終了時になにか処理をしたいと思った場合に、どうしたらいいのか よく知らなかったので見ておくことにしました。 ちなみにJakarta Servletの場合はこ…

WildFly 34にCDIと組み合わせたDoma 3を使ったアプリケーションをデプロイする(Arquillianでのインテグレーションテスト付き)

これは、なにをしたくて書いたもの? このブログではJakarta EE(Java EE)環境ではないところではデータベースアクセスにDomaをよく使っているのですが、そういえば Jakarta EE(Java EE)のアプリケーションサーバーで使うように設定したことがないな、と…

Eclipse MicroProfile Rest Clientを試す

これは、なにをしたくて書いたもの? Eclipse MicroProfileに含まれている、Rest Clientをちょっと見ておこうかなと。 今まで何回か別のテーマを扱っている時に使っているのですが、完全に雰囲気で使っていたのでこの機会に、と。 Eclipse MicroProfile Rest…

WildFlyのMicroProfile Telemetryサブシステムを使って、トレースを試す

これは、なにをしたくて書いたもの? WildFlyでOpenTelemetryを試してみたいということで、まずはMicroProfile Telemetryサブシステムを試してみたいと思います。 MicroProfile Telemetry(MicroProfile Telemetry Tracing) MicroProfile Telemetryは現在バ…

WildFly Maven Pluginのdevゴールで、Jakarta EEアプリケーションの開発を始める

これは、なにをしたくて書いたもの? Jakarta EEアプリケーションを開発する時に、WildFly Maven Pluginのdevゴールを使ったりすると楽そうだなと思ったので、ちょっと 試してみることにしました。 同じような発想でWildFly Bootable JARを試したことはあり…

JAX-RS 3.1.0のSeBootstrapを使って、RESTEasy(+Undertow、CDI)をJava SE環境で動かす

これは、なにをしたくて書いたもの? RESTEasy 6.1.0に関するブログを見ていて、JAX-RS(Jakarta RESTful Web Services) 3.1ではJava SE環境でJAX-RSを動かすことが できるようになっていたことに気づいたので、少し試してみようかなと。 RESTEasy Releases…

JAX-RS(Jakarta RESTful Web Services) 3.1.0で、Contextアノテーションの代わりにCDIが推奨されるようになっていたという話

これは、なにをしたくて書いたもの? RESTEasy 6.1.0に関するブログを見ていて、JAX-RS(Jakarta RESTful Web Services)のインジェクションの仕組みはCDIの利用が 推奨されるようになっていたので、こちらを軽く確認しておきました。 RESTEasy Releases RES…

RESTEasy × RxJava 2を試す

これは、なにをしたくて書いたもの? RESTEasyが3.6.0.FinalでRxJava 2を組み込めるようにしているらしいので、試してみたい RESTEasy 3.6.0.Final and 4.0.0.Beta4 せっかくなので、無限Stream的なレスポンスが継続するような使い方をしてみたい Listenerを…

Payara MicroのClustered CDI Event Busが初期化処理が不要になり、loopbackができるようになったという話

以前、Payara MicroのClustered CDI Event Busについて、エントリーを書きました。Payara MicroのClustered CDI Event Bus(Hazelcast Topic)の仕組み - CLOVERCDIのEvent APIで、あるPayara Microで発生したイベントを、別のPayara Microに伝播させる機能…

WildFly SwarmとApache DeltaSpikeで、Project Stage(s)を合わせたい

WildFly Swarmには、Project Stagesという概念があります。Project Stages一方で、CDIに関する機能強化をしてくれるフレームワーク、Apache DeltaSpikeにも ProjectStageという概念があります。DeltaSpike ProjectStageWildFly Swarmには、Apache DeltaSpike…

はじめてのWildFly Swarm

前々から気になっていたWildFly Swarmですが、そろそろちょっと試してみることにしました。Rightsize your Java EE Applications | Thorntail WildFly Swarmって? WildFlyを組み込んで、実行可能JARを作成したり、必要な機能やその他のライブラリなどを統合…

Apache DeltaSpikeのData Moduleを試す(Test-Control/Arquillianテスト付き)

Apache DeltaSpikeには、Data Moduleというものがあります。Data Moduleサンプルを見ていると雰囲気はなんとなくわかるのですが、JPAでRepositoryパターンを実装するためのもので、 インターフェースに対して命名規則でクエリを自動生成 @Queryアノテーショ…

Apache DeltaSpikeのScheduler Moduleを試す

Apache DeltaSpikeには、Scheduler Moduleというものがあり、こちらを使って定期的に動かすジョブを作成することができます。Scheduler ModuleジョブのスケジュールはCRON形式で指定でき、実装としてはQuartzを使っているようです。Quartz Enterprise Job Sc…

Apache DeltaSpikeのConfiguration Mechanismを試す

Apache DeltaSpikeには、Configuration Mechanismというものがあり、設定情報を管理することができます。DeltaSpike Configuration Mechanismこちらを利用すると、設定ファイルに定義した情報をProjectStageごとに分けて管理できたり、設定ファイルの中で変…

Apache DeltaSpikeのProjectStageを使って、プログラムの切り替えを行う

Apache DeltaSpikeには、ProjectStageというものがあります。DeltaSpike ProjectStage(Core) Type-safe ProjectStage(Test-Control) ProjectStage Control参考) https://tanoseam.wordpress.com/2015/11/03/cdi-test-2/ProjectStageがどういうものかという…

Apache DeltaSpikeでCDI管理Beanをモックを使ってテストする

Apache DeltaSpikeのテスト用モジュールには、モックを使ったテストができる機能があります。Mock FrameworksインターセプターがかかったCDI管理Beanはモック化できないという制限はあるようですが、ちょっと試してみましょう。 Attention: Mocking CDI bean…

Apache DeltaSpikeでCDIのテストを動かしてみる

Java EEでのテスト、といえばArquillianのイメージがありますが、もうちょっと軽いものはないかなぁと思っていたところ、そういえばApache DeltaSpikeにテスト用のモジュールがあったのを思い出しました。Test-Control ModuleApache DeltaSpikeってなんなの…

Payara MicroのClustered CDI Event Bus(Hazelcast Topic)の仕組み

最近、とある人から「PayaraのCDI Event Busの仕組みを知りたいんですけど、どうやってるんでしょうか?」と聞かれました。言葉自体初めて聞くのに、なにそれ??みたいな感じでしたが。まあ、Payaraのブログの絵を見せてもらって、「あ、これって…」と思う…

CDIのInjectionPointを使ってみる

CDI

時々ブログや本で目にする、CDIのInjectionPointを使ってそこから取れる情報を見てみました。よくLoggerを使った例を見かけるので、自分もそれに習って気になるところを試してみます。InjectionPointを使うと、依存関係を注入する場所のメタデータにアクセス…

CDIのEventを使う

CDI

もうそろそろ一区切りにしようと思っている、CDI勉強シリーズ。個人的に、次に勉強すべきJava EEのテーマはあるのですが…やるのでしょうか…。で、今回はCDIのEventを使ってみたいと思います。CDIで、デザインパターンのObserverパターンをサポートしていると…

CDI管理BeanをInjectアノテーションではなく、手動で取得する

CDI

ちょっとCDIで気になったAPIがありまして、それを使ってみるついでに@Injectアノテーション以外でCDI管理Beanを取得する方法を少々書いてみました。@Inject以外の方法で、要はAPI呼び出しでCDI管理Beanを取得したいケース… 実行時の条件に応じてBeanの種類を…

CDIのInterceptorの適用順を制御する

CDI

CDIの適用条件と順番について、今ひとつわかっていないところがあったので確認してみます。 ※というか、JSR-318? 準備 ビルド定義は、以下の通りでScala+sbt。 build.sbt name := "cdi-interceptor-ordering" version := "0.0.1-SNAPSHOT" scalaVersion :=…

CDIのDecoratorを試す

CDI

CDIのDecoratorを試してみました、ということで。CDIによるデコレータ http://kikutaro777.hatenablog.com/entry/2014/06/18/232219なにやら、@Decoratorアノテーションを使用することで、CDIを使ってDecorator Patternを実現する機能?だそうな。使ったこと…

CDIでの継承関係とTypedアノテーションと

CDI

以前、こんなエントリを書きました。CDIでコンストラクタインジェクションしたい http://d.hatena.ne.jp/Kazuhira/20150412/1428846124ここで、@Typedアノテーションを使ってBeanを限定することができるということを教えていただきました。で、これについて…

CDIのインターセプターのかかり方を確認する

CDI

CDIを使うと、Client Proxy(擬似スコープの場合は拡張されたクラス?)がインジェクションされて(もしくはBeanManagerなどから取得)、それを使うことはわかりましたが、次に気になることとしてインターセプターのかかり方があります。なにかというと、Cli…