CLOVER🍀

That was when it all began.

Java

DateTimeFormatterでパースとフォーマット時の桁数や空白について調べる

これは、なにをしたくて書いたもの? DateTimeFormatterで文字列として表現された日時をパースする時に桁数や空白の扱いについてあまり意識していなかったので、 ちょっと見てみることにしました。 DateTimeFormatter (Java SE 17 & JDK 17) 環境 今回の環境…

Jacksonで、オブジェクトをシリアライズする際にnullのプロパティを出力しないようにする

これは、なにをしたくて書いたもの? Jacksonを使ってオブジェクトをJSONにシリアライズする際に、nullのプロパティの出力は抑制したくなることがあります。 JSONにした時に、以下のような状態を { "property1": "value1", "property2": null } こうする、と…

IntelliJ IDEAを使ってコマンドラインでファイルをフォーマットする

こちらのエントリーを書いていて、IntelliJ IDEAを使ってコマンドラインでファイルをフォーマットできることがわかったので、 軽くメモしておきます。 Formatter Maven Pluginで、ソースコードのフォーマットを行う - CLOVER ドキュメントはこちら。 Format …

Formatter Maven Pluginで、ソースコードのフォーマットを行う

これは、なにをしたくて書いたもの? Javaでプログラムを書いていて、ソースコードを一括でフォーマットしたり、フォーマットするのを忘れないようにしたいとかいう 話があると思います。 こういうのを調べてみると、たいていEclipseのフォーマッターをCLIで…

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要素の書き方がわからない

これは、なにをしたくて書いたもの? このブログのエントリー内で時々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トリガーとし…