CLOVER🍀

That was when it all began.

Java

REST AssuredをSpring Boot 3.0で使う

これは、なにをしたくて書いたもの? REST Assuredが5.1.0でSpring Boot 3.0に対応したようなので、REST AssuredとSpring Frameworkの組み合わせの確認を含めて 試してみることにしました。 https://github.com/rest-assured/rest-assured/blob/rest-assured…

Database RiderをSpring Framework(Spring Boot)と合わせて使う

これは、なにをしたくて書いたもの? 前に、Database Riderに関するエントリーを書いたことがあります。 Database Riderを試してみる - CLOVER Database RiderにはSpring Framework(Spring Boot)と組み合わせて使う機能があるようなので、試してみました。…

OpenAPI Generatorを使って、Spring Web MVCのエンドポイントを生成する

これは、なにをしたくて書いたもの? OpenAPI Generatorを使って、OpenAPIの定義ファイルからSpring Web MVCのエンドポイントを生成してみようかな、ということで。 OpenAPI Generator OpenAPI Generatorは、OpenAPIの定義ファイルからクライアントやサーバ…

Database Riderを試してみる

これは、なにをしたくて書いたもの? 以前、DbUnitを使ってエントリーを書いてみました。 DbUnitを試してみる - CLOVER この時にも少し触れていたのですが、今回はDatabase Riderというものを試してみたいと思います。 Database Rider Database Riderは、DbU…

JavaでULIDを使いたい(Sulky ULIDを使う)

これは、なにをしたくて書いたもの? JavaでULIDを1度使っておきたいな、と思いまして。 ULID ULIDは、Universally Unique Lexicographically Sortable Identifierの略です。辞書的にソート可能でユニークなID、ですね。 ULIDについては、こちらのGitHub Org…

Java 17で文字を数える

これは、なにをしたくて書いたもの? 前に、Java 11でこんなエントリーを書きました。 Java 11で文字を数える - CLOVER この時の主なテーマはBreakIteratorだったのですが、BreakIteratorではうまく扱えない絵文字があることがわかりまして。 その後、Java 1…

web.xmlのweb-app要素の書き方がわからない(Jakarta EE/Java EEのXMLスキーマの一覧を確認する)

これは、なにをしたくて書いたもの? このブログのエントリー内で時々web.xmlを書いているのですが、web-app要素をどう書いたらいいのかよくわからなくなってきたので、 調べてまとめておくことにしました。 web-app要素というのは、よくあるこういうものの…

LocalStackでAmazon SQSのFIFOキューを試してみる(AWS SDK for Javaを使用)

これは、なにをしたくて書いたもの? Amazon SQSをちょっと試しておきたいなと思ったのですが、動かす時にいろいろ考えた結果FIFOキューを試してみることにしました。 Amazon SQS自体は本物ではなく、LocalStackのものを使用します。 Amazon SQS Amazon SQS…

javaコマンドで使える、JDK_JAVA_OPTIONS環境変数ってなんだ?

これは、なにをしたくて書いたもの? JibのFAQを見ていて、こんな1文があることに気づきまして。 For Java 9+, often you may want to use JDK_JAVA_OPTIONS instead of JAVA_TOOL_OPTIONS. 環境変数JAVA_TOOL_OPTIONSは知っていて、過去にエントリーも書い…

MySQL Connector/JとCharacter Set/Character Set Results/Connection Collationとの設定、関係がよくがわからなかったので調べてみる

これは、なにをしたくて書いたもの? MySQLのJDBCドライバー、Connector/JのcharacterEncoding、characterSetResults、connectionCollationあたりの説明を見ていて、 不思議な感じがしたので調べてみることにしました。 MySQL :: MySQL Connector/J 8.0 Deve…

DbUnitを試してみる

これは、なにをしたくて書いたもの? Javaのテストまわりの情報を見ていて、データベースの事情って今はどうなんだろう?と思いまして。 見ていて、DbUnitから変わっていなさそうだったのと、そもそもDbUnitを使ったことがなかったのでちょっと試してみるこ…

Apache Tomcatをフォアグラウンドで起動する

これは、なにをしたくて書いたもの? Apache Tomcatをフォアグラウンドで起動する方法について、ちょっとメモしておこうかなと。 Dockerコンテナやsystemdのサービスとして起動する時に、知っておくと便利そうですよね。 前に書いたエントリーで触れたことが…

JavaがDockerコンテナ内でどのようにCPU数、メモリサイズを取得しているのかを調べてみる

これは、なにをしたくて書いたもの? 現在のJavaは、コンテナ環境下ではホスト側ではなくコンテナにリソース制限がかけられていればそちらの値を見るように なっています。 これはどこの値を見ているのかな?というのを確認してみたくなりまして。 なお、自…

JavaでUNIXドメインソケットを使う

これは、なにをしたくて書いたもの? Java 16でUNIXドメインソケットが扱えるようになったらしく、Java 17も出たことですし触っておこうかなと。 JEPs in JDK 17 integrated since JDK 11 JEP 380: Unix-Domain Socket Channels UUNIXnixドメインソケットと…

Ubuntu Linux 20.04 LTSにOpenJDK 17をインストールする

これは、なにをしたくて書いたもの? OpenJDK 17が、2021年9月14日にリリースされました。 Oracle Releases Java 17 とはいえ、Ubuntu Linuxで使えるのはしばらく先だろうと思っていたのでそのままにしていたのですが。 気づくと使えるようになっていたので…

Java 11で文字を数える

