From 95e2467e94e0e8739f3a2ed8d75611156b5156e2 Mon Sep 17 00:00:00 2001 From: mudlo Date: Wed, 10 Feb 2016 17:17:44 +0300 Subject: [PATCH] cache isElAvailable result value --- .../astefanutti/metrics/aspectj/MetricStrategyFactory.java | 7 +++++++ 1 file changed, 7 insertions(+) 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; } }