CLOVER🍀

That was when it all began.

Infinispan Server 14.0の設定まわりのファイルをメモしておく

これは、なにをしたくて書いたもの? Infinispan Serverの設定まわりを見ていて、いくつかポイントとなるファイルを目にしていたのでメモしておこうかなと。 対象はInfinispan 14.0.3.Finalとし、GitHub上のソースコードの位置で示していきます。 起動スクリ…

Infinispan 14.0の新しいインデックス用のアノテーションをHot Rodで試す

これは、なにをしたくて書いたもの? Infinispanで全文検索インデックスを使用する場合、Cacheに保存するエントリーの各プロパティに対してHibernate Searchの アノテーションを使用して設定を行っていました。 これがInfinispan 14.0で、Infinispan自身がイ…

Infinispan Server 14.0でメトリクスの収集方法がMicrometerに移行されたので、試してみた

これは、なにをしたくて書いたもの? Infinispan 14.0.0.Finalで、メトリクスの生成にMicrometerを使うようになったみたいです。 Integration with Micrometer to produce Prometheus and OpenMetrics metrics Infinispan 14.0.0.Final こちらを簡単に確認し…

Serverless Esbuildを使って、TypeScriptのServerless Frameworkサービスを作る

これは、なにをしたくて書いたもの? 前に、Serverless FrameworkをTypeScript(とLocalStack)で使ってみました。 Serverless FrameworkをLocalStack+TypeScriptで使ってみる(Amazon API Gateway+AWS Lambda) - CLOVER この時、テンプレートにaws-nodej…

JavaScriptのArray.prototype.forEachにasyncな関数を渡しても、awaitで終了を待てないという話

これは、なにをしたくて書いたもの? Array.prototype.forEachをなにも考えずに使っていて、ちょっとハマったので。 Array.prototype.forEachはawaitと組み合わせて使えないようです。 Array.prototype.forEachとasync/await MDNリファレンスでのArray.prot…

npmでプロジェクトの依存関係の確認や、依存パッケージのバージョン確認などを行ってみる

これは、なにをしたくて書いたもの? 以前、npm install(npm i)で使うバージョンについて調べてみました。 npm installなどで使うバージョンがよくわからなかったので、調べてみました - CLOVER なのですが。npmプロジェクトが依存しているパッケージを表…

Spring BootでQuartzを使ってみる

これは、なにをしたくて書いたもの? Spring Boot(とSpring Framework)に、Quartzとの連携機能があるので、試してみようということで。 Spring Boot、Spring FrameworkとQuartz Spring BootおよびSpring Frameworkの、Quartzとの連携については以下に記載…

Database Riderを試してみる

これは、なにをしたくて書いたもの? 以前、DbUnitを使ってエントリーを書いてみました。 DbUnitを試してみる - CLOVER この時にも少し触れていたのですが、今回はDatabase Riderというものを試してみたいと思います。 Database Rider Database Riderは、DbU…

Quartzで、指定した時間に1回だけ起動するJobを作成する

これは、なにをしたくて書いたもの? Quartzを使っていて、指定した時間に1度だけ起動するJobを定義したいなと思いまして。 指定した間隔で起動し続けるJobばかり扱っていたので、どうしたらいいんだろうと思ったのですが、割と単純でした。 1回だけ起動する…

Infinispan Server 14.0.1.Finalで、Server Taskが呼び出しごとにインスタンス化できたり、ADMIN権限が不要になったりしていた話

これは、なにをしたくて書いたもの? InfinispanのServer Taskのソースコードを見ていたら、前に踏んでいた問題がいろいろ直っているのに気づきまして。 せっかくなので、確認しておこうかなと。 前に踏んでいた問題 このエントリーを書いた時の話なのですが…

WildFly Bootable JAR作成時に使う、WildFly JAR Maven Pluginのjboss-maven-distオプションの有効/無効を切り替える

これは、なにをしたくて書いたもの? WildFly Bootable JARを作成するWildFly JAR Maven Pluginの設定に、jboss-maven-distという設定があります。 <plugin-options> <jboss-maven-dist/> </plugin-options> こちらについて、ちょっと気になったことがあったので調べてみました。 jboss-maven-dist plugin-opsion …

Quartzのクラスタリングを試してみる

これは、なにをしたくて書いたもの? Quartzでクラスタリングを扱ってみたいと思います。 Quartzのクラスタリング Quartzのクラスタリングについては、あまりドキュメントがありません。 まずはこちらに少し。 Overview それから、チュートリアルに少し書か…

WildFly Bootable JARで作成したアプリケーションの起動時に、システムプロパティや起動引数を指定する

これは、なにをしたくて書いたもの? これまで何回かWildFly Bootable JARを使ってきましたが、そういえばWildFlyで使っていたようなシステムプロパティや起動引数の指定は 有効なのかな?とふと疑問に思ったので試してみました。 結論を言うと、同じように…

JavaでULIDを使いたい(Sulky ULIDを使う)

これは、なにをしたくて書いたもの? JavaでULIDを1度使っておきたいな、と思いまして。 ULID ULIDは、Universally Unique Lexicographically Sortable Identifierの略です。辞書的にソート可能でユニークなID、ですね。 ULIDについては、こちらのGitHub Org…

QuartzのJobやTriggerなどの定義の保存先をデータベースにしてみる+Misfire(発火しなかったイベント)について少し

これは、なにをしたくて書いたもの? QuartzのJobの設定をデータベースに保存してみようかなということで。 あと、Misfire(本来起動すべき時間に実行できなかったJobの扱い)について少し調べて書いてみました。 JobやTriggerのなど定義をデータベースに保…