これは、なにをしたくて書いたもの? Javaで文字数を数える時に、String#lengthではサロゲートペアがうまく数えられないことは有名だと思うのですが。 Unicode - Wikipedia 結合文字というものを踏まえた数え方をちゃんと知らなかったので、今回見てみること…

LocalStackにJavaで作成したAWS Lambda関数をデプロイしてみる(Mavenアーキタイプ、AWS SAM)

これは、なにをしたくて書いたもの? Javaのアプリケーションフレームワークを使って、LocalStackにAmazon API Gateway+AWS Lambdaな環境を作って みようとしていたのですが、ちょっとハマったのでひとつずつ順番に見ていこうかなと。 今回は、LocalStack上…

Java 11から17までのJEP、新しいAPIのまとめ

Java 17がリリースされたということで。 自分が触るのはもう少し後になるかなとも思いつつ、Java 11以降の変更点を見る方法があるようなのでメモして おきます。 Java 11から、Java 17までに導入されたJEPのまとめ。 JEPs in JDK 17 integrated since JDK 11…

セキュアなクラスターとして構築したCockroachDBに、PostgreSQLのJDBCドライバーでアクセスする

これは、なにをしたくて書いたもの? セキュアなクラスターとして構築したCockroachDBに、PostgreSQLのJDBCドライバーを使ってアクセスしてみたいと思いまして。 環境 今回の環境は、こちら。 $ cockroach --version cockroach version details: Build Tag: …

Jacksonで、JSONをコンテナ型(ListやMapなど)のような型引数を持ったクラスにデシリアライズする

これは、なにをしたくて書いたもの? Jacksonを使ってJSONをデシリアライズする時に、ObjectMapper#readValueをよく使うわけですが。そういえば、自分で 書いている時にListやMapといったジェネリックな型にデシリアライズしたことがないな、と思い。 工夫が…

Jacksonで、入力として型変換できない値を渡したら?

これは、なにをしたくて書いたもの? JSONの読み書きにはJacksonをよく使いますが、マッピング先のクラスのプロパティに、そのまま設定できない値を指定した場合 (たとえば数字ではない文字列をintのフィールドに設定しようとする)、どうなるんだっけ?と…

Jackson Text Dataformats Moduleを使って、CSVファイルの読み書きをしてみる

これは、なにをしたくて書いたもの? これまでCSVを読み書きするのに、OpenCSV、Super CSVなどを使ってきたのですが、JacksonでもCSVファイルの読み書きが できることはなんとなく知っていたものの使ったことがありませんでした。 ちょっと試してみようかな…

システムコンポーネント(CPU、メモリ、ディスク、ネットワーク等)のレイテンシとタイムスケールなどなど

これは、なにをしたくて書いたもの? CPUサイクルに対してメモリアクセスのレイテンシ比とか、メモリアクセスとディスクアクセスのレイテンシ比がどこかに まとまっていたな、と時々思いながら、どこにあるか忘れて探すことになるので。 各リソースアクセス…

ThreadPoolExecutorの設定項目を確認する

これは、なにをしたくて書いたもの? 今までConcurrency Utilitiesで提供されるスレッドプールを使ってきたことはあったのですが、その設定内容をちゃんと 見てきていなかったので今回見てみようかなと。 具体的には、ThreadPoolExecutorを見ていこうと思い…

Azure Functions(Java)のTimerTriggerをローカルで動かしてみる

これは、なにをしたくて書いたもの? 前に、Azure FunctionsのHttpTriggerをローカルで動かしてみました。 Azure Functions(Java)をローカルで動かしてみる - CLOVER 今回は、TimerTriggerを動かしてみたいと思います。 TimerTrigger TimerTriggerは、Azur…

Azure Functions(Java)をローカルで動かしてみる

これは、なにをしたくて書いたもの? Azure Functionsはローカルでも多少動かせるようなので、Javaで試してみようかな、と思いまして。 どういった雰囲気なのか、まずは知ってみようというのが目的です。 お題 Azure Functions(Java)を、HTTPトリガーとし…

JavaでAES(ECB/CBC)を使う

これは、なにをしたくて書いたもの? こちらのエントリを書いていて、「JavaでAESを使う時のコードを全然覚えてないな」と思いまして。 MessageDigestに"SHA"とか、Cipherに"AES"とだけ指定した場合、どうなるの? - CLOVER メモしておこうかな、と。 環境 …

MessageDigestに"SHA"とか、Cipherに"AES"とだけ指定した場合、どうなるの?

これは、なにをしたくて書いたもの? このあたりを見ていて https://github.com/openjdk/jdk11u/blob/jdk-11.0.9.1%2B1/src/java.base/share/classes/sun/security/provider/SecureRandom.java#L96-L116 digest = MessageDigest.getInstance("SHA"); Message…

OpenJDKのソースコードリポジトリは、どれを見ればいい?

これは、なにをしたくて書いたもの? 自分の使い方というと、最新のJavaや開発中のJavaの情報を追うというよりも、リリースされてから(今のご時世だとLTS) ちょっと間を空けて使い始めることが多いです。 で、以前はOpenJDKのソースリポジトリを見ることは…

SecureRandomのアルゴリズムなどに関する情報をちゃんと見る

これは、なにをしたくて書いたもの? Javaの暗号用の乱数ジェネレーター(RNG / Random Number Generator)として、とてもよく使われるSecureRandomですが。 SecureRandom (Java SE 11 & JDK 11 ) ここで指定されるアルゴリズムなどの情報を、あんまりちゃん…