[java-shib-attribute] 02/02: JSATTR-4 Remove springResources from data connector

Rod Widdowson rdw at steadingsoftware.com
Wed Oct 26 15:58:57 UTC 2022


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

rdw pushed a commit to branch main
in repository java-shib-attribute.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=baf7c4fea03e90a8f12297acf0f45076e67b6f9a

commit baf7c4fea03e90a8f12297acf0f45076e67b6f9a
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Oct 26 16:54:58 2022 +0100

    JSATTR-4 Remove springResources from data connector
    
    https://shibboleth.atlassian.net/browse/JSATTR-4
    
    Refactor some code doV2Parse(..) becomes doParse(..) with a call
    to super.doParse()
    
    Remove the DataConnectorFactoryBean
---
 .../spring/dc/AbstractDataConnectorParser.java     |  30 +-
 .../dc/http/impl/HTTPDataConnectorParser.java      |   3 +-
 .../dc/impl/ContextDerivedDataConnectorParser.java |   3 +-
 .../spring/dc/impl/DataConnectorFactoryBean.java   | 305 ---------------------
 .../dc/impl/ScriptedDataConnectorParser.java       |  11 +-
 .../spring/dc/impl/StaticDataConnectorParser.java  |   3 +-
 .../spring/dc/impl/SubjectDataConnectorParser.java |   4 +-
 .../dc/ldap/impl/LDAPDataConnectorParser.java      |   8 +-
 .../dc/rdbms/impl/RDBMSDataConnectorParser.java    |   4 +-
 .../impl/StorageServiceDataConnectorParser.java    |   3 +-
 10 files changed, 24 insertions(+), 350 deletions(-)

diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
index c448bdb4e..a5c997409 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
@@ -22,23 +22,22 @@ import java.util.List;
 import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Element;
+
 import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
 import net.shibboleth.idp.attribute.resolver.spring.BaseResolverPluginParser;
-import net.shibboleth.idp.attribute.resolver.spring.dc.impl.DataConnectorFactoryBean;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.primitive.DeprecationSupport;
-import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.spring.util.SpringSupport;
 import net.shibboleth.shared.xml.ElementSupport;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
 /**
  * Base spring bean definition parser for data connectors. DataConnector implementations should provide a custom
  * BeanDefinitionParser by extending this class and overriding the
@@ -89,7 +88,6 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
      */
     protected abstract Class<? extends AbstractDataConnector> getNativeBeanClass();
 
-    //CheckStyle: MethodLength|CyclomaticComplexity OFF
     /** {@inheritDoc} */
     @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
@@ -131,21 +129,7 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
             builder.addPropertyValue("failFastInitialize", 
                     StringSupport.trimOrNull(config.getAttributeNS(null, ATTR_FAIL_FAST)));
         }
-
-        doV2Parse(config, parserContext, builder);
     }
-    //CheckStyle: MethodLength|CyclomaticComplexity ON
-
-    /**
-     * Parse the supplied {@link Element} as a legacy format and populate the supplied {@link BeanDefinitionBuilder} as
-     * required.
-     * 
-     * @param element the XML element being parsed
-     * @param parserContext the object encapsulating the current state of the parsing process
-     * @param builder used to define the {@code BeanDefinition}
-     * @see #doParse(Element, BeanDefinitionBuilder)
-     */
-    protected abstract void doV2Parse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder);
 
     /**
      * Return a string which is to be prepended to all log messages.
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
index fb47f7287..eed9984ce 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
@@ -66,9 +66,10 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
     
 // Checkstyle: CyclomaticComplexity OFF
     /** {@inheritDoc} */
-    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
 
+        super.doParse(config, parserContext, builder);
         log.debug("{} Parsing custom configuration {}", getLogPrefix(), config);
 
         final V2Parser v2Parser = new V2Parser(config, getLogPrefix());
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java
index 67b7aea68..7cac3e505 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java
@@ -48,8 +48,9 @@ public class ContextDerivedDataConnectorParser extends AbstractDataConnectorPars
 
     /** {@inheritDoc} */
     @Override
