OPENDJ-858 (CR-1680) Add stats tracking to HTTP client connections
Now monitoring total etime for each supported HTTP method.
While implementing this, I noticed that HTTPRequestInfo was duplicating fields in HTTPClientConnection and adding little more. I moved the missing data in HTTPRequestInfo to HTTPClientConnection and transformed the HTTPRequestInfo class into an interface to keep zero coupling between logging and HTTPClientConnection.
HTTPRequestInfo.java:
Transformed this class into an interface.
Renamed getRemoteHost() to getClientHost() and getRemoteAddress() to getClientAddress().
HTTPClientConnection.java
Now implements HTTPRequestInfo.
Moved several fields from HTTPRequestInfo here + added missing getters and setters.
In sendResponse(), calling HTTPStatistics.updateRequestMonitoringData().
Added log().
TextHTTPAccessLogPublisher.java:
Consequence of the changes to HTTPRequestInfo.
Also added support for the "c-port", "s-ip", "s-computername", and "s-port" fields.
CollectClientConnectionsFilter.java, SdkConnectionAdapter.java:
Consequence of the changes to HTTPRequestInfo.
HTTPStatistics.java:
Renamed instance members nbRequests to requestMethodsTotalCount and nbRequestsTotalCount to requestsTotalCount.
Added requestMethodsTotalTime instance member.
Completed the constructor, clearStatistics(), getMonitorData().
Fixed clearStatistics().
Added addAll(), updateRequestMonitoringData().
02-config.ldif:
Added attributes for monitoring the total etime of HTTP requests.
Renumbered some previously added attributes to follow what is done for LDAP operations etime.