From c2649571a1fd57955fa408587fb36b0c3aca724f Mon Sep 17 00:00:00 2001 From: Christian Schuster Date: Tue, 26 May 2015 23:33:48 +0200 Subject: [PATCH] #365 simplify caching --- .../org/mapstruct/ap/services/Services.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/processor/src/main/java/org/mapstruct/ap/services/Services.java b/processor/src/main/java/org/mapstruct/ap/services/Services.java index bedfa0f7c..941dca0a1 100644 --- a/processor/src/main/java/org/mapstruct/ap/services/Services.java +++ b/processor/src/main/java/org/mapstruct/ap/services/Services.java @@ -18,9 +18,7 @@ */ package org.mapstruct.ap.services; -import java.util.Map; import java.util.ServiceLoader; -import java.util.WeakHashMap; import org.mapstruct.spi.AccessorNamingStrategy; @@ -31,7 +29,7 @@ import org.mapstruct.spi.AccessorNamingStrategy; */ public class Services { - private static final Map, Object> CACHE = new WeakHashMap, Object>(); + private static final AccessorNamingStrategy ACCESSOR_NAMING_STRATEGY = findAccessorNamingStrategy(); private Services() { } @@ -46,18 +44,18 @@ public class Services { * {@link ServiceLoader#load(Class, ClassLoader)}. */ public static AccessorNamingStrategy getAccessorNamingStrategy() { - AccessorNamingStrategy impl = (AccessorNamingStrategy) CACHE.get( AccessorNamingStrategy.class ); + return ACCESSOR_NAMING_STRATEGY; + } + + private static AccessorNamingStrategy findAccessorNamingStrategy() { + AccessorNamingStrategy impl = find( AccessorNamingStrategy.class ); if ( impl == null ) { - impl = get( AccessorNamingStrategy.class ); - if ( impl == null ) { - impl = new DefaultAccessorNamingStrategy(); - } - CACHE.put( AccessorNamingStrategy.class, impl ); + impl = new DefaultAccessorNamingStrategy(); } return impl; } - private static T get(Class spi) { + private static T find(Class spi) { T matchingImplementation = null; for ( T implementation : ServiceLoader.load( spi, spi.getClassLoader() ) ) {