Quartzで、Jobにデータを渡す(オマケ:JobDetailとTriggerの数の関係について)

これは、なにをしたくて書いたもの? 先日、Quartzを扱ってみました。 JavaのジョブスケジューラーQuartzを試す - CLOVER CookbookではJobの定義と一緒にJobにデータを渡す方法も扱っているのですが、前回はこちらはスルーしていました。 How-To: Defining a…

Amazon EventBridgeでスケジューリング起動するAWS Lambda関数を、AWS SAM+LocalStackで試す

これは、なにをしたくて書いたもの? Amazon EventBridgeを使って、AWS Lambda関数をスケジュール実行させてみたいなということで。 LocalStackでAmazon EventBridgeを使えそうだったので、試してみることにしました。 Amazon EventBridge Amazon EventBridg…

JavaのジョブスケジューラーQuartzを試す

これは、なにをしたくて書いたもの? JavaのジョブスケジューラーといえばQuartzが有名だと思いますが、そういえばちゃんと触ったことがなかったので少し試してみることに しました。 Quartz Quartzのオフィシャルサイトは、こちら。 Quartz Enterprise Job …

Amazon SQSにメッセージを送受信するアプリケーションをSpring Bootで書いてみる(AWS SDK for Java v2、LocalStack利用)

これは、なにをしたくて書いたもの? 前に、Amazon SQS(といってもLocalStack上のものですが)を使ってFIFOキューを試してみました。 LocalStackでAmazon SQSのFIFOキューを試してみる(AWS SDK for Javaを使用) - CLOVER 今回は、常駐アプリケーションと…

Infinispan 14.0のRESPエンドポイントをRedis CLIで試す

これは、なにをしたくて書いたもの? Infinispan 14.0で「RESP endpoint」というものが実装され、Redis互換のエンドポイントをサポートするようになったというのでちょっと 試してみました。 Infinispan 14.0.0.Final なお、このブログには書かれていません…

ElasticMQのキュー定義をTerraformで行ってみる

これは、なにをしたくて書いたもの? ElasticMQを使っていきたいと思うのですが、リソース定義をTerraformで行えないかなと思いまして。 結果を見ると、できるにはできるのですがちょっと難ありです。 ElasticMQ ElasticMQは、Amazon SQS互換のインターフェ…

Infinispan 14.0の新しいHot Rod Client APIを試して諦めたという話

これは、なにをしたくて書いたもの? 先日、Infinispan 14.0.0.Finalがリリースされました。 Infinispan 14.0.0.Final 更新内容の中に、新しいHot Rod Clientが含まれているというので試してみました。 結論から言うと、現時点では従来のHot Rod Clientを使…

Spring Statemachineのチョイス/ジャンクションを試してみる

これは、なにをしたくて書いたもの? 最近Spring Statemachineに関する勉強をちょっとずつしていましたが、そろそろこれでひと区切りにしようかなと思います。 今回は、チョイスとジャンクションを扱ってみます。 チョイス/ジャンクション チョイスとジャン…

Java 17で文字を数える

これは、なにをしたくて書いたもの? 前に、Java 11でこんなエントリーを書きました。 Java 11で文字を数える - CLOVER この時の主なテーマはBreakIteratorだったのですが、BreakIteratorではうまく扱えない絵文字があることがわかりまして。 その後、Java 1…

aws-ses-v2-localを使って、Amazon SES API v2をローカルで試す

これは、なにをしたくて書いたもの? Amazon SESをローカルで動作確認できるような代替ツールはないのかな?と思って調べてみたのですが。 LocalStackはAmazon SES v1は使えますが、v2はProでないと利用できないようです。 LocalStack Coverage / ses LocalS…

web.xmlのweb-app要素の書き方がわからない

これは、なにをしたくて書いたもの? このブログのエントリー内で時々web.xmlを書いているのですが、web-app要素をどう書いたらいいのかよくわからなくなってきたので、 調べてまとめておくことにしました。 web-app要素というのは、よくあるこういうものの…

Keycloak+WildFlyのElytron OpenID Connect ClientサブシステムでOpenID Connect

これは、なにをしたくて書いたもの? WilddFly Elytron OpenID Clientサブシステムを使うと、OpenID Connectを使った認証ができるということなので、ちょっと試してみようかなと。 OpenID ConnectのProviderとしては、Keycloakを使います。 WildFlyとKeycloa…

Spring Statemachineのガードを試してみる

これは、なにをしたくて書いたもの? Spring Statemachineの、ガードというものを試してみたいなということで。 ガード ガードについては、用語集に以下のように記載されています。 A boolean expression evaluated dynamically based on the value of exten…

Keycloak 19.0の管理CLIを使ってみる

これは、なにをしたくて書いたもの? 以前、WildFlyベースのKeycloakを使っていた時に、管理CLIについて調べてみました。 KeycloakのAdmin CLIを使う - CLOVER KeycloakがQuarkusベースになってから、まだ管理CLIを使っていなかったので今回試してみることに…

Spring SecurityのOAuth 2.0サポートで、Keycloak 19.0からログアウトする

これは、なにをしたくて書いたもの? ここまでSpring SecurityのOAuth 2.0サポートとKeycloak 19.0を使っていて、ログアウトをかなり適当にしていました。 こんな感じに、ログアウト用のURLとログアウト後に表示するURLを設定していただけですね。 @EnableWe…