scalaxb 1.5.0
互換性の無い変更点
- 型クラスのインスタンスの名前衝突をパケージ名をプレフィックスすることで修正した。 #385 by @anatoliykmetyuk
- 可変長引数 (varargs) をデフォルトで使わないように変更した。
- sbt-scalaxb を auto plugin 化した。
バグフィックス
- 複数の implicit ヘッダを用いる SOAP operation の修正。 #380 by @joshlreese
- SOAP ヘッダの値が合成された場合の修正。 #381 by @coutoPL
- SOAP ヘッダパーツに関連したコード生成の修正。 #400 by @jankeesvanandel
- enum の名前の衝突の修正。 #386 by @anatoliykmetyuk
- enum のパーシングを修正して、例えば
xsd:byte
型による00
を取り扱えるようになった。 #388 by @anatoliykmetyuk
機能改善点
- 可変 (mutable) case class を生成するための
--mutable
オプションを追加した。詳細は後ほど。 - type 属性を用いた
xs:any
の変換。 #389 by @anatoliykmetyuk - パッケージ名を自動で選択する
--autopackages
オプションの追加。 #391 by @anatoliykmetyuk - 生成された case class を走査するための Visito を生成する
--visitor
オプションの追加。 #392 by @anatoliykmetyuk
sbt-scalaxb への変更
scalaxb 1.5.0 より sbt-scalaxb は auto plugin 化される。
scalaxbSettings
追加して、sourceGenerators in Compile
する代わりに、ScalaxbPlugin
を有効化するだけでよくなった。
他の全てのセッティングやタスクは "scalaxb" とプレフィックスされる。
例えば、以前の packageName
というキーは scalaxbPackageName
に変更された。
Before:
import ScalaxbKeys._ lazy val root = (project in file(".")). settings( name := "foo-project"). settings(scalaxbSettings). settings( sourceGenerators in Compile += (scalaxb in Compile).taskValue, packageName in (Compile, scalaxb) := "generated" // packageNames in (Compile, scalaxb) := Map(uri("http://something/") -> "something"), // logLevel in (Compile, scalaxb) := Level.Debug )
After:
lazy val root = (project in file(".")). enablePlugins(ScalaxbPlugin). settings( name := "foo-project", scalaxbPackageName in (Compile, scalaxb) := "generated" // scalaxbAutoPackages in (Compile, scalaxb) := true )
可変 (mutable) case class
scalaxb 1.5.0 は可変な case class を生成するオプションを追加する。
case class Address(var name: String,
var street: String,
var city: String)
sbt-scalaxb では以下のように有効化できる:
lazy val root = (project in file(".")).
enablePlugins(ScalaxbPlugin).
settings(
name := "foo-project",
scalaxbPackageName in (Compile, scalaxb) := "generated",
scalaxbGenerateMutable in (Compile, scalaxb) := true
)
コントリビューター
バグ報告や pull request によって scalaxb の改善にお手伝いしていただいた皆さんにこの場を借りてお礼します。
git shortlog -sn --no-merges 1.4.1..release/1.5.0
によると今回のリリースでは以下の方々にコントリビュートしてもらった (敬称略): Anatoliy Kmetyuk (@anatoliykmetyuk), Eugene Yokota (@eed3si9n), Andre Van Delft (@AndreVanDelft), Jan-Kees van Andel (@jankeesvanandel), Joshua Reese (@joshlreese), and Mateusz Kołodziejczyk (@coutoPL).