Spring BootとArmeriaでHTTP/2のh2cを試す

Spring BootはHTTP/2のh2c (HTTP/2 over TCP)をサポートしていないが、Armeriaを組み合わせると使用できる。 追記 - Spring Boot 2.3.5からh2cの設定方法がドキュメントに記載されたので、Armeriaを使わなくても試せるようになった。 https://docs.spring.io…

WiresharkのプラグインをMacでビルドする

Cで書かれたWiresharkのプラグインをMacでビルドしたときのメモ。 手順 準備 Wiresharkをインストールする % brew install wireshark --cask インストールしたWiresharkと同じバージョンのソースコードをダウンロードする(今回は3.4.5) % git clone https:…

Maven/Gradleでdependencyのupdateをチェックする

MavenまたはGradleでdependencyのupdateをチェックしたいときの備忘録。 Maven % mvn versions:display-dependency-updates Gradle Gradleの場合はgradle-versions-pluginsを使用する。 % ./gradlew dependencyUpdates -Drevision=release

GradleでJava 13のプレビュー機能を試す

GradleでJava 13のプレビュー機能を試したときのメモ。 Gradleは6.0以降を使用する。 Gradle 6.0 Release Notes ソースコード build.gradle --enable-previewを設定する plugins { id 'java' id 'application' } group 'com.example' version '1.0-SNAPSHOT'…

Java 14でNullPointerExceptionの詳細エラーメッセージを表示する

Java 14でNullPointerExceptionの詳細エラーメッセージを表示したいときのメモ。 ※追記 Java 15からShowCodeDetailsInExceptionMessagesはデフォルトで有効になった。 https://bugs.openjdk.java.net/browse/JDK-8233014 Demo Java 14をインストール後、Show…

docker-hiveでHive JDBCを試す

Dockerを使ってHive JDBCを試したときのメモ。 準備 ソースコード build.gradle plugins { id 'java' id 'application' } group 'com.example' version '1.0-SNAPSHOT' sourceCompatibility = JavaVersion.VERSION_11 repositories { mavenCentral() } depen…

Docker ComposeでMongoDBのReplica Setを使う

Docker ComposeでMongoDBのReplica Setを試したときのメモ。 準備 docker-compose.yml version: '3' services: mongo01: image: mongo:4.4 command: mongod --replSet rs1 --bind_ip_all ports: - "27017:27017" mongo02: image: mongo:4.4 command: mongod …

Springfox SwaggerでCSRF tokenを送信する

Spring SecurityのCSRFを有効にしている状態で、SpringfoxのSwagger上でPOST等のメソッドを実行したいときのメモ。 そのままでは試せないが、以下のようなCSRF tokenがを返すエンドポイントを作れば、POST等のメソッドも実行できる。 ソースコード plugins {…

Spring Boot ActuatorのHTTP Client MetricsのURI tagが上限に達した

Spring Boot ActuatorとMicrometerを使っているときに、こんなwarnログが出たときのメモ。 WARN o.s.b.a.a.m.OnlyOnceLoggingDenyMeterFilter - Reached the maximum number of URI tags for 'http.client.requests'. Are you using 'uriVariables' on RestT…

Spring BootでCaffeineのcacheごとにexpireAfterAccessを指定する

Spring BootのcacheにCaffeineを使っている場合で、cacheごとにmaximumSizeやexpireAfterAccessを指定したいときのメモ。 プロパティのspring.cache.caffeine.specにはcacheごとにexpireAfterAccessなどを設定できないので、SimpleCacheManagerを使うしかな…

Spring DataとSpring Sessionで別々のRedisConnectionFactoryを使う

Spring Data RedisとSpring Session Data Redisで、RedisConnectionFactoryを分けたいときのメモ。 Spring Sessionで使うRedisConnectionFactoryに@SpringSessionRedisConnectionFactoryを付けると、Spring Sessionはこちらを使うようになる。 Spring Boot: …