- Starting with Java 1.8.0_272, SSLSocketImpl wraps SocketException. Beadledom Client is updated to retry on SSLExceptions that occur because of IOExceptions.
- Upgrade Avro to 1.10.0.
Migration guide to Beadledom 4.0 from Beadledom 3.x.
- Removed beadledom-swagger1 and beadledom-stagemonitor modules.
- Changed AnnotatedObjectMapperProvider and ObjectMapperProvider to use PropertyNamingStrategy.LOWER_CAMEL_CASE from PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES.
- Upgraded RESTEasy to 4.5.5.Final.
- Upgraded to Scala 2.12 and Scalatest 3.1
HttpHealthDependency
class for dependencies that are HTTP services.- Add server relative quality factor to health resources.
- The
beadledom-correlation
module.
- Updated resteasy to 3.11. Following changes are affected if your service is also uplifting to use 4.x version of Resteasy.
- Make sure to install the Beadledom JAX-RS CorrelationIdFilter on the server side so that correlationIds are forwarded properly when consuming a beadledom client.
This is automatically installed if your service installs the core
BeadledomModule
guice module. - With resteasy update, if your service is using ParamConverter for validating query parameters, it will now throw a Jax-RS NotFoundException. Use validation section of Resteasy user guide to understand how to do param validation.
MockHttpResponse
class from Resteasy now has theContent-Type
header as aJAX-RS
MediaType class instead of a String.
- All beadledom-client modules and classes have been deprecated. Use Retrofit instead.
- Retryable IOExceptions in HTTP clients will now use a simple exponential backoff delay instead of retrying immediately.
- Update Jackson to 2.10.2 and Tomcat to 7.0.99
- Nested transactions via
@JooqTransactional
no longer use SavePoints. Technically this a non-passive behavioral change, but seems like the safer option and likely what is more in line with what is expected by users of@JooqTransactional
.
- com.cerner.beadledom.jaxrs.PATCH has been deprecated. Use PATCH annotation from JAX-RS 2.1, https://jax-rs.github.io/apidocs/2.1/javax/ws/rs/PATCH.html instead.
- Update
ThreadLocalCommitHookExecutingTransactionListener
to overrideTransactionListener#beginStart
instead ofTransactionListener#beginEnd
- Jooq transaction hooks for executing actions after a successful commit.
- New
totalResults
convenience method onOffsetPaginatedList.Builder
for when only a total results value needs to be set. ForwardedHeaderFilter
to determine the correct HTTP protocol of the origin request and apply it to the internal request object.- The
beadledom-integration
module to test features of Beadledom using a service behind a reverse-proxy.
- Update archetype dependencies to match beadledom library
- Switch to Keep a Changelog style for Changelog moving forward - https://keepachangelog.com/en/1.0.0/
- Update maven archetype for project generation with new client recommendations.
- Update client documentation to recommend using an abstracted resource pattern.
- The convenience overloads of the
metadata
method onOffsetPaginatedList.Builder
have been deprecated.
- JAX-RS providers with binding annotations will no longer be registered in the resteasy provider factory for the server.
- Guice-based Beadledom clients will now use the correct time unit for time-outs.
- Add back
jersey-media-multipart
with an explicit version (turns outswagger-jersey2-jaxrs
requires it).
- Fixed exclusion of
jersey-media-multipart
fromswagger-jersey2-jaxrs
. - Jackson version uplift from 2.9.6 -> 2.9.8 because of vulnerabilities:
- CVE-2018-19360
- CVE-2018-19362
- CVE-2018-14720
- CVE-2018-19361
- CVE-2018-14719
- CVE-2018-14718
- CVE-2018-14721
- [internal] Use the
-q
option onmvn site
to enable quiet running of the command (only printing errors) in an effort to reduce log length in Travis.
- [internal] Use the
-B
option on ourmvn site
command to reduce log length by eliminating progress dialogs from downloads. More Info
- [internal] Upgrade to spotbug 3.1.8 to eliminate incorrect identification of bugs that was causing Travis to fail. More Info
- Add OffsetPaginatedListDto interface to the pagination module.
- Add configuration to allow 0 as a pagination limit value (disabled by default - limit=1 as minimum value).
- Add Swagger 2 module.
- Fix isHealthy field being included in the health dependency list JSON.
- Health resource (/health) now excludes non-primary health dependencies. The non-primary dependencies are still included in the diagnostic resource (/health/diagnostic). The default for health dependencies is also changed to be primary.
- Add offset based pagination with beadledom-pagination.
- Fixed beadledom client deserialization to GenericResponse when the JAX-RS response has no entity.
- Remove StagemonitorModule, SwaggerModule, AvroJacksonGuiceModule, AvroSwaggerGuiceModule, and HealthModule modules from being installed by BeadledomModule. If the removed functionality is desired, install the removed modules in the consuming guice module.
- Bump minimum Java version to 1.8 for all modules.
- Upgrade to JAX-RS 2.1 with Resteasy 3.6.x
- Change the HttpClient
ServiceUnavailableRetryStrategy
to only retry on 503 response codes. - The beadledom-swagger module was renamed to beadledom-swagger1 in preparation for support of swagger 2 and OpenAPI 3.
- Support building with JDK 9/10+
- Add migration guide to documentation site.
- Fixed health DTOs Jackson deserialization.
- Add New Relic module.
- Add updated GPG signing key with a longer duration until it expires (20 years).
- Update GenericResponse to extend the Closeable interface.
- Add beadledom-json-common to beadledom-bom.
- Add environment variables configuration source.
- Add jOOQ module for database interaction.
- Add
JsonMappingExceptionMapper
andJsonParseExceptionMapper
to map Jackson exceptions to the JSON error response structure.
- Add
JsonError
andErrorDetail
models to standardize JSON error response structure. Addresses Issue #24. - Update the
WebApplicationExceptionMapper
to follow JSON error response structure. - Add two new exception mappers,
ThrowableExceptionMapper
andFailureExceptionMapper
, for other uncaught error cases that also follow the JSON error response structure. Addresses Issue #43.
- Add exception to request trace error logging when serializing the trace to JSON fails.
- Add Bill of Material(BOM) pom for dependency management.
- Disable the stagemonitor web widget in the service generated by the archetype, as the default configuration.
- Added toString implementation to DelegatingGenericResponse and BuiltGenericResponse.
- Added a PATCH annotation because JAX-RS does not have one.
- Cleaned up dependencies and fixed few minor issues with generated code in archetype.
- Documentation and archetype changes for best practices for structuring service guice modules.
- Removed unnecessary loop in
ResteasyContextListener
which would cause infinite loop if run. - Fixed issue with redirects in the bootstrap script (issue-15).
- WebApplicationException mapper is called when exceptions are thrown by the checkParam method in JaxRsParamConditions class (#16).
- Fixed
BeadledomClientBuilderProvider
using root Guice injector instead of nearest child injector.
- Fixed resteasy compatibility issues.
- Open sourced.
- Add JavaDoc to doc site.
- Add user manual to doc site.
Note: The below versions were released internally and not available via Maven Central. These entries are kept to track down the history of beadledom.
- Client specific ObjectMapper.
- Fixed the dependency's health check urls.
- Removed the usage of Optional with boolean.
- Corrected the defect which always gave a faulty true value for healthy.
- Added priories to the Beadledom Configuration.
- An archetype module for bootstrapping Beadledom projects.
- Getting started guide for Beadledom.
- Troubleshooting section to gh-pages.
- Healthcheck issue added to Troubleshooting docs.
- A configuration module for loading a common configuration from multiple sources.
- Configure LogJsonRequestTraceReporter utilizing Stagemonitor configuration.
- Health check pages load without exceptions when there is no
BasicAvailabilityUrl
defined for a health dependency.
- Upgraded governator version from 1.12.10 to 1.13.5
- Health check end points have been updated to use new JSON structure.
- JAX-RS GenericResponse API module for type safe JAX-RS responses.
- Resteasy implementation of JAX-RS GenericResponse API.
- A lifecycle module for managing a container's lifecycle.
- Guice core extensions module with common guice extensions.
- Guice dynamic bindings extension module for working with bindings with dynamic annotations.
- Added detailed documentation.
- Jackson ObjectMapper features can be enabled/disabled via Guice multibindings.
- Supports Guice 4 annotations for adding objects to a Multibinder.
- Beadledom provides a default empty multi-binding for HealthDependency.
- Stagemonitor JSON trace logging now correctly logs the condensed JSON request trace.