Author: mcucchiara Date: Sun Oct 16 21:33:35 2011 New Revision: 1184938 URL: http://svn.apache.org/viewvc?rev=1184938&view=rev Log: added flyweight implementation of constructor cache
Removed: commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/ConstructorCacheEntryFactory.java Modified: commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java Modified: commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java URL: http://svn.apache.org/viewvc/commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java?rev=1184938&r1=1184937&r2=1184938&view=diff ============================================================================== --- commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java (original) +++ commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java Sun Oct 16 21:33:35 2011 @@ -30,7 +30,6 @@ import org.apache.commons.ognl.internal. import org.apache.commons.ognl.internal.ConcurrentClassCache; import org.apache.commons.ognl.internal.ConcurrentHashMapCache; import org.apache.commons.ognl.internal.entry.CacheEntryFactory; -import org.apache.commons.ognl.internal.entry.ConstructorCacheEntryFactory; import org.apache.commons.ognl.internal.entry.DeclaredMethodCacheEntry; import org.apache.commons.ognl.internal.entry.DeclaredMethodCacheEntryFactory; import org.apache.commons.ognl.internal.entry.FiedlCacheEntryFactory; @@ -59,6 +58,7 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.security.Permission; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Enumeration; @@ -164,7 +164,14 @@ public class OgnlRuntime static final ClassCache<Map<String, PropertyDescriptor>> _propertyDescriptorCache = new ConcurrentClassCache<Map<String, PropertyDescriptor>>(new PropertyDescriptorCacheEntryFactory()); - static final ClassCache<List<Constructor<?>>> _constructorCache = new ConcurrentClassCache<List<Constructor<?>>>(new ConstructorCacheEntryFactory() ); + static final ClassCache<List<Constructor<?>>> _constructorCache = new ConcurrentClassCache<List<Constructor<?>>>(new CacheEntryFactory<Class<?>, List<Constructor<?>>>( ) + { + public List<Constructor<?>> create( Class<?> key ) + throws CacheException + { + return Arrays.asList( key.getConstructors( ) ); + } + } ); static final ConcurrentHashMapCache<DeclaredMethodCacheEntry, Map<String, List<Method>>> _methodCache = new ConcurrentHashMapCache<DeclaredMethodCacheEntry, Map<String, List<Method>>>(