diff --git a/impl/src/main/java/io/astefanutti/metrics/aspectj/MetricStrategyFactory.java b/impl/src/main/java/io/astefanutti/metrics/aspectj/MetricStrategyFactory.java index d9dd76a..45673e8 100644 --- a/impl/src/main/java/io/astefanutti/metrics/aspectj/MetricStrategyFactory.java +++ b/impl/src/main/java/io/astefanutti/metrics/aspectj/MetricStrategyFactory.java @@ -17,6 +17,8 @@ /* package-private */ final class MetricStrategyFactory { + static Boolean isElAvailableCached; + static MetricStrategy newInstance(Object object) { if (isElAvailable(object.getClass())) return new JavaxElMetricStrategy(object); @@ -41,10 +43,15 @@ private static ClassLoader getClassLoader(Class clazz) { } private static boolean isElAvailable(Class clazz) { + if (isElAvailableCached != null) { + return isElAvailableCached; + } try { getClassLoader(clazz).loadClass("javax.el.ELProcessor"); + isElAvailableCached = true; return true; } catch (ClassNotFoundException cause) { + isElAvailableCached = false; return false; } }