For more information, see the projects:
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
All project changes will be documented in this file.
- Added support to retrieve the authorities passed by the delegated authentication provider.
- Added support for pre/post authorizations on GraphQL calls.
- Added Hamkrest and Spek as test dependencies.
- Added initial support for ArrowKt.
- Added the pageable functionality for GraphQL.
- Removed dependency with org.reflections.
- Updated some dependency versions.
- Update the copyright.
- Added support to create request scoped beans within async threads.
- Some improvements on Google Captcha Service.
- Added support to RESTful API client configuration.
- Defined a default ObjectMapper.
- Code-review.
- Some improvements on GraphQL asynchronous configuration.
- Some improvements on GraphQL ErrorHandling.
- Now the notification message for Atmosphere can be any object.
- Added the Void GraphQL Scalar Type.
- Some improvements in the security configuration involving the GraphQL.
- JWT Token can be configured without expiration.
- Added support for JWT Authentication Delegation.
- Added the class GoogleCaptchaService.
- Fixed a minor bug involving the CORS configuration and circular dependencies.
- Added Spring Cloud Support.
- Migrated from Apache ActiveMQ to Apache Artemis.
- Migrated from Swagger to Open API.
- Migration from JavaX project to Jakarta EE.
- Migration to Spring Boot 3 and Spring 6.
- New Version of Mongo Driver.
- Removed support from Swagger, added support for Open API.
- Support for Gradle 8.0.2 and Maven 3.9.1.
- Support for Java 17 and Kotlin 1.18.
- Support for Lombok project integrated with Kotlin.
- Fixed a Bug with the ID property on AbstractEntity class.
- Fixed a Bug in the equals(...) method on AbstractEntity class.
- Fixed a Bug involving the auto-configuration order between WebAutoConfiguration and HibernateJpaAutoConfiguration.
- Created the modules: common-data-jpa, common-data-multitenant, common-web, common-web-notification, common-web-security.
- Configured a new exception handler for GraphQL.
- Moved some classes to package: io.herd.common.web.
- Renamed package from io.herd.common.tenant, to: io.herd.common.data.multitenant.
- Fixed a bug while compiling both Kotlin and Java files in a same module.
- Fixed a bug in the ExceptionHandlingController related to 'shouldLogAsWarning' functionality.
- Improvements in better logging while using AWS.
- Added the extra args to ResponseExceptionDTO. Fixed a bug in the ExceptionHandlingController related to ApiException handling.
- Added support to Spring + Kotlin. Changed the GraphQL version.
- Enabled the support to asynchronous processing.
- Enabled the option to use the Log Pattern when configured through application.properties.
- Now it's possible to define the exception message which should be recorded in the log as a warning.
- Now it's possible to define an exceptions list which should be recorded in the log as a warning.
- Node 12.18.2 and NPM 6.14.5.
- SpringFox v3.0.0.
- Replaced the annotation @EnableSwagger2WebMvc by @EnableOpenApi.
- Created the class AutoConfigureCommonWeb, which would be used mostly during tests.
- Moved from Swagger Specification (v2) to OpenAPI Specification (v3).
- Fixed a bug with the Springfox Swagger (The webjars path has changed).
- Fixed a bug with the Springfox Swagger.
- Fixed a bug with the MockitoLoader, and the ServiceJpaTest classes.
- Now the Thymeleaf configuration uses the same MessageSource defined by default.
- Added the property: ${swagger.generation.keep-superfluous-files}
- Reverting version: 2.3.11.
- Removed the classes: SignRequestWrapper and SignRequestServletInputStream. Now we are using: ContentCachingRequestWrapper!
- Added support to PushOver Notifications.
- Configured the log level for some classes to avoid verbosity.
- Better Swagger Api exception handling.
- Created a new converter to handling messages while logging on AWS CloudWatch.
- Added handling for UndeclaredThrowableException.
- Some code review.
- Fixed a bug related to the banner.txt file creation. There's a bug with the Maven Flatten Plugin, which replaces the placeholders when defined inside the tag.
- Configured the Maven Flatten Plugin. The ${revision} placeholder will only work if you use this plugin. See: https://blog.soebes.de/blog/2017/04/02/maven-pom-files-without-a-version-in-it/
- Configured the ${revision} placeholder.
- Configured the Maven Version Plugin which will be responsible for updating the POM version.
- Created the functionality of cleaning up the database state between tests.
- Better Undertow configuration.
- Better Spring Security configuration.
- Spring 5.3.5 and Spring Boot 2.2.6. Other dependencies update.
- Node 12.16.2 and NPM 6.14.4.
- Fixed a bug related to Swagger configuration. It was not taking into account the fact that the context path could be different from /.
- Fixed a bug related to Commons Herd.io Notification's auto-configuration.
- Fixed a bug when table prefix was configured blank. See: DefaultPhysicalNamingStrategy.
- Created class MongoContainer.
- Changed the MockJwtAuthorizedUserSecurityContextFactory. Now, it's mandatory the JWT token bean configuration.
- Better auto configuration setup. Aiming to execute test slicing technique available on Spring Boot correctly.
- Created the classes ServiceJpaTest and MockitoLoader.
- Support to DBUnit.
- Fixed a bug with the Hikari and Liquibase.
- Some Undertow tweaks.
- Better Api Base Path sanitization.
- Undertow access log configuration.
- Fully translated to English.
- Fixed a bug related to ComponentScan annotation while using it with WebMvcTest annotation.
- Fixed a bug related to ComponentScan annotation.
- Fixed a problem while generating the file spring-configuration-metadata.json. Custom properties weren't being recognized.
- WebSecurityConfigurerAdapterAutoConfiguration will only be configured if there's no other bean of the same type inside the application context.
- ResponseExceptionDTOHttpMessageConverter must always return an "application/json". It will ensure when the controller throws an exception, even if the response content-type is different from "application/json", the response entity will be configured to return an "application/json" content type.
- Support to Apollo GraphQL.
- Added a custom ResponseExceptionDTOHttpMessageConverter.
- Updated Commons Compress: 1.8 -> 1.19.
- Migration to Java 11.
- Better Spring Boot auto configuration. Removed EnableAutoConfiguration annotations.
- Better rethrowing functionality. See ThrowingConsumer for further information.
- Some language translations.
- Minor code review.
- Better Multi Tenancy support.
- Fixed a Bug related to allowing calls to the public API.
- Added support to MapStruct.
- Now it is possible to use a different profile when starting the application to access the Swagger API.
- Fixed a bug related when an exception was thrown before the ExceptionHandlingFilter, generating this way a response message not readable by the ExceptionHandlingController. Now if the response body could not be deserialized into a ResponseExceptionDTO, it will be deserialized using a Map<String, Object>.
- Now it is possible to disable the default authentication.
Fixed a bug related to the authentication. We must set authentication as true after calling the authentication services (JWT and Sign Request).
- Added support to mail messages.
- Added support to Apache Commons Validator and Apache Commons Compress.
- Added support to symmetric encryption while handling JWT Tokens.
- Fixed a bug related to how the default behavior was managed by the customized WebSecurityAutoConfiguration.
- Added support to CORS configuration through application.properties file.
- Now there is no need to add the Commons Herd.io version in children projects.
- Added the class MockSignRequestAuthorizedClient.
- Fixed some minor bugs regarding the JwtAuthorizationService class instantiation.
- Changed the ExceptionHandlingController class to add support to HttpStatusCodeException.
- Better logger information while printing exceptions handled by the Swagger Client.
- Fixed a Bug while reading the swagger-client.properties file. Prefix was not specified.
- Now the class SignRequestAuthorizationService is enabled by default, as it can be used to sign requests when used by a Swagger client.
- Now it is possible to add additional properties to the SignRequestAuthorizedClient.
- Added the SecurityExceptionHandlingController class.
- Added support to authorities and credentials on JWT Authentication/Authorization Component.
- Now it is possible to configure the expiration period while generating the JWT Token.
- Added the AwsExtendedThrowableProxyConverter class, which is responsible for grouping the stack trace in just one message while using the AWS Cloud Watch.
- Fixed some Sonarlint issues. Better Hikari configuration.
- Better name for property: commons-herd.io.version.
- Added support to the use of profiles with LogBack.
- Disabled default log configuration. This was an erroneous deployment!
- Better Swagger Thin Server configuration.
- Added empty application.properties file.
- Fixed a bug related to refreshing properties and local validation.
- Added support to default properties.
- Added support to refreshable properties.
- Added dependency with Spring Cloud Starter.
- Minor changes.
- Improved the Swagger client properties configuration. Now there is no need of extending the SwaggerClientProperties class.
- Changed the DefaultPhysicalNamingStrategy class. Now there is no need of extending it, just to configure the property 'app.database.table-prefix'.
- Better messages while handling authorization and authentication.
- Added support to Sign Request Authorization.
- Added support to JWT Authorization.
- Now the base path configuration is also applied to Spring Data Rest Repositories. Fixed Bug: The configuration of the default path ("/api") is not working while using Spring Data Rest
- New Spring Boot Version 2.2.2.
- Some translation and minor fixes.
- Better Swagger support. Now it will be available by default. Fixed Bug: Swagger auto-configuration not working with Spring Data Rest
- Support to new exceptions: ResourceNotFoundException and HttpRequestMethodNotSupportedException.
- Added support to Spring Actuator for all Spring Web applications.
- Now it is possible to configure the EntityScan and JpaRepositoryScan.
- Better files generation available for Swagger Clients. Now it is possible to download the JSON file directly from Thin Server.
- CRC16 calculation feature.
- Improvements in the class ExceptionHandlingController: handling of new exceptions.
- MIT license added.
- Creation of CustomRepositoryRestConfiguration class.
- Spring Data Rest support.
- Support for Java 11.
- Creation of ThrowingRunnable class.
- Creating the annotation for tests in the service layer.
- Implementation of the Multi Tenancy feature.
- Creation of ThrowingConsumer, ThrowingSupplier and ThrowingFunction classes.
- Creation of common-parent-static module.
- Addition of standard error pages. (40X.html and 50X.html)
- Improvements in the way we treat null parameters in Repository classes.
- Improvements in the ExceptionHandlingController class: corrections related to the way we handle exceptions. Separation between exceptions for controllers and services.
- Migration to Spring 5 and SpringBoot 2. Including dependencies.
- Application configuration improvements (Auto Configuration).
- Improvements in POM.xml.
- Improvements in the notification component. It will now be possible to handle more than one broadcast per resource. And vice versa!
- Improvements to log messages.
- The ModelMapper beans configured with the prototype scope.
- Correction of a bug that occurred when handling ApiException.
- Creation of Google Calendar Service.
- Creation of MultipartRequest class.
- Creation of CPF/CNPJ field validations.
- Creation of the generic exception handling functionality. (ExceptionHandlingController)
- Creation of JPA repositories to handle null method parameters (Null-Safe Parameters), including MongoDB.
- Creation of AbstractRepository class to help in the creation of personalized data repositories.
- Creation of AbstractPersistableIdentity class to help in the creation of JPA entities.
- Creation of the functionality responsible for defining the name strategy to use with databases. (Naming Strategy)
- Creation of classes to use with automated tests.
- Added support for internationalization.
- Added support for templates: Thymeleaf Framework.
- Added support for Swagger.
- Added support for default application configuration via Spring Boot.
- Added support for Liquibase.
- Added support for Atmosphere.
- Added support for queue management.
- Added support for default log configuration.
- Added support for QR Code readers.
- Added security support via JWT.