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

noreply at shibboleth.net noreply at shibboleth.net
Wed Jul 9 04:19:47 EDT 2014


Author: rdw
Date: Wed Jul  9 04:19:47 2014
New Revision: 6249

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6249&view=rev
Log:
IDP-429 Move creation of the Filter ServiceableComponent into the service.

The AFPG parser no longer populated a bean, rather it just parsers all the
content.  The AttributeFilterServiceStrategy thegrabs all the
AttributeFilterPolicy elements in all files and creates an AttributeFilterImpl
around them.

Test with two part AFP.

Added:
    trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/AttributeFilterServiceStrategy.java
    trunk/idp-conf/src/test/resources/mapping/configs/attribute-filter2.xml
Modified:
    trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/AttributeFilterPolicyGroupParser.java
    trunk/idp-conf/src/main/resources/system/conf/services-system.xml
    trunk/idp-conf/src/test/resources/mapping/configs/attribute-filter.xml
    trunk/idp-conf/src/test/resources/mapping/configs/override.xml
    trunk/idp-core/src/main/java/net/shibboleth/idp/service/AbstractServiceableComponent.java

Modified: trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/AttributeFilterPolicyGroupParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/AttributeFilterPolicyGroupParser.java?rev=6249&r1=6248&r2=6249&view=diff
==============================================================================
--- trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/AttributeFilterPolicyGroupParser.java (original)
+++ trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/AttributeFilterPolicyGroupParser.java Wed Jul  9 04:19:47 2014
@@ -20,18 +20,16 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.idp.attribute.filter.AttributeFilterImpl;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.xml.BeanDefinitionParser;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
@@ -40,9 +38,10 @@
  * 
  * There is no bean being summoned up here. Rather we just parse all the children. Then over in the service all the *
  * {@link net.shibboleth.idp.attribute.filter.AttributeFilterPolicy} beans are sucked out of spring by type and injected
- * into a new {@link net.shibboleth.idp.attribute.filter.AttributeFilter}.
+ * into a new {@link net.shibboleth.idp.attribute.filter.AttributeFilterImpl} via a
+ * {@link AttributeFilterServiceStrategy}.
  */
-public class AttributeFilterPolicyGroupParser extends AbstractSingleBeanDefinitionParser {
+public class AttributeFilterPolicyGroupParser implements BeanDefinitionParser {
     /** Element name. */
     public static final QName ELEMENT_NAME = new QName(AttributeFilterNamespaceHandler.NAMESPACE,
             "AttributeFilterPolicyGroup");
@@ -63,21 +62,11 @@
     private final Logger log = LoggerFactory.getLogger(AttributeFilterPolicyGroupParser.class);
 
     /** {@inheritDoc} */
-    @Override
-    protected Class<AttributeFilterImpl> getBeanClass(@Nullable Element element) {
-        return AttributeFilterImpl.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void doParse(Element config, ParserContext context, BeanDefinitionBuilder builder) {
+    @Override public BeanDefinition parse(Element config, ParserContext context) {
 
         String policyId = StringSupport.trimOrNull(config.getAttributeNS(null, "id"));
 
         log.debug("Parsing attribute filter policy group {}", policyId);
-
-        builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
 
         List<Element> children;
         Map<QName, List<Element>> childrenMap = ElementSupport.getIndexedChildElements(config);
@@ -85,7 +74,7 @@
         //
         // Top level definitions
         //
-        
+
         children = childrenMap.get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "PolicyRequirementRule"));
         SpringSupport.parseCustomElements(children, context);
 
@@ -102,8 +91,8 @@
         // The actual policies
         //
         children = childrenMap.get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "AttributeFilterPolicy"));
-        
-        builder.addConstructorArgValue(policyId);
-        builder.addConstructorArgValue(SpringSupport.parseCustomElements(children, context));
+

[... 79 lines stripped ...]


More information about the commits mailing list