Class DefaultMirrorSelector

java.lang.Object
org.eclipse.aether.util.repository.DefaultMirrorSelector
All Implemented Interfaces:
MirrorSelector

public final class DefaultMirrorSelector extends Object implements MirrorSelector
A simple mirror selector that selects mirrors based on repository identifiers.
  • Field Details

  • Constructor Details

    • DefaultMirrorSelector

      public DefaultMirrorSelector()
  • Method Details

    • add

      @Deprecated public DefaultMirrorSelector add(String id, String url, String type, boolean repositoryManager, String mirrorOfIds, String mirrorOfTypes)
      Deprecated.
    • add

      public DefaultMirrorSelector add(String id, String url, String type, boolean repositoryManager, boolean blocked, String mirrorOfIds, String mirrorOfTypes)
      Adds the specified mirror to this selector.
      Parameters:
      id - The identifier of the mirror, must not be null.
      url - The URL of the mirror, must not be null.
      type - The content type of the mirror, must not be null.
      repositoryManager - A flag whether the mirror is a repository manager or a simple server.
      blocked - A flag whether the mirror is blocked from performing any download requests.
      mirrorOfIds - The identifier(s) of remote repositories to mirror, must not be null. Multiple identifiers can be separated by comma and additionally the wildcards "*", "external:http:*" and "external:*" can be used to match all (external) repositories, prefixing a repo id with an exclamation mark allows to express an exclusion. For example "external:*,!central".
      mirrorOfTypes - The content type(s) of remote repositories to mirror, may be null or empty to match any content type. Similar to the repo id specification, multiple types can be comma-separated, the wildcard "*" and the "!" negation syntax are supported. For example "*,!p2".
      Returns:
      This selector for chaining, never null.
    • getMirror

      public RemoteRepository getMirror(RemoteRepository repository)
      Description copied from interface: MirrorSelector
      Selects a mirror for the specified repository.
      Specified by:
      getMirror in interface MirrorSelector
      Parameters:
      repository - The repository to select a mirror for, must not be null.
      Returns:
      The selected mirror or null if none.
      See Also:
    • findMirror

      private DefaultMirrorSelector.MirrorDef findMirror(RemoteRepository repository)
    • matchPattern

      static boolean matchPattern(RemoteRepository repository, String pattern)
      This method checks if the pattern matches the originalRepository. Valid patterns:
      • * = everything,
      • external:* = everything not on the localhost and not file based,
      • external:http:* = any repository not on the localhost using HTTP,
      • repo,repo1 = repo or repo1,
      • *,!repo1 = everything except repo1.
      Parameters:
      repository - to compare for a match.
      pattern - used for match.
      Returns:
      true if the repository is a match to this pattern.
    • isExternalRepo

      static boolean isExternalRepo(RemoteRepository repository)
      Checks the URL to see if this repository refers to an external repository.
      Parameters:
      repository - The repository to check, must not be null.
      Returns:
      true if external, false otherwise.
    • isLocal

      private static boolean isLocal(String host)
    • isExternalHttpRepo

      static boolean isExternalHttpRepo(RemoteRepository repository)
      Checks the URL to see if this repository refers to a non-localhost repository using HTTP.
      Parameters:
      repository - The repository to check, must not be null.
      Returns:
      true if external, false otherwise.
    • matchesType

      static boolean matchesType(String repoType, String mirrorType)
      Checks whether the types configured for a mirror match with the type of the repository.
      Parameters:
      repoType - The type of the repository, may be null.
      mirrorType - The types supported by the mirror, may be null.
      Returns:
      true if the types associated with the mirror match the type of the original repository, false otherwise.