in geronimo-metrics-extensions/geronimo-metrics-tomcat/src/main/java/org/apache/geronimo/microprofile/metrics/extension/tomcat/TomcatRegistrar.java [132:146]
private Server findMeecrowave() {
try {
final ClassLoader loader = Thread.currentThread().getContextClassLoader();
final Class<?> meecrowaveClass = loader.loadClass("org.apache.meecrowave.Meecrowave");
final Class<?> cdi = loader.loadClass("javax.enterprise.inject.spi.CDI");
final Object current = cdi.getMethod("current").invoke(null);
final Object meecrowaveInstance = cdi.getMethod("select", Class.class, Annotation[].class)
.invoke(current, meecrowaveClass, new Annotation[0]);
final Object meecrowave = meecrowaveInstance.getClass().getMethod("get").invoke(meecrowaveInstance);
final Object tomcat = meecrowave.getClass().getMethod("getTomcat").invoke(meecrowave);
return Server.class.cast(tomcat.getClass().getMethod("getServer").invoke(tomcat));
} catch (final Exception | Error e) {
return null;
}
}