[java-metadata-aggregator] branch master updated: IDP-178 - Add a bean definition resource

Ian Young ian at iay.org.uk
Thu Apr 27 11:57:08 EDT 2017


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

iay pushed a commit to branch master
in repository java-metadata-aggregator.

View the commit online:
http://git.shibboleth.net/view/?p=java-metadata-aggregator.git;a=commit;h=a3e3ca99b7a22645f92d6d2def9c29c3b8338736

The following commit(s) were added to refs/heads/master by this push:
       new  a3e3ca9   IDP-178 - Add a bean definition resource
a3e3ca9 is described below

commit a3e3ca99b7a22645f92d6d2def9c29c3b8338736
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Thu Apr 27 16:57:00 2017 +0100

    IDP-178 - Add a bean definition resource
---
 .../resources/net/shibboleth/metadata/beans.xml    | 272 +++++++++++++++++++++
 .../net/shibboleth/metadata/BeansFileTest.java     |  60 +++++
 2 files changed, 332 insertions(+)

diff --git a/aggregator-pipeline/src/main/resources/net/shibboleth/metadata/beans.xml b/aggregator-pipeline/src/main/resources/net/shibboleth/metadata/beans.xml
new file mode 100644
index 0000000..ea59208
--- /dev/null
+++ b/aggregator-pipeline/src/main/resources/net/shibboleth/metadata/beans.xml
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:context="http://www.springframework.org/schema/context"
+    xmlns:util="http://www.springframework.org/schema/util"
+    xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+    <!--
+        Bean definitions for simplified access to components in the
+        Shibboleth Metadata Aggregator's aggregator-pipeline artifact.
+
+        All defined bean names are prefixed with "mda.".
+    -->
+
+    <!--
+        Parent for anything based on the Shibboleth component system.
+        These all require initialization before use.
+    -->
+    <bean id="mda.component_parent" abstract="true"
+        init-method="initialize" destroy-method="destroy"/>
+
+    <!--
+        Parent for all stages.
+    -->
+    <bean id="mda.stage_parent" abstract="true" parent="mda.component_parent"/>
+
+    <!--
+        net.shibboleth.metadata
+    -->
+
+    <bean id="mda.DeduplicatingItemIdMergeStrategy" abstract="true"
+        class="net.shibboleth.metadata.DeduplicatingItemIdMergeStrategy"/>
+
+    <bean id="mda.FirstItemIdItemIdentificationStrategy" abstract="true"
+        class="net.shibboleth.metadata.FirstItemIdItemIdentificationStrategy"/>
+
+    <bean id="mda.SimpleCollectionMergeStrategy" abstract="true"
+        class="net.shibboleth.metadata.SimpleCollectionMergeStrategy"/>
+
+    <bean id="mda.SimpleItemCollectionSerializer" abstract="true"
+        class="net.shibboleth.metadata.SimpleItemCollectionSerializer"/>
+
+    <!--
+        net.shibboleth.metadata.dom
+    -->
+
+    <bean id="mda.CRDetectionStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.CRDetectionStage"/>
+
+    <bean id="mda.DOMElementSerializer" abstract="true"
+        class="net.shibboleth.metadata.dom.DOMElementSerializer"/>
+
+    <bean id="mda.DOMFilesystemSourceStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.DOMFilesystemSourceStage"/>
+
+    <bean id="mda.DOMResourceSourceStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.DOMResourceSourceStage"/>
+
+    <bean id="mda.ElementStrippingStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.ElementStrippingStage"/>
+
+    <bean id="mda.ElementWhitespaceTrimmingStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.ElementWhitespaceTrimmingStage"/>
+
+    <bean id="mda.EmptyContainerStrippingStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.EmptyContainerStrippingStage"/>
+
+    <bean id="mda.MultiOutputXSLTransformationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.MultiOutputXSLTransformationStage"/>
+
+    <bean id="mda.NamespacesStrippingStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.NamespacesStrippingStage"/>
+
+    <bean id="mda.NamespaceStrippingStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.NamespaceStrippingStage"/>
+
+    <bean id="mda.XMLSchemaValidationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.XMLSchemaValidationStage"/>
+
+    <bean id="mda.XMLSignatureSigningStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.XMLSignatureSigningStage"/>
+
+    <bean id="mda.XMLSignatureValidationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.XMLSignatureValidationStage"/>
+
+    <bean id="mda.XPathFilteringStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.XPathFilteringStage"/>
+
+    <bean id="mda.XPathItemSelectionStrategy" abstract="true"
+        class="net.shibboleth.metadata.dom.XPathItemSelectionStrategy"/>
+
+    <bean id="mda.XSLTransformationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.XSLTransformationStage"/>
+
+    <bean id="mda.XSLValidationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.XSLValidationStage"/>
+
+    <!--
+        net.shibboleth.metadata.dom.ds
+    -->
+
+    <bean id="mda.X509ValidationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.ds.X509ValidationStage"/>
+
+    <!--
+        net.shibboleth.metadata.dom.saml
+    -->
+
+    <bean id="mda.ContactPersonFilterStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.ContactPersonFilterStage"/>
+
+    <bean id="mda.EntitiesDescriptorAssemblerStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.EntitiesDescriptorAssemblerStage"/>
+
+    <bean id="mda.EntitiesDescriptorDisassemblerStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.EntitiesDescriptorDisassemblerStage"/>
+
+    <bean id="mda.EntityDescriptorItemIdPopulationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.EntityDescriptorItemIdPopulationStage"/>
+
+    <bean id="mda.EntityFilterStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.EntityFilterStage"/>
+
+    <bean id="mda.EntityRoleFilterStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.EntityRoleFilterStage"/>
+
+    <bean id="mda.GenerateIdStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.GenerateIdStage"/>
+
+    <bean id="mda.PullUpCacheDurationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.PullUpCacheDurationStage"/>
+
+    <bean id="mda.PullUpValidUntilStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.PullUpValidUntilStage"/>
+
+    <bean id="mda.RemoveOrganizationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.RemoveOrganizationStage"/>
+
+    <bean id="mda.SetCacheDurationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.SetCacheDurationStage"/>
+
+    <bean id="mda.SetValidUntilStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.SetValidUntilStage"/>
+
+    <bean id="mda.ValidateValidUntilStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.ValidateValidUntilStage"/>
+
+    <!--
+        net.shibboleth.metadata.dom.saml.mdattr
+    -->
+
+    <bean id="mda.EntityAttributeFilteringStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.mdattr.EntityAttributeFilteringStage"/>
+
+    <bean id="mda.EntityCategoryMatcher" abstract="true"
+        class="net.shibboleth.metadata.dom.saml.mdattr.EntityCategoryMatcher"/>
+
+    <bean id="mda.EntityCategorySupportMatcher" abstract="true"
+        class="net.shibboleth.metadata.dom.saml.mdattr.EntityCategorySupportMatcher"/>
+
+    <bean id="mda.MultiPredicateMatcher" abstract="true"
+        class="net.shibboleth.metadata.dom.saml.mdattr.MultiPredicateMatcher"/>
+
+    <bean id="mda.RegistrationAuthorityMatcher" abstract="true"
+        class="net.shibboleth.metadata.dom.saml.mdattr.RegistrationAuthorityMatcher"/>
+
+    <!--
+        net.shibboleth.metadata.dom.saml.mdrpi
+    -->
+
+    <bean id="mda.EntityRegistrationAuthorityFilterStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.mdrpi.EntityRegistrationAuthorityFilterStage"/>
+
+    <bean id="mda.RegistrationAuthorityItemIdentificationStrategy" abstract="true"
+        class="net.shibboleth.metadata.dom.saml.mdrpi.RegistrationAuthorityItemIdentificationStrategy"/>
+
+    <bean id="mda.RegistrationAuthorityPopulationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.dom.saml.mdrpi.RegistrationAuthorityPopulationStage"/>
+
+    <!--
+        net.shibboleth.metadata.pipeline
+    -->
+
+    <bean id="mda.AtLeastCollectionPredicate" abstract="true"
+        class="net.shibboleth.metadata.pipeline.AtLeastCollectionPredicate"/>
+
+    <bean id="mda.CompositeStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.CompositeStage"/>
+
+    <bean id="mda.FilesInDirectoryMultiOutputStrategy" abstract="true" parent="mda.component_parent"
+        class="net.shibboleth.metadata.pipeline.FilesInDirectoryMultiOutputStrategy"/>
+
+    <bean id="mda.ItemIdTransformStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.ItemIdTransformStage"/>
+
+    <bean id="mda.ItemMetadataAddingStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.ItemMetadataAddingStage"/>
+
+    <bean id="mda.ItemMetadataFilterStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.ItemMetadataFilterStage"/>
+
+    <bean id="mda.ItemMetadataTerminationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.ItemMetadataTerminationStage"/>
+
+    <bean id="mda.MDQueryMD5ItemIdTransformer" abstract="true"
+        class="net.shibboleth.metadata.pipeline.MDQueryMD5ItemIdTransformer"/>
+
+    <bean id="mda.MDQuerySHA1ItemIdTransformer" abstract="true"
+        class="net.shibboleth.metadata.pipeline.MDQuerySHA1ItemIdTransformer"/>
+
+    <bean id="mda.MultiOutputSerializationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.MultiOutputSerializationStage"/>
+
+    <bean id="mda.PipelineDemultiplexerStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.PipelineDemultiplexerStage"/>
+
+    <bean id="mda.PipelineMergeStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.PipelineMergeStage"/>
+
+    <bean id="mda.ScriptletStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.ScriptletStage"/>
+
+    <bean id="mda.SerializationStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.SerializationStage"/>
+
+    <bean id="mda.SimplePipeline" abstract="true" parent="mda.component_parent"
+        class="net.shibboleth.metadata.pipeline.SimplePipeline"/>
+
+    <bean id="mda.SplitMergeStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.SplitMergeStage"/>
+
+    <bean id="mda.StaticItemSourceStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.StaticItemSourceStage"/>
+
+    <bean id="mda.StatusMetadataLoggingStage" abstract="true" parent="mda.stage_parent"
+        class="net.shibboleth.metadata.pipeline.StatusMetadataLoggingStage"/>
+
+    <!--
+        net.shibboleth.metadata.util
+    -->
+
+    <bean id="mda.PathSegmentStringTransformer" abstract="true"
+        class="net.shibboleth.metadata.util.PathSegmentStringTransformer"/>
+
+    <bean id="mda.SHA1StringTransformer" abstract="true"
+        class="net.shibboleth.metadata.util.SHA1StringTransformer"/>
+
+    <!--
+        net.shibboleth.metadata.validate
+    -->
+
+    <bean id="mda.validator_parent" abstract="true" parent="mda.component_parent"/>
+
+    <!--
+        net.shibboleth.metadata.validate.x509
+    -->
+
+    <bean id="mda.X509RSAExponentValidator" abstract="true" parent="mda.validator_parent"
+        class="net.shibboleth.metadata.validate.x509.X509RSAExponentValidator"/>
+
+    <bean id="mda.X509RSAKeyLengthValidator" abstract="true" parent="mda.validator_parent"
+        class="net.shibboleth.metadata.validate.x509.X509RSAKeyLengthValidator"/>
+
+    <bean id="mda.X509RSAOpenSSLBlacklistValidator" abstract="true" parent="mda.validator_parent"
+        class="net.shibboleth.metadata.validate.x509.X509RSAOpenSSLBlacklistValidator"/>
+
+</beans>
diff --git a/aggregator-pipeline/src/test/java/net/shibboleth/metadata/BeansFileTest.java b/aggregator-pipeline/src/test/java/net/shibboleth/metadata/BeansFileTest.java
new file mode 100644
index 0000000..912e77b
--- /dev/null
+++ b/aggregator-pipeline/src/test/java/net/shibboleth/metadata/BeansFileTest.java
@@ -0,0 +1,60 @@
+
+package net.shibboleth.metadata;
+
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.springframework.context.support.GenericApplicationContext;
+import org.springframework.core.io.ClassPathResource;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+public class BeansFileTest {
+
+    @Test
+    public void testBeans() throws Exception {
+        // Create an application context, which also acts as a bean definition registry
+        final GenericApplicationContext ctx = new GenericApplicationContext();
+
+        // Load bean definitions into the registry
+        final XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
+        xmlReader.loadBeanDefinitions(new ClassPathResource("net/shibboleth/metadata/beans.xml"));
+
+        final String[] defNames = ctx.getBeanDefinitionNames();
+        for (final String defName : defNames) {
+            final BeanDefinition def = ctx.getBeanDefinition(defName);
+
+            // All bean definitions should start with "mda."
+            Assert.assertTrue(defName.startsWith("mda."), "does not start with correct prefix: " + defName);
+
+            // All bean definitions should be abstract
+            Assert.assertTrue(def.isAbstract(), "not abstract: " + defName);
+
+            // Deal with the class name, if the definition has one
+            final String className = def.getBeanClassName();
+            if (className != null) {
+                try {
+                    // Check that the class can be loaded
+                    Class.forName(className);
+
+                    // The name of the class within its package should be included in the bean
+                    // name's prefix; there may be more after that
+                    final String classLastPart = className.replaceFirst("^.*\\.", "");
+                    Assert.assertTrue(defName.startsWith("mda." + classLastPart), "does not start with correct prefix: " + defName);
+
+                    // If the class represents a stage, its parent should be the stage parent
+                    if (className.endsWith("Stage")) {
+                        Assert.assertEquals(def.getParentName(), "mda.stage_parent");
+                    }
+                } catch (ClassNotFoundException e) {
+                    // Could not load class
+                    Assert.fail("could not load class " + className + " for bean " + defName);
+                }
+            }
+        }
+
+        // Refresh the context to process the bean definitions
+        ctx.refresh();
+
+    }
+
+}

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


More information about the commits mailing list