互換性の無い変更点
sbt プラグイン間の名前空間の衝突を避けたり、一貫性を高めるために sbt plugins best practices が作られた。以下の変更点はその勧告にならったものだ:
キーは ScalaxbKeys
オブジェクト以下に移動した
sbt-scalaxb によって提供されるキーは ScalaxbKeys
オブジェクト下に移動した。build.sbt
の先頭に以下を書く:
import ScalaxbKeys._
(packageName
など) キーの Scala 識別子は今まで同様だが、シェルからの呼び出しには scalaxb-
と頭に付ける必要がある (例: scalaxb-package-name
)。
設定値は scalaxb
タスク下にスコーピングされる
scalaxb
専用の設定値は scalaxb
タスクの下にスコーピングされる。デフォルトの設定値である scalaxbSettings
はさらに、Compile
コンフィギュレーション以下にスコーピングされる(Scalaxb
コンフィギュレーションは廃止)。
seq(scalaxbSettings: _*)
packageName in scalaxb in Compile := "ipo"
sourceGenerators in Compile <+= scalaxb in Compile
これにより、プロジェクト内で scalaxb
を複数回使いたい場合は、build.scala
内にカスタムのコンフィギュレーションを作ることで可能となった:
val Xsd = config("xsd") extend(Compile)
val Wsdl = config("wsdl") extend(Compile)
lazy val appSettings = buildSettings ++
inConfig(Xsd)(baseScalaxbSettings ++ inTask(scalaxb)(customScalaxbSettings("xmlschema"))) ++
inConfig(Wsdl)(baseScalaxbSettings ++ inTask(scalaxb)(customScalaxbSettings("wsdl11")))
def customScalaxbSettings(base: String): Seq[Project.Setting[_]] = Seq(
sources <<= xsdSource map { xsd => Seq(xsd / (base + ".xsd")) },
packageName := base,
)
バグフィクスおよび細かな機能改善点
- 名前空間バインディングの衝突を修正した。#84 reported and fixed by jxstanford
- wsdl の
anyType
のサポートを修正した。#88 reported by radirk
- wsdl の
SOAPAction
ヘッダを修正した。
- wsdl の
Fault
の処理を修正した。
- 内部のログに Logback を使うようにした。