先週javax.xml.bindをjakarta.xml.bindに変えたばっかだが、JAX-RS1.0のライブラリresteasyが動作しなくなったので戻す。ぐぬぬ。resteasyごと最新化すると、これがまた最新版では使い方が大きく変わっていて大変だからな。新プロトコルに対応するためにインスタンス作成をnewからbuilder経由に変える必要ってあるか?Javaのライブラリは割とこのタイプの謎改変が多いけど、最初からbuilder経由ならまだしも何でそんな事をするのだろう…。作者が皆デザパタ本読んで被れたとか?
ちなみにIvyで指定するライブラリはJakartaの時にあれこれ試して決めたコンビのVer2を指定するのが良いみたい。
<dependency org="javax.xml.bind" name="jaxb-api" rev="2.3.1"/>
<dependency org="org.glassfish.jaxb" name="jaxb-runtime" rev="2.3.5"/>
com.sun.xml.bindのはJava 17だと内部クラスにアクセスするので駄目みたい。ちなみにactivemqは先月出た最新版でも未だにsunの方を使っている。まぁそのうち誰か文句言って直すだろう。
ドタバタしてしまったが、jaxbの必須ライブラリが整理できたしまぁヨシ。
あと、副作用として何故かJavaメールが文字化けしなくなった。何か、キャラクタセット関係のデフォルト値が変わったのかしら。あるいは今回バタバタしてjarが結構入れ替わったからか。