CLOVER🍀

That was when it all began.

Java

JavaParserのSymbolSolverでメソッド呼び出しなどを解析する

これは、なにをしたくて書いたもの? 前に、Javaのソースコードを解析できるJavaParserというライブラリーを試してみました。 Javaのソースコードを解析できるJavaParserを試す - CLOVER JavaParserはソースコードをパースしてASTを生成するものでしたが、こ…

Spotless Maven PluginとPalantir Java Formatでソースコードをフォーマットする

これは、なにをしたくて書いたもの? 以前、Spotless Maven Pluginとgoogle-java-formatでソースコードのフォーマットをしてみました。 Spotless Maven Pluginとgoogle-java-formatで、ソースコードのフォーマットを行う - CLOVER 今回はSpotless Maven Plug…

Shrinkwrap Resolversを使ってMaven依存関係(とプロジェクトのクラス)からJandexのインデックスを作ってみる

これは、なにをしたくて書いたもの? Javaのクラスファイルから様々な情報を検索するには、Jandexが便利です。 Javaのクラスファイルを検索できる、Jandexを試す - CLOVER ただ、Jandexを使うにはインデックスを構築する必要があります。 事前にインデックス…

Javaのソースコードを解析できるJavaParserを試す

これは、なにをしたくて書いたもの? Javaのソースコードを解析できるライブラリーのひとつとして、JavaParserというものがあります。 Javaのソースコードをパースできるものをちょっと探していたので、まずはこちらを試してみようかなということで。 JavaPa…

Jakarta JSON Binding(JSON-B)をEclipse Yassonで試す

これは、なにをしたくて書いたもの? 前のエントリーでJackson Databind 3を見てみましたが、今回はJakarta JSON Binding(通称JSON-B)を見ていこうと 思います。 Jackson Databind 3を試してみる - CLOVER Jakarta EEサーバーでは、Jakarta RESTful Web Se…

Jackson Databind 3を試してみる

これは、なにをしたくて書いたもの? Jackson 3がリリースされてからそこそこ時間が経過しましたが、そろそろちゃんと確認しておこうかなということで…。 Jackson Databindを試してみます。 Jackson 3 Jacksonといえば、JavaのJSONライブラリーとして有名で…

SDKMANでプロジェクトで使うJDK/SDKを管理する

これは、なにをしたくて書いたもの? プロジェクトで使うJDK/SDKをSDKMANの設定ファイルで管理できるというのは知っていたのですが、自分で試したことが なかったので確認しておこうかなと。 .sdkmanrc 端的に言うと、.sdkmanrcというファイルで管理します…

JavadocをPandocでMarkdownに変換してみる

これは、なにをしたくて書いたもの? JavadocをMarkdownに変換したら、どういう感じになるのかな?と思って、変換方法を調べてみました。 こういう時にはPandocがよく使われるようなので、試してみたいと思います。 Pandoc PandocのWebサイトはこちら。 Pand…

Maven Central RepositoryをCLIで検索できるmcsを試す

これは、なにをしたくて書いたもの? Javaを使う時はMaven Central Repositoryはほぼ確実に使いますが、アーティファクトの検索には微妙なところがあったり します。 Web UIで探すのものいいのですが、できればCLIでなんとかしたいと思って自分でツールでも…

Object MotherとTest Data Builder、Test Data BuilderとInstancioでテストデータ作成

これは、なにをしたくて書いたもの? テストを書く時に、テストデータの扱いには頭を悩ませます。 ここでいう「テストデータ」とは、データストア、主にデータベースを対象にしたテストで使うデータのことです。 どう作ったらいいのか、どうメンテナンスして…

環境で使えるJavaのプロバイダーやjava.securityファイルを眺めてみる

これは、なにをしたくて書いたもの? 時々ピンポイントで書いていたのですが、Javaのプロバイダーに関する情報を確認する時に迷子になることが 多かったので単独でメモしておこうかなと。 過去のエントリーはこのあたりですね。 SecureRandomのアルゴリズム…

Byte BuddyのAdviceを使って、メソッドの呼び出し前後に処理を追加するJava agentを書いてみる

