blog1.mammb.com Java レコードのサポート 検索オプション FindOption の追加 @EntityResult でロックモードを指定可能に order-by 式での nulls first と nulls last サポート スタティックメタモデルに EntityType を追加 スタティックメタモデルに名前付…
PowerShell での操作 パスの一覧 パスの設定 環境変数への保存 コマンドプロンプトでの操作 パスの一覧 パスの設定 環境変数への保存 毎度混乱する Path 設定。 PowerShell での操作 パスの一覧 PS> $ENV:Path 以下のようにすると、見やすい。 PS> $ENV:Path…
Jakarta EE 11 における変更の概要 Jakarta Annotations 2.1 -> 3.0 Jakarta Authentication 3.0 -> 3.1 Jakarta Authorization 2.1 -> 3.0 Jakarta Concurrency 3.0 -> 3.1 Jakarta Contexts and Dependency Injection 4.0 -> 4.1 Jakarta Config 1.0 Jakar…
ハイラムの法則 とは ハイラムの法則 の意味するところ ハイラムの法則 による教訓 具体例 ハイラムの法則 とは Software Engineering at Googleでも紹介されたソフトウェア工学についての考察で、以下のように要約されます。 With a sufficient number of u…
Vineflower とは コマンドラインでの実行 コマンドラインオプション Vineflower とは レコードクラスやシールドクラス、スイッチ式などの新しい文法に対応(Java 20+)した JVM 言語用のデコンパイラです(Quiltflower 1.9.0 が、Vineflower 1.9.1 と名称変更さ…
blog1.mammb.com はじめに Unnamed variables (無名変数) ブロック内のローカル変数宣言文 try-with-resources文のリソース指定 基本的な for ループのヘッダー 拡張 for ループのヘッダー キャッチブロックの例外パラメータ ラムダ式の正規パラメータ Unnam…
blog1.mammb.com はじめに FFM API Arena MemoryLayout 外部関数のルックアップ 外部関数の呼び出し 外部関数からJavaコード呼び出し jextract によるグルーコード生成 はじめに JEP 454 Foreign Function & Memory API 通称 FFM API では、JVM外部のコード…
はじめに FileObject StorageStoreEntity S3StorageStoreEntityListener まとめ はじめに アップロードされたファイルなどのバイナリデータを、JPA の上で、透過的に S3 に永続化する実装例です。 JPA でバイナリデータを扱う場合、@Lob で BLOB として扱う…
blog1.mammb.com JEP 外の JDK 21 における変更点を、開発時に覚えておきたいものに絞りまとめておきます。 Math.clamp() メソッドの追加 範囲指定可能な String.indexOf() 区切り文字を含めて分割する String.splitWithDelimiters() StringBuilder.repeat U…
Armeria とは Armeria の始め方 サービス Route デコレータ DecoratingHttpServiceFunction SimpleDecoratingHttpService DecoratingService クライアント クライアント デコレータ gRPC サービス まとめ Armeria とは マイクロサービス用のネットワーク・ラ…
はじめに S3 SDK 利用の流れ クレデンシャル S3クライアントの作成 オブジェクトのアップロード オブジェクトの取得 オブジェクトの一覧 オブジェクトの削除 S3 Transfer Manager S3 Transfer Manager によるアップロード S3 Transfer Manager によるダウン…
はじめに Jakarta Data 1.0 により提供されるもの Repository クエリ定義 @Query アノテーション メソッド名によるクエリ定義 パラメータによるクエリ定義 ページング キーセット・ページネーション @StaticMetamodel まとめ はじめに 2024年3月末にリリース…
encoding_rs クレートを利用。 バイトバッファ経由での処理となるが、Shift-JISは1〜2バイト、UTF-8は1〜4バイトで、変換後のバイト数が読めないので意外と面倒。 use std::process; use std::error::Error; use std::io::Write; use std::io::Read; use std…
はじめに JUnit 5 における一時ディレクトリサポート @TempDir の使い方 一時ディレクトリのクリーンアップ 一時ディレクトリ生成のカスタマイズ まとめ はじめに ファイルを利用したテストを行う際に、ファイルのクリーンアップを行うのは面倒な作業です。 …
JDK21 の Emoji サポート Emoji Character Properties Emoji_Presentation Emoji_Modifier と Emoji_Modifier_Base Emoji_Component emoji keycap sequence emoji flag sequence emoji tag sequence (ETS) emoji ZWJ sequence まとめ JDK21 の Emoji サポー…
はじめに Hello World アプリの準備 Hello World アプリのコンパイルと実行 jlink でカスタムJREを生成する モジュールイメージ ランチャーを生成 Gradle からイメージを作成 jlink-gradle プラグイン まとめ はじめに Java Platform Module System (JPMS) …
blog1.mammb.com アプリケーションプラグインの run タスクをデバッグ実行するには以下のようにJVM引数を渡します。 application { applicationDefaultJvmArgs = listOf("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005") } デバッグ…
はじめに Visual Studio Build Tools の準備 プロジェクトの準備 単純なアプリをネイティブイメージ化 リフレクションを利用したアプリをネイティブイメージ化 まとめ はじめに GraalVM 公式のGradleネイティブイメージプラグインの使い方です。 Gradleネイ…
はじめに Gradle のツールチェーンでプロビジョニングした GraalVM はシンボリックリンクが壊れている Native Image Plugin(0.9.25)は、Gradle 8.3 では動かない Native Image Plugin のトレースエージェントは GRAALVM_HOME / JAVA_HOME が必須 はじめに ma…
はじめに サンプル JavaFx アプリケーションの準備 Visual Studio Build Tools の準備 GraalVM の準備 ネイティブイメージの作成(フォールバックイメージ) リフレクション構成ファイルとネイティブイメージの生成 ネイティブイメージ実行時のコマンドプロン…
例えば、sRGB の10進定数をフィールドに持つ Item があったとして、 public static int RED = Integer.parseInt("FF0000", 16); public static int GREEN = Integer.parseInt("00FF00", 16); public static int BLUE = Integer.parseInt("0000FF", 16); priv…
はじめに Node クラス階層 javafx.scene.Node javafx.scene.Parent javafx.scene.layout.Region javafx.scene.layout.Pane javafx.scene.control.Control javafx.scene.Group javafx.scene.shape.Shape はじめに JavaFx では javafx.scene.Node で表される木…
はじめに Transformation と effect Plain Transformation effect まとめ はじめに JavaFx のさわり始めに、必ず混乱する 3つの矩形境界 LayoutBounds, BoundsInLocal, BoundsInParent について説明します。 Transformation と effect テキスト Text を作成…
はじめに 基本的な作業の流れ Ora2Pg 設定ファイルの準備 Oracle への接続確認 テーブル定義のエクスポート シーケンスのエクスポート 各種エクスポートオプション テーブル名のリマップ カラム名のリマップ boolean型への変換 データのエクスポート テーブ…
はじめに Oracle 23c コンテナの起動 カスタム・スクリプト コンテナ内から sqlplus で接続 コンテナ外から sqlplus で接続 Pod 化 はじめに Oracle 23c から Docker コンテナイメージが提供されるようになりました。 旧来の Oracle express edition では、…
はじめに session_replication_role の設定 制約の削除/再作成 トリガの無効化/有効化 制約の遅延化 はじめに データのインポート操作やテストデータ投入時など、制約を一時的に無効化したい場合はよくある。 一律設定レベルで変更することはできず、以下の3…
Podman インストール Payara Docker イメージのビルド postgres ドライバ post-boot-commands.asadmin イメージビルド PostgreSQL イメージ Pod の作成 Payara コンテナ Postgres コンテナ 起動確認 K8s の YAML からのPod起動 Java EE の WAR を Payara 4 …
はじめに instance main メソッド unnamed class プレビュー機能の有効化 blog1.mammb.com はじめに Java21 で、JEP 445 Unnamed Classes and Instance Main Methods がプレビュー公開されました。 この JEP では以下を実現します。 Java言語の初心者に対し…
blog1.mammb.com Uber Jar タスクの作成 ビルド時に Uber Jar を作成する Jar タスクで Uber Jar を作成する Uber Jar を実行可能 Jar にする Uber Jar タスクの作成 新規で Uber Jar 作成のタスクを登録。 tasks.register<Jar>("uberJar") { duplicatesStrategy </jar>…
はじめに 郵便番号データ改定の経緯 町域名の問題点 郵便番号データの泥臭い編集 まとめ はじめに 2023年6月より、日本郵政の公開する郵便番号データ、通称 ken_all.csv の改定版が公開されました。 旧来の ken_all.csv に加えて、「住所の郵便番号(1レコー…