* Expose Method and Target on RequestTemplate
* Add test to check if method metadata is present
* Annotated API changes as being experimental/not API-frozen
* The method parseAndValidatateMetadata has been deleted and parseAndValidateMetadata is used instead;
* Replaced all usages along the project;
* Documented which method to use instead of the deleted one.
Signed-off-by: Cézar Augusto <cezar@stilingue.com.br>
* Move DeclarativeContract to new file
* Get spring4 contract to compile with feign10
* Move to declarative contract
* Brought spring 4 contract back to life
* Remove old badges
* Throw error when contract mark a method as ignored
* Declarative contracts
* Actually using the data structure to read declaritve contracts
* Using declarative contract for jaxrs contracts
* Make possible for contracts to declare parameters as ignored
* Using predicate to decide if an AnnotationProcessor should be invoked
* Restore environment variable for GITHUB_TOKEN
* Use travis to enforce code format
* Use travis to enforce that should be no local changes after build
* Seems hard to break a build on travis
* Format code
* Create log files on temp dir
Fixes#985
* JavaLogger(String name) added. Workaround for JavaLogger() provided
* JavaLogger() marked as deprecated. Workaround for JavaLogger() removed
* Little fix for note in README
* One more little fix for note in README
* JavaLogger(Class<?>) constructor added
Fixes#845
This change allows Feign Exceptions to be created with the original request as an optional parameter.
Changes include:
* Request field added to FeignException
* New constructors are defended from null in request argument
* Tests to check null instead of request, null message updated
Fixes bug where HeaderTemplate stored values in a HashSet which
caused the following issues:
* Header values could be written in wrong order
* Order was not stable between JVM instances
Fixes#1007
rfc7231 section 7.1.3 states that the Retry-After header can return delay-seconds value
that is a non-negative decimal integer, representing time in seconds.
Some servers return the second delay with a decimal point. Eg instead of 2 they return 2.0
This patch handles this case where the server has included a decimal point in their response.
* This pr resolves issue #927
add apache commons lang3 as mvn dependency to get inherited fields of given class
change type.getDeclaredFields() to FieldUtils.getAllFieldsList(type) on FieldQueryMapEncoder
* format
* remove apache common langs dependency
add logic for finding fields which comes via inheritance
In this pr the old `body()` method calls replaced with `requestBody().asBytes()` method which both exists in Request class. The intention is to remove deprecated code and keep source code clean.
Related to #857
* replaced old body with new Body.asBytes()
* add HeaderTemplate create tests for fail
* - added expand test
* - remove redundant public static identifier from Retryer inner class
* - remove redundant public static identifier from Default inner class
* add license to test
* mvn clean install to format test file
* Updated Expression Patterns to allow brackets
Fixes#928
Relaxed the regular expression that is used to determine if a given
value is an Expression per the URI Template Spec RFC 6570. We already
deviated by allowing dashes to exist without pct-encoding, this change
adds braces `[]` to this list.
Also included is the ability to set Collection Format per Query, overriding
the Template default. This allows for mixed Collection formats in the
same template and provides a way for Contract extensions to determine
which expansion type they want when parsing a contract.
* Fixing Formatting
Replaced comma with Constant Delimiter in Template
Fixes#924
Commas were used to identify iterable content, which conflicted when
a comma delimited literal was provided during expansion. This change
switches commas for semi-colons, which are considered reserved secondary
delimiters in RFC 6750 and should not be used without being pct-encoded.
Should be a safer choice.
Removed decoding from Body Template Expansion
Fixes#916
In certain cases, a Body Template will contain a JSON payload. To
support this we are asking users to pct-encode the beginning and the
end of the JSON object when providing it to the RequestLine so we don't
reject it as an expression. Doing this requires that the we decode those
markers before submitting the request.
This change updates that logic to only decode the first and last characters
only and not decode the entire payload, since Body values don't require
any type of encoding.