-    protected void doV2Parse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
+    protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
+        super.doParse(element, parserContext, builder);
         final String functionRef = StringSupport.trimOrNull(element.getAttributeNS(null, "attributesFunctionRef"));
 
         if (null == functionRef) {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
deleted file mode 100644
index 645eb54d1..000000000
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
-
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Constructor;
-import java.time.Duration;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
-import net.shibboleth.idp.attribute.resolver.spring.impl.AbstractResolverPluginFactoryBean;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.Resource;
-
-/**
- * A factory bean to collect the parameterization that goes onto a {@link AbstractDataConnector}.
- * 
- * It is specifically aimed at the implementations where contents are plugged in via external resources.
- * 
- */
-public class DataConnectorFactoryBean extends AbstractResolverPluginFactoryBean<AbstractDataConnector> implements
-        ApplicationContextAware {
-
-    /** Log4j logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(DataConnectorFactoryBean.class);
-
-    /** The class that we are implementing. */
-    @Nonnull private Class<? extends AbstractDataConnector> connectorClass;
-
-    /** The resources we are importing. */
-    @Nullable private List<Resource> resources;
-
-    /** Our parent context. */
-    @Nullable private ApplicationContext parentContext;
-
-    /** The context we fired up. */
-    private GenericApplicationContext appContext;
-
-    /** List of bean factory post processors for this connector's content. */
-    @Nonnull @NonnullElements private List<BeanFactoryPostProcessor> factoryPostProcessors = Collections.emptyList();
-
-    /** List of bean post processors for this connector's content. */
-    @Nonnull @NonnullElements private List<BeanPostProcessor> postProcessors = Collections.emptyList();
-
-    /** Data Connector property "failoverDataConnectorId". */
-    @Nullable private String failoverDataConnectorId;
-
-    /** Data Connector property "noRetryDelay". */
-    @Nullable private Duration noRetryDelay;
-
-    /** Do we release all attributes?. */
-    private Boolean exportAllAttributes;
-
-    /** Which named attributes do we release?. */
-    @Nonnull @NonnullElements private Collection<String> exportAttributes = Collections.emptySet();
-
-    /**
-     * Data Connector property "failoverDataConnectorId".
-     *
-     * @return the value of property to set or null if never set
-     */
-    @Nullable public String getFailoverDataConnectorId() {
-        return failoverDataConnectorId;
-    }
-
-    /**
-     * Data Connector property "failoverDataConnectorId".
-     *
-     * @param id the value to set
-     */
-    public void setFailoverDataConnectorId(@Nullable final String id) {
-        failoverDataConnectorId = id;
-    }
-    
-    /**
-     * Data Connector property "noRetryDelay".
-     *
-     * @return the value of property to set or null if never set
-     */
-    @Nullable public Duration getNoRetryDelay() {
-        return noRetryDelay;
-    }
-    
-    /**
-     * Data Connector property "noRetryDelay".
-     *
-     * @param delay the value to set
-     */
-    public void setNoRetryDelay(@Nullable final Duration delay) {
-        noRetryDelay = delay;
-    }
-
-    /**
-     * The resources to use.
-     *
-     * @param theResources the resources to look at
-     */
-    public void setResources(@Nonnull @NonnullElements final List<Resource> theResources) {
-        resources = List.copyOf(Constraint.isNotNull(theResources, "Resources cannot be null"));
-    }
-
-    /**
-     * The resources to use.
-     *
-     * @return the resources to look at
-     */
-    @Nonnull @NonnullElements public List<Resource> getResources() {
-        return resources;
-    }
-
-    /**
-     * Sets the list of attribute names to export during resolution.
-     *
-     * @param what the list
-     */
-    public void setExportAttributes(@Nonnull final Collection<String> what) {
-        // Future-proofing trimming
-        exportAttributes = what.stream().map(StringSupport::trimOrNull).collect(Collectors.toSet());
-    }
-
-   /**
-     * Set whether we export all attributes.
-     *
-     * @param what whether we export all attributes
-     */
-    public void setExportAllAttributes(final boolean what) {
-        exportAllAttributes = what;
-    }
-
-    /**
-     * Set the list of bean factory post processors for this connector.
-     *
-     * @param processors bean factory post processors to apply
-     */
-    public void setBeanFactoryPostProcessors(@Nonnull @NonnullElements 
-            final List<BeanFactoryPostProcessor> processors) {
-        factoryPostProcessors = List.copyOf(
-                Constraint.isNotNull(processors, "BeanFactoryPostProcessors cannot be null"));
-    }
-
-    /**
-     * Get the post processors.
-     *
-     * @return the bean factory post processors
-     */
-    @Nonnull @NonnullElements public List<BeanFactoryPostProcessor> getBeanFactoryPostProcessors() {
-        return factoryPostProcessors;
-    }
-
-    /**
-     * Set the list of bean post processors for this connector.
-     *
-     * @param processors bean post processors to apply
-     */
-    public void setBeanPostProcessors(@Nonnull @NonnullElements final List<BeanPostProcessor> processors) {
-        postProcessors = List.copyOf(Constraint.isNotNull(processors, "BeanPostProcessors cannot be null"));
-    }
-
-    /**
-     * Get the list of bean post processors for this connector.
-     *
-     * @return processors bean post processors to apply
-     */
-    @Nonnull @NonnullElements public List<BeanPostProcessor> getBeanPostProcessors() {
-        return postProcessors;
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("removal")
-    @Override protected void setValues(final AbstractDataConnector what) {
-        super.setValues(what);
-        if (null != getFailoverDataConnectorId()) {
-            what.setFailoverDataConnectorId(getFailoverDataConnectorId());
-        }
-        if (null != exportAllAttributes) {
-            what.setExportAllAttributes(exportAllAttributes);
-        } else if (!exportAttributes.isEmpty()) {
-            what.setExportAttributes(exportAttributes);
-        }
-    }
-
-    /** {@inheritDoc} We do not allow non-singleton beans, if we did then we loose constructability. */
-    @Override public void setSingleton(final boolean singleton) {
-        Constraint.isTrue(singleton, "Can only be singleton");
-        super.setSingleton(singleton);
-    }
-
-    /** Set the class we are going to build.
-     * @param claz the class.
-     */
-    public void setObjectType(@Nonnull final Class<? extends AbstractDataConnector> claz) {
-        connectorClass = Constraint.isNotNull(claz, "Injected class must be non-null");
-    }
-
-    /** {@inheritDoc} */
-    @Override public Class<? extends AbstractDataConnector> getObjectType() {
-        return connectorClass;
-    }
-
-    /**
-     * Returns the parentContext.
-     * 
-     * @return Returns the parentContext.
-     */
-    public ApplicationContext getParentContext() {
-        return parentContext;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException {
-        parentContext = applicationContext;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void destroyInstance(final AbstractDataConnector instance) throws Exception {
-        super.destroyInstance(instance);
-        appContext.close();
-    }
-
-    /**
-     * {@inheritDoc}
-     * 
-     * <p>
-     * In order to create the bean we introspect with respect to contents of the Spring resources and inject as
-     * required.
-     * </p>
-     */
-    @Override protected AbstractDataConnector doCreateInstance() throws Exception {
-
-        Constraint.isNotNull(getObjectType(), "Injected class must be non-null");
-        log.debug("Creating a DataConnector of type {} from resources {}", getObjectType(), resources);
-
-        final Constructor<? extends AbstractDataConnector> constructor = getObjectType().getConstructor();
-        final AbstractDataConnector result = constructor.newInstance();
-        if (null != getFailoverDataConnectorId()) {
-            result.setFailoverDataConnectorId(getFailoverDataConnectorId());
-        }
-        if (null != getNoRetryDelay()) {
-            result.setNoRetryDelay(getNoRetryDelay());
-        }
-        setValues(result);
-
-        appContext = new ApplicationContextBuilder()
-                .setName("HybridSpringDataConnector")
-                .setServiceConfigurations(getResources())
-                .setBeanFactoryPostProcessors(getBeanFactoryPostProcessors())
-                .setBeanPostProcessors(getBeanPostProcessors())
-                .setParentContext(getParentContext()).build();
-        
-        final PropertyDescriptor[] descriptors =
-                Introspector.getBeanInfo(getObjectType(), AbstractDataConnector.class).getPropertyDescriptors();
-
-        for (final PropertyDescriptor descriptor : descriptors) {
-            log.debug("Parsing property descriptor: {}", descriptor);
-            final Map<String, ?> beans = appContext.getBeansOfType(descriptor.getPropertyType());
-
-            if (null == beans || beans.isEmpty() || null == descriptor.getWriteMethod() ) {
-                continue;
-            }
-            if (beans.size() > 1) {
-                log.warn("Too many beans of type {} found, only the first will be used", descriptor.getPropertyType());
-            }
-            final Object bean = beans.values().iterator().next();
-            log.debug("Added property value: {}", bean);
-            descriptor.getWriteMethod().invoke(result, bean);
-        }
-        return result;
-    }
-    
-}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java
index 4aba73939..2daf43568 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java
@@ -32,9 +32,7 @@ import org.w3c.dom.Element;
 import net.shibboleth.idp.attribute.resolver.dc.impl.ScriptedDataConnector;
 import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
-import net.shibboleth.shared.primitive.DeprecationSupport;
 import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 import net.shibboleth.shared.spring.factory.EvaluableScriptFactoryBean;
 import net.shibboleth.shared.xml.ElementSupport;
 
@@ -62,17 +60,12 @@ public class ScriptedDataConnectorParser extends AbstractDataConnectorParser {
     }
     
     /** {@inheritDoc} */
+    // Checkstyle: CyclomaticComplexity OFF
     @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
+
         super.doParse(config, parserContext, builder);
         builder.addAutowiredProperty("scriptContextExtenders");       
-    }
-
-    /** {@inheritDoc} */
-    // Checkstyle: CyclomaticComplexity OFF
-    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-
         final BeanDefinitionBuilder scriptBuilder =
                 BeanDefinitionBuilder.genericBeanDefinition(EvaluableScriptFactoryBean.class);
         scriptBuilder.addPropertyValue("sourceId", getLogPrefix());
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
index 672b3c8ae..92d5b4873 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
@@ -58,8 +58,9 @@ public class StaticDataConnectorParser extends AbstractDataConnectorParser {
     }
 
     /** {@inheritDoc} */
-    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
+        super.doParse(config, parserContext, builder);
         
         final List<Element> children = ElementSupport.getChildElements(config, ATTRIBUTE_ELEMENT_NAME_RESOLVER);
         final List<BeanDefinition> attributes = new ManagedList<>(children.size());
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
index 2cc0d5e2a..601db09b2 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
@@ -64,9 +64,9 @@ public class SubjectDataConnectorParser extends ContextDerivedDataConnectorParse
 
     /** {@inheritDoc} */
     @Override
-    protected void doV2Parse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
+    protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
-        
+        super.doParse(element, parserContext, builder);
         if (subjectDerivedClass == null) {
             throw new BeanCreationException("Unable to load class for subject-derived attribute function.");
         }
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index 3e29202e5..c4e68d7dc 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -78,7 +78,7 @@ import net.shibboleth.shared.xml.XMLConstants;
 
 /**
  * Bean definition Parser for a {@link LDAPDataConnector}. <em>Note</em> That parsing the V2 configuration will set some
- * beans with hard wired defaults. See {@link #doV2Parse(Element, ParserContext, BeanDefinitionBuilder)}.
+ * beans with hard wired defaults. See {@link #doParse(Element, ParserContext, BeanDefinitionBuilder)}.
  */
 public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
 
@@ -121,8 +121,9 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
      * @param parserContext bean definition parsing context
      * @param builder to initialize
      */
-    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
+        super.doParse(config, parserContext, builder);
         log.debug("{} Parsing XML configuration {}", getLogPrefix(), config);
 
         // V4 Deprecation
@@ -218,9 +219,6 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
 
     /**
      * Utility class for parsing v2 schema configuration.
-     * 
-     * <em>Note</em> That parsing the V2 configuration will set some beans with hard wired defaults. See
-     * {@link #doV2Parse(Element, ParserContext, BeanDefinitionBuilder)}.
      */
 
     protected static class V2Parser {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
index dcb7ff6ac..e2d7e68e1 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
@@ -64,9 +64,9 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
     }
 
     /** {@inheritDoc} */
-    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
-
+        super.doParse(config, parserContext, builder);
         log.debug("{} Parsing v2 configuration {}", getLogPrefix(), config);
 
         final V2Parser v2Parser = new V2Parser(config, getLogPrefix());
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
index e24394377..cd2057a2c 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
@@ -60,9 +60,10 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
     }
     
     /** {@inheritDoc} */
-    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
 
+        super.doParse(config, parserContext, builder);
         log.debug("{} Parsing custom configuration {}", getLogPrefix(), config);
 
         final V2Parser v2Parser = new V2Parser(config, getLogPrefix());

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


More information about the commits mailing list