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
00
inxsd:byte
. #388 by @anatoliykmetyuk
enhancements
- Adds
--mutable
option to generate mutable case classes. See below. - Uses type attribute to convert
xs:any
. #389 by @anatoliykmetyuk - Adds
--autopackages
option to pick package names automatically. #391 by @anatoliykmetyuk - Adds
--visitor
option 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).