This is an automated email from the ASF dual-hosted git repository.

neilcsmith pushed a commit to branch delivery
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/delivery by this push:
     new f954a246d8 Revert "Use resolve() method that actually throws 
exception. Respect remote repository chaching."
     new cd844223fc Merge pull request #6228 from 
mbien/revert-maven-embedder-commit_delivery
f954a246d8 is described below

commit f954a246d84d0846cedeaa308868031a577e1e46
Author: Michael Bien <mbie...@gmail.com>
AuthorDate: Wed Jul 19 05:03:41 2023 +0200

    Revert "Use resolve() method that actually throws exception. Respect remote 
repository chaching."
    
    This reverts commit e2a14bf32a5bddabee71e0fc2e35f575f7d1aacc.
    
    fixes #6222 ArtifactResolutionExceptions when working with maven projects
---
 .../modules/maven/embedder/MavenEmbedder.java      | 22 ++++++++++++----------
 .../AbstractProjectClassPathImplTest.java          |  7 +------
 2 files changed, 13 insertions(+), 16 deletions(-)

diff --git 
a/java/maven.embedder/src/org/netbeans/modules/maven/embedder/MavenEmbedder.java
 
b/java/maven.embedder/src/org/netbeans/modules/maven/embedder/MavenEmbedder.java
index 7608be2203..4bf4c38954 100644
--- 
a/java/maven.embedder/src/org/netbeans/modules/maven/embedder/MavenEmbedder.java
+++ 
b/java/maven.embedder/src/org/netbeans/modules/maven/embedder/MavenEmbedder.java
@@ -45,7 +45,6 @@ import 
org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.cli.configuration.SettingsXmlConfigurationProcessor;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.DefaultMavenExecutionResult;
@@ -94,7 +93,6 @@ import org.openide.util.Exceptions;
 import org.openide.util.BaseUtilities;
 import org.eclipse.aether.repository.Authentication;
 import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory;
 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
@@ -372,13 +370,17 @@ public final class MavenEmbedder {
      */
     public void resolve(Artifact sources, List<ArtifactRepository> 
remoteRepositories, ArtifactRepository localRepository) throws 
ArtifactResolutionException, ArtifactNotFoundException {
         setUpLegacySupport();
-        
-        // must call internal Resolver API directly, as the RepositorySystem 
does not report an exception, 
-        // even in ArtifactResolutionResult: resolve(ArtifactResolutionRequest 
request) catches the exception and
-        // swallows ArtifactNotFoundException.
-        // The existing calling code that handles these exception cannot work, 
in fact, when using resolve(ArtifactResolutionRequest request) API.
-        lookupComponent(ArtifactResolver.class).resolveAlways(sources, 
remoteRepositories, localRepository);
+        ArtifactResolutionRequest req = new ArtifactResolutionRequest();
+        req.setLocalRepository(localRepository);
+        req.setRemoteRepositories(remoteRepositories);
+        req.setArtifact(sources);
+        req.setOffline(isOffline());
+        ArtifactResolutionResult result = repositorySystem.resolve(req);
         normalizePath(sources);
+        // XXX check result for exceptions and throw them now?
+        for (Exception ex : result.getExceptions()) {
+            LOG.log(Level.FINE, null, ex);
+        }
     }
 
     //TODO possibly rename.. build sounds like something else..
@@ -509,7 +511,7 @@ public final class MavenEmbedder {
 
         return req;
     }
-    
+
     /**
      * Needed to avoid an NPE in {@link 
org.eclipse.org.eclipse.aether.DefaultArtifactResolver#resolveArtifacts} under 
some conditions.
      * (Also {@link 
org.eclipse.org.eclipse.aether.DefaultMetadataResolver#resolve}; wherever a 
{@link org.eclipse.aether.RepositorySystemSession} is used.)
@@ -522,7 +524,7 @@ public final class MavenEmbedder {
         }
         DefaultRepositorySystemSession session = new 
DefaultRepositorySystemSession();
         session.setOffline(isOffline());
-        EnhancedLocalRepositoryManagerFactory f = 
lookupComponent(EnhancedLocalRepositoryManagerFactory.class);
+        SimpleLocalRepositoryManagerFactory f = new 
SimpleLocalRepositoryManagerFactory();        
         try {
             session.setLocalRepositoryManager(f.newInstance(session, new 
LocalRepository(getLocalRepository().getBasedir())));
         } catch (NoLocalRepositoryManagerException ex) {
diff --git 
a/java/maven/test/unit/src/org/netbeans/modules/maven/classpath/AbstractProjectClassPathImplTest.java
 
b/java/maven/test/unit/src/org/netbeans/modules/maven/classpath/AbstractProjectClassPathImplTest.java
index c1f5edfd78..78a54701ca 100644
--- 
a/java/maven/test/unit/src/org/netbeans/modules/maven/classpath/AbstractProjectClassPathImplTest.java
+++ 
b/java/maven/test/unit/src/org/netbeans/modules/maven/classpath/AbstractProjectClassPathImplTest.java
@@ -23,7 +23,6 @@ import java.io.File;
 import java.util.Collections;
 import java.util.logging.Level;
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.codehaus.plexus.util.FileUtils;
 import org.netbeans.junit.NbTestCase;
 import org.netbeans.modules.maven.embedder.EmbedderFactory;
@@ -61,11 +60,7 @@ public class AbstractProjectClassPathImplTest extends 
NbTestCase {
         File downloaded = new File(repo, 
"nbtest/grp/art/1.10-SNAPSHOT/art-1.10-20210520.222429-1.jar");
         Artifact a = 
EmbedderFactory.getProjectEmbedder().createArtifact("nbtest.grp", "art", 
"1.10-20210520.222429-1", "jar");
         assertNull(AbstractProjectClassPathImpl.getFile(a));
-        try {
-            EmbedderFactory.getProjectEmbedder().resolve(a, 
Collections.emptyList(), 
EmbedderFactory.getProjectEmbedder().getLocalRepository());
-        } catch (ArtifactNotFoundException ex) {
-            // the downloaded artifact was not found, expected as only 
-SNAPSHOT is installed.
-        }
+        EmbedderFactory.getProjectEmbedder().resolve(a, 
Collections.emptyList(), 
EmbedderFactory.getProjectEmbedder().getLocalRepository());
         assertEquals(installed, a.getFile());
         assertEquals(installed, AbstractProjectClassPathImpl.getFile(a));
         FileUtils.mkdir(downloaded.getParent());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to