Search in sources :

Example 11 with Wagon

use of org.apache.maven.wagon.Wagon in project maven-plugins by apache.

the class RepositoryUtils method dependencyExistsInRepo.

/**
 * @param repo not null
 * @param artifact not null
 * @return <code>true</code> if the artifact exists in the given repo, <code>false</code> otherwise or if
 * the repo is blacklisted.
 */
public boolean dependencyExistsInRepo(ArtifactRepository repo, Artifact artifact) {
    if (repo.isBlacklisted()) {
        if (log.isDebugEnabled()) {
            log.debug("The repo '" + repo.getId() + "' is black listed - Ignored it");
        }
        return false;
    }
    if (UNKNOWN_HOSTS.contains(repo.getUrl())) {
        if (log.isDebugEnabled()) {
            log.debug("The repo url '" + repo.getUrl() + "' is unknown - Ignored it");
        }
        return false;
    }
    repo = wagonManager.getMirrorRepository(repo);
    String id = repo.getId();
    Repository repository = new Repository(id, repo.getUrl());
    Wagon wagon;
    try {
        wagon = wagonManager.getWagon(repository);
    } catch (UnsupportedProtocolException e) {
        logError("Unsupported protocol: '" + repo.getProtocol() + "'", e);
        return false;
    } catch (WagonConfigurationException e) {
        logError("Unsupported protocol: '" + repo.getProtocol() + "'", e);
        return false;
    }
    wagon.setTimeout(1000);
    if (log.isDebugEnabled()) {
        Debug debug = new Debug();
        wagon.addSessionListener(debug);
        wagon.addTransferListener(debug);
    }
    try {
        // FIXME when upgrading to maven 3.x : this must be changed.
        AuthenticationInfo auth = wagonManager.getAuthenticationInfo(repo.getId());
        ProxyInfo proxyInfo = getProxyInfo();
        if (proxyInfo != null) {
            wagon.connect(repository, auth, proxyInfo);
        } else {
            wagon.connect(repository, auth);
        }
        return wagon.resourceExists(StringUtils.replace(getDependencyUrlFromRepository(artifact, repo), repo.getUrl(), ""));
    } catch (ConnectionException e) {
        logError("Unable to connect to: " + repo.getUrl(), e);
        return false;
    } catch (AuthenticationException e) {
        logError("Unable to connect to: " + repo.getUrl(), e);
        return false;
    } catch (TransferFailedException e) {
        if (e.getCause() instanceof UnknownHostException) {
            log.error("Unknown host " + e.getCause().getMessage() + " - ignored it");
            UNKNOWN_HOSTS.add(repo.getUrl());
        } else {
            logError("Unable to determine if resource " + artifact + " exists in " + repo.getUrl(), e);
        }
        return false;
    } catch (AuthorizationException e) {
        logError("Unable to connect to: " + repo.getUrl(), e);
        return false;
    } catch (AbstractMethodError e) {
        log.error("Wagon " + wagon.getClass().getName() + " does not support the resourceExists method");
        return false;
    } finally {
        try {
            wagon.disconnect();
        } catch (ConnectionException e) {
            logError("Error disconnecting wagon - ignored", e);
        }
    }
}
Also used : UnknownHostException(java.net.UnknownHostException) AuthenticationException(org.apache.maven.wagon.authentication.AuthenticationException) AuthorizationException(org.apache.maven.wagon.authorization.AuthorizationException) WagonConfigurationException(org.apache.maven.artifact.manager.WagonConfigurationException) UnsupportedProtocolException(org.apache.maven.wagon.UnsupportedProtocolException) Wagon(org.apache.maven.wagon.Wagon) AuthenticationInfo(org.apache.maven.wagon.authentication.AuthenticationInfo) ProxyInfo(org.apache.maven.wagon.proxy.ProxyInfo) Repository(org.apache.maven.wagon.repository.Repository) ArtifactRepository(org.apache.maven.artifact.repository.ArtifactRepository) TransferFailedException(org.apache.maven.wagon.TransferFailedException) Debug(org.apache.maven.wagon.observers.Debug) ConnectionException(org.apache.maven.wagon.ConnectionException)

Example 12 with Wagon

use of org.apache.maven.wagon.Wagon in project sonatype-aether by sonatype.

the class WagonRepositoryConnector method pollWagon.

