しおしお

IntelliJ IDEAのことなんかを書いてます

JUnit Pioneerを使ってJUnit5のテスト実行時に環境変数を設定する

JUnit5なテスト実行時に環境変数を設定(クリア)できる、拡張のGitHub - junit-pioneer/junit-pioneer: JUnit 5 Extension Packを試してみました。 テスト実行時に環境変数を設定する 環境変数の設定は@SetEnvironmentVariableアノテーションで行います。 …

Vue.js3でのv-modelのメモ

Vue.jsのバージョン3では、v-modelの仕様が結構変わっているのでそれのメモ。 サンプルコード シンプルなパターン modelValueプロパティを使った値の受け渡しになっていて、値の変更は、update:modelValueイベントを発火することで親コンポーネントに通知で…

KotestのSpring拡張を試してみる

KotestのSpring拡張を使う方法になります。 KotestのSpring拡張をdependenciesに追加 io.kotest:kotest-runner-junit5-jvmだけではなく、Spring拡張のio.kotest.extensions:kotest-extensions-springを追加します。 Mockkを使うのに便利なcom.ninja-squad:sp…

KotestでTestcontainersを使ってみる

KotestでTestcontainersを簡単に使う方法になります。 KotestのTestcontainers拡張を追加 KotestにはTestcontainers用の拡張ライブラリが用意されているので、それを依存に追加します。 build.gradleの場合 testImplementation 'io.kotest.extensions:kotest…

IntelliJ IDEAのCloud Codeプラグインを使ってSkaffoldしてみたよ

IntelliJ IDEAのCloud CodeプラグインのSkaffold機能を試してみたいと思います。 準備 Cloud Code - IntelliJ IDEs Plugin | Marketplaceをお使いのIntelliJ IDEAにインストールします。 Supported Productsに、Communityの記載があるのでUltimate以外でも使…

Skaffoldで起動したSpring BootなアプリケーションをIntelliJ IDEAでデバッグする

Skaffoldで起動したSpring BootをIntelliJ IDEAでデバッグする方法を調べてみました。1 デバッグモードでアプリケーションをデプロイする skaffold debugコマンドを使用して、アプリケーションをデプロイします。 debugコマンドを使ってデプロイすることで、…

WireMock clientのKotlin DSLを作ってみた

WireMock clientのKotlin DSLを作ってみたお話です。 導入 Maven <dependency> <groupId>io.github.siosio</groupId> <artifactId>wiremockk</artifactId> <version>1.0.0</version> </dependency> Gradle implementation 'io.github.siosio:wiremockk:1.0.0' 使い方 Stubの登録 WireMockに追加された拡張関数のregisterを使ってStubを登録できるように…

WebStormでDenoを使ってみる

お仕事でDenoを使う機会があったので、WebStormで環境構築や実行&デバッグできるか試してみました。 使用したバージョン Deno $ deno --version deno 1.14.1 (release, x86_64-unknown-linux-gnu) v8 9.4.146.15 typescript 4.4.2 WebStorm WebStorm 2021.3 …

Spring Data R2DBCで複数のデータベースに接続してみる

やりたいこと 単一のWebFluxのアプリケーションで、Spring Data R2DBCを使って複数のデータベースに接続してSQLを実行したい。 環境準備 データベース 準備が簡単なので、Docker Composeを使ってデータベースを2つ起動しています。 version: '3.7' services:…

Spring Boot + MVCでkotlinx.serializationを使ってリクエスト・レスポンスのシリアライズとデシリアライズをしてみる

Spring Boot + MVCでkotlinx.serializationを使ってリクエスト・レスポンスのシリアライズとデシリアライズを試してみました。 使用バージョンなど ↓のバージョンを使って試してみました。 Spring Bootは、2.5.4 kotlinx.serialization build.gradle.ktsはこ…

Dartの拡張関数を使ってみる

Dartの拡張関数とは Kotlinと同じような感じで、既存のクラスに対して関数追加できちゃう感じですね。 ドキュメントはこちら→(Extension methods | Dart) 構文 extension onを使って拡張したい型に対して、拡張関数を定義してあげます。 extensionとonの間に…

Elasticsearchで条件にマッチした部分を取得する

Elasticsearchで条件にマッチしたワードをハイライト表示したいなんてことありますよね。 これを実現するために、条件にマッチした部分を検索結果から取得する方法になります。 準備 インデックス内容 フィールドをひとつだけ持つインデックスを作成して確認…

kotlinx.serializationつかってJSONのシリアライズ・デシリアライズしてみたよ

kotlinx.serialization を使って、JSONのシリアライズとデシリアライズを試してみたよ。 デシリアライズ&シリアライズ JSONに対応するdata classを作成する JSONに対応するdata classには、@Serializableを設定してあげます。ネストオブジェクトに対応するク…

IntelliJ IDEA2021.1からGitのコミットメッセージテンプレートに対応したのが便利

現時点ではBeta版のIntelliJ IDEAの2021.1からGitのコミットメッセージテンプレートに対応してくれたのが便利ですね。 これを使うことでサードパーティ製のプラグインなど入れなくても、テンプレートを元にメッセージのプレフィックス的なもの入れたりするの…

Testcontainersを使ったテストの高速化

Testcontainersを使ったテストは、コンテナの起動が毎回行われるのでどうしてもslow testになってしまいます。 そこで、一度あげたコンテナを使い回すことで2回目以降のテスト実行を高速化してみようと思います。 コンテナを使い回す設定を追加 コンテナを使…

