From 85e0e90c4dd453bf3f0e8ce5169d933436a99474 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Thu, 23 Feb 2023 17:47:28 +0100 Subject: [PATCH 1/2] [MJAVADOC-742] Fix resolution of docletArtifacts --- https://issues.apache.org/jira/browse/MJAVADOC-742 --- .../apache/maven/plugins/javadoc/AbstractJavadocMojo.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java index e9f38d54..e5cbb2cf 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java @@ -133,7 +133,6 @@ import org.eclipse.aether.artifact.ArtifactTypeRegistry; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.collection.CollectRequest; -import org.eclipse.aether.graph.DefaultDependencyNode; import org.eclipse.aether.graph.DependencyFilter; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResolutionException; @@ -3242,8 +3241,11 @@ private List getArtifactsAbsolutePath(JavadocPathArtifact javadocArtifac DependencyFilter filter = new ScopeDependencyFilter( Arrays.asList(Artifact.SCOPE_COMPILE, Artifact.SCOPE_PROVIDED), Collections.emptySet()); - DependencyRequest req = - new DependencyRequest(new DefaultDependencyNode(RepositoryUtils.toArtifact(artifact)), filter); + DependencyRequest req = new DependencyRequest( + new CollectRequest( + new org.eclipse.aether.graph.Dependency(RepositoryUtils.toArtifact(artifact), null), + RepositoryUtils.toRepos(project.getRemoteArtifactRepositories())), + filter); Iterable deps = repoSystem.resolveDependencies(repoSession, req).getArtifactResults(); for (ArtifactResult a : deps) { From fa0ac222cee0ef92d75b8613592c9442628eee80 Mon Sep 17 00:00:00 2001 From: Konrad Windszus Date: Mon, 11 Sep 2023 13:25:58 +0200 Subject: [PATCH 2/2] fix failing test --- .../plugins/javadoc/JavadocReportTest.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java index fce08966..6df45691 100644 --- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java +++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java @@ -1080,19 +1080,17 @@ public void testTagletArtifacts() throws Exception { Path testPom = unit.resolve("tagletArtifacts-test/tagletArtifacts-test-plugin-config.xml"); JavadocReport mojo = lookupMojo(testPom); - MavenSession session = spy(newMavenSession(mojo.project)); - ProjectBuildingRequest buildingRequest = mock(ProjectBuildingRequest.class); - when(buildingRequest.getRemoteRepositories()).thenReturn(mojo.project.getRemoteArtifactRepositories()); - when(session.getProjectBuildingRequest()).thenReturn(buildingRequest); - DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession(); - repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory() - .newInstance(repositorySession, new LocalRepository(localRepo))); - when(buildingRequest.getRepositorySession()).thenReturn(repositorySession); - when(session.getRepositorySession()).thenReturn(repositorySession); + MavenSession session = newMavenSession(mojo.project); + DefaultRepositorySystemSession repoSysSession = (DefaultRepositorySystemSession) session.getRepositorySession(); + repoSysSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory() + .newInstance(session.getRepositorySession(), new LocalRepository(new File("target/local-repo")))); + // Ensure remote repo connection uses SSL + File globalSettingsFile = new File(getBasedir(), "target/test-classes/unit/settings.xml"); + session.getRequest().setGlobalSettingsFile(globalSettingsFile); LegacySupport legacySupport = lookup(LegacySupport.class); legacySupport.setSession(session); setVariableValueToObject(mojo, "session", session); - setVariableValueToObject(mojo, "repoSession", repositorySession); + setVariableValueToObject(mojo, "repoSession", repoSysSession); mojo.execute(); Path optionsFile = new File(mojo.getOutputDirectory(), "options").toPath();