3.0.0.6 - 2023-12-06

Bug fixes

  • Ensure that Netty buffers created to hold copies of incoming messages for the purpose of SAS tracing are always released. (#1055101)

3.0.0.5 - 2023-11-27

Bug fixes

  • Fixed a race condition in the HTTP client that would result in an immediate 500 error response being returned for a request. This could occur when an HTTP client connection was closed due to being unused for longer than the configured outgoing connection idle time just as a new request was attempting to be sent on it. (#290107)

  • Changed the lifecycle management of Netty buffers to explicitly free unpooled heap buffers used for incoming messages. This change is non-functional, serving solely to remove weak references to these buffers from Netty’s leak detector queue. (#213586)

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

3.0.0.4 - 2023-04-28

Bug fixes

  • Removed an unnecessary reverse IP address lookup that could occur when receiving a request without a Host header, and no authority in the Request-URI. (#522070)

3.0.0.3 - 2022-06-02

Bug fixes

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

3.0.0.2 - 2021-10-11

Bug fixes

  • Fixed an issue with Content-Length header incorrectly being added to responses that specified a Transfer-Encoding of chunked. (HTTP-182)

3.0.0.1 - 2020-09-21

Improvements

  • Some minor changes to allow HTTP RA components to be reused in other RAs. (VOLTE-8240)

3.0.0.0 - 2020-08-26

  • This release is built on and requires JDK 11. It requires Rhino 3.0 or later releases.

Improvements

  • Use correct sent and received addresses in SAS summary messages for INCOMING_MESSAGE and OUTGOING_MESSAGE events. (HTTP-161)

2.5.0.0 - 2019-02-20

Improvements

  • Add message_id and call_info_id as part of the standard SAS bundle. (HTTP-152)

2.4.0.3 - 2018-10-31

Improvements

  • Add support for new SAS protocol message parameters (introduced in SAS V10.3) that allow HTTP call flow diagrams to be drawn correctly in cases where a load-balancing HTTP proxy is involved. To view the new fields in SAS V10.3, add message_id and call_info_id to the exported SAS bundle. (HTTP-152)

2.4.0.2 - 2018-05-31

  • Fixed a failure to report responses to outgoing messages when a second message was sent on the same channel before the response had arrived. (HTTP-150)

  • Add scope to X-Span-Id marker so it will be used for correlation. (HTTP-151)

2.4.0.1 - 2018-04-26

API and deployment changes

  • Resource adaptor functionality is now disabled if no valid license is found in a Rhino production instance. (HTTP-7)

  • All SLEE component versions have been updated to 2.4.

New features

  • Metaswitch Service Assurance Server (SAS) support. (HTTP-137)
    See the documentation for more information.

2.3.0.5 - 2017-08-23

  • Removed incorrect handling of "Expect: 100-continue" header. (HTTP-136)

2.3.0.4 - 2016-09-27

  • Fixed an AccessControlException thrown when creating HTTP messages in some circumstances. (HTTP-119)

  • Added an extra timeout to prevent threads blocking indefinitely on rare occasions when waiting for a response using the synchronous API. (HTTP-128)

  • The resource adaptor configuration property "MaxContentLength" default value has been increased from 256KB to 1024KB, and is now passed through to the transport layer. (HTTP-125)

2.3.0.3 - 2016-09-27

  • Add a getRequestURI() method to HttpRequest, to expose the Request-URI exactly as it appears in the Request-Line of a request. (HTTP-122)

2.3.0.1 - 2015-10-29

  • New method HttpResponse.isServerResponse() added to allow services to distinguish between responses coming from a remote server and the ones generated by the resource adaptor. Generated responses are listed in the documentation. (HTTP-91)

2.3.0.0 - 2015-07-20

API and deployment changes

  • From release 2.3.0, the HTTP resource adaptor requires Java 7.

  • All SLEE component versions have been updated to 2.3.

  • The version of Netty used by the HTTP transport layer has been upgraded to 4.0.28. (HTTP-80)

New features

  • Added support for marshalling of HTTP messages into a byte array that can be serialized (e.g., stored in a CMP field). This is available through new methods added in HTTP Provider. (HTTP-22)

  • If NeedClientAuth is set, then client certificates will be retrieved from the SSL session and made available via a new method on the request event object. (HTTP-44)

Bug fixes

  • A bug fixed in the new release of Netty eliminates a race condition which meant connections were not returned to the pool on rare occasions. After a long period this could result in no connections being available. (HTTP-94)

2.2.0.10 - 2015-04-13

  • Fixed a bug which caused HTTP message decoding errors under load when acting as a server. (HTTP-83)

  • Fixed a bug which leaked timer threads when a resource adaptor entity was deactivated and reactivated. (HTTP-79)

  • Added support for response content compression and decompression. These are activated by the new config properties: "AutomaticContentCompression" and "AutomaticContentDecompression". (HTTP-72)

2.2.0.9 - 2014-12-08

  • RA now responds with "HTTP/1.0 400 Bad Request" to HTTP Request containing invalid version before closing the connection. Previously connection was closed without a response. (HTTP-24)

  • Add bytesRx / bytesTx client and server RA statistics representing number of bytes received and number of bytes sent respectively. (HTTP-32)

  • Eagerly end activities when corresponding connection is closed by remote peer. Previously such activities where ended lazily when a response was sent by SBB. If response was never generated such an activity would be alive until administratively removed. (HTTP-61)

  • Fixed an issue where URLs of incoming requests were being created with the IP address and port of the client rather than the server. (HTTP-62)

2.2.0.8 - 2014-02-03

  • Add a new config property "BindAddresses" that allows a different bind address (network address and port combination) to be specified for each node in a cluster. It is a string property with the format "{node}address:port,{node}address:port,…​". This allows entities running on two nodes on the same host to use different ports, for example: "{101}0.0.0.0:8000,{102}0.0.0.0:8001". It also allows entities running on different hosts to specify an interface to listen on that is specific to each host, for example: "{101}192.168.1.100:8000,{102}192.168.1.101:8000". (HTTP-46)

  • Add a new config property "SecureBindAddresses" that works the same way as "BindAddresses", but for the HTTPS listeners. (HTTP-47)

  • Additional permissions have been added to allow keystores to be read from more locations without needing to update the security policy. The new locations are the files "http-ra.ks" and "http-ra.trust.ks" in the Rhino base directory (previously there was only a permission for http-ra.ks in the Rhino node directory), and anything in the "keystores" directory under Rhino base. (HTTP-59)

  • Removed the default values for ListenAddress and ListenPort from the resource adaptor configuration properties.

2.2.0.7 - 2013-07-01

  • Add a new config property "NeedClientAuth". When set to true it will set the same flag on the SSL Engine for incoming HTTPS connections, meaning a valid client certificate is required to connect. (HTTP-43)

2.2.0.6 - 2012-08-02

  • Fix a null pointer exception in inactive RA entities, when multiple RA entities exist. (HTTP-39)

2.2.0.5 - 2012-07-11

  • If the URL used to create a request has no path (e.g. "http://localhost"), use "/" as the requested resource. This restores the behaviour of previous releases. (HTTP-37)

2.2.0.4 - 2012-05-11

  • Fixed a bug that prevented response headers from being sent. (HTTP-36)

  • Fixed URL for Netty and Guava libraries in example deployment scripts. (HTTP-35)

2.2.0.2 - 2012-02-20

  • The HTTP transport layer used by the resource adaptor is now implemeted using Netty. (HTTP-28)

  • Added TLS support to the HTTP RA (for both incoming and outgoing connections). (HTTP-15)

  • The packaging of the libraries and examples for the HTTP RA has been improved. (HTTP-20)

  • Incoming requests will now timeout correctly and send an error answer to the client. (HTTP-2)

  • 100 Continue responses will not be fired as events and will not end the activity; the request will remain pending until the full response arrives. (HTTP-13)

  • Renamed ReconnectTimeout configuration property to NewConnectionDelay, which is a better description of its purpose. Changed its default value from 1500ms to 100ms. (HTTP-5)

  • Changed default value of configuration property MaxDepth from 5 to 1. (HTTP-5)

  • Changed default value of configuration property MaxOutgoingConnections from 5 to 30. (HTTP-5)

  • Tracer names are no longer prefixed with "resource.<entity name>". (HTTP-8)

  • An alarm is now raised if no valid license is found when activating HTTP and SOAP RAs. (HTTP-11)

  • The HTTP load generator that was in the old Web Connectivity Pack is not included in this HTTP package. (HTTP-26)