[java-metadata-aggregator] branch master updated: Add @since for 0.9 and 0.10 series development

Ian Young ian at iay.org.uk
Sun Jun 14 14:15:05 UTC 2020


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=09ad9fb3dc2c4b612e567761007e57bb2dc19282

The following commit(s) were added to refs/heads/master by this push:
       new  09ad9fb   Add @since for 0.9 and 0.10 series development
09ad9fb is described below

commit 09ad9fb3dc2c4b612e567761007e57bb2dc19282
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Sun Jun 14 15:15:01 2020 +0100

    Add @since for 0.9 and 0.10 series development
---
 ...bstractCompositeItemIdentificationStrategy.java |  2 +
 .../metadata/ItemCollectionSerializer.java         |  2 +
 .../main/java/net/shibboleth/metadata/Version.java |  6 ++-
 .../metadata/dom/AbstractDOMTraversalStage.java    |  2 +
 .../metadata/dom/AbstractDOMValidationStage.java   |  2 +
 .../metadata/dom/AbstractElementVisitingStage.java |  2 +
 .../dom/AbstractNamespacesStrippingStage.java      |  2 +
 .../net/shibboleth/metadata/dom/AttrVisitor.java   |  2 +
 .../shibboleth/metadata/dom/CRDetectionStage.java  |  2 +
 .../net/shibboleth/metadata/dom/Container.java     |  2 +
 .../net/shibboleth/metadata/dom/ElementMaker.java  |  2 +
 .../shibboleth/metadata/dom/ElementMatcher.java    |  2 +
 .../shibboleth/metadata/dom/ElementVisitor.java    |  2 +
 .../dom/ElementWhitespaceTrimmingStage.java        |  2 +
 .../metadata/dom/ElementsStrippingStage.java       |  2 +
 .../metadata/dom/NamespaceStrippingStage.java      |  2 +
 .../metadata/dom/NamespacesStrippingStage.java     |  2 +
 .../net/shibboleth/metadata/dom/NodeVisitor.java   |  2 +
 .../metadata/dom/WhitespaceTrimmingVisitor.java    |  2 +
 .../metadata/dom/ds/X509ValidationStage.java       |  2 +
 .../shibboleth/metadata/dom/ds/XMLDSIGSupport.java |  6 ++-
 .../shibboleth/metadata/dom/ds/package-info.java   |  6 ++-
 .../dom/saml/AbstractSAMLTraversalStage.java       |  2 +
 .../metadata/dom/saml/AttributeElementMaker.java   |  2 +
 .../metadata/dom/saml/AttributeElementMatcher.java |  2 +
 .../dom/saml/DiscoFeedCollectionSerializer.java    |  2 +
 .../metadata/dom/saml/SAMLMetadataSupport.java     | 62 ++++++++++++++++++----
 .../dom/saml/SAMLStringElementCheckingStage.java   |  2 +
 .../shibboleth/metadata/dom/saml/SAMLSupport.java  | 18 +++++--
 .../mdattr/AbstractEntityAttributeMatcher.java     |  2 +
 .../dom/saml/mdattr/AbstractExactValueMatcher.java |  2 +
 .../saml/mdattr/AssuranceCertificationMatcher.java |  2 +
 .../saml/mdattr/EntityAttributeAddingStage.java    |  2 +
 .../saml/mdattr/EntityAttributeFilteringStage.java |  2 +
 .../dom/saml/mdattr/EntityCategoryMatcher.java     |  2 +
 .../dom/saml/mdattr/EntityCategorySupport.java     |  4 +-
 .../saml/mdattr/EntityCategorySupportMatcher.java  |  2 +
 .../metadata/dom/saml/mdattr/MDAttrSupport.java    | 18 +++++--
 .../dom/saml/mdattr/MultiPredicateMatcher.java     |  2 +
 .../saml/mdattr/RegistrationAuthorityMatcher.java  |  2 +
 .../metadata/dom/saml/mdattr/package-info.java     |  2 +
 ...trationAuthorityItemIdentificationStrategy.java |  2 +
 .../dom/saml/mdui/IPHintValidationStage.java       |  4 +-
 .../metadata/dom/saml/mdui/MDUISupport.java        |  6 ++-
 .../metadata/pipeline/AbstractFilteringStage.java  |  2 +
 .../metadata/pipeline/AbstractIteratingStage.java  |  2 +
 .../pipeline/AtLeastCollectionPredicate.java       |  2 +
 .../FilesInDirectoryMultiOutputStrategy.java       |  2 +
 .../metadata/pipeline/ItemIdTransformStage.java    |  2 +
 .../metadata/pipeline/ItemMetadataAddingStage.java |  2 +
 .../metadata/pipeline/ItemOrderingStage.java       |  2 +
 .../metadata/pipeline/ItemOrderingStrategy.java    |  2 +
 .../pipeline/MDQueryMD5ItemIdTransformer.java      |  6 ++-
 .../pipeline/MDQuerySHA1ItemIdTransformer.java     |  6 ++-
 .../pipeline/MultiOutputSerializationStage.java    |  2 +
 .../BaseIdentifiableInitializableComponent.java    |  2 +
 .../pipeline/impl/BaseInitializableComponent.java  |  2 +
 .../pipeline/impl/NoOpItemOrderingStrategy.java    |  2 +
 .../metadata/pipeline/impl/package-info.java       |  2 +
 .../util/PathSegmentStringTransformer.java         |  2 +
 .../shibboleth/metadata/util/RegexFileFilter.java  |  2 +
 .../metadata/util/SHA1StringTransformer.java       |  2 +
 .../metadata/validate/AcceptAllValidator.java      |  2 +
 .../metadata/validate/BaseValidator.java           | 10 ++++
 .../metadata/validate/RejectAllValidator.java      |  2 +
 .../shibboleth/metadata/validate/Validator.java    |  2 +
 .../metadata/validate/ValidatorSequence.java       |  2 +
 .../shibboleth/metadata/validate/package-info.java |  2 +
 .../string/AcceptStringRegexValidator.java         |  2 +
 .../string/AcceptStringValueValidator.java         |  2 +
 .../validate/string/BaseStringRegexValidator.java  |  2 +
 .../validate/string/BaseStringValueValidator.java  |  2 +
 .../string/RejectStringRegexValidator.java         |  2 +
 .../string/RejectStringValueValidator.java         |  2 +
 .../metadata/validate/string/package-info.java     |  2 +
 .../validate/x509/AbstractX509Validator.java       |  2 +
 .../metadata/validate/x509/X509DSADetector.java    |  2 +
 .../metadata/validate/x509/X509ROCAValidator.java  |  2 +
 .../validate/x509/X509RSAExponentValidator.java    |  2 +
 .../validate/x509/X509RSAKeyLengthValidator.java   |  2 +
 .../x509/X509RSAOpenSSLBlacklistValidator.java     |  2 +
 .../metadata/validate/x509/package-info.java       |  2 +
 82 files changed, 268 insertions(+), 24 deletions(-)

diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java
index 343c4ad..98639b2 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/AbstractCompositeItemIdentificationStrategy.java
@@ -35,6 +35,8 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
  * If the basic identifier is <code>null</code>, a configured default is used.
  * 
  * If the extra identifier is <code>null</code>, only the basic identifier is used.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public abstract class AbstractCompositeItemIdentificationStrategy implements ItemIdentificationStrategy {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/ItemCollectionSerializer.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/ItemCollectionSerializer.java
index 5466cbc..648ba39 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/ItemCollectionSerializer.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/ItemCollectionSerializer.java
@@ -31,6 +31,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
  * The caller is responsible for managing (opening, closing, etc.) the output stream.
  * 
  * @param <T> type of data contained in each item
+ *
+ * @since 0.9.0
  */
 public interface ItemCollectionSerializer<T> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/Version.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/Version.java
index 9ee299e..dc4b45a 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/Version.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/Version.java
@@ -19,7 +19,11 @@ package net.shibboleth.metadata;
 
 import javax.annotation.Nonnull;
 
-/** Class for getting and printing the version of the metadata pipeline. */
+/**
+ * Class for getting and printing the version of the metadata pipeline.
+ *
+ * @since 0.5
+ */
 public final class Version {
 
     /** Metadata pipeline version. */
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMTraversalStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMTraversalStage.java
index a498266..4aff930 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMTraversalStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMTraversalStage.java
@@ -45,6 +45,8 @@ import net.shibboleth.utilities.java.support.xml.ElementSupport;
  * method is called to perform any post-processing required.
  *
  * @param <C> the context to carry through the traversal
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public abstract class AbstractDOMTraversalStage<C extends DOMTraversalContext>
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMValidationStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMValidationStage.java
index 447213d..f616f2e 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMValidationStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractDOMValidationStage.java
@@ -33,6 +33,8 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
  *
  * @param <V> type of the object to be validated
  * @param <C> the context to carry through the traversal
+ *
+ * @since 0.9.0
  */
 public abstract class AbstractDOMValidationStage<V, C extends DOMTraversalContext>
     extends AbstractDOMTraversalStage<C> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractElementVisitingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractElementVisitingStage.java
index 20baa50..4d29547 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractElementVisitingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractElementVisitingStage.java
@@ -33,6 +33,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
 /**
  * Abstract parent class for stages which visit {@link Element}s named by a
  * collection of {@link QName}s.
+ *
+ * @since 0.9.0
  */
 public abstract class AbstractElementVisitingStage extends AbstractDOMTraversalStage<DOMTraversalContext> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractNamespacesStrippingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractNamespacesStrippingStage.java
index 867ed5e..3dd784a 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractNamespacesStrippingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractNamespacesStrippingStage.java
@@ -46,6 +46,8 @@ import net.shibboleth.utilities.java.support.xml.ElementSupport;
  * or retained as determined by the {@link #removingNamespace} function.
  * 
  * Attributes without an explicit namespace prefix will never be removed.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public abstract class AbstractNamespacesStrippingStage extends AbstractIteratingStage<Element> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AttrVisitor.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AttrVisitor.java
index 907db0c..833e24e 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AttrVisitor.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AttrVisitor.java
@@ -25,6 +25,8 @@ import org.w3c.dom.Element;
 /**
  * Provides a variation of the Visitor pattern for performing operations on
  * DOM attributes which are part of {@link Element} items.
+ *
+ * @since 0.9.0
  */
 public interface AttrVisitor {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/CRDetectionStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/CRDetectionStage.java
index 9f4da49..e960f32 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/CRDetectionStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/CRDetectionStage.java
@@ -35,6 +35,8 @@ import net.shibboleth.metadata.pipeline.StageProcessingException;
  * This stage is specifically intended to detect metadata which would trigger the SSPCPP-684
  * issue in the Shibboleth SP.
  * 
+ * @since 0.9.1
+ *
  * @see <a href="https://issues.shibboleth.net/jira/browse/SSPCPP-684">SSPCPP-684</a>
  */
 public class CRDetectionStage extends AbstractSAMLTraversalStage<CRDetectionStage.Context> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/Container.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/Container.java
index 9061564..a81704a 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/Container.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/Container.java
@@ -36,6 +36,8 @@ import org.w3c.dom.Node;
  * A wrapper for a DOM {@link Element} allowing its use as a container for either
  * a simple text value or for other {@link Element}s. In the latter case, white-space
  * formatting is handled automatically for nested containers.
+ *
+ * @since 0.10.0
  */
 public class Container {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMaker.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMaker.java
index 57288bc..d804ef8 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMaker.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMaker.java
@@ -29,6 +29,8 @@ import org.w3c.dom.Element;
 
 /**
  * Basic maker class for {@link Element}s for use with the {@link Container} system.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class ElementMaker implements Function<Container, Element> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMatcher.java
index ae12a4f..a581a52 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementMatcher.java
@@ -30,6 +30,8 @@ import org.w3c.dom.Element;
 
 /**
  * Basic matcher class for {@link Element}s for use with the {@link Container} system.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class ElementMatcher implements Predicate<Element> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementVisitor.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementVisitor.java
index 637334d..84cd9d8 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementVisitor.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementVisitor.java
@@ -24,6 +24,8 @@ import org.w3c.dom.Element;
 /**
  * Provides a variation of the Visitor pattern for performing operations on
  * DOM elements which are part of {@link Element} items.
+ *
+ * @since 0.9.0
  */
 public interface ElementVisitor {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementWhitespaceTrimmingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementWhitespaceTrimmingStage.java
index f849f17..86d58d6 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementWhitespaceTrimmingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementWhitespaceTrimmingStage.java
@@ -24,6 +24,8 @@ import org.w3c.dom.Element;
 /**
  * Stage to trim leading and trailing whitespace from the text content of named elements
  * within a {@link net.shibboleth.metadata.dom.DOMElementItem}.
+ *
+ * @since 0.9.0
  */
 public class ElementWhitespaceTrimmingStage extends AbstractElementVisitingStage {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java
index 58e9e4e..5eef774 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ElementsStrippingStage.java
@@ -52,6 +52,8 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
  * is set. In this case, the stage still ignores any elements not in the specified
  * namespace, but elements within that namespace will be removed if their local names
  * do <i>not</i> appear in the collection of names.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class ElementsStrippingStage extends AbstractDOMTraversalStage<ElementsStrippingStage.Context> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespaceStrippingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespaceStrippingStage.java
index e728cd4..1174001 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespaceStrippingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespaceStrippingStage.java
@@ -28,6 +28,8 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * A stage which removes all evidence of a given XML namespace from each metadata item.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class NamespaceStrippingStage extends AbstractNamespacesStrippingStage {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespacesStrippingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespacesStrippingStage.java
index 855d277..b43f442 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespacesStrippingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NamespacesStrippingStage.java
@@ -39,6 +39,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
  * Note that because the collection is specified as <code>@NonnullElements</code>, this stage can not
  * be used in blacklisting mode to remove elements in the default namespace. It will always remove
  * elements in the default namespace if used in the whitelisting mode.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class NamespacesStrippingStage extends AbstractNamespacesStrippingStage {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NodeVisitor.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NodeVisitor.java
index 1f4e426..10ff174 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NodeVisitor.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/NodeVisitor.java
@@ -25,6 +25,8 @@ import org.w3c.dom.Node;
 /**
  * Provides a variation of the Visitor pattern for performing operations on
  * DOM nodes which are part of {@link Element} items.
+ *
+ * @since 0.9.0
  */
 public interface NodeVisitor {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/WhitespaceTrimmingVisitor.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/WhitespaceTrimmingVisitor.java
index 8da52fd..7899080 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/WhitespaceTrimmingVisitor.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/WhitespaceTrimmingVisitor.java
@@ -28,6 +28,8 @@ import net.shibboleth.metadata.Item;
 /**
  * {@link Node} visitor which trims leading and trailing whitespace from the
  * visited node's text content.
+ *
+ * @since 0.9.0
  */
 class WhitespaceTrimmingVisitor implements NodeVisitor, ElementVisitor, AttrVisitor {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/X509ValidationStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/X509ValidationStage.java
index 8bb4f06..efd10ed 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/X509ValidationStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/X509ValidationStage.java
@@ -41,6 +41,8 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
  * Stage to apply a collection of validators to each X.509 certificate in items.
  * 
  * Each X.509 certificate is processed only once per item, so that duplicate status messages are suppressed.
+ *
+ * @since 0.9.0
  */ 
 public class X509ValidationStage extends AbstractDOMValidationStage<X509Certificate, X509ValidationStage.Context> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java
index 6463733..250bfee 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/XMLDSIGSupport.java
@@ -21,7 +21,11 @@ import javax.annotation.concurrent.ThreadSafe;
 import javax.xml.crypto.dsig.XMLSignature;
 import javax.xml.namespace.QName;
 
-/** Support class for dealing with the XML DSIG specification. */
+/**
+ * Support class for dealing with the XML DSIG specification.
+ *
+ * @since 0.9.0
+ */
 @ThreadSafe
 public final class XMLDSIGSupport {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/package-info.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/package-info.java
index 8399829..c4e5010 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/package-info.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/ds/package-info.java
@@ -15,5 +15,9 @@
  * limitations under the License.
  */
 
-/** Support classes for XML DSIG.*/
+/**
+ * Support classes for XML DSIG.
+ *
+ * @since 0.9.0
+ */
 package net.shibboleth.metadata.dom.ds;
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AbstractSAMLTraversalStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AbstractSAMLTraversalStage.java
index 486ba14..28dcffd 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AbstractSAMLTraversalStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AbstractSAMLTraversalStage.java
@@ -40,6 +40,8 @@ import net.shibboleth.metadata.dom.SimpleDOMTraversalContext;
  * method is called to perform any post-processing required.
  *
  * @param <C> the context to carry through the traversal
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public abstract class AbstractSAMLTraversalStage <C extends DOMTraversalContext>
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMaker.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMaker.java
index 0371db3..2b1973b 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMaker.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMaker.java
@@ -29,6 +29,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
 /**
  * A class for constructing SAML <code>Attribute</code> elements
  * for use with the {@link Container} system.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class AttributeElementMaker extends ElementMaker {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMatcher.java
index 02867cc..ab8d425 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/AttributeElementMatcher.java
@@ -28,6 +28,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * Match {@link java.util.function.Predicate} for SAML <code>Attribute</code> elements with specific
  * <code>Name</code> and <code>NameFormat</code> attributes,
  * for use with the {@link net.shibboleth.metadata.dom.Container} system.
+ *
+ * @since 0.10.0
  */
 public class AttributeElementMatcher extends ElementMatcher {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java
index bc4bf14..d677c7a 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java
@@ -46,6 +46,8 @@ import net.shibboleth.utilities.java.support.xml.ElementSupport;
 /**
  * A collection serializer that generates an equivalent of the Shibboleth SP's discovery
  * feed output from a collection of entity descriptors.
+ *
+ * @since 0.10.0
  */
 public class DiscoFeedCollectionSerializer extends BaseInitializableComponent
     implements ItemCollectionSerializer<Element> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java
index 3108ca9..2e2c70b 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java
@@ -56,36 +56,76 @@ public final class SAMLMetadataSupport {
     /** cacheDuration attribute name. */
     public static final QName CACHE_DURATION_ATTRIB_NAME = new QName("cacheDuration");
 
-    /** QName of the RoleDescriptor element. */
+    /**
+     * QName of the RoleDescriptor element.
+     *
+     * @since 0.10.0
+     */
     public static final QName ROLE_DESCRIPTOR_NAME = new QName(MD_NS, "RoleDescriptor");
 
-    /** QName of the IDPSSODescriptor element. */
+    /**
+     * QName of the IDPSSODescriptor element.
+     *
+     * @since 0.10.0
+     */
     public static final QName IDP_SSO_DESCRIPTOR_NAME = new QName(MD_NS, "IDPSSODescriptor");
 
-    /** QName of the SPSSODescriptor element. */
+    /**
+     * QName of the SPSSODescriptor element.
+     *
+     * @since 0.10.0
+     */
     public static final QName SP_SSO_DESCRIPTOR_NAME = new QName(MD_NS, "SPSSODescriptor");
 
-    /** QName of the AuthnAuthorityDescriptor element. */
+    /**
+     * QName of the AuthnAuthorityDescriptor element.
+     *
+     * @since 0.10.0
+     */
     public static final QName AUTHN_AUTHORITY_DESCRIPTOR_NAME = new QName(MD_NS,
             "AuthnAuthorityDescriptor");
 
-    /** QName of the AttributeAuthorityDescriptor element. */
+    /**
+     * QName of the AttributeAuthorityDescriptor element.
+     *
+     * @since 0.10.0
+     */
     public static final QName ATTRIBUTE_AUTHORITY_DESCRIPTOR_NAME = new QName(MD_NS,
             "AttributeAuthorityDescriptor");
 
-    /** QName of the PDPDescriptor element. */
+    /**
+     * QName of the PDPDescriptor element.
+     *
+     * @since 0.10.0
+     */
     public static final QName PDP_DESCRIPTOR_NAME = new QName(MD_NS, "PDPDescriptor");
 
-    /** QName of the Organization element. */
+    /**
+     * QName of the Organization element.
+     *
+     * @since 0.10.0
+     */
     public static final QName ORGANIZATION_NAME = new QName(MD_NS, "Organization", MD_PREFIX);
 
-    /** QName of the OrganizationName element. */
+    /**
+     * QName of the OrganizationName element.
+     *
+     * @since 0.10.0
+     */
     public static final QName ORGANIZATIONNAME_NAME = new QName(MD_NS, "OrganizationName", MD_PREFIX);
 
-    /** QName of the OrganizationDisplayName element. */
+    /**
+     * QName of the OrganizationDisplayName element.
+     *
+     * @since 0.10.0
+     */
     public static final QName ORGANIZATIONDISPLAYNAME_NAME = new QName(MD_NS, "OrganizationDisplayName", MD_PREFIX);
 
-    /** QName of the OrganizationURL element. */
+    /**
+     * QName of the OrganizationURL element.
+     *
+     * @since 0.10.0
+     */
     public static final QName ORGANIZATIONURL_NAME = new QName(MD_NS, "OrganizationURL", MD_PREFIX);
 
     /** Constructor. */
@@ -159,6 +199,8 @@ public final class SAMLMetadataSupport {
      * 
      * @return the first instance of the extension element or <code>null</code> if
      *          no such element exists as an extension of the descriptor
+     *
+     * @since 0.10.0
      */
     public static Element getDescriptorExtension(@Nonnull final Element descriptor,
             @Nonnull final QName extensionName) {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLStringElementCheckingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLStringElementCheckingStage.java
index 715dd06..d58d326 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLStringElementCheckingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLStringElementCheckingStage.java
@@ -32,6 +32,8 @@ import org.w3c.dom.Node;
 /**
  * A Stage which checks the text content of the named elements to verify that
  * they meet the constraints of SAML string values.
+ *
+ * @since 0.10.0
  */
 public class SAMLStringElementCheckingStage extends AbstractElementVisitingStage {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLSupport.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLSupport.java
index d794575..37dd7c6 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLSupport.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/SAMLSupport.java
@@ -31,7 +31,11 @@ import net.shibboleth.metadata.dom.Container;
 import net.shibboleth.metadata.dom.ElementMaker;
 import net.shibboleth.metadata.dom.ElementMatcher;
 
-/** Helper class for dealing with SAML documents. */
+/**
+ * Helper class for dealing with SAML documents.
+ *
+ * @since 0.9.0
+ */
 @ThreadSafe
 public final class SAMLSupport {
 
@@ -50,11 +54,19 @@ public final class SAMLSupport {
     /** saml:AttributeValue element. */
     public static final QName ATTRIBUTE_VALUE_NAME = new QName(SAML_NS, "AttributeValue", SAML_PREFIX);
 
-    /** Matcher for the <code>Extensions</code> element, for use with the {@link Container} system. */
+    /**
+     * Matcher for the <code>Extensions</code> element, for use with the {@link Container} system.
+     *
+     * @since 0.10.0
+     */
     public static final Predicate<Element> EXTENSIONS_MATCHER =
             new ElementMatcher(SAMLMetadataSupport.EXTENSIONS_NAME);
 
-    /** Maker for the <code>Extensions</code> element, for use with the {@link Container} system. */
+    /**
+     * Maker for the <code>Extensions</code> element, for use with the {@link Container} system.
+     *
+     * @since 0.10.0
+     */
     public static final Function<Container, Element> EXTENSIONS_MAKER =
             new ElementMaker(SAMLMetadataSupport.EXTENSIONS_NAME);
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractEntityAttributeMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractEntityAttributeMatcher.java
index d3a5d8c..92f9aff 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractEntityAttributeMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractEntityAttributeMatcher.java
@@ -34,6 +34,8 @@ import net.shibboleth.metadata.dom.saml.mdattr.EntityAttributeFilteringStage.Ent
  * Where an implementation wishes to ignore a component (most commonly,
  * {@link EntityAttributeContext#getRegistrationAuthority}) it can simply return <code>true</code>
  * in that template method.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public abstract class AbstractEntityAttributeMatcher implements Predicate<EntityAttributeContext> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractExactValueMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractExactValueMatcher.java
index ffef04a..c814330 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractExactValueMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AbstractExactValueMatcher.java
@@ -27,6 +27,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * An abstract entity attribute matcher implementation that matches an exact
  * combination of value, name and name format. Optionally, a registration
  * authority value may also be matched against.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public abstract class AbstractExactValueMatcher extends AbstractEntityAttributeMatcher {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AssuranceCertificationMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AssuranceCertificationMatcher.java
index d34a83a..7c1e3ab 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AssuranceCertificationMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/AssuranceCertificationMatcher.java
@@ -23,6 +23,8 @@ import javax.annotation.concurrent.ThreadSafe;
 
 /**
  * An entity attribute matcher which matches a given assurance certification value.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class AssuranceCertificationMatcher extends AbstractExactValueMatcher {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeAddingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeAddingStage.java
index f9f20b2..8701af1 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeAddingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeAddingStage.java
@@ -42,6 +42,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /**
  * A stage which adds entity attribute values to entity definitions.
+ *
+ * @since 0.10.0
  */
 public class EntityAttributeAddingStage extends AbstractIteratingStage<Element> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeFilteringStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeFilteringStage.java
index ec04e49..c392a44 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeFilteringStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityAttributeFilteringStage.java
@@ -52,6 +52,8 @@ import net.shibboleth.utilities.java.support.xml.ElementSupport;
  * 
  * The stage can be operated in a whitelisting mode (the default) or in a blacklisting mode
  * by setting the <code>whitelisting</code> property to <code>false</code>.
+ *
+ * @since 0.9.0
  */
 public class EntityAttributeFilteringStage extends AbstractIteratingStage<Element> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategoryMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategoryMatcher.java
index 958af09..ab0f18c 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategoryMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategoryMatcher.java
@@ -23,6 +23,8 @@ import javax.annotation.concurrent.ThreadSafe;
 
 /**
  * An entity attribute matcher which matches a given entity category.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class EntityCategoryMatcher extends AbstractExactValueMatcher {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupport.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupport.java
index 1d113a3..20a7728 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupport.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupport.java
@@ -21,7 +21,9 @@ import javax.annotation.concurrent.ThreadSafe;
 
 /**
  * Helper class for dealing with entity categories.
- * 
+ *
+ * @since 0.9.0
+ *
  * @see <a href="https://datatracker.ietf.org/doc/draft-young-entity-category/">
  * The Entity Category SAML Attribute Types</a>
  */
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupportMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupportMatcher.java
index 04f0933..2a2cc21 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupportMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/EntityCategorySupportMatcher.java
@@ -23,6 +23,8 @@ import javax.annotation.concurrent.ThreadSafe;
 
 /**
  * An entity attribute matcher which matches a given entity support category.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class EntityCategorySupportMatcher extends AbstractExactValueMatcher {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MDAttrSupport.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MDAttrSupport.java
index ceab131..dd4de35 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MDAttrSupport.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MDAttrSupport.java
@@ -29,7 +29,11 @@ import net.shibboleth.metadata.dom.Container;
 import net.shibboleth.metadata.dom.ElementMaker;
 import net.shibboleth.metadata.dom.ElementMatcher;
 
-/** Helper class for dealing with MDAttr metadata. */
+/**
+ * Helper class for dealing with MDAttr metadata.
+ *
+ * @since 0.9.0
+ */
 @ThreadSafe
 public final class MDAttrSupport {
 
@@ -42,11 +46,19 @@ public final class MDAttrSupport {
     /** mdattr:EntityAttributes element. */
     public static final QName ENTITY_ATTRIBUTES_NAME = new QName(MDATTR_NS, "EntityAttributes", MDATTR_PREFIX);
 
-    /** Matcher for the <code>EntityAttributes</code> element, for use with the {@link Container} system. */
+    /**
+     * Matcher for the <code>EntityAttributes</code> element, for use with the {@link Container} system.
+     *
+     * @since 0.10.0
+     */
     public static final Predicate<Element> ENTITY_ATTRIBUTES_MATCHER =
             new ElementMatcher(ENTITY_ATTRIBUTES_NAME);
 
-    /** Maker for the <code>EntityAttributes</code> element, for use with the {@link Container} system. */
+    /**
+     * Maker for the <code>EntityAttributes</code> element, for use with the {@link Container} system.
+     *
+     * @since 0.10.0
+     */
     public static final Function<Container, Element> ENTITY_ATTRIBUTES_MAKER =
             new ElementMaker(ENTITY_ATTRIBUTES_NAME);
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MultiPredicateMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MultiPredicateMatcher.java
index 23a0cd8..9ca1707 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MultiPredicateMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/MultiPredicateMatcher.java
@@ -33,6 +33,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * 
  * The individual {@link Predicate}s operate over {@link CharSequence}
  * rather than {@link String} for generality.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class MultiPredicateMatcher extends AbstractEntityAttributeMatcher {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/RegistrationAuthorityMatcher.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/RegistrationAuthorityMatcher.java
index 61848bf..621350c 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/RegistrationAuthorityMatcher.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/RegistrationAuthorityMatcher.java
@@ -30,6 +30,8 @@ import net.shibboleth.metadata.dom.saml.mdattr.EntityAttributeFilteringStage.Ent
  * 
  * It can match against a specific registration authority, or against the absence of
  * one.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class RegistrationAuthorityMatcher implements Predicate<EntityAttributeContext> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/package-info.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/package-info.java
index 9f68c55..eba1b2d 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/package-info.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdattr/package-info.java
@@ -17,5 +17,7 @@
 
 /**
  * Aggregator classes for the entity attributes specification.
+ *
+ * @since 0.9.0
  */
 package net.shibboleth.metadata.dom.saml.mdattr;
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityItemIdentificationStrategy.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityItemIdentificationStrategy.java
index bb25a08..af9a83d 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityItemIdentificationStrategy.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityItemIdentificationStrategy.java
@@ -40,6 +40,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
  * those is present.  The extra identifier is omitted if it is present in a
  * specified blacklist, and it can be mapped to a simpler value for display if
  * desired.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class RegistrationAuthorityItemIdentificationStrategy extends FirstItemIdItemIdentificationStrategy {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/IPHintValidationStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/IPHintValidationStage.java
index d8a7c9f..1be2480 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/IPHintValidationStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/IPHintValidationStage.java
@@ -30,7 +30,9 @@ import net.shibboleth.utilities.java.support.net.IPRange;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
 /**
- * A stage which validates mdui:IPHint elements.
+ * A stage which validates <code>mdui:IPHint</code> elements.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class IPHintValidationStage extends AbstractDOMTraversalStage<DOMTraversalContext> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/MDUISupport.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/MDUISupport.java
index 6ff1d40..b446e09 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/MDUISupport.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/saml/mdui/MDUISupport.java
@@ -48,7 +48,11 @@ public final class MDUISupport {
     /** {@link QName} representing an <code>mdui:PrivacyStatementURL</code>. */
     public static final QName PRIVACYSTATEMENTURL_NAME = new QName(MDUI_NS, "PrivacyStatementURL");
 
-    /** {@link QName} representing an <code>mdui:IPHint</code>. */
+    /**
+     * {@link QName} representing an <code>mdui:IPHint</code>.
+     *
+     * @since 0.10.0
+     */
     public static final QName IPHINT_NAME = new QName(MDUI_NS, "IPHint");
 
     /** Constructor. */
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractFilteringStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractFilteringStage.java
index 88b57d3..02880ca 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractFilteringStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractFilteringStage.java
@@ -31,6 +31,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
  * then optionally remove the item being processed.
  * 
  * @param <T> type of metadata this stage operates upon
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public abstract class AbstractFilteringStage<T> extends AbstractStage<T> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractIteratingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractIteratingStage.java
index 5737712..da27229 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractIteratingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AbstractIteratingStage.java
@@ -29,6 +29,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
  * Base class for {@link Stage} implementations that iterate over each {@link Item} in a collection and do something.
  * 
  * @param <T> type of metadata this stage operates upon
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public abstract class AbstractIteratingStage<T> extends AbstractStage<T> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AtLeastCollectionPredicate.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AtLeastCollectionPredicate.java
index 863e125..6433b43 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AtLeastCollectionPredicate.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/AtLeastCollectionPredicate.java
@@ -25,6 +25,8 @@ import java.util.function.Predicate;
  * in the supplied collection is at least the configured minimum value.
  * 
  * @param <T> type of item element in the collection
+ *
+ * @since 0.9.0
  */
 public class AtLeastCollectionPredicate<T> implements Predicate<Collection<T>> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/FilesInDirectoryMultiOutputStrategy.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/FilesInDirectoryMultiOutputStrategy.java
index e55af98..be8adc9 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/FilesInDirectoryMultiOutputStrategy.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/FilesInDirectoryMultiOutputStrategy.java
@@ -50,6 +50,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * </ul>
  * 
  * @param <T> the type of {@link Item} to operate on
+ *
+ * @since 0.9.2
  */
 public class FilesInDirectoryMultiOutputStrategy<T> extends BaseInitializableComponent
     implements MultiOutputSerializationStage.OutputStrategy<T> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java
index decf685..e527bb9 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemIdTransformStage.java
@@ -36,6 +36,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
  * result of the transform) with the element.
  * 
  * @param <T> type of {@link Item} this stage operates upon
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class ItemIdTransformStage<T> extends AbstractIteratingStage<T> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemMetadataAddingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemMetadataAddingStage.java
index cdf9a29..c6f0893 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemMetadataAddingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemMetadataAddingStage.java
@@ -33,6 +33,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * A pipeline stage that adds a collection of {@link ItemMetadata} objects to each {@link Item}'s item metadata.
  * 
  * @param <T> type of {@link Item} this stage operates upon
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class ItemMetadataAddingStage<T> extends AbstractIteratingStage<T> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStage.java
index 2fa74a1..00fd3c2 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStage.java
@@ -32,6 +32,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * according to a supplied strategy.
  * 
  * @param <T> type of the items to be ordered
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class ItemOrderingStage<T> extends AbstractStage<T> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStrategy.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStrategy.java
index c7aa6a5..ef3b45d 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStrategy.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/ItemOrderingStrategy.java
@@ -30,6 +30,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
  * A strategy that defines how to order a {@link net.shibboleth.metadata.Item} collection.
  *
  * @param <T> type of item to be handled
+ *
+ * @since 0.10.0
  */
 public interface ItemOrderingStrategy<T> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQueryMD5ItemIdTransformer.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQueryMD5ItemIdTransformer.java
index 3f57a2e..aafdefe 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQueryMD5ItemIdTransformer.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQueryMD5ItemIdTransformer.java
@@ -26,7 +26,11 @@ import org.bouncycastle.crypto.digests.MD5Digest;
 import org.cryptacular.util.CodecUtil;
 import org.cryptacular.util.HashUtil;
 
-/** Transforms a string into another string that is the MD5 hash of the original string prepended with "{md5}". */
+/**
+ * Transforms a string into another string that is the MD5 hash of the original string prepended with "{md5}".
+ *
+ * @since 0.9.0
+ */
 @ThreadSafe
 public class MDQueryMD5ItemIdTransformer implements Function<String, String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQuerySHA1ItemIdTransformer.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQuerySHA1ItemIdTransformer.java
index ab23fd0..37ae596 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQuerySHA1ItemIdTransformer.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MDQuerySHA1ItemIdTransformer.java
@@ -25,7 +25,11 @@ import javax.annotation.concurrent.ThreadSafe;
 import org.cryptacular.util.CodecUtil;
 import org.cryptacular.util.HashUtil;
 
-/** Transforms a string into another string that is the SHA1 hash of the original string prepended with "{sha1}". */
+/**
+ * Transforms a string into another string that is the SHA1 hash of the original string prepended with "{sha1}".
+ *
+ * @since 0.9.0
+ */
 @ThreadSafe
 public class MDQuerySHA1ItemIdTransformer implements Function<String, String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStage.java
index 4f3f603..ee16e91 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/MultiOutputSerializationStage.java
@@ -44,6 +44,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * </ul>
  * 
  * @param <T> type of items upon which this stage operates
+ *
+ * @since 0.9.2
  */
 @ThreadSafe
 public class MultiOutputSerializationStage<T> extends AbstractIteratingStage<T> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseIdentifiableInitializableComponent.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseIdentifiableInitializableComponent.java
index 99765f9..a821abe 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseIdentifiableInitializableComponent.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseIdentifiableInitializableComponent.java
@@ -28,6 +28,8 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
 /**
  * Base class extending {@link AbstractIdentifiableInitializableComponent} with helper methods
  * assisting with lifecycle management.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class BaseIdentifiableInitializableComponent extends AbstractIdentifiableInitializableComponent {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseInitializableComponent.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseInitializableComponent.java
index 580d4ce..6436a2b 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseInitializableComponent.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/BaseInitializableComponent.java
@@ -27,6 +27,8 @@ import net.shibboleth.utilities.java.support.component.UnmodifiableComponentExce
 /**
  * Base class extending {@link AbstractInitializableComponent} with helper methods
  * assisting with lifecycle management.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class BaseInitializableComponent extends AbstractInitializableComponent {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/NoOpItemOrderingStrategy.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/NoOpItemOrderingStrategy.java
index cd74f68..4856753 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/NoOpItemOrderingStrategy.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/NoOpItemOrderingStrategy.java
@@ -31,6 +31,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
  * An ordering strategy that simply returns the collection in whatever order it was already in.
  *
  * @param <T> type of item to be handled
+ *
+ * @since 0.10.0
  */
 public class NoOpItemOrderingStrategy<T> implements ItemOrderingStrategy<T> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/package-info.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/package-info.java
index e4e543c..51c33ec 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/package-info.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/impl/package-info.java
@@ -17,5 +17,7 @@
 
 /**
  * Non-API classes for the pipeline package.
+ *
+ * @since 0.10.0
  */
 package net.shibboleth.metadata.pipeline.impl;
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/PathSegmentStringTransformer.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/PathSegmentStringTransformer.java
index 7b7fd83..f139f3a 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/PathSegmentStringTransformer.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/PathSegmentStringTransformer.java
@@ -29,6 +29,8 @@ import com.google.common.net.UrlEscapers;
  * 
  * Note that this is emphatically <i>not</i> the same as {@link java.net.URLEncoder},
  * which is intended for the query parameter use case.
+ *
+ * @since 0.9.2
  */
 public class PathSegmentStringTransformer implements Function<String, String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java
index 5fd8950..6af5e0c 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/RegexFileFilter.java
@@ -31,6 +31,8 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
 /**
  * A {@link FileFilter} implementation that selects files on the basis of a regular expression match against the file
  * name.
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class RegexFileFilter implements FileFilter {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/SHA1StringTransformer.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/SHA1StringTransformer.java
index 063871d..6400f31 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/SHA1StringTransformer.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/util/SHA1StringTransformer.java
@@ -27,6 +27,8 @@ import org.cryptacular.util.HashUtil;
 /**
  * A {@link Function} that transforms a {@link String} into a hex-encoded representation of
  * the SHA-1 digest of the string.
+ *
+ * @since 0.9.2
  */
 public class SHA1StringTransformer implements Function<String, String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/AcceptAllValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/AcceptAllValidator.java
index 995ec82..1e984d6 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/AcceptAllValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/AcceptAllValidator.java
@@ -27,6 +27,8 @@ import net.shibboleth.metadata.Item;
  * to terminate any validator sequence.
  *
  * @param <V> type of the object to be validated
+ *
+ * @since 0.10.0
  */
 public class AcceptAllValidator<V> extends BaseValidator implements Validator<V> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/BaseValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/BaseValidator.java
index e471dcb..e758d0c 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/BaseValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/BaseValidator.java
@@ -30,6 +30,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * 
  * Encapsulates the notion of an identifier for each validator class, and helper
  * methods for constructing status metadata.
+ *
+ * @since 0.9.0
  */
 public abstract class BaseValidator extends BaseIdentifiableInitializableComponent {
 
@@ -40,6 +42,8 @@ public abstract class BaseValidator extends BaseIdentifiableInitializableCompone
      * as an argument.
      *
      * Defaults to <code>"value rejected: '%s'"</code>.
+     *
+     * @since 0.10.0
      */
     @Nonnull
     private String message = "value rejected: '%s'";
@@ -48,6 +52,8 @@ public abstract class BaseValidator extends BaseIdentifiableInitializableCompone
      * Returns the message format string.
      *
      * @return the message format string
+     *
+     * @since 0.10.0
      */
     @Nonnull
     public String getMessage() {
@@ -58,6 +64,8 @@ public abstract class BaseValidator extends BaseIdentifiableInitializableCompone
      * Set the message format string.
      * 
      * @param newMessage the new message format string
+     *
+     * @since 0.10.0
      */
     public void setMessage(@Nonnull final String newMessage) {
         throwSetterPreconditionExceptions();
@@ -131,6 +139,8 @@ public abstract class BaseValidator extends BaseIdentifiableInitializableCompone
      * @param extra extra value to include in the status metadata
      * @param item {@link Item} to add the status metadata to
      * @param stageId component identifier for the calling stage
+     *
+     * @since 0.10.0
      */
     protected void addErrorMessage(@Nonnull final Object extra, @Nonnull final Item<?> item,
             @Nonnull final String stageId) {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/RejectAllValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/RejectAllValidator.java
index bdde905..7663d97 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/RejectAllValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/RejectAllValidator.java
@@ -30,6 +30,8 @@ import net.shibboleth.metadata.Item;
  * The message defaults to a simple rejection message including the object's string value.
  *
  * @param <V> type of the object to be validated
+ *
+ * @since 0.10.0
  */
 public class RejectAllValidator<V> extends BaseValidator implements Validator<V> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/Validator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/Validator.java
index 9bda36f..c7afade 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/Validator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/Validator.java
@@ -29,6 +29,8 @@ import net.shibboleth.utilities.java.support.component.InitializableComponent;
  * Interface for a validator to be applied to an object in the context of a given {@link Item}.
  * 
  * @param <V> type of the object to be validated
+ *
+ * @since 0.9.0
  */
 public interface Validator<V> extends DestructableComponent, IdentifiableComponent,
     InitializableComponent {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/ValidatorSequence.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/ValidatorSequence.java
index f7f6473..6f3a6f6 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/ValidatorSequence.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/ValidatorSequence.java
@@ -36,6 +36,8 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
  * to indicate that one of the called validators returned that value.
  *
  * @param <V> type of the object to be validated
+ *
+ * @since 0.10.0
  */
 public class ValidatorSequence<V> extends BaseValidator implements Validator<V> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/package-info.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/package-info.java
index bfe13e3..19ceebe 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/package-info.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/package-info.java
@@ -17,5 +17,7 @@
 
 /**
  * Classes for validation of specific object types.
+ *
+ * @since 0.9.0
  */
 package net.shibboleth.metadata.validate;
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringRegexValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringRegexValidator.java
index bc3628a..2dc4ead 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringRegexValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringRegexValidator.java
@@ -29,6 +29,8 @@ import net.shibboleth.metadata.validate.Validator;
  *
  * This validator returns {@link net.shibboleth.metadata.validate.Validator.Action#DONE}
  * if the entire value is matched by the regular expression, thus terminating any validator sequence.
+ *
+ * @since 0.10.0
  */
 public class AcceptStringRegexValidator extends BaseStringRegexValidator implements Validator<String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringValueValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringValueValidator.java
index 109f6dd..c2de229 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringValueValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/AcceptStringValueValidator.java
@@ -27,6 +27,8 @@ import net.shibboleth.metadata.validate.Validator;
  *
  * This validator returns {@link net.shibboleth.metadata.validate.Validator.Action#DONE}
  * if the value is matched, thus terminating any validator sequence.
+ *
+ * @since 0.10.0
  */
 public class AcceptStringValueValidator extends BaseStringValueValidator implements Validator<String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringRegexValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringRegexValidator.java
index b4fd215..49f14a7 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringRegexValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringRegexValidator.java
@@ -27,6 +27,8 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
 
 /**
  * A base class for <code>Validator</code>s that match {@link String} values against a regular expression.
+ *
+ * @since 0.10.0
  */
 public abstract class BaseStringRegexValidator extends BaseValidator {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringValueValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringValueValidator.java
index 3911a90..d4301cb 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringValueValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/BaseStringValueValidator.java
@@ -25,6 +25,8 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
 
 /**
  * A base class for <code>Validator</code>s that match {@link String} values.
+ *
+ * @since 0.10.0
  */
 public abstract class BaseStringValueValidator extends BaseValidator {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringRegexValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringRegexValidator.java
index 1f82b55..ce3d530 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringRegexValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringRegexValidator.java
@@ -29,6 +29,8 @@ import net.shibboleth.metadata.validate.Validator;
  *
  * This validator returns {@link net.shibboleth.metadata.validate.Validator.Action#DONE}
  * if the entire value is matched by the regular expression, thus terminating any validator sequence.
+ *
+ * @since 0.10.0
  */
 public class RejectStringRegexValidator extends BaseStringRegexValidator implements Validator<String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringValueValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringValueValidator.java
index 30acff1..d9ced43 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringValueValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/RejectStringValueValidator.java
@@ -27,6 +27,8 @@ import net.shibboleth.metadata.validate.Validator;
  *
  * This validator returns {@link net.shibboleth.metadata.validate.Validator.Action#DONE}
  * if the value is matched, thus terminating any validator sequence.
+ *
+ * @since 0.10.0
  */
 public class RejectStringValueValidator extends BaseStringValueValidator implements Validator<String> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/package-info.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/package-info.java
index 34555ca..fb7ed8c 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/package-info.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/string/package-info.java
@@ -17,5 +17,7 @@
 
 /**
  * Validation classes for {@link java.lang.String} values.
+ *
+ * @since 0.10.0
  */
 package net.shibboleth.metadata.validate.string;
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/AbstractX509Validator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/AbstractX509Validator.java
index 4f76718..0196206 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/AbstractX509Validator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/AbstractX509Validator.java
@@ -31,6 +31,8 @@ import net.shibboleth.metadata.validate.Validator;
  *
  * X.509 certificate issues are almost always independent, so simplify the validator interface
  * by delegation.
+ *
+ * @since 0.9.0
  */
 public abstract class AbstractX509Validator extends BaseValidator implements Validator<X509Certificate> {
 
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java
index 3d9c12f..b331bbb 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509DSADetector.java
@@ -44,6 +44,8 @@ import net.shibboleth.metadata.validate.Validator;
  * <p>The {@link #action} property may be set to
  * {@link net.shibboleth.metadata.validate.Validator.Action#CONTINUE} if there is a need to
  * perform additional validation on a DSA certificate.</p>
+ *
+ * @since 0.10.0
  */
 @ThreadSafe
 public class X509DSADetector extends BaseValidator implements Validator<X509Certificate> {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509ROCAValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509ROCAValidator.java
index 4118281..4f49233 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509ROCAValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509ROCAValidator.java
@@ -31,6 +31,8 @@ import net.shibboleth.metadata.Item;
  * Validator class to check that X.509 certificate public keys are not
  * affected by the Return of Coppersmith Attack (ROCA, CVE-2017-15361).
  *
+ * @since 0.10.0
+ *
  * @see <a href="https://crocs.fi.muni.cz/public/papers/rsa_ccs17">ROCA paper</a>
  */
 @ThreadSafe
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAExponentValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAExponentValidator.java
index a528ca5..7ae486c 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAExponentValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAExponentValidator.java
@@ -37,6 +37,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * 
  * This NIST recommendation is for at least 65537 (2**16+1) but it's not obvious where
  * this came from so doesn't seem worth insisting on by default.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class X509RSAExponentValidator extends AbstractX509Validator {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAKeyLengthValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAKeyLengthValidator.java
index 752d3c7..6eb0880 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAKeyLengthValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAKeyLengthValidator.java
@@ -35,6 +35,8 @@ import net.shibboleth.metadata.Item;
  * 
  * During the transition to 2048-bit keys, it may be appropriate to set the warning
  * boundary to 2048 bits and the error boundary to 1024 bits.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class X509RSAKeyLengthValidator extends AbstractX509Validator {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAOpenSSLBlacklistValidator.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAOpenSSLBlacklistValidator.java
index f58d2a4..88a29c9 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAOpenSSLBlacklistValidator.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/X509RSAOpenSSLBlacklistValidator.java
@@ -47,6 +47,8 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * Validator class to check RSA moduli in X.509 certificates against a OpenSSL-format
  * blacklist. Appropriate blacklists are available as part of the Debian 7.x
  * openssl-blacklist and openssl-blacklist-extra packages.
+ *
+ * @since 0.9.0
  */
 @ThreadSafe
 public class X509RSAOpenSSLBlacklistValidator extends AbstractX509Validator {
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/package-info.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/package-info.java
index a8f8bbf..029deb3 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/package-info.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/validate/x509/package-info.java
@@ -17,6 +17,8 @@
 
 /**
  * Validation classes for X.509 certificate objects.
+ *
+ * @since 0.9.0
  */
 
 package net.shibboleth.metadata.validate.x509;

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


More information about the commits mailing list