Archived: JEAF Generator Release Notes
Release Overview
Release 1.8.x
Version 1.8.1 (2023-05-05)
Fixed Bugs
JEAF-3228 Compile error in case of extensible enums with slots
Version 1.8.0 (2023-04-14)
New Features / Improvements
JEAF-3142 generate equals()
and hashCode()
for POJO's and ServiceObjects
JEAF-3187 Generate @Valid
for referenced objects
JEAF-3217 Define "validateOnBuild" in UML model for POJO's and ServiceObjects
JEAF-3219 Validate requests already on REST Client side
JEAF-3218 Make all POJOs / ServiceObjects readonly via Maven configuration
JEAF-3184 @Valid
and @Size
should not contradict each other
JEAF-3197 Check that SoftLinks are not bidirectional
JEAF-3216 Add alias name to documentation in OpenAPI spec
Fixed Bugs
JEAF-3209 Compile error in case of String default value without quotation marks
JEAF-3223 Validation not added to all builders
JEAF-3215 Derived properties are part of OpenAPI spec
JEAF-3221 Insufficient null-safety for Collection types in ServiceObjects and POJOs in case of deserialization by Jackson
Migration
Please upgrade your models to JEAF Generator Meta Model (JMM)
1.8.0 (#202)
Release 1.7.x
Version 1.7.3 (2023-04-11)
Fixed Bugs
JEAF-3220 Compile error in case of more than one bean param and one bean param only has technical headers
Version 1.7.2 (2023-04-01) - Not an april fool
New Features / Improvements
JEAF-3207 Support "Ignore" also in OpenAPI spec
JEAF-3211 Object validation in builder
JEAF-3212 Improved header names in deprecation reports
Fixed Bugs
JEAF-3214 Maven 3.9.x incompatibility
Version 1.7.1 (2023-03-29)
Fixed Bugs
JEAF-3213 NPE in extensible enum hashCode() in case of unknown literal with "unknownLiteralName" null
Version 1.7.0 (2023-03-22)
New Features / Improvements
JEAF-3178 Add deprecation details to Javadoc and OpenAPI spec. Useless (empty comments) are no longer generated.
JEAF-3186 Request and response validation in REST Resources
JEAF-3195 Immutability for ServiceObjects / POJO's on class level and global
JEAF-3198 Light-weight extensible enums
JEAF-3199 Mark properties as private / internal and derived
JEAF-3196 Change indentation to for Java standard stylesheet (4 blanks style)
Fixed Bugs
JEAF-3202 Default value for primitive query param is missing in REST Controller
JEAF-3190 Setter for to-one associations in Builder is not deprecated
JEAF-3191 Incorrect markdown format in deprecation reports
JEAF-3192 Unable to only generate JSON serializers
JEAF-3193 Use Maven logger for all generator output
JEAF-3194 Technical inheritance must not be visible in OpenAPI spec
Migration
JEAF Generator requires Java 11 Runtime Environment to be executed. The generated code is still compatible with Java 8.
Please upgrade your UML projects to JEAF Generator Meta Model
#189 (JMM 1.7.0)
.If you want to make use of new feature for request and response validation (JEAF-3186) then you need to upgrade JEAF Validation API with version
1.6.0
or higher. There is an interface calledcom.anaptecs.jeaf.validation.api.ValidationExecutor
which will be called from the generated code to trigger validation.For further details please check
https://github.com/anaptecs/jeaf-validation-api/blob/master/jeaf-validation-api/src/main/java/com/anaptecs/jeaf/validation/api/ValidationExecutor.javaThis new interface is available using the following dependency:
For JEAF-based projects (current version: 1.6.0): <dependency> <groupId>com.anaptecs.jeaf.validation</groupId> <artifactId>jeaf-validation-api-service-provider</artifactId> <version>${jeaf.validation.api.version}</version> </dependency> For Spring-based projects (current version: 1.6.0): <dependency> <groupId>com.anaptecs.jeaf.validation</groupId> <artifactId>jeaf-validation-api-spring</artifactId> <version>${jeaf.validation.api.version}</version> </dependency> <!-- If you want to use default implementation provided by anaptecs then add dependency (current version: 1.6.0) --> <dependency> <groupId>com.anaptecs.jeaf.validation</groupId> <artifactId>jeaf-validation-impl</artifactId> <version>${jeaf.validation.impl.version}</version> </dependency>
Please be aware that the new interface and new dependency is only required in case that you are enable request or response validation.
If you are looking for a sample implementation can be found on GitHub:
https://github.com/anaptecs/jeaf-validation-impl/blob/master/jeaf-validation-impl/src/main/java/com/anaptecs/jeaf/validation/impl/ValidationExecutorImpl.java
Release 1.6.x
Version 1.6.94 (2023-02-27)
Fixed Bugs
JEAF-3185 httpMethods
tag in OpenAPIResponse not handeled corectly
JEAF-3181 Check for expected meta model version not working correctly
Version 1.6.93 (2023-02-15)
New Features / Improvements
JEAF-3164 Deprecation Report
JEAF-3175 Filter custom headers in REST controller according to positive list
JEAF-3174 Do not set http header to null if not set
JEAF-3177 Add check for invalid composite data type definition in UML model
Fixed Bugs
JEAF-3179 Public fields of composite data types are not set in case that they are used as path param
JEAF-3180 HttpMediaTypeNotSupportedException
in case of REST operations without body
Migration
Please upgrade your UML projects to JEAF Meta Model
#186 (JMM 1.3.0)
.To avoid confusion with MagicDraw build in stereotype
«deprecated»
JMM's stereotype«Deprecated»
was renamed to«JEAFDeprecated»
. All usages of existing stereotype«Deprecated»
in your models will automatically switch to the new name.JEAF-3175 requires a backward compatible extension of JEAF REST API with version
1.6.4
or higher. In order to provide a filter mechanism for custom headers new interfacecom.anaptecs.jeaf.rest.resource.api.CustomHeaderFilter
was introduced.This new interface is available using the following dependency:
<dependency> <groupId>com.anaptecs.jeaf.rest</groupId> <artifactId>jeaf-rest-resource-api</artifactId> <version>${jeaf.rest.api.version}</version> </dependency>
Please be aware that the new interface and new dependency is only required in case that you are working with custom headers in your REST Resources / Controllers.
Version 1.6.89 (2023-02-01)
New Features / Improvements
JEAF-3113 SoftLinks for OpenAPI and Java
JEAF-3157 Provide public ID also on internal views
JEAF-3167 Technical inheritance for JSON serialization
JEAF-3172 Return status code 204 by default for void operations
JEAF-3165 Check that OpenAPI Data Type is immutable
JEAF-3168 Check that an object either is a POJO or a ServiceObject but not both
Fixed Bugs
JEAF-3163 Multi valued OpenAPI Data Type headers / query params not defined as array in OpenAPI spec
JEAF-3169 Builder only overwrites setters from direct parents
JEAF-3170 Constraints for header and query params missing in OpenAPI Spec
JEAF-3171 Wrong http status code in REST Controllers
Migration
Please make sure that JEAF Meta Model that is used by your model is at least of revision
#179 (JMM 1.2.1)
. Please be aware that previous versions of JEAF Generator are not compatible with metamodel version 1.2.1.
This means that upgrade of metamodel and JEAF Generator have to be done together.
Version 1.6.86 (2023-01-12)
New Features / Improvements
JEAF-3105 Support primitive / basic type arrays and lists as query parameter
JEAF-3145 Make OpenAPI Data Types usable as query param
JEAF-3154 Support mulitvalued header params
JEAF-3156 Support different types of YAML comment styles for OpenAPI spec
JEAF-3159 Support JAX-RS serialization for OpenAPI Data Types
JEAF-3162 Add check that java.util.Collection must not be used for multi-valued headers or query params in combination with JAX-RS
Fixed Bugs
JEAF-3133 Wrong indentation for restrictions in case of objects with inheritance
JEAF-3155 Deprecation not shown in OpenAPI spec
JEAF-3158 Date types not handled properly in REST Controller and REST Service Proxy
JEAF-3160
@NotNull
annotation missing
Migration
It is required to update to
jeaf-rest-api
version1.6.3
By default new YAML comment style is “|” instead of currently used “>-”. If you want to preserve the current style then you have to set configuration parameter
<openAPICommentStyle>>-</openAPICommentStyle>
in yourpom.xml
.
Version 1.6.85 (2022-12-09)
New Features / Improvements
JEAF-3147 Mark http headers as technical header
JEAF-3151 Add support for custom http headers
JEAF-3152 Improve generated documentation of composite data types in OpenAPI spec
Fixed Bugs
JEAF-3103 Sorting of OpenAPI tags is not stable
JEAF-3115 Primitive arrays as parameters are not generated correctly
JEAF-3135 Not inlined bean param with data type (not composite data type) in header ends up in invalid OpenAPI spec
JEAF-3149 varargs setter in builder creates not extensible list
JEAF-3153 Typo in stereotype tag for composite data type
Migration
Please make sure that JEAF Meta Model that is used by your model is at least of revision
#171 (JMM 1.1.0)
Version 1.6.81 (2022-12-02)
New Features / Improvements
JEAF-3131 Use composite data types as header param
JEAF-3143 Use data types as header param
JEAF-3137 Generate varargs setter for enums
JEAF-3139 Added method to builder that allows to set all required non-multivalued fields at once
JEAF-3146 Generate
equals()
andhashCode()
for data types
Fixed Bugs
JEAF-3144 Invalid REST path in REST Controller
JEAF-3148 Removed not in model defined default values for headers from generated REST Controllers
JEAF-3138 Wrong usage of
"readonly"
in OpenAPI spec
Version 1.6.75 (2022-11-25)
New Features / Improvements
JEAF-3140 Split module factory into smaller parts
Fixed Bugs
JEAF-3141 Multiple OpenAPI specs influence each other even if they are excluded using package filter
Version 1.6.72 (2022-11-21)
Fixed Bugs
JEAF-3134 Invalid reference in OpenAPI spec if external type is not in whitelist
JEAF-3136 Exception in data type deserializer for numeric values
Version 1.6.70 (2022-11-14)
New Features / Improvements
JEAF-3098 Exclude model elements from code generation
JEAF-3128 Use composite data types as path param
JEAF-3125 Exclude specific headers form OpenAPI spec
Fixed Bugs
JEAF-3126 Invalid OpenAPI YAML in case of composite data type in inheritance hierarchy
JEAF-3127 Default values for parameters out of nowhere
JEAF-3129 Compile error in case that module factories reference packages with ignored model elements
JEAF-3132 Missing parameter types are not detected for services and REST resources
Version 1.6.66 (2022-10-27)
New Features / Improvements
JEAF-3121 Make constructor of generated REST Controllers / REST Resources public
JEAF-3109 Use error codes for generator errors and warnings
JEAF-3124 Generate toString() method that returns full object graph
JEAF-3123 Support enums and extensible enums with properties
JEAF-3122 Path prefixes for REST Controller
JEAF-3120 Upgrade to latest version of JEAF Generator Meta Model (JMM)
JEAF-3111 Distinguish between internal and public structures of an API using composite data types
JEAF-3110 Make generated REST Service Proxy independent from concrete http client, circuit breaker etc.
Version 1.6.60 (2022-09-27)
New Features / Improvements
JEAF-3117 New builder style for better compatibility with Java Best Practices
JEAF-3104 Support for date types as query parameters
JEAF-3112 Improve efficiency of generated builders
Fixed Bugs
JEAF-3107 REST Service Proxy with target runtime Spring contains dependency on JEAF X-Fun in special cases
JEAF-3118 Validation error in case of OpenAPI spec with multiple error responses
JEAF-3108 NPE in case that body is returned from a REST call in case were it shouldn't
JEAF-3106 Add "null" checks for query parameters
JEAF-3101 Enums used as header, query or path params are not serialized correctly by REST Service Proxy
Migration
By default legacy style builders will no longer be generated. This might cause compile errors in your existing code.
To still generate legacy style builder (newBuilder( )
operation on static Builder class) please enable flag<enableLegacyBuilderStyle>true</enableLegacyBuilderStyle>
in configuration of JEAF Generator Maven Plugin
Version 1.6.58 (2022-08-31)
New Features / Improvements
JEAF-2984 Support for OpenJDK 17
JEAF-3100 Sort headers according to class hierarchy (parent first)
JEAF-3099 Do not break build on generator errors (new configuration parameter, disabled by default)
JEAF-3095 No error / warning in case of REST operation of type GET but with request body
JEAF-3087 Add check for missing / invalid path params in REST operations
JEAF-3086 Add check for more than 1 request body in REST operation
JEAF-3091 Check that path of REST resource must starts with '/'
JEAF-3094 YAML 1.1 compatible quoting of boolean values
JEAF-3093 Add request and response logging for REST Service Proxies
Version 1.6.57 (2022-08-01)
New Features / Improvements
JEAF-3085 Control immutability behavior
JEAF-3074 Added support for complex types as paramaters for OpenAPI specs
JEAF-3073 Default values for OpenAPI / REST parameters
JEAF-3072 Suppress Sonar warnings in generated code
JEAF-3071 Support ordering of schema elements in OpenAPI spec
JEAF-3070 Model complex types as arrays
JEAF-3065 Support modelling of Security Scheme Object
JEAF-3064 Add terms of use to OpenAPI spec
JEAF-3063 Support for binary data in OpenAPI
JEAF-3062 Bi-directional associations in combination with JSON serialization / deserialization
JEAF-3058 Add example and default value to Javadoc
JEAF-3057 Default values for OpenAPI
JEAF-3055 Add support for data types to avoid intensive nesting of data in JSON
JEAF-3050 Add support for OpenAPI error responses
JEAF-3049 Add support for customer specific templates and checks
JEAF-3048 Support Java Validation Annotations also in OpenAPI spec
JEAF-3047 Add support for inheritance of header fields for OpenAPI
JEAF-3046 Use Maven version info also for OpenAPI version
JEAF-3045 Support explicit ordering of OpenAPI server definitions
JEAF-3044 Add support for OpenAPI tags
JEAF-3033 Support for transient fields
Fixed Bugs
JEAF-3080
@Override
missing for generated ServiceProviderFactoryJEAF-3078 Switch JEAF Generator Test Projects to latest version of Spring
JEAF-3053 JEAF Enumerations are not generated together with POJOs
JEAF-3052 Generated code for POJOs has dependencies to JEAF Core
JEAF-3051 Default values from UML model are not present in OpenAPI specification
JEAF-3043 Multi line descriptions for OpenAPI servers or specification cause exception during code generation
JEAF-3042 Support JSON serialization for POJOs
JEAF-3041 Exception when using location information in OpenAPI spec
JEAF-3040
@Valid
annotation not generated for POJOsJEAF-3039 Compile error in generated code in case that a method returns a primitive type
JEAF-3038 JSON annotations not generated for ServiceObjects with methods
JEAF-3037 Read only fields with default value cause compile error
JEAF-3023 Wrong console output of JEAF Generator
Version 1.6.42
New Features / Improvements
Support for OpenAPI
Version 1.6.15
Security Fixes
JEAF-3021 Upgrade to Log4J 2.17.1 to prevent CVE-2021-44832
Version 1.6.14
New Features / Improvements
JEAF-3005 Generate JSON annotations
Fixed Bugs
JEAF-3017 Bean parameters have wrong name in generated OpenAPI specification
Security Fixes
Version 1.6.13
New Features / Improvements
JEAF-3011 Upgrade to JEAF X-Fun API 1.6.4
JEAF-3006 Add Liveness and Readiness Probes to JEAF X-Fun and JEAF Fast Lane