CLOVER🍀

That was when it all began.

Java

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…

テストデータをランダムに生成してインスタンスに設定するライブラリー、Instancioを試す

これは、なにをしたくて書いたもの? Javaのテストデータをランダムに生成するライブラリーのひとつに、Instancioというものがあるのを知ったので少し試してみます。 Instancio InstancioのWebサイトはこちら。 Instancio: Test Data Generator for Java - I…

APIのモックサーバーを定義してテストに使える、WireMockを試す

これは、なにをしたくて書いたもの? 1度、WireMockを試しておきたいなということで。 WireMock - flexible, open source API mocking | WireMock WireMock WireMockは、APIをモックすることができるライブラリーです。スタンドアロンなサーバーとしても使え…

MySQLでプライマリーキーにUUIDを使う場合はシーケンシャルなフォーマットにした方が良さそうだという話

これは、なにをしたくて書いたもの? 前にTiDBでTiDBでプライマリーキーにUUIDを使う場合はシーケンシャルなフォーマットにしない方が良さそうだ、という 話を見てみました。 TiDBでプライマリーキーにUUIDを使う場合はシーケンシャルなフォーマットにしない…

Apache MINA SSHDでSSH/SFTPクライアントを使う(+JavaのSSHクライアントライブラリー事情)

これは、なにをしたくて書いたもの? 最近使うことが減ってきた気がするSSHクライアントなどですが、Javaで扱おうとするとJSchが有名かと思います。 このあたりの事情を最近見直すとちょっと変わっていた感じがするのと、今回はApache MINA SSHDでSSHやSFTP…

JibでローカルのDockerイメージをベースイメージにする場合は、「docker://」をプレフィックスにつける

これは、なにをしたくて書いたもの? JibでローカルにしかないDockerイメージをベースイメージにしようとして、少しハマったのでメモしておきます。 通常はどこかのDockerレジストリーに登録すると思うので、ちょっとした確認用途などでしか使わないと思いま…

Maven War PluginのfailOnMissingWebXmlのデフォルト値がプロジェクトの依存関係で変わるという話

これは、なにをしたくて書いたもの? このところ、WildFlyを使ったりしている時に毎回毎回Maven War Pluginの設定を書いていたのですが、その理由は failOnMissingWebXmlをpropertiesに書いても効かなくなっていたからです。 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>

CycloneDX Maven Plugin(CycloneDX for Maven)でSBOM(Software Bill of Materials)を作ってみる

これは、なにをしたくて書いたもの? 前に、SBOM(Software Bill of Materials)について調べてみました。 SBOM(Software Bill of Materials)について少し調べてみる - CLOVER 今回は、SBOMの作成をやってみたいと思います。フォーマットとしてはCycloneDX…

JDK Flight Recorder(JEP 328/JFR)とJDK Mission Control(JMC)を試す

これは、なにをしたくて書いたもの? JDK Flight Recorder(JFR)とJDK Mission Control(JMC)について見てみようと思いつつ、ずっとそのままにしていたのでそろそろ ちゃんと見ておこうかなということで。 なお、今回はざっくりコマンドの使い方の雰囲気だ…

Inheritedアノテーションの動作を確認してみる

これは、なにをしたくて書いたもの? メタアノテーションのひとつに、@Inheritedがあります。 Inherited (Java SE 21 & JDK 21) アノテーションが継承されるというのですが、これがどういう意味なのか確認したことがなかったので見てみることにしました。 @I…

Apache Mavenでインテグレーションテストを行う時は、Maven Failsafe Pluginの設定を忘れないこと

あんまり使わないので、たまに使った時にコロッと忘れていてドハマりしたのでメモとして書いておきます。 Apache Mavenでintegration-testやverifyゴールを実行する時にインテグレーションテストを行いたい場合は、Maven Failsafe Pluginの 設定が必要です。…

データベースのデータに対するアサーションができるAssertJ-DBを試してみる

これは、なにをしたくて書いたもの? AssertJのモジュールのひとつである、データベースのデータに対するアサーションができるAssertJ-DBを試してみようかなということで。 AssertJ-DB AssertJ-DBのドキュメントは、AssertJのドキュメントの中に含まれていま…

JaCoCoでカバレッジデータの追記、マージを行う

これは、なにをしたくて書いたもの? Maven Surefire PluginのincludesFileを使って、テストクラスを分割して実行する方法を見てみました。 Maven Surefire Pluginでテストクラスを分割してファイルで指定してみる(includesFile) - CLOVER この時にJaCoCo…

