scalaxb 1.5.0
breaking changes
- Fixes name clashes in typeclass intance by prefixing full package name. #385 by @anatoliykmetyuk
- The default value for using varargs is set to false.
- sbt-scalaxb is now an auto plugin. See below.
bug fixes
- Fixes SOAP operations which use multiple implicit headers. #380 by @joshlreese
- Fixes SOAP header values composition. #381 by @coutoPL
- Fixes SOAP header parts code generation. #400 by @jankeesvanandel
- Fixes enum name conflicts. #386 by @anatoliykmetyuk
- Fixes enum parsing, for example
00inxsd:byte. #388 by @anatoliykmetyuk
enhancements
- Adds
--mutableoption to generate mutable case classes. See below. - Uses type attribute to convert
xs:any. #389 by @anatoliykmetyuk - Adds
--autopackagesoption to pick package names automatically. #391 by @anatoliykmetyuk - Adds
--visitoroption to generate a Visitor for traversing over the generated case classes. #392 by @anatoliykmetyuk
sbt-scalaxb changes
sbt-scalaxb for scalaxb 1.5.0 is changed to an auto plugin.
Instead of adding scalaxbSettings and defining sourceGenerators in Compile,
enable ScalaxbPlugin instead. All other setting/task keys will be prefixed with "scalaxb".
For example, packageName will now be called 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 adds an option to generate mutable case classes.
case class Address(var name: String,
var street: String,
var city: String)
In sbt-scalaxb, this can be enabled as:
lazy val root = (project in file(".")).
enablePlugins(ScalaxbPlugin).
settings(
name := "foo-project",
scalaxbPackageName in (Compile, scalaxb) := "generated",
scalaxbGenerateMutable in (Compile, scalaxb) := true
)
contributors
Huge thanks to everyone who has helped to improve scalaxb by sending pull requests and reporting bugs!
According to git shortlog -sn --no-merges 1.4.1..release/1.5.0, the following people contributed to this release: Anatoliy Kmetyuk (@anatoliykmetyuk), Eugene Yokota (@eed3si9n), Andre Van Delft (@AndreVanDelft), Jan-Kees van Andel (@jankeesvanandel), Joshua Reese (@joshlreese), and Mateusz Kołodziejczyk (@coutoPL).
