[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-spring/src: main/java/net/shibboleth/idp/attribute/r...

noreply at shibboleth.net noreply at shibboleth.net
Sat Jan 31 17:48:36 EST 2015


Author: scantor
Date: Sat Jan 31 17:48:35 2015
New Revision: 7298

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7298&view=rev
Log:
IDP-585 -Data connector caching not configured

Modified:
    trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParser.java
    trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/rdbms-attribute-resolver-v2.xml

Modified: trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParser.java?rev=7298&r1=7297&r2=7298&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParser.java (original)
+++ trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParser.java Sat Jan 31 17:48:35 2015
@@ -30,6 +30,8 @@
 import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.w3c.dom.Element;
@@ -39,6 +41,9 @@
 
 /** Utility class for parsing v2 cache configuration. */
 public class CacheConfigParser {
+
+    /** Class logger. */
+    private final Logger log = LoggerFactory.getLogger(CacheConfigParser.class);
 
     /** Base XML element. */
     private final Element configElement;
@@ -59,42 +64,42 @@
      * @return cache bean definition
      */
     @Nonnull public BeanDefinition createCache() {
+
         final String defaultCache = AttributeSupport.getAttributeValue(configElement, new QName("cacheResults"));
-        String timeToLive = null;
-        String maximumSize = null;
+        if (defaultCache != null) {
+            log.warn("The cacheResults attribute is no longer supported, please create a dc:ResultCache element");
+            return null;
+        }
+        
         final Element cacheElement =
                 ElementSupport.getFirstChildElement(configElement, new QName(DataConnectorNamespaceHandler.NAMESPACE,
                         "ResultCache"));
-        if (cacheElement != null) {
-            timeToLive = AttributeSupport.getAttributeValue(cacheElement, new QName("elementTimeToLive"));
-            maximumSize = AttributeSupport.getAttributeValue(cacheElement, new QName("maximumCachedElements"));
+        if (cacheElement == null) {
+            return null;
         }
+        
         final BeanDefinitionBuilder cache =
                 BeanDefinitionBuilder.rootBeanDefinition(CacheConfigParser.class, "buildCache");
-        cache.addConstructorArgValue(defaultCache);
-        cache.addConstructorArgValue(timeToLive);
-        cache.addConstructorArgValue(maximumSize);
+        cache.addConstructorArgValue(AttributeSupport.getAttributeValue(cacheElement, new QName("elementTimeToLive")));
+        cache.addConstructorArgValue(
+                AttributeSupport.getAttributeValue(cacheElement, new QName("maximumCachedElements")));
         return cache.getBeanDefinition();
     }
 
     /**
-     * Factory method to leverage spring property replacement functionality. The default cache produced has a max size
+     * Factory method to leverage spring property replacement functionality. The default settings are a max size
      * of 500 and an expiration time of 4 hours.
      * 
-     * @param defaultCache boolean string indicating whether a default cache should be returned
      * @param timeToLive duration string
      * @param maximumSize long string
+     * 
      * @return cache
      */
-    @Nullable public static Cache<String, Map<String, IdPAttribute>> buildCache(final String defaultCache,
-            final String timeToLive, final String maximumSize) {
-        if (Boolean.valueOf(defaultCache)) {
-            return CacheBuilder.newBuilder().maximumSize(500).expireAfterAccess(4, TimeUnit.HOURS).build();
-        }
-        if (timeToLive != null && maximumSize != null) {
-            return CacheBuilder.newBuilder().maximumSize(Long.parseLong(maximumSize))
-                    .expireAfterAccess(DOMTypeSupport.durationToLong(timeToLive), TimeUnit.MILLISECONDS).build();
-        }
-        return null;
+    @Nullable public static Cache<String, Map<String, IdPAttribute>> buildCache(@Nullable final String timeToLive,
+            @Nullable final String maximumSize) {
+        return CacheBuilder.newBuilder().maximumSize(maximumSize != null ? Long.parseLong(maximumSize) : 500)
+                .expireAfterAccess(timeToLive != null ? DOMTypeSupport.durationToLong(timeToLive)

[... 22 lines stripped ...]


More information about the commits mailing list