SLING-9924 Feature Model Converter Maven Plugin does not consult remote
repositories to resolve artifacts
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
index 57a22d4..419482d 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
@@ -23,6 +23,7 @@
import org.eclipse.aether.RepositoryException;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResult;
@@ -87,7 +88,8 @@
}
Collection<Artifact> getMatchingArtifacts(final MavenProject project,
- RepositorySystem repoSystem, RepositorySystemSession repoSession) {
+ RepositorySystem repoSystem, RepositorySystemSession repoSession,
+ List<RemoteRepository> remoteRepos) {
// get artifacts depending on whether we exclude transitives or not
final Set<Artifact> artifacts;
// TODO: when I ran the tests the artifacts where only available in the Dependency Artifacts and
@@ -108,7 +110,7 @@
} else {
if (repoSystem != null && repoSession != null) {
// Resolving the artifact via Aether will fill in the file attribute
- Artifact fileArt = resolveArtifact(repoSystem, repoSession, a);
+ Artifact fileArt = resolveArtifact(repoSystem, repoSession, remoteRepos, a);
if (fileArt != null) {
fileArtifacts.add(fileArt);
} else {
@@ -128,7 +130,7 @@
}
private Artifact resolveArtifact(final RepositorySystem repoSystem, final RepositorySystemSession repoSession,
- final Artifact artifact) {
+ final List<RemoteRepository> remoteRepos, final Artifact artifact) {
try {
// Get an Aether Artifact
org.eclipse.aether.artifact.Artifact a = new org.eclipse.aether.artifact.DefaultArtifact(
@@ -136,7 +138,7 @@
artifact.getClassifier(), artifact.getType(),
artifact.getVersion());
- ArtifactRequest req = new ArtifactRequest(a, null, null);
+ ArtifactRequest req = new ArtifactRequest(a, remoteRepos, null);
ArtifactResult res = repoSystem.resolveArtifact(repoSession, req);
if (res.isResolved()) {
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
index 9570ecb..2a3d29d 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
@@ -34,6 +34,7 @@
import org.apache.sling.feature.cpconverter.vltpkg.DefaultPackagesEventsEmitter;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
import java.io.File;
import java.io.IOException;
@@ -188,6 +189,9 @@
@Component
private RepositorySystem repoSystem;
+ @Parameter(defaultValue = "${project.remotePluginRepositories}", readonly = true)
+ private List<RemoteRepository> remoteRepos;
+
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
// Un-encode a given Artifact Override Id
@@ -259,7 +263,8 @@
contentPackage.setExcludeTransitive(true);
contentPackage.setModuleIsContentPackage(isContentPackage);
getLog().info("Content Package Artifact File: " + contentPackage.toString() + ", is module CP: " + isContentPackage);
- final Collection<Artifact> artifacts = contentPackage.getMatchingArtifacts(project, repoSystem, repoSession);
+ final Collection<Artifact> artifacts =
+ contentPackage.getMatchingArtifacts(project, repoSystem, repoSession, remoteRepos);
if (artifacts.isEmpty()) {
getLog().warn("No matching artifacts for " + contentPackage);
continue;