Releases: klum-dsl/klum-ast
Of Owners and Defaults...
-
New Features
- Compatibility with Groovy 3 and 4. KlumAST is currently still built with Groovy 2.4 (for compatibility with Jenkins). Tests are run with Groovy 3 and 4 as well.
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
- First steps for Layer3 models. (see Layer3)
- Split model creation into distinct phases (see #156, #155,#187 and Model Phases)
- New Phases:
- In addition to lifecycle methods, fields of type
Closure
can now be used to define model provided (instead of schema provided) lifecycle methods. These closures will be executed in their respective Lifecycle phases. - default implementation: by providing the attribute
defaultImpl
on either@DSL
or@Field
, one can allow the creation of non-polymorphic field methods even for interfaces and abstract types. (see Default Implementations) - Creator methods have been moved to a separate creator class (see #76), creator methods on the model class have been deprecated (see Migration).
- Custom creator classes can be provided (see Factory Classes)
- Methods of creator classes (including custom creators) are included in collection factories (see #300 and Factory Classes)
-
Improvements
- CopyFrom now creates deep clones (see #36)
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are now supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)- Converter methods are now honored for Alternatives methods as well. (see #270)
@Validate
now can be placed on classes. This effectively replaces@Validate(option=Validation.Option.VALIDATE_UNMARKED)
, which is internally converted to the new format (see #276). The@Validation
annotation is deprecated.- Sanity check: Key Fields must not have
@Owner
or@Field
annotations.
-
Deprecations (see Migration):
- The
@Validation
annotation is deprecated. Use@Validate
on class level instead. - creator methods on the model class have been deprecated.
- The
-
Breaking changes ((see Migration)
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- The
@Validation
annotation is deprecated, any use except for@Validate(option=Validation.Option.VALIDATE_UNMARKED)
will have no effect. - Previously, only public methods were checked for illegal write access. This has been changed to include all visibilities. Protected methods that are conceptually write access methods must now also be annotated with @Mutator, otherwise a compile error is thrown.
- The generated
validate()
method is now deprecated, useKlumInstanceProxy.validate()
instead. This means that creating own validate methods is legal again. - Owner fields are now set in a later phase, meaning that they are not yet set when apply closures are resolved. This logic must be moved to a later phase (postTree), for example using lifecycle closures.
- Default values are no longer a modification of the getter but rather explicitly set during the 'default' phase. This might result in subtle differences in the behavior, especially when using a non-template as template / target for
copyFrom
. Make sure to create template instances withCreate.Template
if you want to use them as templates.
- it is a compile error to place the
-
Fixes
- since rc.13
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visibility for creator methods was wrong (see #232)
-
Dependency changes/Internal
- since rc.14
- Update Jackson to 2.13.3 (see #260)
- Use Sonatype Lift
- since rc.14
Make it so... With (more) style
-
New Features
- Compatibility with Groovy 3 and 4. KlumAST is currently still built with Groovy 2.4 (for compatibility with Jenkins). Tests are run with Groovy 3 and 4 as well.
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
- First steps for Layer3 models. (see Layer3)
- Split model creation into distinct phases (see #156, #155,#187 and Model Phases)
- New Phases:
- PostTree: is run after the model is completely realized
- AutoCreate: automatic creation of null fields
- AutoLink: Links fields to other fields in the model
- In addition to lifecycle methods, fields of type
Closure
can now be used to define model provided (instead of schema provided) lifecycle methods. These closoures will be executed in their respective Lifecycle phases. - default implementation: by providing the attribute
defaultImpl
on either@DSL
or@Field
, one can allow the creation of non-polymorphic field methods even for interfaces and abstract types. (see Default Implementations) - Creator methods have been moved to a separate creator class (see #76), creator methods on the model class have been deprecated (see Migration).
- Custom creator classes can be provided (see Factory Classes)
- Methods of creator classes (including custom creators) are included in collection factories (see #300 and Factory Classes)
-
Improvements
- CopyFrom now creates deep clones (see #36)
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are no supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)- Converter methods are now honored for Alternatives methods as well. (see #270)
@Validate
now can be placed on classes. This effectively replaces@Validate(option=Validation.Option.VALIDATE_UNMARKED)
, which is internally converted to the new format (see #276). The@Validation
annotation is deprecated.
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- The
@Validation
annotation is deprecated, any use except for@Validate(option=Validation.Option.VALIDATE_UNMARKED)
will have no effect. - Previously, only public methods were checked for illegal write access. This has been changed to include all visibilities. Protected methods that are conceptually write access methods must now also be annotated with @Mutator, otherwise a compile error is thrown.
- The generated
validate()
method is now deprecated, useKlumInstanceProxy.validate()
instead. This means that creating own validate methods is legal again.
- it is a compile error to place the
-
Fixes
- since rc.13
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visibility for creator methods was wrong (see #232)
-
Dependency changes/Internal
- since rc.14
- Update Jackson to 2.13.3 (see #260)
- Use Sonatype Lift
- since rc.14
Make it so... With Style!
(Do not use, use rc.20 instead - Factory methods are lowercased in collection factories in this version, which is confusing, I roleld that back)
-
New Features
- Compatibility with Groovy 3 and 4. KlumAST is currently still built with Groovy 2.4 (for compatibility with Jenkins). Tests are run with Groovy 3 and 4 as well.
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
- First steps for Layer3 models. (see Layer3)
- Split model creation into distinct phases (see #156, #155,#187 and Model Phases)
- New Phases:
- PostTree: is run after the model is completely realized
- AutoCreate: automatic creation of null fields
- AutoLink: Links fields to other fields in the model
- In addition to lifecycle methods, fields of type
Closure
can now be used to define model provided (instead of schema provided) lifecycle methods. These closoures will be executed in their respective Lifecycle phases. - default implementation: by providing the attribute
defaultImpl
on either@DSL
or@Field
, one can allow the creation of non-polymorphic field methods even for interfaces and abstract types. (see Default Implementations) - Creator methods have been moved to a separate creator class (see #76), creator methods on the model class have been deprecated (see Migration).
- Custom creator classes can be provided (see Factory Classes)
- Methods of creator classes (including custom creators) are included in collection factories (see #300 and Factory Classes)
-
Improvements
- CopyFrom now creates deep clones (see #36)
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are no supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)- Converter methods are now honored for Alternatives methods as well. (see #270)
@Validate
now can be placed on classes. This effectively replaces@Validate(option=Validation.Option.VALIDATE_UNMARKED)
, which is internally converted to the new format (see #276). The@Validation
annotation is deprecated.
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- The
@Validation
annotation is deprecated, any use except for@Validate(option=Validation.Option.VALIDATE_UNMARKED)
will have no effect. - Previously, only public methods were checked for illegal write access. This has been changed to include all visibilities. Protected methods that are conceptually write access methods must now also be annotated with @Mutator, otherwise a compile error is thrown.
- The generated
validate()
method is now deprecated, useKlumInstanceProxy.validate()
instead. This means that creating own validate methods is legal again.
- it is a compile error to place the
-
Fixes
- since rc.13
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visibility for creator methods was wrong (see #232)
-
Dependency changes/Internal
- since rc.14
- Update Jackson to 2.13.3 (see #260)
- Use Sonatype Lift
- since rc.14
Make it so
-
New Features
- Compatibility with Groovy 3 and 4. KlumAST is currently still built with Groovy 2.4 (for compatibility with Jenkins). Tests are run with Groovy 3 and 4 as well.
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
- First steps for Layer3 models. (see Layer3)
- Split model creation into distinct phases (see #156, #155,#187 and Model Phases)
- New Phases:
- PostTree: is run after the model is completely realized
- AutoCreate: automatic creation of null fields
- AutoLink: Links fields to other fields in the model
- In addition to lifecycle methods, fields of type
Closure
can now be used to define model provided (instead of schema provided) lifecycle methods. These closoures will be executed in their respective Lifecycle phases. - default implementation: by providing the attribute
defaultImpl
on either@DSL
or@Field
, one can allow the creation of non polymorphic field methods even for interfaces and abstract types. (see Default Implementations) - Creator methods have been moved to a separate creator class (see #76), creator methods on the model class have been deprecated (see Migration).
- Custom creator classes can be provided (see Factory Classes)
-
Improvements
- CopyFrom now creates deep clones (see #36)
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are no supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)- Converter methods are now honored for Alternatives methods as well. (see #270)
@Validate
now can be placed on classes. This effectively replaces@Validate(option=Validation.Option.VALIDATE_UNMARKED)
, which is internally converted to the new format (see #276). The@Validation
annotation is deprecated.
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- The
@Validation
annotation is deprecated, any use except for@Validate(option=Validation.Option.VALIDATE_UNMARKED)
will have no effect. - Previously, only public methods were checked for illegal write access. This has been changed to include all visibilities. Protected methods that are conceptually write access methods must now also be annotated with @Mutator, otherwise a compile error is thrown.
- The generated
validate()
method is now deprecated, useKlumInstanceProxy.validate()
instead. This means that creating own validate methods is legal again.
- it is a compile error to place the
-
Fixes
- since rc.13
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visibility for creator methods was wrong (see #232)
-
Dependency changes/Internal
- since rc.14
- Update Jackson to 2.13.3 (see #260)
- Use Sonatype Lift
- since rc.14
Phases, Layers and Implementations
-
New Features
- Compatibility with Groovy 3 and 4. KlumAST is currently still built with Groovy 2.4 (for compatibility with Jenkins). Tests are run with Groovy 3 and 4 as well.
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
- First steps for Layer3 models. (see Layer3)
- Split model creation into distinct phases (validation for now) (see #156, #155,#187 and Model Phases)
- New Phases:
- PostTree: is run after the model is completely realized
- AutoCreate: automatic creation of null fields
- AutoLink: Links fields to other fields in the model
- default implementation: by providing the attribute
defaultImpl
on either@DSL
or@Field
, one can allow the creation of non polymorphic field methods even for interfaces and abstract types. (see Default Implementations)
-
Improvements
- CopyFrom now creates deep clones (see #36)
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are no supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)- Converter methods are now honored for Alternatives methods as well. (see #270)
-@Validate
now can be placed on classes. This effectively replaces@Validate(option=Validation.Option.VALIDATE_UNMARKED)
, which is internally converted to the new format (see #276). The@Validation
annotation is deprecated.
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- The
@Validation
annotation is deprecated, any use with the exception of@Validate(option=Validation.Option.VALIDATE_UNMARKED)
will have no effect. - Previously, only public methods were checked for illegal write access. This has been changed to include all visibilities. Protected methods that are conceptionally write access methods must now also be annotated with @Mutator, otherwise a compile error is thrown.
- it is a compile error to place the
-
Fixes
- since rc.13
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visibility for creator methods was wrong (see #232)
-
Dependency changes/Internal
- since rc.14
- Update Jackson to 2.13.3 (see #260)
- Use Sonatype Lift
- since rc.14
v2.0.0-rc.16: Release of 2.0.0-rc.16
-
New Features
- Compatibility with Groovy 3. KlumAST is currently still built with Groovy 2.4 (for compatitibility with Jenkins).
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
-
Improvements
- CopyFrom now creates deep clones (see #36)
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are no supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)- Converter methods are now honored for Alternatives methods as well. (see #270)
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- it is a compile error to place the
-
Fixes
- since rc.13
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visiblity for creator methods was wrong (see #232)
-
Dependency changes/Internal
- since rc.14
- Update Jackson to 2.13.3 (see #260)
- Use Sonatype Lift
- since rc.14
v2.0.0-rc.15: Release of 2.0.0-rc.15
-
New Features
- Compatibility with Groovy 3. KlumAST is currently still built with Groovy 2.4 (for compatitibility with Jenkins).
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
-
Improvements
- CopyFrom now creates deep clones (see #36)
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are no supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- it is a compile error to place the
-
Fixes
- since rc.13
- Fix polymorphic virtual setters (see #250)
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visiblity for creator methods was wrong (see #232)
- since rc.13
2.0.0-rc.14
-
New Features
- Compatibility with Groovy 3. KlumAST is currently still built with Groovy 2.4 (for compatitibility with Jenkins).
- Replace basic jackson transformation with a dedicated (beta) JacksonModule (see Jackson Integration)).
-
Improvements
boolean
fields are never validated (makes no sense),Boolean
fields are evaluated against not null, not against Groovy Truth (i.e. the field must have an explicit value assigned) (see #223)- Provide
@Required
as an alternative to an empty@Validate
annotation (see #221) EnumSet
fields are no supported. Note that for enum sets a copy of the underlying set is returned as opposed to a readonly instance. (see #249)
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- it is a compile error to place the
-
Fixes
- since rc.13
- Fix polymorphic virtual setters (see #250)
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visiblity for creator methods was wrong (see #232)
- since rc.13
v2.0.0-rc.13: Release of 2.0.0-rc.13
-
New Features
- Compatibility with Groovy 3. KlumAST is currently still built with Groovy 2.4 (for compatitibility with Jenkins). Note that this is not yet automatically tested.
- Replace basic jackson transformation with a dedicated JacksonModule (see Jackson Integration)).
-
Improvements
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- it is a compile error to place the
-
Fixes
- since rc.12
- More fixes to nested generics (see #248)
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visiblity for creator methods was wrong (see #232)
- since rc.12
2.0.0-rc.12
-
New Features
- Compatibility with Groovy 3. KlumAST is currently still built with Groovy 2.4 (for compatitibility with Jenkins). Note that this is not yet automatically tested.
- Replace basic jackson transformation with a dedicated JacksonModule (see Jackson Integration)).
-
Improvements
-
Breaking changes
- it is a compile error to place the
@Validate
annotation on a boolean field. - KlumAST is split into different modules, klum-ast-compile is compile-time only,
klum-ast-runtime is needed for runtime as well. This completes
the changes started in 1.2.0 (see Migration) - In order for the serialization in jackson to work, the new klum-ast-jackson module needs to be included in the project (see Jackson Integration))
- The naming of virtual fields is changed, now the virtual field
is identical to the method name (previously, the first element of the camel
cased method name was removed). - methods named
doValidate
are no longer considered Validate methods by default. - Static Type Checking for Configuration Scripts does not (yet) work under Groovy 3
- it is a compile error to place the
-
Fixes
- since rc.11
- Converter methods not working for maps of DSL objects (see #242)
- Created class is invalid if field type is generic and contains generic factories (like
List.of
) (see #243) - Default delegate failed if delegate was a getter instead of a real field (see #244)
apply
did not accept a Map only call (see #241)
- since rc.9
- Handling of key fields in hierarchies (see #238)
- since rc.5
- Visiblity for creator methods was wrong (see #232)
- since rc.11