[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