* 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
Fixes#1163
Restores `Request.Body.encoded` static function and
`RequestTemplate.requestBody` to restore compatibility.
Additionally, mark it as deprecated to encourage usage of
`RequestTemplate.body`.
`Request.Body` is an internal abstraction that was made built
in an effort to better manage request body data. It was made
public too early and will be reverted back to it's internal
state in future releases.
Adds additional informatiom into the Soap README that includes details
on how to instruct the SOAP Decoder to use `getFirstChild` instead
of `extractContentAsDocument` in situations where JAXB is unable
to read any xml declarations on the SOAP Envelope.
Fixes#1127
In certain situations the declarations on the SOAP envelope are not
inherited by JAXB when reading the documents. This is particularly
troublesome when it is not possible to correct the XML at the source.
To support this a new `useFirstChild` option has been added to the
`SOAPDecoder` builder that will use `SOAPBody#getFirstChild()`
instead of `SOAPBody#extractContentAsDocument()`. This will allow
users to supply a `package-info.java` to manage the element namespaces
explicitly and define what should occur if the namespace declarations
are missing.
Fixes#1156
Collection Format was encoding query string values unnecessarily
due to changes introduced in #1138 and #1139 that encode template
values before appending them to the query string.
In addition, `decodeSlash` flags that were accidentally removed,
have been restored in QueryTemplate.
* Restoring decodeSlash in QueryTemplate
* Correcting Readme with regards to decodeSlash usage