use of org.eclipse.aether.resolution.ArtifactResult in project gate-core by GateNLP.
the class SimpleMavenCache method cacheArtifact.
public void cacheArtifact(Artifact artifact) throws IOException, SettingsBuildingException, DependencyCollectionException, DependencyResolutionException, ArtifactResolutionException, ModelBuildingException {
List<RemoteRepository> repos = getRepositoryList();
Dependency dependency = new Dependency(artifact, "runtime");
RepositorySystem repoSystem = getRepositorySystem();
RepositorySystemSession repoSession = getRepositorySession(repoSystem, null);
CollectRequest collectRequest = new CollectRequest(dependency, repos);
DependencyNode node = repoSystem.collectDependencies(repoSession, collectRequest).getRoot();
DependencyRequest dependencyRequest = new DependencyRequest();
dependencyRequest.setRoot(node);
DependencyResult result = repoSystem.resolveDependencies(repoSession, dependencyRequest);
for (ArtifactResult ar : result.getArtifactResults()) {
// generate output file name from the *requested* artifact rather
// than the resolved one (e.g. if we requested a -SNAPSHOT version
// but got a timestamped one)
File file = getArtifactFile(ar.getRequest().getArtifact());
FileUtils.copyFile(ar.getArtifact().getFile(), file);
// get the POM corresponding to the specific resolved JAR
Artifact pomArtifact = new SubArtifact(ar.getArtifact(), "", "pom");
ArtifactRequest artifactRequest = new ArtifactRequest(pomArtifact, repos, null);
ArtifactResult artifactResult = repoSystem.resolveArtifact(repoSession, artifactRequest);
// but copy it to a file named for the original requested version number
file = getArtifactFile(new SubArtifact(ar.getRequest().getArtifact(), "", "pom"));
FileUtils.copyFile(artifactResult.getArtifact().getFile(), file);
cacheParents(artifactResult.getArtifact().getFile(), repoSystem, repoSession, repos);
}
}
use of org.eclipse.aether.resolution.ArtifactResult in project mule by mulesoft.
the class DependencyResolver method logUnresolvedArtifacts.
/**
* Logs the paths for each dependency not found
*
* @param node root {@link DependencyNode}, can be a "null" root (imaginary root)
* @param e {@link DependencyResolutionException} the error to collect paths.
*/
private void logUnresolvedArtifacts(DependencyNode node, DependencyResolutionException e) {
List<ArtifactResult> artifactResults = e.getResult().getArtifactResults().stream().filter(artifactResult -> !artifactResult.getExceptions().isEmpty()).collect(toList());
final List<String> patternInclusion = artifactResults.stream().map(artifactResult -> toId(artifactResult.getRequest().getArtifact())).collect(toList());
PathRecordingDependencyVisitor visitor = new PathRecordingDependencyVisitor(new PatternInclusionsDependencyFilter(patternInclusion), node.getArtifact() != null);
node.accept(visitor);
visitor.getPaths().stream().forEach(path -> {
List<DependencyNode> unresolvedArtifactPath = path.stream().filter(dependencyNode -> dependencyNode.getArtifact() != null).collect(toList());
if (!unresolvedArtifactPath.isEmpty()) {
logger.warn("Dependency path to not resolved artifacts -> {}", unresolvedArtifactPath.toString());
}
});
}
use of org.eclipse.aether.resolution.ArtifactResult in project mule by mulesoft.
the class AetherClassPathClassifierTestCase method pluginSharedLibUrlsNoTransitiveNoManageDependenciesNoFilters.
@Test
public void pluginSharedLibUrlsNoTransitiveNoManageDependenciesNoFilters() throws Exception {
when(artifactClassificationTypeResolver.resolveArtifactClassificationType(rootArtifact)).thenReturn(APPLICATION);
List<Dependency> directDependencies = new ArrayList<>();
directDependencies.add(derbyDriverDep);
when(dependencyResolver.getDirectDependencies(rootArtifact)).thenReturn(directDependencies);
when(context.getApplicationSharedLibCoordinates()).thenReturn(newArrayList(derbyDriverDep.getArtifact().getGroupId() + ":" + derbyDriverDep.getArtifact().getArtifactId()));
File rootArtifactFile = temporaryFolder.newFile();
Artifact jarRootArtifact = rootArtifact.setFile(rootArtifactFile);
ArtifactResult rootArtifactResult = mock(ArtifactResult.class);
when(rootArtifactResult.getArtifact()).thenReturn(jarRootArtifact);
when(dependencyResolver.resolveArtifact(argThat(new ArtifactMatcher(rootArtifact.getGroupId(), rootArtifact.getArtifactId())))).thenReturn(rootArtifactResult);
File derbyDriverFile = temporaryFolder.newFile();
ArtifactResult artifactResult = mock(ArtifactResult.class);
Artifact derbyDriverFatArtifact = derbyDriverDep.getArtifact().setFile(derbyDriverFile);
when(artifactResult.getArtifact()).thenReturn(derbyDriverFatArtifact);
when(dependencyResolver.resolveArtifact(argThat(equalTo(derbyDriverDep.getArtifact())), argThat(equalTo(emptyList())))).thenReturn(artifactResult);
ArtifactDescriptorResult defaultArtifactDescriptorResult = noManagedDependencies();
ArtifactsUrlClassification classification = classifier.classify(context);
assertThat(classification.getTestRunnerLibUrls(), hasSize(1));
assertThat(classification.getTestRunnerLibUrls(), hasItem(rootArtifactFile.toURI().toURL()));
assertThat(classification.getPluginUrlClassifications(), is(empty()));
assertThat(classification.getApplicationSharedLibUrls(), hasSize(1));
assertThat(classification.getApplicationSharedLibUrls(), hasItem(derbyDriverFile.toURI().toURL()));
assertThat(classification.getContainerUrls(), is(empty()));
verify(defaultArtifactDescriptorResult, atLeastOnce()).getManagedDependencies();
verify(dependencyResolver, atLeastOnce()).readArtifactDescriptor(any(Artifact.class));
verify(dependencyResolver).resolveArtifact(argThat(new ArtifactMatcher(rootArtifact.getGroupId(), rootArtifact.getArtifactId())));
verify(dependencyResolver).resolveArtifact(argThat(equalTo(derbyDriverDep.getArtifact())), argThat(equalTo(emptyList())));
verify(artifactClassificationTypeResolver).resolveArtifactClassificationType(rootArtifact);
}
use of org.eclipse.aether.resolution.ArtifactResult in project mule by mulesoft.
the class AetherClassPathClassifierTestCase method serviceClassification.
@Test
public void serviceClassification() throws Exception {
this.directDependencies = newArrayList(fooCoreDep, fooToolsArtifactDep, fooTestsSupportDep, derbyDriverDep, guavaDep, fooServiceDep);
when(dependencyResolver.getDirectDependencies(rootArtifact)).thenReturn(directDependencies);
ArtifactDescriptorResult artifactDescriptorResult = mock(ArtifactDescriptorResult.class);
List<Dependency> managedDependencies = newArrayList(guavaDep);
when(artifactDescriptorResult.getManagedDependencies()).thenReturn(managedDependencies);
when(dependencyResolver.readArtifactDescriptor(any(Artifact.class), any(List.class))).thenReturn(artifactDescriptorResult);
when(dependencyResolver.resolveArtifact(any(Artifact.class), any(List.class))).thenAnswer(invocation -> {
Artifact artifact = (Artifact) invocation.getArguments()[0];
artifact = artifact.setFile(temporaryFolder.newFile());
return new ArtifactResult(new ArtifactRequest(artifact, null, null)).setArtifact(artifact);
});
when(artifactClassificationTypeResolver.resolveArtifactClassificationType(rootArtifact)).thenReturn(APPLICATION);
File fooServiceArtifactFile = temporaryFolder.newFolder();
File metaInfFolder = new File(fooServiceArtifactFile, META_INF);
metaInfFolder.delete();
metaInfFolder.mkdir();
File descriptor = new File(metaInfFolder, MULE_ARTIFACT_JSON_DESCRIPTOR);
MuleServiceModel muleServiceModel = new MuleServiceModelBuilder().setName("Foo").setMinMuleVersion("4.0.0").withServiceProviderClassName("org.foo.ServiceProvider").withClassLoaderModelDescriptorLoader(new MuleArtifactLoaderDescriptor(MULE_LOADER_ID, emptyMap())).withBundleDescriptorLoader(new MuleArtifactLoaderDescriptor(MULE_LOADER_ID, emptyMap())).build();
String model = new MuleServiceModelJsonSerializer().serialize(muleServiceModel);
FileUtils.write(descriptor, model);
List<File> fooServiceUrls = newArrayList(fooServiceArtifactFile);
when(dependencyResolver.resolveDependencies(argThat(equalTo(new Dependency(fooServiceDep.getArtifact(), COMPILE))), argThat(equalTo(emptyList())), argThat(equalTo(emptyList())), argThat(instanceOf(DependencyFilter.class)), argThat(equalTo(emptyList())))).thenReturn(fooServiceUrls);
File rootArtifactFile = temporaryFolder.newFile();
Artifact jarRootArtifact = rootArtifact.setFile(rootArtifactFile);
ArtifactResult rootArtifactResult = mock(ArtifactResult.class);
when(rootArtifactResult.getArtifact()).thenReturn(jarRootArtifact);
when(dependencyResolver.resolveArtifact(argThat(new ArtifactMatcher(rootArtifact.getGroupId(), rootArtifact.getArtifactId())))).thenReturn(rootArtifactResult);
File serviceArtifactFile = temporaryFolder.newFile();
ArtifactResult serviceArtifactResult = mock(ArtifactResult.class);
Artifact jarServiceArtifact = serviceArtifact.setFile(serviceArtifactFile);
when(serviceArtifactResult.getArtifact()).thenReturn(jarServiceArtifact);
when(dependencyResolver.resolveArtifact(argThat(new ArtifactMatcher(serviceArtifact.getGroupId(), serviceArtifact.getArtifactId())))).thenReturn(serviceArtifactResult);
ArtifactDescriptorResult defaultArtifactDescriptorResult = noManagedDependencies();
Dependency compileMuleCoreDep = fooCoreDep.setScope(COMPILE);
Dependency compileMuleArtifactDep = fooToolsArtifactDep.setScope(COMPILE);
File fooCoreArtifactFile = temporaryFolder.newFile();
File fooToolsArtifactFile = temporaryFolder.newFile();
when(dependencyResolver.resolveDependencies(argThat(nullValue(Dependency.class)), (List<Dependency>) and((argThat(hasItems(equalTo(compileMuleCoreDep), equalTo(compileMuleArtifactDep)))), argThat(hasSize(3))), (List<Dependency>) argThat(hasItems(equalTo(guavaDep))), argThat(instanceOf(DependencyFilter.class)), argThat(equalTo(emptyList())))).thenReturn(newArrayList(fooCoreArtifactFile, fooToolsArtifactFile));
ArtifactsUrlClassification classification = classifier.classify(context);
assertThat(classification.getTestRunnerLibUrls(), hasSize(1));
assertThat(classification.getTestRunnerLibUrls(), hasItem(rootArtifactFile.toURI().toURL()));
assertThat(classification.getPluginUrlClassifications(), is(empty()));
assertThat(classification.getApplicationSharedLibUrls(), is(empty()));
assertThat(classification.getContainerUrls(), hasSize(2));
assertThat(classification.getServiceUrlClassifications(), hasSize(1));
assertThat(classification.getServiceUrlClassifications().get(0).getUrls(), hasItem(fooServiceArtifactFile.toURI().toURL()));
verify(defaultArtifactDescriptorResult, atLeastOnce()).getManagedDependencies();
verify(dependencyResolver, atLeastOnce()).readArtifactDescriptor(any(Artifact.class), anyObject());
verify(dependencyResolver, atLeastOnce()).resolveDependencies(argThat(equalTo(new Dependency(fooServiceDep.getArtifact(), COMPILE))), argThat(equalTo(emptyList())), argThat(equalTo(emptyList())), argThat(instanceOf(DependencyFilter.class)), argThat(equalTo(emptyList())));
verify(artifactClassificationTypeResolver).resolveArtifactClassificationType(rootArtifact);
verify(dependencyResolver, atLeastOnce()).resolveDependencies(argThat(nullValue(Dependency.class)), (List<Dependency>) and((argThat(hasItems(equalTo(compileMuleCoreDep), equalTo(compileMuleArtifactDep)))), argThat(hasSize(3))), (List<Dependency>) argThat(hasItems(equalTo(guavaDep))), argThat(instanceOf(DependencyFilter.class)), argThat(equalTo(emptyList())));
}
use of org.eclipse.aether.resolution.ArtifactResult in project syndesis by syndesisio.
the class RepackageExtensionMojo method downloadAndInstallArtifact.
/*
* @param artifact The artifact coordinates in the format
* {@code <groupId>:<artifactId>[:<extension>[:<classifier>]]:<version>}, must not be {@code null}.
*
*/
protected ArtifactResult downloadAndInstallArtifact(String artifact) throws MojoExecutionException {
ArtifactResult result;
ArtifactRequest request = new ArtifactRequest();
request.setArtifact(new DefaultArtifact(artifact));
request.setRepositories(remoteRepos);
getLog().info("Resolving artifact " + artifact + " from " + remoteRepos);
try {
result = repoSystem.resolveArtifact(repoSession, request);
return result;
} catch (ArtifactResolutionException e) {
throw new MojoExecutionException(e.getMessage(), e);
}
}
Aggregations