* Fix no response logging on async Feign.
Copy log level onto asyncBuilder as well as setting it on the builder, so responses get logged in the asynchronous case.
* Forgot a semicolon
* Run license:format; make logLevel not final.
Co-authored-by: Andrew Winterman <andrew.winterman@altruist.com>
* Modify DefaultMethodHandler to work with Android.
* Modified to work with Android. Previous commit worked up to API level 28 (Android 8) however, Android 9+ enforces more strict checking with reflection.
* Add support for java 9
* Move multi-release to java 9 only
* Have a single DefaultMethodHandle for java 8 and 11 that don't print warnings
* Bump spring version
Co-authored-by: Clayton Walker <cwalker@sofi.org>
Co-authored-by: Marvin Froeder <marvin.froeder@dovetailstudios.com>
* Make the FieldQueryMapEncoder encoder thread safe
Change the caching map to be concurrent and only
insert items that are missing to the map.
Fixes#1257
* Refactor the FieldQueryMapEncoder to use streams
Fixes#1257
* Fix bug for FeignException cannot get the correct charset (#1325)
* Add test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Add more test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Format test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Fix bug for FeignException cannot get the correct charset (#1325)
* Add test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Add more test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Format test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Add test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Add more test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Format test for (Fix bug for FeignException cannot get the correct charset) (#1325)
* Correcting License Headers for 2021
Co-authored-by: Kevin Davis <kdavisk6@gmail.com>
* If charset is set in Content-type, we decode response using that charset
* Java 8 compatibility
* Format fix
* Moving code to get charset to Response in order to be used by another
decoders
Fixes: #934, #1208
This change updates the Input Stream handling when using the Default
client implementation to detect when a response is `gzipped` and
wrap it in a `GZipInputStream`.
This addresses any issues related to compression when using the
default client.
In addition, removed the implicit parsing of the
body during toString. This was also brought up in #1208 and it came up
during testing of this change. Users should be using our `asReader`
and other methods to access the response body.
* Adding Deflate support
* Added Deflate Support and removed implicit response body reading
* Refactored Gzip and Deflate Conditions
* Corrected formatting and line-endings
Fixes: #1270
`HeaderTemplate` was confusing iterable values with literal values due
to the presence of comma `,` characters in the result. The result was
that, in certain cases like HTTP Dates, additional spaces were inserted
into the final expanded value.
The root cause of the issue is that `HeaderTemplate` combined all values
into a single `String` template, with each value separated by a comma.
This change refactors `HeaderTemplate` to treat all `values` as individual
`Templates`, removing the need to combine any provided values into a single
String.
* Remove unnecessary string splits when expanding Headers in RequestTemplate
JEP 118 introduced javac option `-parameters` that adds to bytecode
method parameter names, so if code is compiled with that option
and @Param value is empty we can get that template parameter name
from method parameter name.
Fixes#1297.
* Add unit test illustrating #1217
* Make sure content-type is limited to a single value
Co-authored-by: Pierre de Soyres <pierre.de-soyres@eptica.com>
This change converts the Java11 module release into two steps:
1. run `mvn install` for just feign-java11 to ensure the dependent
projects exist in the local repo
2. run `mvn deploy` for `feign-java11`
The result should be that only the single module is deployed
* Correcting License Headers
* Add list tests to QueryTemplateTest
* Make expandIterable() return empty string if unresolved
* Rename new tests to fit existing tests
* Format code
* Fix newlines
Fixes#1172
When a `HeaderTemplate` is expanded, the result is placed onto a new
`RequestTemplate` via it's `header` method. This results in the expanded
result being turned back into a `HeaderTemplate`, simply out of
convenience. This behavior, while fine more general use cases, is
problematic if the header value contains braces `{` `}`, as this will
cause the app to consider these values as new expressions.
At this point in the expansion process, there is no need to evaluate
the expanded values again, so this change allows a `Template` to be
created from an existing List of `TemplateChunks`, allowing for callers
to provide explicit `Literal` or `Expression` chunks directly into a
`Template`, by passing the template parsing algorithms.
`RequestTemplate#expand` has been updated to apply this logic for
`HeaderTemplate` values only.
* Configurable to disable streaming mode for Default client
* Add a property `allowStramingMode` in `Request.Option`.
* Optional to disable the streaming mode for `HttpURLConnection`.
* The property is default to `true` for compatibility.
Fix#260
* Fix a merging problem
* Make the new option `disableRequestBuffering` to Default client
* Move it from `Request.Options` to `Default` client