Class ChannelMavenArtifactRepositoryManager

java.lang.Object
org.wildfly.plugin.provision.ChannelMavenArtifactRepositoryManager
All Implemented Interfaces:
org.jboss.galleon.api.MavenStreamResolver, org.jboss.galleon.repo.RepositoryArtifactResolver, org.jboss.galleon.universe.maven.repo.MavenRepoManager, org.wildfly.channel.spi.ChannelResolvable

public class ChannelMavenArtifactRepositoryManager extends Object implements org.jboss.galleon.universe.maven.repo.MavenRepoManager, org.wildfly.channel.spi.ChannelResolvable, org.jboss.galleon.api.MavenStreamResolver
  • Constructor Details

    • ChannelMavenArtifactRepositoryManager

      public ChannelMavenArtifactRepositoryManager(List<ChannelConfiguration> channels, org.eclipse.aether.RepositorySystem system, org.eclipse.aether.RepositorySystemSession contextSession, List<org.eclipse.aether.repository.RemoteRepository> repositories, org.apache.maven.plugin.logging.Log log, boolean offline) throws MalformedURLException, org.wildfly.channel.UnresolvedMavenArtifactException, org.apache.maven.plugin.MojoExecutionException
      Throws:
      MalformedURLException
      org.wildfly.channel.UnresolvedMavenArtifactException
      org.apache.maven.plugin.MojoExecutionException
  • Method Details

    • resolveAll

      public void resolveAll(Collection<org.jboss.galleon.universe.maven.MavenArtifact> artifacts) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Bulk artifact pre-fetch. The default MavenRepoManager.resolveAll(Collection) iterates resolve(MavenArtifact) sequentially: one HTTP round-trip per artifact, dominating cold-cache provisioning time. This override pre-fetches all artifacts that already have a concrete version in one call to Aether's RepositorySystem.resolveArtifacts(RepositorySystemSession, java.util.Collection), which uses Aether's connector thread pool (default 5 threads) to download in parallel. After the pre-fetch every resolve(MavenArtifact) call hits the local cache.

      This path is only triggered when the Galleon provisioning option jboss-bulk-resolve-artifacts is set to true (see WfInstallPlugin.resolveArtifactsInCache). Without that option the upstream plugin keeps calling resolve(MavenArtifact) per artifact and this override is unused.

      The set of artifacts must be split in 2 groups, the ones that require resolution from the channel, the ones that can be resolved directly. The failure handling is different in the two groups.

      Specified by:
      resolveAll in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • resolve

      public void resolve(org.jboss.galleon.universe.maven.MavenArtifact artifact) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      resolve in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • done

      public void done(Path home) throws org.jboss.galleon.universe.maven.MavenUniverseException, IOException
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
      IOException
    • resolveLatestVersion

      public void resolveLatestVersion(org.jboss.galleon.universe.maven.MavenArtifact artifact) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      resolveLatestVersion in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • isResolved

      public boolean isResolved(org.jboss.galleon.universe.maven.MavenArtifact artifact) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      isResolved in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • isLatestVersionResolved

      public boolean isLatestVersionResolved(org.jboss.galleon.universe.maven.MavenArtifact artifact, String lowestQualifier) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      isLatestVersionResolved in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • resolveLatestVersion

      public void resolveLatestVersion(org.jboss.galleon.universe.maven.MavenArtifact artifact, String lowestQualifier, Pattern includeVersion, Pattern excludeVersion) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      resolveLatestVersion in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • resolveLatestVersion

      public void resolveLatestVersion(org.jboss.galleon.universe.maven.MavenArtifact artifact, String lowestQualifier, boolean locallyAvailable) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      resolveLatestVersion in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • getLatestVersion

      public String getLatestVersion(org.jboss.galleon.universe.maven.MavenArtifact artifact) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      getLatestVersion in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • getLatestVersion

      public String getLatestVersion(org.jboss.galleon.universe.maven.MavenArtifact artifact, String lowestQualifier) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      getLatestVersion in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • getLatestVersion

      public String getLatestVersion(org.jboss.galleon.universe.maven.MavenArtifact artifact, String lowestQualifier, Pattern includeVersion, Pattern excludeVersion) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      getLatestVersion in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • getAllVersions

      public List<String> getAllVersions(org.jboss.galleon.universe.maven.MavenArtifact artifact) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      getAllVersions in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • getAllVersions

      public List<String> getAllVersions(org.jboss.galleon.universe.maven.MavenArtifact artifact, Pattern includeVersion, Pattern excludeVersion) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      getAllVersions in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • install

      public void install(org.jboss.galleon.universe.maven.MavenArtifact artifact, Path path) throws org.jboss.galleon.universe.maven.MavenUniverseException
      Specified by:
      install in interface org.jboss.galleon.universe.maven.repo.MavenRepoManager
      Throws:
      org.jboss.galleon.universe.maven.MavenUniverseException
    • getLatestVersion

      public String getLatestVersion(String groupId, String artifactId, String extension, String classifier, String baseVersion)
      Specified by:
      getLatestVersion in interface org.jboss.galleon.api.MavenStreamResolver