Search in sources :

Example 41 with RemoteRepository

use of org.eclipse.aether.repository.RemoteRepository in project kie-soup by kiegroup.

the class MavenRepositoryTest method testProxy.

@Test
public void testProxy() {
    MavenRepositoryMock.setCustomSettingsFileName("settings_custom.xml");
    final MavenRepository repo = new MavenRepositoryMock(Aether.getAether());
    final Collection<RemoteRepository> remoteRepos = repo.getRemoteRepositoriesForRequest();
    final Set<RemoteRepository> testServerRepos = remoteRepos.stream().filter(r -> r.getId().equals("test-server")).collect(Collectors.toSet());
    assertEquals(2, testServerRepos.size());
    for (RemoteRepository remoteRepository : testServerRepos) {
        assertNotNull(remoteRepository.getProxy());
    }
}
Also used : SettingsBuilder(org.apache.maven.settings.building.SettingsBuilder) Assert.assertNotNull(org.junit.Assert.assertNotNull) Collection(java.util.Collection) Set(java.util.Set) DefaultSettingsBuildingRequest(org.apache.maven.settings.building.DefaultSettingsBuildingRequest) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) DefaultSettingsBuilderFactory(org.apache.maven.settings.building.DefaultSettingsBuilderFactory) SettingsBuildingException(org.apache.maven.settings.building.SettingsBuildingException) Settings(org.apache.maven.settings.Settings) Collectors(java.util.stream.Collectors) File(java.io.File) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) Assert.assertNull(org.junit.Assert.assertNull) Assert.assertEquals(org.junit.Assert.assertEquals) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) Test(org.junit.Test)

Example 42 with RemoteRepository

use of org.eclipse.aether.repository.RemoteRepository in project kie-soup by kiegroup.

the class MavenRepository method getArtifactDependecies.

public List<DependencyDescriptor> getArtifactDependecies(String artifactName) {
    Artifact artifact = new DefaultArtifact(artifactName);
    CollectRequest collectRequest = new CollectRequest();
    Dependency root = new Dependency(artifact, "");
    collectRequest.setRoot(root);
    for (RemoteRepository repo : remoteRepositoriesForRequest) {
        collectRequest.addRepository(repo);
    }
    CollectResult collectResult;
    try {
        collectResult = aether.getSystem().collectDependencies(aether.getSession(), collectRequest);
    } catch (DependencyCollectionException e) {
        throw new RuntimeException(e);
    }
    CollectDependencyVisitor visitor = new CollectDependencyVisitor();
    collectResult.getRoot().accept(visitor);
    List<DependencyDescriptor> descriptors = new ArrayList<DependencyDescriptor>();
    for (DependencyNode node : visitor.getDependencies()) {
        // skip root to not add artifact as dependency
        if (node.getDependency().equals(root)) {
            continue;
        }
        descriptors.add(new DependencyDescriptor(node.getDependency().getArtifact()));
    }
    return descriptors;
}
Also used : DependencyCollectionException(org.eclipse.aether.collection.DependencyCollectionException) CollectResult(org.eclipse.aether.collection.CollectResult) ArrayList(java.util.ArrayList) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) Dependency(org.eclipse.aether.graph.Dependency) CollectRequest(org.eclipse.aether.collection.CollectRequest) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) Artifact(org.eclipse.aether.artifact.Artifact) DependencyNode(org.eclipse.aether.graph.DependencyNode) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact)

Example 43 with RemoteRepository

use of org.eclipse.aether.repository.RemoteRepository in project kie-soup by kiegroup.

the class MavenRepository method resolveVersion.

public Version resolveVersion(String artifactName) {
    Artifact artifact = new DefaultArtifact(artifactName);
    VersionRangeRequest versionRequest = new VersionRangeRequest();
    versionRequest.setArtifact(artifact);
    for (RemoteRepository repo : remoteRepositoriesForRequest) {
        versionRequest.addRepository(repo);
    }
    try {
        VersionRangeResult versionRangeResult = aether.getSystem().resolveVersionRange(aether.getSession(), versionRequest);
        return versionRangeResult.getHighestVersion();
    } catch (VersionRangeResolutionException e) {
        if (log.isDebugEnabled()) {
            log.debug("Unable to resolve version range for artifact: " + artifactName, e);
        } else {
            log.warn("Unable to resolve version range for artifact: " + artifactName);
        }
        return null;
    }
}
Also used : VersionRangeResult(org.eclipse.aether.resolution.VersionRangeResult) VersionRangeRequest(org.eclipse.aether.resolution.VersionRangeRequest) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) Artifact(org.eclipse.aether.artifact.Artifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) VersionRangeResolutionException(org.eclipse.aether.resolution.VersionRangeResolutionException)

Example 44 with RemoteRepository

use of org.eclipse.aether.repository.RemoteRepository in project kie-soup by kiegroup.

the class Aether method newLocalRepository.

private RemoteRepository newLocalRepository() {
    File m2RepoDir = new File(localRepoDir);
    try {
        if (!m2RepoDir.exists()) {
            log.info("The local repository directory " + localRepoDir + " doesn't exist. Creating it.");
            m2RepoDir.mkdirs();
        }
        String localRepositoryUrl = m2RepoDir.toURI().toURL().toExternalForm();
        return new RemoteRepository.Builder("local", "default", localRepositoryUrl).build();
    } catch (Exception e) {
        try {
            log.warn("Cannot use directory " + localRepoDir + " as local repository.", e);
            localRepoDir = IoUtils.getTmpDirectory().getAbsolutePath();
            log.warn("Using the temporary directory " + localRepoDir + " as local repository");
            m2RepoDir = new File(localRepoDir);
            String localRepositoryUrl = m2RepoDir.toURI().toURL().toExternalForm();
            return new RemoteRepository.Builder("local", "default", localRepositoryUrl).build();
        } catch (Exception e1) {
            log.warn("Cannot create a local repository in " + localRepoDir, e1);
        }
    }
    return null;
}
Also used : RemoteRepository(org.eclipse.aether.repository.RemoteRepository) File(java.io.File)

