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