This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch MJAVADOC-618 in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git
commit 6df51ff7d987a2878fcdea08e2e3a94120c0f7df Author: rfscholte <[email protected]> AuthorDate: Sat Aug 28 19:46:22 2021 +0200 Add moduleDescriptor and moduleNameSource to JavadocModule --- .../maven/plugins/javadoc/AbstractJavadocMojo.java | 40 +++++++++++++--------- .../maven/plugins/javadoc/JavadocModule.java | 27 ++++++++++++++- 2 files changed, 50 insertions(+), 17 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 8f5a6d1..8901360 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java @@ -2427,10 +2427,7 @@ public abstract class AbstractJavadocMojo } if ( !sourcePaths.isEmpty() ) { - mappedSourcePaths.add( new JavadocModule( ArtifactUtils.versionlessKey( project.getGroupId(), - project.getArtifactId() ), - getClassesFile( project ), - sourcePaths ) ); + mappedSourcePaths.add( buildJavadocModule( project, sourcePaths ) ); } } @@ -2471,11 +2468,7 @@ public abstract class AbstractJavadocMojo if ( !additionalSourcePaths.isEmpty() ) { - mappedSourcePaths.add( new JavadocModule( - ArtifactUtils.versionlessKey( subProject.getGroupId(), - subProject.getArtifactId() ), - getClassesFile( subProject ), - additionalSourcePaths ) ); + mappedSourcePaths.add( buildJavadocModule( subProject , additionalSourcePaths ) ); } } } @@ -2509,6 +2502,26 @@ public abstract class AbstractJavadocMojo return mappedSourcePaths; } + + private JavadocModule buildJavadocModule( MavenProject project, Collection<Path> sourcePaths ) + { + File classessFile = getClassesFile( project ); + ResolvePathResult resolvePathResult = getResolvePathResult( classessFile ); + if ( resolvePathResult == null ) + { + return new JavadocModule( ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() ), + classessFile, + sourcePaths ); + } + else + { + return new JavadocModule( ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() ), + classessFile, + sourcePaths, + resolvePathResult.getModuleDescriptor(), + resolvePathResult.getModuleNameSource() ); + } + } /** * Recursively add the modules of the aggregatedProject to the set of aggregatedModules. @@ -5161,7 +5174,6 @@ public abstract class AbstractJavadocMojo Map<String, JavaModuleDescriptor> allModuleDescriptors = new HashMap<>(); - boolean supportModulePath = javadocRuntimeVersion.isAtLeast( "9" ); if ( release != null ) { @@ -5176,11 +5188,7 @@ public abstract class AbstractJavadocMojo { for ( JavadocModule entry : allSourcePaths ) { - File artifactFile = entry.getArtifactFile(); - - ResolvePathResult resolvePathResult = getResolvePathResult( artifactFile ); - - if ( resolvePathResult == null || resolvePathResult.getModuleNameSource() == ModuleNameSource.FILENAME ) + if ( entry.getModuleNameSource() == null || entry.getModuleNameSource() == ModuleNameSource.FILENAME ) { Path moduleDescriptor = findMainDescriptor( entry.getSourcePaths() ); @@ -5199,7 +5207,7 @@ public abstract class AbstractJavadocMojo } else { - allModuleDescriptors.put( entry.getGa(), resolvePathResult.getModuleDescriptor() ); + allModuleDescriptors.put( entry.getGa(), entry.getModuleDescriptor() ); } } } diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocModule.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocModule.java index 31c6cc6..1955e84 100644 --- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocModule.java +++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocModule.java @@ -23,6 +23,9 @@ import java.io.File; import java.nio.file.Path; import java.util.Collection; +import org.codehaus.plexus.languages.java.jpms.JavaModuleDescriptor; +import org.codehaus.plexus.languages.java.jpms.ModuleNameSource; + /** * Represents a unit of Javadoc referring to the binary and java source paths * @@ -36,11 +39,23 @@ public class JavadocModule private final Collection<Path> sourcePaths; + private final JavaModuleDescriptor moduleDescriptor; + + private final ModuleNameSource moduleNameSource; + public JavadocModule( String ga, File artifactFile, Collection<Path> sourcePaths ) { + this( ga, artifactFile, sourcePaths, null, null ); + } + + public JavadocModule( String ga, File artifactFile, Collection<Path> sourcePaths, + JavaModuleDescriptor moduleDescriptor, ModuleNameSource moduleNameSource ) + { this.ga = ga; this.artifactFile = artifactFile; this.sourcePaths = sourcePaths; + this.moduleDescriptor = moduleDescriptor; + this.moduleNameSource = moduleNameSource; } public String getGa() @@ -52,9 +67,19 @@ public class JavadocModule { return sourcePaths; } - + public File getArtifactFile() { return artifactFile; } + + public JavaModuleDescriptor getModuleDescriptor() + { + return moduleDescriptor; + } + + public ModuleNameSource getModuleNameSource() + { + return moduleNameSource; + } }
