Class DefaultVersionFilterBuilder

  • All Implemented Interfaces:
    org.eclipse.aether.collection.VersionFilterBuilder

    @Singleton
    @Named
    public class DefaultVersionFilterBuilder
    extends java.lang.Object
    implements org.eclipse.aether.collection.VersionFilterBuilder
    Builds VersionFilter instances out of input expression string. Expression is a semicolon separated list of filters to apply. By default, no version filter is applied (like in Maven 3).
    Supported filters:
    • "s" - contextual snapshot filter (project version decides are snapshots allowed or not)
    • "nosnapshot" - unconditional snapshot filter (no snapshot versions selected from ranges)
    • "norelease" - unconditional release filter (no release versions selected from ranges)
    • "nopreview" - unconditional preview filter (no preview versions selected from ranges)
    • "noprerelease" - unconditional pre-release filter (no preview and rc/cr versions selected from ranges)
    • "noqualifier" - unconditional any-qualifier filter (no version with any qualifier selected from ranges)
    • "h" (shorthand of h(1)) or "h(num)" - highest N version (based on version ordering)
    • "l" (shorthand of l(1)) or "l(num)" - lowest N version (based on version ordering)
    • "e(V)" - exclusion filter (excludes versions matching V version constraint)
    • "i(V)" - inclusion filter (includes versions matching V version constraint)
    Every filter expression may have "scope" applied, in form of @G[:A]. Presence of "scope" narrows the application of filter to given G or G:A.

    In case of multiple "similar" rule scopes, user should enlist rules from "most specific" to "least specific".

    Example filter expression: "h(5);s;e(1)@org.foo:bar will cause:

    • ranges are filtered for "top 5" (instead of full range)
    • snapshots are banned if root project is not a snapshot
    • if range for org.foo:bar is being processed, version 1 is omitted
    Values in this property builds org.eclipse.aether.collection.VersionFilter instance.
    Since:
    2.0.18
    • Field Summary

      • Fields inherited from interface org.eclipse.aether.collection.VersionFilterBuilder

        VERSION_FILTER_SUPPRESSED
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Optional<org.eclipse.aether.collection.VersionFilter> buildVersionFilter​(java.lang.String filterExpression, java.util.function.Function<java.lang.String,​org.eclipse.aether.version.VersionConstraint> versionConstraintParser)
      Builds a version filter based on the given filter expression.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • buildVersionFilter

        public java.util.Optional<org.eclipse.aether.collection.VersionFilter> buildVersionFilter​(java.lang.String filterExpression,
                                                                                                  java.util.function.Function<java.lang.String,​org.eclipse.aether.version.VersionConstraint> versionConstraintParser)
        Builds a version filter based on the given filter expression.
        Specified by:
        buildVersionFilter in interface org.eclipse.aether.collection.VersionFilterBuilder
        Parameters:
        filterExpression - a string containing filter expressions, may be null.
        versionConstraintParser - version constraint parts to be used during parsing, must not be null.
        Returns:
        optional version filter, never null.