kagamihogeの日記

kagamihogeの日記です。

2021-01-01から1年間の記事一覧

docker(WSL2) + Testcontainers

Testcontainers はユニットテストの起動と終了と共にdockerコンテナも起動と終了してくれるライブラリ。windowsというかWSL2で動かすには若干の追加設定が必要だった。 背景 特に何も設定せずtestcontainersからWSLのdockerに接続しようとすると下記のような…

docker(WSL2) + Testcontainers + MySQL

WSL2上のdockerでMySQLを起動してユニットテストを記述する。Testcontainersでテスト時にコンテナを自動的に開始・終了をする。 環境 windows 10 WSL2 Ubuntu-20.04 Docker version 20.10.11 ソースコード Spring Initializr で「testcontainer」と入力すれ…

docker(WSL2) + Testcontainers + sftp

WSL2上のdockerでsftpサーバを起動してユニットテストを記述する。Testcontainersでテスト時にコンテナを自動的に開始・終了をする。 環境 windows 10 WSL2 Ubuntu-20.04 Docker version 20.10.11, ソースコード Spring Initializr で「testcontainer」と入…

spring-batchのMapJobRepositoryFactoryBeanがDeprecated

従来、メタテーブルを永続化しなくするためにMapJobRepositoryFactoryBeanを使う事があったがspring-batch v5.0で削除予定になったようだ。 * @deprecated as of v4.3 in favor or using the {@link JobRepositoryFactoryBean} * with an in-memory database…

Gradle 7.2でcustom pluginをlocalのMavenリポジトリに登録

gradleで複数プロジェクトを作成すると共通のビルドスクリプトを共有したくなる。方法は場合に応じて色々あるが、ここではcustom pluginをMavenリポジトリにpublishする方法を述べる。動作確認のためにlocalのMavenリポジトリを使うが、publish先をremoteやG…

spring-bootアプリケーションでgradleのmavenからmaven-publishに書き換え

gradleを7.2にアップデートした際にmavenプラグインをmaven-publishに置き換えた。spring-bootアプリケーションのjarをpublishが出来るようになるまでそこそこ苦労したので過程などを残しておく。 環境 gradle 7.2 java 11 spring-boot 2.5.4 ソースコード -…

gradleの複数プロジェクトで共通設定をpluginでまとめる

単一プロジェクト内のsubproject間の共通設定をpluginにまとめる方法はgradle initでプロジェクト作ればそこに例があるし、自分のblogだと gradle initの複数subproject構成を見る(6.8.3)にまとめている。 ここでは複数プロジェクト間の共通設定をpluginにま…

新型コロナウイルス ワクチン(モデルナ)接種2回目の記録

40代・男性の新型コロナウイルス ワクチン(モデルナ)接種2回目の記録です。 時系列 接種日から数日後まで時系列に沿って、体調の変化やその対処およびその時の心境などを述べる。 7/21 接種日 - 約半日後に急激な発熱 正午頃に2回目の接種を終える。数時間…

javaでextendsの階層を大量に深くする

javaでextendsの階層を深くしまくったらどうなるか? 理論的な裏付けは特に行わず、とりあえずやってみたら何が起きるか、を見る。 環境 java version "16" 2021-03-16 やったこと こんな感じでひたすらextendsを重ねるクラスを生成し、コンパイルして実行し…

gradle initの複数subproject構成を見る(6.8.3)

動機 gradle勉強のためgradle initが生成する複数のsubproject構成を見る。基本的には https://docs.gradle.org/6.8.3/samples/sample_building_java_applications_multi_project.html と書いてる事は変わらない。 複数のsubprojectを作る場合はネットをぐぐ…

EnvironmentPostProcessorでEnvironment初期化処理をカスタマイズ

spring-bootのEnvironmentPostProcessorを実装する事でEnvironmentの初期化処理に後処理を追加可能になる。これでプロパティの初期化をカスタマイズできる。大抵のケースでExternalized Configurationを利用すればプロパティは問題無いが、それでは機能不足…

Testcontainers + Spring Boot + Oracle XE

Testcontainersを使用し、spring-bootのテスト開始時にoracle xeのdockerコンテナを起動してテスト終了時に停止する。 環境 Windows 10 Pro x64 docker desktop 3.1.0 事前準備 oracleのdocker まずdockerでoracleを起動可能にする。 kagamihoge.hatenablog.…

oracleのpre-builtによるdocker run起動高速化

dockerとはいえoracleは結構な起動時間がかかる。下記URLにあるpre-builtにより時間の短縮が見込めるとのことなので試す。 https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/samples/prebuiltdb 環境 Windows 10 Docker …

spring.kafka.consumer.auto-offset-resetの挙動確認

spring-kafkaのプロパティspring.kafka.consumer.auto-offset-resetの挙動の違いを確認する。 以下はorg.apache.kafka.clients.consumer.ConsumerConfig#AUTO_OFFSET_RESET_DOCの抜粋だけど https://kafka.apache.org/documentation/#consumerconfigs_auto.o…

spring-cloud-stream-binder-kafkaのdead-letter-queue

リファレンスとしては https://cloud.spring.io/spring-cloud-stream-binder-kafka/spring-cloud-stream-binder-kafka.html#kafka-dlq-processing のあたり。 plugins { id 'org.springframework.boot' version '2.4.0' id 'io.spring.dependency-management…

spring-kafkaでconsumerのエラー時にdead-letter-topicにpublish

リファレンスとしては https://docs.spring.io/spring-kafka/docs/current/reference/html/#dead-letters のあたり。consumerのエラー発生時に別のtopicにメッセージをpublishする。 plugins { id 'org.springframework.boot' version '2.3.4.RELEASE' id 'i…