2.1.8 - 2024-02-29

New Features

  • Support for running on Java 17 (tested with the Microsoft build of OpenJDK 17). Existing support for Java 11 is unchanged.

Dependency Updates

  • Update the Build Support dependency to 4.1.7

  • Update the SDK Tools dependency to 4.1.11

2.1.7 - 2024-01-25

Fixes and Improvements

  • Remove spaces from base64 encoded secrets in the MSAL authentication wrapper before decoding. This prevents accidental copy-paste artifacts from newlines being converted to spaces causing silent decoding failures. (#1099485)

  • Add an alarm when the certificate used by the MSAL authentication wrapper are about to expire. A major level alarm is raised when the certificate expires in 30 days, raised to critical when expiring within 7 days. (#1099085)

Dependency Updates

  • Update the Build Support dependency to 4.1.6

  • Update the SDK Tools dependency to 4.1.10

  • Update the com.google.inject.extensions libraries to 5.1.0

  • Update the netty libraries to 4.1.103.Final

2.1.6 - 2023-11-13

Fixes and Improvements

  • Ensure that the pooled Netty buffers backing incoming message content are always released back to the pool, when handling synchronous responses or when the message content is replaced and the original buffer becomes unreferenced. (#921591)

Dependency Updates

  • Update the Build Support dependency to 4.1.5

  • Update the SDK Tools dependency to 4.1.9

  • Update the SLEE Annotations dependency to 3.1.4

  • Update org.apache.ivy:ivy to 2.5.2 (#987040)

  • Update net.minidev libraries to 2.4.11 (#740853)

  • Update org.yaml:snakeyaml to 2.0 (#740859)

2.1.5 - 2023-08-11

New Features

  • Add support for redacting selected request content sent in SAS traces, to prevent sensitive information leaking via SAS. See the RequestPathsToRedact property in Configuring the REST Resource Adaptor for details. (#840339)

2.1.4 - 2023-07-18

Dependency Updates

  • Update the Build Support dependency to 4.1.4

  • Update the RA Infrastructure dependency to 3.1.5

  • Update the Rhino dependency to 3.2.3

  • Update the SDK Tools dependency to 4.1.8

  • Update the SLEE Annotations dependency to 3.1.2

  • Update the STU dependency to 4.1.3

  • Update the Build Support dependency to 4.1.4

2.1.3 - 2023-01-20

Fixes and Improvements

  • Add getClientAddress(), getClientCertificates(), getLocalAddress() and getRequestURI() to the RestRequest interface. (#503226)

Dependency Updates

  • Update the Build Support dependency to 4.1.2

  • Update the SDK Tools dependency to 4.1.5

  • Update the STU dependency to 4.1.2

  • Update the Build Support dependency to 4.1.2

  • Updated org.apache.ivy:ivy version from 2.5.0 to 2.5.1 (#425766)

2.1.2 - 2022-12-09

New Features

  • Add support for REST request bodies that use application/x-www-form-urlencoded. (#375832)

  • Add http proxy capabilities with ProxyAddress and ProxyPort config properties. (#365602)

Fixes and Improvements

  • Fixed an issue with encode/decode of JSON objects caused by jackson annotations not being accessible at runtime in a REST API plugin library. Resolved by moving library dependencies for guava and jackson to the rest-api-common library, from the rest-ratype-spi library. (#393078)

  • The SDK no longer requires an account for, or connection to, Metaswitch’s Artifactory server. All the SDK’s dependencies are included in the initial download. (#385138)

  • Fixed an issue that caused operations on a provider object to fail if the owning REST resource adaptor entity configuration was updated. The REST resource adaptor entity would incorrectly be considered inactive, by applications, after a configuration update.

    Fixed by updating how a REST resource adaptor entity stores state. A provider object used by an application will always see the correct view of REST resource adaptor entity status. (#412204)

  • Use annotation variable for ra entity link in the generated sbb-part super-class.

    The generated sbb-part super-class now expects an annotation variable 'sbbpart.ra.entitylink' to be defined in the sbb-part module.properties. (#316091)

Early Access Features

  • (Experimental) Create client MSAL4J security scheme provider that implements the OAuth2 Client Flow using the Microsoft MSAL4J library. (#316091)

Dependency Updates

  • Update com.fasterxml.jackson libraries to 2.14.1. (#421995)

2.1.0 - 2022-10-07

  • The Rest API Framework has had an across-the-board update to all its third-party library dependencies. (VOLTE-9950)

  • Add stats-presentation annotation to UnifiedRestFrameworkRA. (VOLTE-10138) - 2022-06-15

Fixes and Improvements

  • Deprecate six SAS events and replace with new SAS events to report the following failures:

    • an event is filtered as there are no SBBs deployed with an event handler method for the event

    • Rhino triggers an eventProcessingSuccessful callback that indicates no SBB processed the event

    • Rhino triggers an eventProcessingFailed callback for an event. (#213594) - 2022-05-20

New Features

  • Add service mesh capabilities with new config properties (HTTP-180)

Fixes and Improvements

  • Improved mechanism for reporting failures in API provider implementations. Create methods flag a message as failed on any failure. Send methods in the Unified REST RA core throw an IOException if the message to send in invalid. All existing APIs are preserved and RuntimeException are now not thrown from the API provider. (VOLTE-9801)

  • Test for required parameters in API provider implementations. Add NULLABLE annotations for parameters that are optional. Collate all missing required parameters and fail the create* operation by flagging the created message as failed. (VOLTE-9967)

  • Fix ClassCastExceptions in event processing callback methods. (VOLTE-9448)

  • Implement percent escape/unescape of parameters. Add percent escaping for path and query parameters but not for header or cookie parameters. (VOLTE-9853)

  • Avoid potential trailing '&' in the query string. (VOLTE-9843)

  • Replace use of paramName for baseName in API client implementations. For a parameter, openapi-generator provides: paramName (source code friendly name of the parameter) and baseName (name of the parameter as per the API spec). Replaced a number of incorrect uses of paramName with baseName. (VOLTE-9716)

  • Fix the code generation of the ResponseCallback classes. (VOLTE-9710)

  • Update how APIs are loaded and activated by a REST resource adaptor. Change the concept of 'loaded APIs' to 'active APIs'. All APIs are considered loaded. A REST resource adaptor will always return a provider object for an API (as per the SLEE 1.1 specification). Provider implementations check the API status and may throw an IOException if the API is not active. (VOLTE-9835)

  • Improve handling of null parameters. (VOLTE-9720, VOLTE-9721)

  • Improve documentation and fix minor mistakes. (VOLTE-9447, VOLTE-9448, VOLTE-9466)

Dependency Updates

  • Update the HTTP RA dependency to

Early Access Features

  • (Experimental) Create client OAuth2 security scheme provider that implements the OAuth2 Client Flow using the Nimbus SDK. (VOLTE-10322)

  • (Experimental) Update the REST API framework to support security schemes defined in a REST API. Add support for pluggable security scheme providers. A security scheme provider is an RA Type (for service visible interface) and a SLEE library (the provider implementation). Security scheme providers are loaded by a REST RA using the same mechanism used to load REST APIs.

    Update code generation so security schemes are applied to an outgoing request (update the request based on relevant security schemes). Security schemes are validated for incoming requests (check if the incoming request can be submitted to Rhino for processing or rejected).

    A security scheme provider may influence the error response generated when a security scheme fails to apply to an incoming request. Generate a 401 Auth failure, with an appropriate WWW-Authenticate header.

    Added SAS events for auth failures and when a security scheme could not be applied. (VOLTE-9974) - 2021-07-23

  • Initial release of the Rhino REST API Framework.
    The Rhino REST API Framework generates resource adaptors, for Rhino TAS, that support REST APIs defined with OpenAPI.

Rhino REST API Framework Version 2.1