CLOVER🍀

That was when it all began.

Java

テストデータをランダムに生成してインスタンスに設定するライブラリー、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ですが、どういう利用形態があるかちゃんと見てきて いなかったので、少し見ておきたいなということで。 自分はインメモリーで使うこと…

JJUG CCC 2024 Springに参加してきました #jjug_ccc

なんの話? 6月16日に、野村コンファレンスプラザ新宿で開催されたJJUG CCC 2024 Springに参加してきました。 JJUG CCC 2024 Spring その記録と感想を少し書いておきます。 参加したセッション 11時から参加していました。 セッション一覧 タイムテーブル 参…

Jakarta EE PlatformおよびProfileとMicroProfileのJARとBOMについて

これは、なにをしたくて書いたもの? Jakarta EE PlatformおよびProfileおよびMicroProfileで使うAPIのJARやBOMについて、少しまとめておきたいと思いまして。 ここでは、Jakarta Servletといった個々の仕様の話よりも、Web Profileといったある程度の仕様を…

HTTPリクエスト/レスポンスをログ出力するLogbookをSpring Boot 3で試す

これは、なにをしたくて書いたもの? HTTPリクエスト/レスポンス(クライアント、サーバー)のログ出力をしてくれる、Logbookというライブラリーがあります。 1度試しておきたかったので、今回はSpring Bootで試してみることにしました。 Logbook Logbookの…

JSSEでサポートしているSSL/TLSプロトコル、SSLSocketFactoryでサポートしている暗号スイートを確認する

これは、なにをしたくて書いたもの? 使用しているJava環境でサポートしているSSL/TLSプロトコルや、暗号スイートを確認したいなと思いまして。 特にこれを書こうと思ったきっかけはSSLSocketFactory#getSupportedCipherSuitesとSSLSocketFactory#getDefaul…

OpenAIのJavaライブラリーからOpenAI API互換のサーバーへアクセスしてみる

これは、なにをしたくて書いたもの? これまでよくOpenAI API互換のサーバーにOpenAI Python APIライブラリーからアクセスして試していたのですが、1度Javaからも アクセスしてみようかなと思いまして。 アクセス先としては、llama-cpp-pythonを使うことにし…

JEP 444(Virtual Threads)のpinning(ピン留め)をシステムプロパティjdk.tracePinnedThreadsによるスタックトレースの出力で確認する

これは、なにをしたくて書いたもの? 前に、Virtual Threadsに関するエントリーを書きました。 Java 21で正式版になったJEP 444(Virtual Threads)に関するAPIを試す - CLOVER Virtual Threadsを使ってHTTPサーバー/クライアントを書いて、スレッドまわり…