これは、なにをしたくて書いたもの? 最近Byte Buddyを扱っていましたが、今回でひと区切りにしたいと思います。 今回はByte BuddyのAdviceを使ってJava agentを書いてみます。 Byte BuddyのAdvice Byte BuddyのAdviceというのはこちらです。 Advice (Byte B…

Byte Buddyを使ってJava agentを書いてみる

これは、なにをしたくて書いたもの? 前にByte Buddyを使ったり、Java agentについて見てみたりしてみました。 Byte Buddyでバイトコードを生成・操作してみる - CLOVER Java agentを書いてみる - CLOVER 今度はByte Buddyを使って、Java agentを書いてみた…

Java agentを書いてみる

これは、なにをしたくて書いたもの? 今までJava agentを利用したライブラリーなどは使ったことがありましたが、Java agentとして使うもの自体を 自分で書いたことがなかったので試してみようかなと。 Java agent Java agentは、たまにjavaコマンドに-javaag…

Byte Buddyでクラスを再定義(redefine)してみる

これは、なにをしたくて書いたもの? こちらのエントリーで、Byte Buddyを試してみました。 Byte Buddyでバイトコードを生成・操作してみる - CLOVER この時はサブクラスを作成しましたが、今回はクラスの再定義(redefine)をやってみたいと思います。 クラ…

Byte Buddyでバイトコードを生成・操作してみる

これは、なにをしたくて書いたもの? Javaでバイトコードを生成したり操作するライブラリーにはいくつかありますが、今回はByte Buddyというものを試して みたいと思います。 Byte Buddy Byte BuddyのWebサイトはこちら。 Byte Buddy - runtime code generat…

Ubuntu Linux 24.04 LTSへのEclipse Temurinをインストール方法を確認してみる

これは、なにをしたくて書いたもの? 自分はJavaはほぼUbuntu LinuxのaptリポジトリーにあるOpenJDKを使っています。他のディストリビューションを使う時は SDKMANなりmiseなりでインストールして切り替えればいいかなくらいに思っているのですが、そういえ…

SASTツール、Semgrep Community Editionを試す

これは、なにをしたくて書いたもの? SemgrepというSASTツールをちょっと試してみようかなということで。 Semgrep SemgrepはSASTツールの一種です。Webサイトはこちら。 Semgrep App Security Platform | AI-assisted SAST, SCA and Secrets Detection Semgr…

SnakeYAML/SnakeYAML Engineを使って、JavaでYAMLを扱う

これは、なにをしたくて書いたもの? YAMLというファイルフォーマットはよく扱っていますが、そういえばYAMLをプログラムで扱うことをあまりやってこなかったので、 1度ライブラリーを調べる意味も含めて見てみました。 今回はSnakeYAMLを扱ってみようと思い…

Java 9以降の変更点のサマリーをドキュメントで見る

前に、Javaの新しいAPIについてはJavadocで確認できるようになっていることを紹介しました。 Java 11から17までのJEP、新しいAPIのまとめ - CLOVER 言語の変更点については、こちらのドキュメントを見るとまとまっていてよさそうです。 Java 11。 Java言語の…

Ubuntu Linux 24.04 LTSにOpenJDK 25をインストールする

これは、なにをしたくて書いたもの? OpenJDK 25が2025年9月16日にリリースされました。 The Arrival of Java 25 JDK 25 Documentation - Home Ubuntu Linuxにもそのうち使えるようになるだろうとは思っていましたが、現行のLTSである24.04に入るのには時間…

Ubuntu Linux 24.04 LTSのaptパッケージでインストールしたOpenJDKをSDKMANで管理する

これは、なにをしたくて書いたもの? 自分は、Java系のツールのインストールにSDKMANを使っています。 Home | SDKMAN! the Software Development Kit Manager ただOpenJDKはUbuntu Linuxのパッケージからインストールしていて、このバージョン切り替えを自前…

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

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

Bridge Logback into OpenTelemetry(Appender Instrumentation for Logback)を使って、OpenTelemetry Collectorにログを送信する

これは、なにをしたくて書いたもの? 久しぶりのOpenTelemetryまわりを見てみようかなということで、今まで触ってこなかったログを見てみることにしました。 今回はAppender Instrumentation for Logbackを使ってOpenTelemetry Collectorにログを送信してみ…

DbUnit 3.0.0を試してみる

これは、なにをしたくて書いたもの? DbUnitがいつの間にか3.0.0になっていたので、少し見てみようかなということで。 Changes / Release 3.0.0 DbUnit 2.8.0と3.0.0でなにが変わったか? DbUnitについては、以前こちらのエントリーで扱っています。 DbUnit…

SDKMANの中身の一部がいつの間にかRustになっていたという話

これは、なにをしたくて書いたもの? 自分はJavaに関するソフトウェアをインストールするのに、よくSDKMANを使っています。 Home | SDKMAN! the Software Development Kit Manager 環境によってはmiseを使っていることもあるのですが、Javaに関するものに特…

GoogleのJavaの静的解析ツール、Error Proneを試す

これは、なにをしたくて書いたもの? Javaの静的解析ツールといえばSpotBugs、PMD、CheckStyleあたりが有名ですが、Error Proneというものも試してみようかなと ということで。 Error Prone Error Proneは、Googleが開発しているJavaの静的解析ツールです。 …

Spotless Maven Pluginとgoogle-java-formatで、ソースコードのフォーマットを行う

これは、なにをしたくて書いたもの? 以前、Formatter Maven Pluginを使ってソースコードのフォーマットをしてみました。 Formatter Maven Pluginで、ソースコードのフォーマットを行う - CLOVER 今回はSpotless Maven Pluginとgoogle-java-formatでソースコ…

Java標準のHTTPクライアント(HttpClient)のタイムアウト(HttpRequest.Builder#timeout)の挙動を確認する

これは、なにをしたくて書いたもの? JJUG CCC 2025 Springで、こういう発表があったみたいです。 障害を回避するHttpClient再入門 / Avoiding Failures HttpClient Reintroduction - Speaker Deck この中のJava標準のHttpClientのタイムアウトを説明を見て…

Java Fakerの後継、Datafakerでフェイクデータを作成する

これは、なにをしたくて書いたもの? 以前、データベースのセットアップや性能テスト、匿名化したデータの作成といった用途でし利用することが想定された、 Fakerというライブラリーを試してみました。 Fakerでフェイクデータを作成する - CLOVER FakerはPyt…