Example 45 with RemoteRepository

use of org.eclipse.aether.repository.RemoteRepository in project maven by apache.

the class DefaultArtifactDeployer method deploy.

public void deploy(File source, Artifact artifact, ArtifactRepository deploymentRepository, ArtifactRepository localRepository) throws ArtifactDeploymentException {
    RepositorySystemSession session = LegacyLocalRepositoryManager.overlay(localRepository, legacySupport.getRepositorySession(), repoSystem);
    DeployRequest request = new DeployRequest();
    request.setTrace(RequestTrace.newChild(null, legacySupport.getSession().getCurrentProject()));
    org.eclipse.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact(artifact);
    mainArtifact = mainArtifact.setFile(source);
    request.addArtifact(mainArtifact);
    String versionKey = artifact.getGroupId() + ':' + artifact.getArtifactId();
    String snapshotKey = null;
    if (artifact.isSnapshot()) {
        snapshotKey = versionKey + ':' + artifact.getBaseVersion();
        request.addMetadata(relatedMetadata.get(snapshotKey));
    }
    request.addMetadata(relatedMetadata.get(versionKey));
    for (ArtifactMetadata metadata : artifact.getMetadataList()) {
        if (metadata instanceof ProjectArtifactMetadata) {
            org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact(mainArtifact, "", "pom");
            pomArtifact = pomArtifact.setFile(((ProjectArtifactMetadata) metadata).getFile());
            request.addArtifact(pomArtifact);
        } else if (metadata instanceof SnapshotArtifactRepositoryMetadata || metadata instanceof ArtifactRepositoryMetadata) {
        // eaten, handled by repo system
        } else {
            request.addMetadata(new MetadataBridge(metadata));
        }
    }
    RemoteRepository remoteRepo = RepositoryUtils.toRepo(deploymentRepository);
    /*
         * NOTE: This provides backward-compat with maven-deploy-plugin:2.4 which bypasses the repository factory when
         * using an alternative deployment location.
         */
    if (deploymentRepository instanceof DefaultArtifactRepository && deploymentRepository.getAuthentication() == null) {
        RemoteRepository.Builder builder = new RemoteRepository.Builder(remoteRepo);
        builder.setAuthentication(session.getAuthenticationSelector().getAuthentication(remoteRepo));
        builder.setProxy(session.getProxySelector().getProxy(remoteRepo));
        remoteRepo = builder.build();
    }
    request.setRepository(remoteRepo);
    DeployResult result;
    try {
        result = repoSystem.deploy(session, request);
    } catch (DeploymentException e) {
        throw new ArtifactDeploymentException(e.getMessage(), e);
    }
    for (Object metadata : result.getMetadata()) {
        if (metadata.getClass().getName().endsWith(".internal.VersionsMetadata")) {
            relatedMetadata.put(versionKey, (MergeableMetadata) metadata);
        }
        if (snapshotKey != null && metadata.getClass().getName().endsWith(".internal.RemoteSnapshotMetadata")) {
            relatedMetadata.put(snapshotKey, (MergeableMetadata) metadata);
        }
    }
    artifact.setResolvedVersion(result.getArtifacts().iterator().next().getVersion());
}
Also used : ProjectArtifactMetadata(org.apache.maven.project.artifact.ProjectArtifactMetadata) RepositorySystemSession(org.eclipse.aether.RepositorySystemSession) DeployRequest(org.eclipse.aether.deployment.DeployRequest) DefaultArtifactRepository(org.apache.maven.artifact.repository.DefaultArtifactRepository) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) MetadataBridge(org.apache.maven.artifact.repository.metadata.MetadataBridge) DeployResult(org.eclipse.aether.deployment.DeployResult) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) SnapshotArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata) DeploymentException(org.eclipse.aether.deployment.DeploymentException) ArtifactMetadata(org.apache.maven.artifact.metadata.ArtifactMetadata) ProjectArtifactMetadata(org.apache.maven.project.artifact.ProjectArtifactMetadata) ArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata) SnapshotArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata)

Aggregations

RemoteRepository (org.eclipse.aether.repository.RemoteRepository)258 File (java.io.File)69 ArrayList (java.util.ArrayList)66 Artifact (org.eclipse.aether.artifact.Artifact)59 DefaultArtifact (org.eclipse.aether.artifact.DefaultArtifact)59 Test (org.junit.Test)52 RepositorySystemSession (org.eclipse.aether.RepositorySystemSession)46 DefaultRepositorySystemSession (org.eclipse.aether.DefaultRepositorySystemSession)43 RepositorySystem (org.eclipse.aether.RepositorySystem)40 IOException (java.io.IOException)36 Dependency (org.eclipse.aether.graph.Dependency)36 ArtifactResult (org.eclipse.aether.resolution.ArtifactResult)36 RepositoryPolicy (org.eclipse.aether.repository.RepositoryPolicy)29 Proxy (org.eclipse.aether.repository.Proxy)28 AuthenticationBuilder (org.eclipse.aether.util.repository.AuthenticationBuilder)27 CollectRequest (org.eclipse.aether.collection.CollectRequest)26 ArtifactRequest (org.eclipse.aether.resolution.ArtifactRequest)26 List (java.util.List)25 ArtifactResolutionException (org.eclipse.aether.resolution.ArtifactResolutionException)24 Map (java.util.Map)22