@Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        final HttpClientConfiguration that = (HttpClientConfiguration) o;
        return cookiesEnabled == that.cookiesEnabled &&
               maxConnections == that.maxConnections &&
               maxConnectionsPerRoute == that.maxConnectionsPerRoute &&
               retries == that.retries &&
               Objects.equals(timeout, that.timeout) &&
               Objects.equals(connectionTimeout, that.connectionTimeout) &&
               Objects.equals(connectionRequestTimeout, that.connectionRequestTimeout) &&
               Objects.equals(timeToLive, that.timeToLive) &&
               Objects.equals(keepAlive, that.keepAlive) &&
               Objects.equals(userAgent, that.userAgent) &&
               Objects.equals(proxyConfiguration, that.proxyConfiguration) &&
               Objects.equals(validateAfterInactivityPeriod, that.validateAfterInactivityPeriod) &&
               Objects.equals(tlsConfiguration, that.tlsConfiguration);
    }
This class is essentially a copy of {@link io.dropwizard.client.HttpClientConfiguration}
so that we can extend {@link AbstractConfig} and have an equals method.
All uses of {@link io.dropwizard.util.Duration} have been replaced with {@link StroomDuration}
for consistency with the rest of the config.
Values are extracted from this using reflection by {@link stroom.util.http.HttpClientConfigConverter} so it is
key that the method names match.
stroom-util/src/main/java/stroom/util/http/HttpClientConfiguration.java