CLOVER🍀

That was when it all began.

CDI

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というライブラリを教えてもらったのですが、こちらはそう…

UndertowでJAX-RS(RESTEasy)とCDIを使う

以前書いた、こちらのエントリ組み込みTomcatでJAX-RS(RESTEasy)とCDIを使う http://d.hatena.ne.jp/Kazuhira/20150308/1425780313の、コンテナを組み込みTomcatからUndertowに変えて遊んでみたというお話。実装する時の条件は、前と変わらず JAX-RSの実装…

組み込みTomcatでJAX-RS(RESTEasy)とCDIを使う

ちょっと思い立って、なんとなくやってみたくなりまして。組み込みTomcat上で、JAX-RSとCDIを合わせて使ってみようというお話。これを試すにあたり、条件は以下とします。 JAX-RSの実装はRESTEasy、CDIの実装はWeld WEB-INF/classesとかは作らない Scalaで書…

組み込みTomcat+JAX-RS+CDIを、Fat JARとして動かす

こちらのエントリの続きです。組み込みTomcatでJAX-RS(RESTEasy)とCDIを使う http://d.hatena.ne.jp/Kazuhira/20150308/1425780313こちらを書いた時は、とりあえずsbt runで起動して動作確認したところまでですが、なんとなくFat JARにしてみたいものです…

CDIのBeanManagerを使う(Scalaで)

以前書いたエントリの、リベンジ版です。元ネタは、こちら。CDIのBeanManagerを使う http://d.hatena.ne.jp/Kazuhira/20140208/1391845469CDIで管理されているBeanを取得する際に、@InjectアノテーションではなくてBeanManagerを直接使った場合について書い…

Hibernate Search × Infinispan × WildFly

WildFlyに、Hibernate Searchが同梱されるようになったと聞き、せっかくなので試してみることにしました。Hibernate Searchが使用する、Luceneのインデックスの保存先はInfinispanとします。また、最終的にはWildFlyにCache Containerを定義して、クラスタリ…

JPAのSecond Level Cacheを試してみる

WildFlyもリリースされ、Infinispan 6.0.1.Finalが同梱されていることですので、JPA(実装はHibernate)のSecond Level Cache(以降、L2キャッシュ)を使ってみることにしました。以前にJBoss AS 7.1.1でやっていたころは、うまくいかなかったんですよねぇ……

Java SE環境でCDIを使う(Weld SE)

CDI

CDIの参照実装のWeldですが、Java SE環境でも使えるんですね。どこかで聞いたことがあった気がしますが、忘れてました…。Weld http://weld.cdi-spec.org/そんなに情報はないですが、オフィシャルのドキュメントと18.4. Java SE http://docs.jboss.org/weld/r…