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.