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 called com.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.java

    This 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 interface com.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 version 1.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 your pom.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() and hashCode() 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 ServiceProviderFactory

  • JEAF-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 POJOs

  • JEAF-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

Fixed Bugs

  • JEAF-3017 Bean parameters have wrong name in generated OpenAPI specification

Security Fixes

  • JEAF-3018 Log4J2 Security fix for CVE-2021-45105

  • JEAF-3013 Log4J2 Zero-Day-Exploit (CVE-2021-44228)

 

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

 

Version 1.6.12

New Features / Improvements

  • JEAF-3004 Upgrade JEAF Generator to latest version of JEAF Core, Tools and X-Fun

  • JEAF-731 JEAF exception classes should also support to add technical details