The current QueryEngineHttp is somewhat limited in that the Accept header is hardcoded to SPARQL Results XML or RDF/XML depending on the usage of the engine and there are a number of other features lacking including timeouts and support for requesting and reading compressed content.
The submitted patch here adds the following features:
1 - Configurable Content Type support
A QueryEngineHttp instance can be configured to request different content types as required by the users. For CONSTRUCT/DESCRIBE whether the requested content type is valid is verified using RIOT and the parser for reading responses into models automatically selected. For ASK/SELECT the supported content types are defined in hard-coded lists and the parser selected via if statements.
In the future it is envisaged that ASK/SELECT supported format detection could be improved by wiring into whatever new machinery around handling result formats that ARQ/RIOT eventually supplies
2 - Configuration Timeouts
Support for configuring Connection and Read Timeouts for queries
3 - GZip and Deflate Compression Support
Support for specifying that the client will allow GZip/Deflate encoded content to be sent to it and for ensuring that the returned InputStream gets appropriately wrapped so the content is decompressed as read