in geronimo-opentracing-extension/src/main/java/org/apache/geronimo/opentracing/extension/proxy/TracingProxyFactory.java [42:51]
public <T> T decorate(final Tracer tracer, final T instance, final Map<String, String> tags) {
final Class<?>[] interfaces = instance.getClass().getInterfaces();
if (interfaces.length == 0) {
throw new IllegalArgumentException("Can't determine the API to proxy: " + instance);
}
final Class<T> mainApi = (Class<T>) interfaces[0];
final Class<?>[] otherApis = interfaces.length == 1 ?
new Class<?>[0] : Stream.of(interfaces).skip(1).toArray(Class[]::new);
return decorate(tracer, instance, mainApi, tags, otherApis);
}