[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
Mon Dec 9 12:21:36 EST 2013


Author: rdw
Date: Mon Dec  9 12:21:36 2013
New Revision: 5007

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5007&view=rev
Log:
IDP-338  The solution is to initialize the context before pulling beans from the factory.  Note that this means that we need to create the factory via a context.

Modified:
    trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
    trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LdapDataConnectorParserTest.java

Modified: trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.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/AbstractDataConnectorParser.java?rev=5007&r1=5006&r2=5007&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java (original)
+++ trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java Mon Dec  9 12:21:36 2013
@@ -42,9 +42,9 @@
 import org.springframework.beans.factory.BeanFactory;
 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.springframework.context.support.GenericApplicationContext;
 import org.w3c.dom.Element;
 import org.xml.sax.InputSource;
 
@@ -112,22 +112,17 @@
      * @return bean factory
      */
     @Nonnull protected BeanFactory createBeanFactory(@Nonnull final Element springBeans) {
-        final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
-        final XmlBeanDefinitionReader definitionReader = new XmlBeanDefinitionReader(beanFactory);
+        
+        GenericApplicationContext ctx = new GenericApplicationContext();
+        final XmlBeanDefinitionReader definitionReader = new XmlBeanDefinitionReader(ctx);
         // TODO why does validation need to be turned off?
         definitionReader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE);
         definitionReader.setNamespaceAware(true);
         final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
         SerializeSupport.writeNode(springBeans, outputStream);
         definitionReader.loadBeanDefinitions(new InputSource(new ByteArrayInputStream(outputStream.toByteArray())));
-        
-        //
-        // Needed to work around https://jira.springsource.org/browse/SPR-11112
-        // See https://issues.shibboleth.net/jira/browse/IDP-338
-        //
-        @SuppressWarnings("unused")
-        final Object l = beanFactory.getBean("IDP338");
-        return beanFactory;
+        ctx.refresh();
+        return ctx.getBeanFactory();
     }
 
     /**

Modified: trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LdapDataConnectorParserTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LdapDataConnectorParserTest.java?rev=5007&r1=5006&r2=5007&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LdapDataConnectorParserTest.java (original)
+++ trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LdapDataConnectorParserTest.java Mon Dec  9 12:21:36 2013
@@ -139,16 +139,12 @@
         XmlBeanDefinitionReader configReader = new XmlBeanDefinitionReader(context);
 
         configReader.loadBeanDefinitions("net/shibboleth/idp/attribute/resolver/spring/dc/IdP338.xml");
+        context.refresh();
         
         Object cbc,cc=null,cb,c;
         
         cbc = context.getBean(CacheBuilder.class);
-        try {
-            cc = context.getBean(Cache.class);
-            Assert.fail("The Spring bug described in https://issues.shibboleth.net/jira/browse/IDP-338 has been fixed");
-        } catch (Exception e) {
-            // OK - the bug is that this throws.  The fix is when it doesn't.
-        }
+        cc = context.getBean(Cache.class);
         cb = context.getBean("cacheBuilder");
         c = context.getBean("cache");
         Object ccc = context.getBean(Cache.class);
@@ -157,7 +153,7 @@
         Assert.assertNotNull(c);        
         Assert.assertNotNull(cbc);        
         Assert.assertNotNull(ccc);        

[... 6 lines stripped ...]


More information about the commits mailing list