Releases: eed3si9n/scalaxb
Releases · eed3si9n/scalaxb
1.7.5
- Populates
xsi:type
attribute ontoXML(...)
#518 by @abestel - Adds
scalaxbUseLists
setting to generateList[A]
instead ofSeq[A]
#526 by @pgrandjean - Fixes code generation to avoid multi-arg infix syntax #531 by @margussipria
- Splits generated
fromString
method for big enums that would otherwise not compile #517 by @LolHens
1.7.4
- Populates
xsi:type
attribute ontoXML(...)
#518 by @abestel - Adds
scalaxbUseLists
setting to generateList[A]
instead ofSeq[A]
#526 by @pgrandjean - Fixes code generation to avoid multi-arg infix syntax #531 by @margussipria
1.7.3
1.7.2
1.7.1
bug fixes
- Fixes big decimal formatting according to XML Schema #483 by @danslapman
- Fixes equals called on a String and Option[String] #485 by @lespea
- Fixes one-way SOAP call #493 by @danslapman
1.7.0
Breaking changes
ExecutionContext
parameter is added to all methods returningFuture[A]
, instead of hardcoding a execution context. #482 inspired by #407
Symbol encoding strategy and capitalization
scalaxb 1.7.0 adds option to encode symbols.
lazy val scalaxbCapitalizeWords = settingKey[Boolean]("Attempts to capitalize class and attribute names to match the CamelCase convention")
lazy val scalaxbSymbolEncodingStrategy = settingKey[SymbolEncodingStrategy.Value]("Specifies the strategy to encode non-identifier characters in generated class names")
object SymbolEncodingStrategy extends Enumeration {
val Discard = Value("discard")
val SymbolName = Value("symbol-name")
val UnicodePoint = Value("unicode-point")
val DecimalAscii = Value("decimal-ascii")
val Legacy151 = Value("legacy-1.5.1")
}
Other enhancements
- Handle multiple faults #438 by @SupraFii
- Adds support for enum values list #446 by @bbarker
- Supports Dispatch versions from 0.11.4 to 0.14.x #468 by @margussipria
- Generates a default value for class parameters of
anyAttribute
#470 by @hosamaly - scala-xml 1.1.0 and scala-parser-combinators 1.1.0 #476 by @sullis
- Uses sealed traits for enums #479 by @mrdziuban
- Adds config option for setting
scalaxbEnumNameMaxLength
for enum name length #480 by @mrdziuban
Bug fixes
- Don't throw exception on http status code != 200 to allow Fault parsing #444 by @alexdupre
- Fixes Soap11Fault bug when empty detail #450 by @dportabella
1.5.2
1.5.1
1.5.0
breaking changes
- Fixes name clashes in typeclass instance 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
)