Maven Surefire Pluginでテストクラスを分割してファイルで指定してみる(includesFile)

これは、なにをしたくて書いたもの? 前に、こんなエントリーを書きました。 Maven Surefire Pluginのincludeになにを指定したらいいのかわからないという話 - CLOVER この時はMaven Surefire Pluginのinclues/include、excludes/excludeになにを指定すれ…

Jakarta ServletのServletContainerInitializerを試す

これは、なにをしたくて書いたもの? ServletContainerInitializerを使ったことがないなと思ったので、1度自分で試しておこうかなということで。 ServletContainerInitializer ServletContainerInitializerは、Jakarta Servletが備えるプラグインのような仕…

Google Auto(AutoService)を使ってサービス・プロバイダー(ServiceLoader)向けのファイルを自動生成する

これは、なにをしたくて書いたもの? サービス・プロバイダー(ServiceLoader)を使うと、実行時に特定のインターフェースを実装したクラスをプラガブルに扱うことができます。 ServiceLoader (Java SE 21 & JDK 21) この時、META-INF/services/[インターフ…

Flywayのマイグレーションの管理を考えてみる(Spring Bootでのサンプル付き)

これは、なにをしたくて書いたもの? Flywayのマイグレーションをどう管理するのがいいのかなと悩んだことがあって、ちょっとまとめておこうかなと。 方針? Gitを使い、ブランチで開発 → マージする、といったフローを組んでいるチーム開発を背景にしていま…

Maven Surefire Plugin(Maven Failsafe Plugin)とJaCoCo Maven PluginとargLineと

これは、なにをしたくて書いたもの? JaCoCo Maven PluginのようなJavaVM引数を使うようなMavenプラグインと、Maven Surefire Plugin(Maven Failsafe Pluginも)のargLineを 一緒に使うとちょっとハマるのでメモとして。 Maven Surefire Plugin(Maven Fail…

MavenプロジェクトにJaCoCoを導入する

これは、なにをしたくて書いたもの? MavenプロジェクトにJaCoCoを導入するメモ。 JaCoCo JaCoCoはJavaのカバレッジを取得するライブラリーです。Webサイトはこちら。 EclEmma - JaCoCo Java Code Coverage Library ドキュメントはこちら。 JaCoCo - Documen…

Maven Surefire Pluginのincludeになにを指定したらいいのかわからないという話

これは、なにをしたくて書いたもの? Maven Surefire Pluginにはincludes / include、excludes / excludeでテストを絞り込んだり除外したりする機能があります。 ドキュメントを見ていると、なにとマッチさせているのかがいつもよくわからなくなるので調べ…

Recordsのビルダーを生成するJilt、RecordBuilderを試す

これは、なにをしたくて書いたもの? JavaのRecordsを使っているとビルダーが欲しいなと思うのですが、自動生成してくれるライブラリーがあるようなので試してみました。 Recordsのビルダーを生成するライブラリー 今回見つけたのはこちらです。 Jilt。Recor…

Database Riderの実行前にFlywayマイグレーションを行うJUnit 5 Extensionを書いてみる

これは、なにをしたくて書いたもの? JUnitテスト実行時に、Flywayを組み合わせて使いたいなと思いまして。 よくDatabase Riderを使うので、今回はJUnit 5 ExtensionとしてDatabase Riderの実行前にFlywayマイグレーションを動かすように組み込んで みたいと…

JUnit 5のExtension Modelを試す

これは、なにをしたくて書いたもの? ちょっとJUnit 5の拡張(Extension Model)について知っておきたいなと思いまして。 JUnit 5のExtension Model JUnit 5を拡張する機能がExtension Modelです。 JUnit 5 User Guide / Extension Model 参考) JUnit 5の拡…

Apache Mavenをdaemonとして実行する、Maven Daemon(mvnd)を試す

これは、なにをしたくて書いたもの? Apache Mavenをdaemonとして実行できるというMaven Daemonを試してみようかなということで。 Maven Daemon(mvnd) Maven DaemonのGitHubリポジトリーはこちら。 GitHub - apache/maven-mvnd: Apache Maven Daemon Gradl…

H2 Database(インメモリー)へいろいろな形態で接続する

これは、なにをしたくて書いたもの? 組み込み、インメモリーなデータベースとしてテストなどでよく使われるH2 Databaseですが、どういう利用形態があるかちゃんと見てきて いなかったので、少し見ておきたいなということで。 自分はインメモリーで使うこと…