* Support kotlin coroutines
Resolves: #1565
Inspired by https://github.com/PlaytikaOSS/feign-reactive/pull/486
## TODO
- [ ] Separate Kotlin support module
- [ ] Enhance test case
- [ ] Refactoring
- [ ] Clean up pom.xml
* Apply optional dependency to kotlin support related dependency
* Seperate Kotlin support module
* Remove unused code from ClassUtils.java
* Remove unused code from ClassUtils.java
* Refactor KotlinDetector
* Move ClassUtils location into KotlinDetector
* Move KotlinDetector location
* Format code
* First attempt to move kotlin work to it's own isolated module
* Coroutine Feign using AyncFeign
* Coroutine Feign using AyncFeign
* Refactor suspending function detect logic
- Remove KotlinDetector.java
- Add Method.isSuspend extension function
* Cleanup CoroutineFeignTest test code format
* Fix suspend function contract parsing error when using http body
* Rename test names to be meaningful
* Add Github Example With Coroutine
- Copy of GithubExample
* Remove unnecessary dependency
https://github.com/OpenFeign/feign/pull/1706/files#r965389041
Co-authored-by: Marvin Froeder <velo.br@gmail.com>
Co-authored-by: Marvin Froeder <velo@users.noreply.github.com>
* add ResponseInterceptor support #1126
* Add the license header.
Add the license header.
Co-authored-by: Dewald de Jager <DewaldDeJager@users.noreply.github.com>
* small fix for license header
* fix format issue
* combine before and after method to one aroundDecode method
* Change ResponseInterceptor to use InvocationContext
Co-authored-by: Fei,Yanke <yanke.fei@mosi-tech.com>
Co-authored-by: feiyanke <feiyanke@126.com>
Co-authored-by: Dewald de Jager <DewaldDeJager@users.noreply.github.com>
* Support of capabilities for AsyncFeign
* Removed SyncBased interface, added todo for stageExecution, and adopted micrometer client to be async as well.
* Added internal builder flag similar to 'forceDecoding' but for client enrichment
* Added async client enrichment to Dropwizard5 capability
* Added async client enrichment to Dropwizard5 capability + code formatting
* Progress with tests; added decoder condition similar to the client one
* Fixed javadoc
* A different take on skipping enrichment and delagation
* Switcharoo
* Relaxed casting requirements and check it during execution phase
* Create class to hold common Builder fields
* Make sure capabilities are applied to all relevant fields
Co-authored-by: Marvin Froeder <velo@users.noreply.github.com>
Co-authored-by: Marvin Froeder <velo.br@gmail.com>
* [GH-1319] Add Support for Path Style Parameter Expansion
Fixes#1319
This change adds limited Path Style support to Feign URI template-style
templates. Variable expressions that start with a semi-colon `;`
are now expanded in accordance to [RFC 6570 Section 3.2.7](https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.7)
with the following modifications:
* Maps and Lists are expanded by default.
* Only Single variable templates are supported.
Examples:
```
{;who} ;who=fred
{;half} ;half=50%25
{;empty} ;empty
{;list} ;list=red;list=green;list=blue
{;keys} ;semi=%3B;dot=.;comma=%2C
```
* Export Path Style Expression as an Expander for use with custom contracts
* Added example to ReadMe
* Additional Test Cases.
* Add ability use case insensitive headers for default Client
* Add ability use case insensitive headers for default Client
Co-authored-by: Alexander Zadvinskiy <azadvinskiy@it-one.ru>
Co-authored-by: Marvin Froeder <velo@users.noreply.github.com>
* feat: add support for the parameter type corresponding to headerMapIndex for user object
* feat: add a resolution of the user pojo object
* feat: add a resolution of the user pojo object
Co-authored-by: Marvin Froeder <velo@users.noreply.github.com>
* Provide a way to exclude headers from logs
* Make header filters optional (nullable), update README
* Mistyping: sing -> sign
* New implementation with overriding of filter methods
* Fix javadocs, update README
* Update README, fix removed newline
* Move hamcrest dependency to the parent, upgrade it to 2.2
* hamcrest-library is deprecated
* organise properties in parent: move the hamcrest version next to other test tools
* Modifying Contract to support passing all parameters to encoders
* Formatting license
* Adding unit tests
* Adding AlwaysEncodeBodyContract abstract class (#1)