[spring-extensions] 02/02: IDP-1376 Warn on all duplicate beans in customer syntax

Rod Widdowson rdw at steadingsoftware.com
Tue Feb 2 13:48:25 UTC 2021


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch main
in repository spring-extensions.

View the commit online:
http://git.shibboleth.net/view/?p=spring-extensions.git;a=commit;h=291ab6b4a1b9214543f0287022e2c95e2be2ae29

commit 291ab6b4a1b9214543f0287022e2c95e2be2ae29
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Feb 2 13:33:52 2021 +0000

    IDP-1376 Warn on all duplicate beans in customer syntax
    
    https://issues.shibboleth.net/jira/browse/IDP-1376
---
 .../util/AbstractCustomBeanDefinitionParser.java       | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/main/java/net/shibboleth/ext/spring/util/AbstractCustomBeanDefinitionParser.java b/src/main/java/net/shibboleth/ext/spring/util/AbstractCustomBeanDefinitionParser.java
index e89f344..b428242 100644
--- a/src/main/java/net/shibboleth/ext/spring/util/AbstractCustomBeanDefinitionParser.java
+++ b/src/main/java/net/shibboleth/ext/spring/util/AbstractCustomBeanDefinitionParser.java
@@ -17,6 +17,10 @@
 
 package net.shibboleth.ext.spring.util;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.config.BeanDefinitionHolder;
+import org.springframework.beans.factory.support.BeanDefinitionRegistry;
 import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
 
 /**
@@ -27,4 +31,18 @@ import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
  */
 public class AbstractCustomBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
 
+    /** Logger. */
+    private final Logger log = LoggerFactory.getLogger(AbstractCustomBeanDefinitionParser.class);
+
+    /** {@inheritDoc}
+     * The override is to warn if there is an ID clash within the same context.
+     * */
+    protected void registerBeanDefinition(final BeanDefinitionHolder definition,
+                                          final BeanDefinitionRegistry registry) {
+        if (registry.containsBeanDefinition(definition.getBeanName())) {
+            final String claz = definition.getBeanDefinition().getBeanClassName();
+            log.warn("Duplicate Definition '{}' of type '{}'", definition.getBeanName(), claz);
+        }
+        super.registerBeanDefinition(definition, registry);
+    }
 }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list