Quarkus, as one potential target for using the Java microprofile client
generator, requires a Jandex index to be present in library jars for
discovering beans inside these jars. Therefore, include Jandex index
generation in the pom.xml for microprofile clients as explained here:
https://quarkus.io/guides/cdi-reference#how-to-generate-a-jandex-index
Generating and shipping the index is only a small overhead that is
probably not worth an additional client option.
* Renew the access token after receiving a 401/403
Feign clients tries to renew the access token after it receives a 401 or 403. It Retries the request 1 time
* Add unit test for exhausted retries
* Update samples
* Add apache java client option
* Add sample apache client config
* Switch serialization library, use time formatter
* Add pom template for apache dependencies
* Add initial implementation of ApiClient using apache
* Add apache api template
Plus switch to TypeReference to handle generic types
* Add support for sending json data
* Generate test stubs with @Ignore
* Add accept header
* Remove unnecessary builder assignments
* Set responseHeaders instance variable
* Switch to general serialize / deserialize functions
* Handle sending url encoded form data
* Split response processing into new method
* Allow requests without body
* Use general HttpResponse interface
If the method doesn't need to close it
* Use clients connection timeout
* Add constructor accepting custom client
* Handle multipart and direct file uploads
* Support file downloading
Based on the implementation in the jersey client
* Handle missing content disposition
* Raise error if body given for an unexpected method
* Use try with resources for response handling
* Remove unused url parameter encode method
* Handle content type parse exception
* Improve response content type handling
Would have had issues with content type headers containing a charset
* Make all set methods return client
* Add basic readme
* Send content type with files
* Set domain and path on cookies
Otherwise they will be excluded from the request
* Use consistent quoting in error messages
* Add generated apache sample
* Add generated docs changes
* update samples
* rename library, update samples, docs
* update readme
Co-authored-by: Harry White <hwhite@atlassian.com>
Prior to this change, clients generated with asyncNative=true
could not intercept the responses using the existing repsonse
interceptor. This adds another response interceptor solely for
asyncNative=true clients.
* Add missing imports for Set in microprofile client
In case of array properties declared with uniqueItems: true, the
generated Java code uses Sets but imports are not present for them in
the Api and Test classes.
* Add missing imports for Set in java native clients
In case of array properties declared with uniqueItems: true, the
generated Java code uses Sets but imports are not present for them in
the Api and Test classes.
If there were multiple concurrent requests at a time at which the OAuth token had expired, only a single request would be retried. The other requests would fail because of the expired token, but not be retried and so the failures would be propagated to the caller.
* Add backslash to load namespace from global namespace
* Update example
* Remove hardcoded slash
* Add backslash from java side
* Update samples
* Fix first sample
* Fix other snapshot
* Update version file
Refs #3358
Ensure `deprecated` operations are annotated/documented as such on the
generated methods. Libraries updated:
* [feign]
* [google-api-client]
* [microprofile]
* [okhttp-gson]
* [resttemplate]
* [retrofit]
* [retrofit/play*]
* [webclient]
* [vertx]
Ensure `deprecated` schemas are annotated/documented as such on the
generated classes/fields. Libraries updated:
* [feign]
* [google-api-client]
* [jersey2]
* [microprofile]
* [native]
* [okhttp-gson]
* [rest-assured]
* [resteasy]
* [resttemplate]
* [retrofit*]
* [webclient]
* [vertx]
Also fix two minor bugs to get the java sample tests working:
* Fix an invalid jackson-datatype-threetenbp version number in vertx/pom.mustache
* Fix a bad return type in webclient/api_test.mustache when uniqueItems=true
Since this commit updates petstore-with-fake-endpoints-models-for-testing.yaml,
several other samples were updated, but it's just new files to reflect the
deprecated schemas, so there should be no consequential differences.
Relevant bits of the spec:
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-operationdeprecated
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-schemadeprecated
* [Java] [Native] Unify exception messages for async, add the status code
The template has two methods for creating API exceptions, and the enhancements from #9169 didn't make it to the async version.
- unify the signatures of the two methods (name, arguments)
- make sure the sync version is not generated with asyncNative
- extract the formatting logic into a common formatExceptionMessage() method
- add the status code to the exception message as well, not just the body
- shortened "call received non-success response" to a more concise "call failed with"
* Treat an empty body the same as a null body
Co-authored-by: Jens Fischer <jens.fischer@vier.ai>