System.Loggerって知ってる? - Javaの標準Loggerインタフェースに今更気がついた
筆者が普段から使っているHelidonの4.0.0 ALPHA-4のリリースノートを眺めていたところ"Logging: Change JUL to System.Logger in most modules"という変更が目に留まり"System.Logger"ってなんだ?と調べてみたところ、なっ、なっ...
記事を読むOptionalの見直し – Java9で追加されていたメソッドが便利すぎることに今更気づいた
OptionalクラスはJava8で追加された当初はStream APIやラムダと同じように大いに話題になり、ネットで取り上げられることも多かったですが、その後はOptionalクラスがJavaの標準APIとして定着するに従い、注目されることもなくなっていきました。そんなOptionalクラスですが地味にJava9で便利なメソッドが追加され進化していることに(今さら)気がつきました...
記事を読むMicroProfileの仕様体系 - Umbrella仕様とStandalone仕様
MicroProfileはご存じのとおり、Jakarta EEをベースにマイクロサービスアーキテクチャで必要となるAPIや機能の提供を目的とした仕様ですが、この仕様には大きく2つの区分けがあります。 1つはUmbrella仕様と呼ばれるMicroProfileのコアプラットフォームに相当する仕様と、もう一つはStandalone仕様と呼ばれるオプショナルな仕様になります...
記事を読む今さら聞けないMaven – インタフェースと実装のスコープを分ける
インタフェースと実装のモジュール(jar)が分かれていてアプリはインタフェースしか使ってはいけないハズだったがウッカリ実装側のクラスを使っていたという経験はないですか? このようなことを防ぐにはCheckStyleやArchUnitなどの静的解析ツールで検知することや属人的にコードレビューで指摘するといった方法も考えられますが、一番リーズナブルなのはdependencyのスコープをcompileとruntimeに分けて定義することです...
記事を読むMicroProfile JWT Authがやってくれること・できること
今回のテーマはJSON Web Token(JWT)を使ったMicroProfileアプリケーションの認証・認可に関するMicroProfile JWT Auth(MP JWT)です。MP JWTの仕様にはJWTをはじめBearerトークンやOpenID Connect(OIDC), Jakarta EE RBACなど他の規格や標準が多数登場するため難解でかつ、どこまでがMP JWTの話でMP JWTは結局なにをやってくれる仕様なのかがとても分かりづらくなっています...
記事を読む続・Auth0 java-jwtを使った素のJWT認証 - 公開鍵方式でやってみた
これは、豆蔵デベロッパーサイトアドベントカレンダー2022第25日目で今回が最後の記事になります🙌 Auth0 java-jwtを使った素のJWT認証では理解が比較的容易な共通鍵方式による仕組みを紹介しましたが、今回はその続きとしてRSAの公開鍵方式で同じことをやってみたいと思います。説明は前回の記事をなぞる形で進めて行くため、内容が重複する部分の説明は割愛します。行間が読めないところや「そこもうちょっと説明を」などといったところがある場合は前回の記事を確認していただければと思います...
記事を読むLambda SnapStartをServerless Frameworkでデプロイする
先日、AWSからLambda SnapStartの発表がありました。 Accelerate Your Lambda Functions with Lambda SnapStart (邦訳)Lambda SnapStart で Lambda 関数を高速化 この発表は、LambdaでのJava(含むJVM言語)の存在感を高めるきっかけとなりそうです。 GraalVMは別にして、一般的にJavaで作成したアプリケーションは起動に時間がかかります...
記事を読むAuth0 java-jwtを使った素のJWT認証
これは、豆蔵デベロッパーサイトアドベントカレンダー2022第10日目の記事です。 JWT認証としてはOIDC(OpenIDConnect)が有名ですが、今回は仕組みを素から理解することを目的にAuth0のjava-jwtを使ってJWT認証の簡単な仕組みを作ってみたいと思います。 なお、JWTやJWT認証ってそもそもなに?という方は「基本から理解するJWTとJWT認証の仕組み」から読まれることをお勧めします。 また、記事はサンプルアプリの必要な部分の抜粋を記載しています...
記事を読むCRaCによるJavaの高速化
これは、豆蔵デベロッパーサイトアドベントカレンダー2022第2日目の記事です。 先日、JavaのLambda関数の起動を高速化するLambda SnapStartがAWSから発表されましたが、このLambda SnapStartにはJavaのCRaC(Coordinated Restore at Checkpoint)が使われています。 CRaCは起動の高速化と即時にピーク性能を発揮させる技術です。CRaCが登場した背景にはJavaの起動の遅さがあります...
記事を読むMicroProfile OpenTracingとJaegerで理解する分散トレーシング
今回のテーマは前回のMicroProfile Metricsに続き可観測性のもう一角をなす分散トレーシングのMicroProfile OpenTracing(MP OpenTracing)です。MP OpenTracingの仕様は主にランタイム提供ベンダー向けのもので利用する側はランタイムがトレース情報を自動計測してくれるため、その存在を意識することはほぼありません...
記事を読む