Wagon pollWagon() throws Exception {
    Wagon wagon = wagons.poll();
    if (wagon == null) {
        try {
            wagon = lookupWagon();
            connectWagon(wagon);
        } catch (Exception e) {
            releaseWagon(wagon);
            throw e;
        }
    } else if (wagon.getRepository() == null) {
        try {
            connectWagon(wagon);
        } catch (Exception e) {
            wagons.add(wagon);
            throw e;
        }
    }
    return wagon;
}
Also used : StreamingWagon(org.apache.maven.wagon.StreamingWagon) Wagon(org.apache.maven.wagon.Wagon) NoRepositoryConnectorException(org.sonatype.aether.transfer.NoRepositoryConnectorException) ArtifactTransferException(org.sonatype.aether.transfer.ArtifactTransferException) ChecksumFailureException(org.sonatype.aether.transfer.ChecksumFailureException) MetadataNotFoundException(org.sonatype.aether.transfer.MetadataNotFoundException) ArtifactNotFoundException(org.sonatype.aether.transfer.ArtifactNotFoundException) IOException(java.io.IOException) MetadataTransferException(org.sonatype.aether.transfer.MetadataTransferException) WagonException(org.apache.maven.wagon.WagonException) ResourceDoesNotExistException(org.apache.maven.wagon.ResourceDoesNotExistException)

Example 13 with Wagon

use of org.apache.maven.wagon.Wagon in project archiva by apache.

the class DefaultWagonFactory method getWagon.

@Override
public Wagon getWagon(WagonFactoryRequest wagonFactoryRequest) throws WagonFactoryException {
    try {
        String protocol = StringUtils.startsWith(wagonFactoryRequest.getProtocol(), "wagon#") ? wagonFactoryRequest.getProtocol() : "wagon#" + wagonFactoryRequest.getProtocol();
        // wagon http client doesn't support that
        if (wagonFactoryRequest.getNetworkProxy() != null && wagonFactoryRequest.getNetworkProxy().isUseNtlm()) {
            protocol = protocol + "-ntlm";
        }
        Wagon wagon = applicationContext.getBean(protocol, Wagon.class);
        wagon.addTransferListener(debugTransferListener);
        configureUserAgent(wagon, wagonFactoryRequest);
        return wagon;
    } catch (BeansException e) {
        throw new WagonFactoryException(e.getMessage(), e);
    }
}
Also used : Wagon(org.apache.maven.wagon.Wagon) BeansException(org.springframework.beans.BeansException)

Example 14 with Wagon

use of org.apache.maven.wagon.Wagon in project archiva by apache.

the class WagonFactoryTest method testLookupSuccessiveWagons.

@Test
public void testLookupSuccessiveWagons() throws Exception {
    Wagon first = factory.getWagon(new WagonFactoryRequest().protocol("wagon#file"));
    Wagon second = factory.getWagon(new WagonFactoryRequest().protocol("wagon#file"));
    // ensure we support only protocol name too
    Wagon third = factory.getWagon(new WagonFactoryRequest().protocol("file"));
    assertNotSame(first, second);
    assertNotSame(first, third);
}
Also used : Wagon(org.apache.maven.wagon.Wagon) Test(org.junit.Test)

Example 15 with Wagon

use of org.apache.maven.wagon.Wagon in project archiva by apache.

the class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest method setUp.

