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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists