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

    • Fixed issue where destination host DNS resolves were cached indefinitely in the HTTP client manager. HTTP client requests will now have their destination host resolved every time a new connection is established. The name resolution is still done using Java’s built-in DNS resolution, so the result will be cached by Java for the duration specified in the networkaddress.cache.ttl security property in config/rhino.java.security. (Bug 167684)

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