@Before
@Override
public void setUp() throws Exception {
    super.setUp();
    c = new Configuration();
    testRepo = new ManagedRepositoryConfiguration();
    testRepo.setId(TEST_REPO_ID);
    testRepo.setLocation(Paths.get("target/test-repository").toAbsolutePath().toString());
    testRepo.setReleases(true);
    testRepo.setSnapshots(false);
    c.addManagedRepository(testRepo);
    testRepoS = new ManagedRepositoryConfiguration();
    testRepoS.setId(TEST_SNAP_REPO_ID);
    testRepoS.setLocation(Paths.get("target/test-repositorys").toAbsolutePath().toString());
    testRepoS.setReleases(false);
    testRepoS.setSnapshots(true);
    c.addManagedRepository(testRepoS);
    RemoteRepositoryConfiguration testRemoteRepo = new RemoteRepositoryConfiguration();
    testRemoteRepo.setId(TEST_REMOTE_REPO_ID);
    testRemoteRepo.setLayout("default");
    testRemoteRepo.setName("Central Repository");
    testRemoteRepo.setUrl("http://central.repo.com/maven2");
    testRemoteRepo.setTimeout(10);
    c.addRemoteRepository(testRemoteRepo);
    ProxyConnectorConfiguration proxyConnector = new ProxyConnectorConfiguration();
    proxyConnector.setSourceRepoId(TEST_REPO_ID);
    proxyConnector.setTargetRepoId(TEST_REMOTE_REPO_ID);
    proxyConnector.setDisabled(false);
    c.addProxyConnector(proxyConnector);
    ProxyConnectorConfiguration proxyConnectors = new ProxyConnectorConfiguration();
    proxyConnectors.setSourceRepoId(TEST_SNAP_REPO_ID);
    proxyConnectors.setTargetRepoId(TEST_REMOTE_REPO_ID);
    proxyConnectors.setDisabled(false);
    c.addProxyConnector(proxyConnectors);
    List<String> repos = new ArrayList<>();
    repos.add(TEST_REPO_ID);
    repos.add(TEST_SNAP_REPO_ID);
    RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration();
    repoGroup.setId(TEST_REPO_GROUP_ID);
    repoGroup.setRepositories(repos);
    c.addRepositoryGroup(repoGroup);
    configuration.save(c);
    repositoryRegistry.reload();
    assertFalse(c.getManagedRepositories().get(0).isSnapshots());
    assertTrue(c.getManagedRepositories().get(0).isReleases());
    assertTrue(c.getManagedRepositories().get(1).isSnapshots());
    assertFalse(c.getManagedRepositories().get(1).isReleases());
    wagonFactory = mock(WagonFactory.class);
    storage.setWagonFactory(wagonFactory);
    Wagon wagon = new MockWagon();
    when(wagonFactory.getWagon(new WagonFactoryRequest().protocol("wagon#http"))).thenReturn(wagon);
}
Also used : RepositoryGroupConfiguration(org.apache.archiva.configuration.RepositoryGroupConfiguration) WagonFactoryRequest(org.apache.archiva.proxy.common.WagonFactoryRequest) ArchivaConfiguration(org.apache.archiva.configuration.ArchivaConfiguration) RepositoryGroupConfiguration(org.apache.archiva.configuration.RepositoryGroupConfiguration) ProxyConnectorConfiguration(org.apache.archiva.configuration.ProxyConnectorConfiguration) ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration) RemoteRepositoryConfiguration(org.apache.archiva.configuration.RemoteRepositoryConfiguration) ContextConfiguration(org.springframework.test.context.ContextConfiguration) Configuration(org.apache.archiva.configuration.Configuration) ManagedRepositoryConfiguration(org.apache.archiva.configuration.ManagedRepositoryConfiguration) ArrayList(java.util.ArrayList) RemoteRepositoryConfiguration(org.apache.archiva.configuration.RemoteRepositoryConfiguration) ProxyConnectorConfiguration(org.apache.archiva.configuration.ProxyConnectorConfiguration) WagonFactory(org.apache.archiva.proxy.common.WagonFactory) Wagon(org.apache.maven.wagon.Wagon) Before(org.junit.Before)

Aggregations

Wagon (org.apache.maven.wagon.Wagon)16 WagonFactoryRequest (org.apache.archiva.proxy.common.WagonFactoryRequest)6 ConnectionException (org.apache.maven.wagon.ConnectionException)5 ProxyInfo (org.apache.maven.wagon.proxy.ProxyInfo)4 Repository (org.apache.maven.wagon.repository.Repository)4 NetworkProxy (org.apache.archiva.admin.model.beans.NetworkProxy)3 ArchivaConfiguration (org.apache.archiva.configuration.ArchivaConfiguration)3 Configuration (org.apache.archiva.configuration.Configuration)3 ManagedRepositoryConfiguration (org.apache.archiva.configuration.ManagedRepositoryConfiguration)3 ProxyConnectorConfiguration (org.apache.archiva.configuration.ProxyConnectorConfiguration)3 RemoteRepositoryConfiguration (org.apache.archiva.configuration.RemoteRepositoryConfiguration)3 WagonFactory (org.apache.archiva.proxy.common.WagonFactory)3 ArtifactRepository (org.apache.maven.artifact.repository.ArtifactRepository)3 TransferFailedException (org.apache.maven.wagon.TransferFailedException)3 UnsupportedProtocolException (org.apache.maven.wagon.UnsupportedProtocolException)3 AuthenticationInfo (org.apache.maven.wagon.authentication.AuthenticationInfo)3 Before (org.junit.Before)3 ContextConfiguration (org.springframework.test.context.ContextConfiguration)3 File (java.io.File)2 IOException (java.io.IOException)2