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;