Hi Pavol,
as mentioned on hipchat, an idea could be to rely on the
ResteasyProviderFactory (which has a getInstance static method) and install
a dynamic client feature in it (e.g. using registerProviderInstance(Object
obj) method).
Perhaps you can try that and see if it fits your scenario.
For the executor, I'm afraid I don't see an already existing solution,
besides having your own ClientBuilder that overrides the executorService
setup; perhaps we can make this configurable in the
ResteasyProviderFactory, though.
If someone from the team has further idea, just reply ;-)
Cheers
Alessio
On Tue, Nov 21, 2017 at 5:22 PM, Pavol Loffay <ploffay(a)redhat.com> wrote:
Hi,
I am looking at microprofile-opentracing integration for Wildfly Swarm.
Briefly, it is a distributed tracing for JAX-RS both server and client.
Issue [1] describes what is necessary. But I will repeat here:
Server
1. register server jax-rs filters (no problem, server features are
auto-discovered)
2. use servlet filter to finish the span and log any exception to the span
- because jax-rs filters do not capture exceptions
Client
1. register tracing filters
2. use OpenTracing-aware ExecutorService - it's needed for async API to
correctly propagate parent.
(3.) TCK is not defined yet. However, if they want to create spans for
UnknownHostException then we cannot use jax-rs client filters because they
are not executed. Network attempt happens before the filter when the
exception is thrown. To solve this we have to implement tracing in
resteasy or supply apache HC with tracing filters enabled (it also has some
problems).
The biggest issue is with client because we need
`ClientBuilder.newBuilder()` to return client/builder with enabled tracing.
[1]
https://issues.jboss.org/browse/SWARM-1691
--
PAVOL LOFFAY
Red Hat Česká republika <
https://www.redhat.com/>
Purkyňova 115
<
https://maps.google.com/?q=%C4%8Cesk%C3%A1+republika+Purky%C5%88ova+115&a...
TPB-B 612 00 Brno
M: +421948286055
<
https://red.ht/sig>