scalaxb 0.6.5
breaking changes
In an effort to solve namespace conflicts and to increase consistency among the plugins, sbt plugins best practices was created. Here are the changes based on its recommendations:
keys are under ScalaxbKeys
object
Keys provided by sbt-scalaxb now resides in ScalaxbKeys
object. Place the following at the top of your build.sbt
:
import ScalaxbKeys._
Scala identifiers for the keys remain the same (e.g. packageName
), but key names accessible from the shell are now prefixed with scalaxb-
(e.g. scalaxb-package-name
).
settings are scoped under scalaxb
task
scalaxb
-specific settings are now scoped under scalaxb
task. The default settings scalaxbSettings
is scoped additionally by Compile
configuration (no moreScalaxb
configuration!).
seq(scalaxbSettings: _*)
packageName in scalaxb in Compile := "ipo"
sourceGenerators in Compile <+= scalaxb in Compile
If you wish to use scalaxb
task multiple times in a project, you can do so by creating custom configurations in 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,
)
bug fixes and minor enhancements
- Fixes namespace binding conflict. #84 reported and fixed by jxstanford
- Fixes
anyType
support in wsdl. #88 reported by radirk - Fixes
SOAPAction
header in wsdl. - Fixes
Fault
handling in wsdl. - Uses Logback internally for logging.