* Refactor HTTP code into a common utility class
Centralizes the six (slightly) different implementations to use
a common Apache HTTP Client 5 implementation which implements our
strategies for retries, timeouts, error handling, etc.
Apache HTTP Client 5 adds support for Retry-After headers, HTTP/2,
and a bunch of other stuff under the covers.
Moves request delay to a request interceptor and fixes calculation
of the delay (again). Increase retries from 1x to 3x and use delay*2
as the default retry interval, if no Retry-After header. Uses an
exponential backoff strategy for multiple retries.
* Reuses HTTP client across requests
* Use IOException instead of Exception for HTTP errors
* Visually center links box
* Add the Java runtime info to the About page - fixes#3240
- Add the Java runtime name & version GetVersionCommand
- Add the returned information to the About page
* Migrate reconciliation calls to OkHTTP, for #2903
* Migrate to Apache HTTP Commons
* Migrate data extension to Apache HTTP client
* Deprecate HttpURLConnection in RefineServlet
* Use LaxRedirectStrategy, clean up imports
* Remove read and pool timeouts, only keep the connection timeout
* Adapt mocking of HTTP calls after migration
* Use ContentDisposition instead of ContentType to control download
Fixes#1197. Previously we were using a funky ContentType to attempt
to force a file download rather than display in browser, but this
conflicted with attempts to save UTF-8 which was outside the Basic
Multilingual Plane (BMP).
By switching to ContentDisposition: attachment, which has been
the preferred method for a number of years, we can avoid this conflict.
As part of this, switch to using the "preview" param consistently
to control preview vs download rather than the content type.
* Switch content type to text/plain
Now that we don't need to use ContentType to control download
behavior, we can use something more reasonable.
* added options ui
* added definition for both separators
* added tests
* removed definitions from backend and added them to frontend
* added reverse order and handling for accented characters
* added tests for accented characters and reverse split
* fixed build errors
* unicode character ranges instead
* added examples
This allows to keep the same Javascript calls to load languages, so it
does not require any change for extensions to benefit from this.
Closes#1350. Fixes#2209.