[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