You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2017/03/10 03:07:08 UTC
svn commit: r1786282 -
/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java
Author: lu4242
Date: Fri Mar 10 03:07:07 2017
New Revision: 1786282
URL: http://svn.apache.org/viewvc?rev=1786282&view=rev
Log:
MYFACES-4101 Implement f:importConstants
Modified:
myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java
Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java?rev=1786282&r1=1786281&r2=1786282&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java Fri Mar 10 03:07:07 2017
@@ -27,6 +27,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import static java.util.logging.Level.FINE;
import java.util.logging.Logger;
import javax.el.ELContext;
@@ -50,6 +51,8 @@ public final class ImportConstantsELReso
private static final String ERROR_FIELD_ACCESS = "Cannot access constant field '%s' of type '%s'.";
private static final String IMPORT_CONSTANTS = "oam.importConstants";
+
+ private Map<String, Map<String, Object> > constantsTypeMap = new ConcurrentHashMap<String, Map<String, Object> >();
@Override
public Object getValue(final ELContext context, final Object base,
@@ -117,7 +120,12 @@ public final class ImportConstantsELReso
String type = importConstantsMap.get((String)property);
if (type != null)
{
- Map<String, Object> constantsMap = collectConstants(type);
+ Map<String, Object> constantsMap = constantsTypeMap.get(type);
+ if (constantsMap == null)
+ {
+ constantsMap = collectConstants(type);
+ constantsTypeMap.put(type, constantsMap);
+ }
if (constantsMap != null && !constantsMap.isEmpty())
{
context.setPropertyResolved(true);