CLOVER🍀

That was when it all began.

CDI

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…

Embedded Tomcat 8でArquillianを使う

Java EEで遊ぶ時、WildFlyにデプロイ、もしくはArquillianを一緒に使うか、自分でEmbedded Tomcatのインスタンスを作ってそこで動かすことが多いのですが、そういえばArquillianにもTomcatのサポートがあったなと思い、こちらも使ってみることにしました。Ar…

CDIのDependentアノテーションがよくわからないので、Weld SEでちょっと確認してみました

CDI

CDIをちょっとずつ見ているのですが、個人的にどうしても引っかかるのが@Dependentというスコープ。少し調べてみると見かけるのは、 擬似スコープと呼ばれる インジェクション先のライフサイクルに準ずる といった説明なのですが、個人的にはちょっと得体の…

CDIのAlternativesを試す

CDI

あまり理解しないまま使っているCDIですが、最近ちょっと気になり出すところがありまして、少しずつ見ていこうかなぁという気になりました。こういうの、自分で試してみないと覚えないので、すでに出ている内容でも気になったテーマは自分で書いていこうかな…

CDIでコンストラクタインジェクションしたい

CDI

最近、ちょっと気になっているネタです。CDIでコンストラクタインジェクションがしたい、という話でちょっといろいろ試してみました。とりあえず、動作確認はJava SE、Weld SEで行うものとします。 Maven設定 pom.xmlの設定は、こんな感じ。 pom.xml

CDI Extensionでコンテナ初期化処理のイベントを受け取る

CDI

以前Undertow+JAX-RS+CDIという組み合わせで遊んだのですが、この時JAX-RSのリソースクラスをスキャンする人が誰もおらず、自分でクラスをひとつひとつ登録する羽目になりました。この時、Hammockというライブラリを教えてもらったのですが、こちらはそう…