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
anyTypesupport in wsdl. #88 reported by radirk - Fixes
SOAPActionheader in wsdl. - Fixes
Faulthandling in wsdl. - Uses Logback internally for logging.