TestcontainersのElasticsearch containerでコンテナ起動時にpluginをインストールする方法

TestcontainersのElasticsearchコンテナ起動時にテストで必要となるプラグインをインストールする方法を調べてみました。 サンプルコード ElasticsearchContainerの親クラスのGenericContainerが、docker-java APIのCreateContainerCmdに対してなにか処理を…

Spring Cloud Contractのstubをもとにサーバを起動してみる

Spring Cloud Contractを試してみた - しおしおの続きで、Producer側で生成したstubsをサーバとして起動してエンドポイントを叩いて結果が取得できるか試してみました。 Spring Cloud Contractを適用したプロジェクトの作成 新規でプロジェクトを作るのは大…

single-spaでマイクロフロントエンドしてみる

single-spa | single-spaなるマイクロフロントエンドさくっと作れそうなフレームワークを試してみました。 準備 single-spa はプロジェクト作成用などのcliを用意してくれているようなので、まずはそれをインストールします。 npm install --global create-s…

Testcontainersのコンテナを複数テストクラスで使い回す

Testcontainersのコンテナを複数テストクラスで共有して使い回す方法になります。 コンテナを使い回すことで、テストクラスごとにコンテナが起動されテストの実行がめちゃ遅くなってしまう問題を解消することが期待できます。 コンテナをマニュアル起動する…

IntelliJ IDEAを使ってDbSetupのKotlin DSL用コードを生成する

IntelliJ IDEAのDatabase Tools and SQLプラグインの検索結果テーブルからGitHub - Ninja-Squad/DbSetup: An API for populating a database in unit testsのKotlin DSL用のデータセットアップコードを生成してみました。 既存のデータベースからデータセッ…

Spring Boot2.4.0からのapplication.properties(yml)の変更点φ(..)メモメモ

Spring Boot Config Data Migration Guide · spring-projects/spring-boot Wiki · GitHubにまとまっていますが、2.4.0からConfigファイル周りの設定値や読み込み順などが変わっているようです。 2.4.0より前のバージョン こんな感じにspring.profilesでプロ…

IntelliJ IDEA2020.3のEAPにしたらLombok使ってるプロジェクトのビルドができなくなったお話

IntelliJ IDEAのバージョン 2020.3 EAPの以下のビルドバージョン(これより前のビルドからこの問題が発生しています) 再現コード pom.xml <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency> </dependencies> コード public class Main { public static vo…

Spring Cloud Contractを試してみた

Spring Cloud Contractとは Spring Cloud Contractは、Consumer-Driven Contract testing1を実現するためのフレームワークです。 お試し構成 Producerをserver-serviceとして、Consumerをclient-serviceとして構築しています。 Producer(server-service) bui…

Spring Boot 2.3からのCloud Native Buildpacksを試してみる

Spring Boot 2.3からのCloud Native Buildpacksを試してみました。 プロジェクトの作成 Spring Initializrを使って、Spring Bootのバージョンを2.3以降にしてプロジェクトを生成します。 ※お試しプロジェクトでは、Dependenciesに Spring Web と Spring Boot…

IntelliJ IDEAのElasticsearchプラグインを試してみた

IntelliJ IDEA用のElasticsearchプラグインが最近登場したらしいのでお試ししてみたよ。 使ったバージョン IntelliJ IDEA 2020.2 BETA Elasticsearch plugin 0.1.7 インストール Elasticsearchプラグインの以下ページやIntelliJのplugin settings画面からイ…

Spring BootでDomaのCriteria APIをつかってみる

doma-spring-boot-starterの1.4.0で簡単にCriteria APIが使えるようになったので早速つかってみました。 build.gradle build.gradleに必要なライブラリを追加します。 domaの2.30.0からcoreとprocessorが分離されてたのも把握できてよかったです。 implement…

Spring BootのテストでTestcontainersを使ってみる

Spring BootのテストでTestcontainersを使って、データベースをコンテナとして起動してテストを実行してみる感じです。 これを使うことで、開発で使っているデータベースを汚染せずに簡単にデータベースまで通しのテストができそうな気がしています。 Testco…

IntelliJ IDEA系の自作プラグインでLanguage Injectionsの設定を行う方法

このメソッドのこの引数は自動的にHTMLやSQLとして認識させたいなーって思うことがあったりしますよね。 それを、自作のプラグインで自動的に設定してあげる手順的なやつです。 プラグインの設定手順 plugin.xmlの定義 org.intellij.intelliLang の拡張ポイ…

VueRouterでroute変更時にaxiosで実行中のリクエストをすべてキャンセルする

やりたいこと VueRouterでroute変更時に、前のページで投げられていたリクエストを一括でキャンセルしたい。 これが出来ると、遷移前のページで大量にリクエストが投げられていた場合、遷移後のページのcreatedで実行するリクエストがすぐに実行出来るように…

Gradle Dependencies HelperプラグインをKotlin DSL対応したよ

Gradle Dependencies Helper - Plugins | JetBrainsのKotlin DSL対応したよ。 これで、今までGroovy DSLでしか出来ていなかったArtifactやVersion番号の候補表示がKotlin DSLでも出来るようになるよ。 こんな感じのことができるよ。 ※2020.1 (eap)の対応とし…