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>>>(