[ 
https://issues.apache.org/jira/browse/MJAVADOC-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17796218#comment-17796218
 ] 

ASF GitHub Bot commented on MJAVADOC-783:
-----------------------------------------

elharo commented on code in PR #255:
URL: 
https://github.com/apache/maven-javadoc-plugin/pull/255#discussion_r1425267623


##########
src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java:
##########
@@ -118,32 +119,54 @@ public class JavadocUtil {
                     + "environment variable using -Xms:<size> and 
-Xmx:<size>.";
 
     /**
-     * Method that removes the invalid directories in the specified 
directories. <b>Note</b>: All elements in
-     * <code>dirs</code> could be an absolute or relative against the 
project's base directory <code>String</code> path.
+     * Method that removes invalid classpath elements in the specified paths. 
<b>Note</b>: All elements in
+     * <code>paths</code> could be absolute or relative against the project's 
base directory <code>String</code> path.
+     * When pruning class paths, you can optionally include "*.jar" files in 
the result, otherwise only directories are
+     * permitted.
      *
      * @param project the current Maven project not null
-     * @param dirs the collection of <code>String</code> directories path that 
will be validated.
-     * @return a List of valid <code>String</code> directories absolute paths.
+     * @param paths the collection of <code>String</code> paths that will be 
validated
+     * @param includeJars whether to include JAR files in the result
+     * @return a list of valid <code>String</code> directories and optionally 
JAR files as absolute paths
      */
-    public static Collection<Path> pruneDirs(MavenProject project, 
Collection<String> dirs) {
+    public static Collection<Path> prunePaths(MavenProject project, 
Collection<String> paths, boolean includeJars) {
         final Path projectBasedir = project.getBasedir().toPath();
 
-        Set<Path> pruned = new LinkedHashSet<>(dirs.size());
-        for (String dir : dirs) {
-            if (dir == null) {
+        Set<Path> pruned = new LinkedHashSet<>(paths.size());
+        for (String path : paths) {
+            if (path == null) {
                 continue;
             }
 
-            Path directory = projectBasedir.resolve(dir);
-
-            if (Files.isDirectory(directory)) {
-                pruned.add(directory.toAbsolutePath());
+            Path resolvedPath = projectBasedir.resolve(path);
+
+            if (Files.isDirectory(resolvedPath)
+                    || includeJars
+                            && Files.isRegularFile(resolvedPath)
+                            && resolvedPath
+                                    .getFileName()
+                                    .toString()
+                                    .toLowerCase(Locale.ROOT)
+                                    .endsWith(".jar")) {
+                pruned.add(resolvedPath.toAbsolutePath());
             }
         }
 
         return pruned;
     }
 
+    /**
+     * Method that removes the invalid directories in the specified 
directories. <b>Note</b>: All elements in
+     * <code>dirs</code> could be absolute or relative against the project's 
base directory <code>String</code> path.
+     *
+     * @param project the current Maven project not null
+     * @param dirs the collection of <code>String</code> directories that will 
be validated

Review Comment:
   the collection of <code>String</code> directories --> the paths of the 
directories
   are these relative or absolute? 



##########
src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java:
##########
@@ -118,32 +119,54 @@ public class JavadocUtil {
                     + "environment variable using -Xms:<size> and 
-Xmx:<size>.";
 
     /**
-     * Method that removes the invalid directories in the specified 
directories. <b>Note</b>: All elements in
-     * <code>dirs</code> could be an absolute or relative against the 
project's base directory <code>String</code> path.
+     * Method that removes invalid classpath elements in the specified paths. 
<b>Note</b>: All elements in
+     * <code>paths</code> could be absolute or relative against the project's 
base directory <code>String</code> path.
+     * When pruning class paths, you can optionally include "*.jar" files in 
the result, otherwise only directories are
+     * permitted.
      *
      * @param project the current Maven project not null
-     * @param dirs the collection of <code>String</code> directories path that 
will be validated.
-     * @return a List of valid <code>String</code> directories absolute paths.
+     * @param paths the collection of <code>String</code> paths that will be 
validated
+     * @param includeJars whether to include JAR files in the result
+     * @return a list of valid <code>String</code> directories and optionally 
JAR files as absolute paths

Review Comment:
   what does valid mean here?



##########
src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java:
##########
@@ -118,32 +119,54 @@ public class JavadocUtil {
                     + "environment variable using -Xms:<size> and 
-Xmx:<size>.";
 
     /**
-     * Method that removes the invalid directories in the specified 
directories. <b>Note</b>: All elements in
-     * <code>dirs</code> could be an absolute or relative against the 
project's base directory <code>String</code> path.
+     * Method that removes invalid classpath elements in the specified paths. 
<b>Note</b>: All elements in
+     * <code>paths</code> could be absolute or relative against the project's 
base directory <code>String</code> path.
+     * When pruning class paths, you can optionally include "*.jar" files in 
the result, otherwise only directories are
+     * permitted.
      *
      * @param project the current Maven project not null
-     * @param dirs the collection of <code>String</code> directories path that 
will be validated.
-     * @return a List of valid <code>String</code> directories absolute paths.
+     * @param paths the collection of <code>String</code> paths that will be 
validated

Review Comment:
   the collection of <code>String</code> paths --> the paths
   Javadoc will insert the types



##########
src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java:
##########
@@ -118,32 +119,54 @@ public class JavadocUtil {
                     + "environment variable using -Xms:<size> and 
-Xmx:<size>.";
 
     /**
-     * Method that removes the invalid directories in the specified 
directories. <b>Note</b>: All elements in
-     * <code>dirs</code> could be an absolute or relative against the 
project's base directory <code>String</code> path.
+     * Method that removes invalid classpath elements in the specified paths. 
<b>Note</b>: All elements in

Review Comment:
   What does invalid mean in this context? Rewrite Javadoc to clarify



##########
src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java:
##########
@@ -118,32 +119,54 @@ public class JavadocUtil {
                     + "environment variable using -Xms:<size> and 
-Xmx:<size>.";
 
     /**
-     * Method that removes the invalid directories in the specified 
directories. <b>Note</b>: All elements in
-     * <code>dirs</code> could be an absolute or relative against the 
project's base directory <code>String</code> path.
+     * Method that removes invalid classpath elements in the specified paths. 
<b>Note</b>: All elements in
+     * <code>paths</code> could be absolute or relative against the project's 
base directory <code>String</code> path.
+     * When pruning class paths, you can optionally include "*.jar" files in 
the result, otherwise only directories are
+     * permitted.
      *
      * @param project the current Maven project not null
-     * @param dirs the collection of <code>String</code> directories path that 
will be validated.
-     * @return a List of valid <code>String</code> directories absolute paths.
+     * @param paths the collection of <code>String</code> paths that will be 
validated
+     * @param includeJars whether to include JAR files in the result
+     * @return a list of valid <code>String</code> directories and optionally 
JAR files as absolute paths
      */
-    public static Collection<Path> pruneDirs(MavenProject project, 
Collection<String> dirs) {
+    public static Collection<Path> prunePaths(MavenProject project, 
Collection<String> paths, boolean includeJars) {
         final Path projectBasedir = project.getBasedir().toPath();
 
-        Set<Path> pruned = new LinkedHashSet<>(dirs.size());
-        for (String dir : dirs) {
-            if (dir == null) {
+        Set<Path> pruned = new LinkedHashSet<>(paths.size());
+        for (String path : paths) {
+            if (path == null) {
                 continue;
             }
 
-            Path directory = projectBasedir.resolve(dir);
-
-            if (Files.isDirectory(directory)) {
-                pruned.add(directory.toAbsolutePath());
+            Path resolvedPath = projectBasedir.resolve(path);
+
+            if (Files.isDirectory(resolvedPath)
+                    || includeJars
+                            && Files.isRegularFile(resolvedPath)
+                            && resolvedPath
+                                    .getFileName()
+                                    .toString()
+                                    .toLowerCase(Locale.ROOT)
+                                    .endsWith(".jar")) {
+                pruned.add(resolvedPath.toAbsolutePath());
             }
         }
 
         return pruned;
     }
 
+    /**
+     * Method that removes the invalid directories in the specified 
directories. <b>Note</b>: All elements in
+     * <code>dirs</code> could be absolute or relative against the project's 
base directory <code>String</code> path.
+     *
+     * @param project the current Maven project not null
+     * @param dirs the collection of <code>String</code> directories that will 
be validated
+     * @return a list of valid <code>String</code> directories as absolute 
paths

Review Comment:
   what does valid mean here?





> Invalid path when using TagletArtifact and TagletPath
> -----------------------------------------------------
>
>                 Key: MJAVADOC-783
>                 URL: https://issues.apache.org/jira/browse/MJAVADOC-783
>             Project: Maven Javadoc Plugin
>          Issue Type: Bug
>    Affects Versions: 3.6.3
>            Reporter: Rob Gordon
>            Priority: Major
>
> I’m trying to use the Javadoc plugin with both a tagletartifact and a 
> tagletpath but I get an InvliadPathException from the Javadoc goal.
> I can see from the generated options file that there is no separator between 
> the end of the artifact path and the taglet path.
> I think the problem is that getTagletPath method of AbstractJavadocMojo 
> should check for an existing path before adding the tagletpath. Something 
> like:
> {code:java}
>         if (tagletpath != null && !tagletpath.isEmpty()) {
>             if (path.length() > 0)
> {                 path.append(File.pathSeparator);             }
>             path.append(JavadocUtil.unifyPathSeparator(tagletpath));
>         }
> {code}
> I looked at creating a pull request but I can’t work out how to create a 
> suitable test. I found a taglet-test-plugin-config.xml, but not where it’s 
> used.
> Could someone familiar with this codebase possibly take a look at this 
> problem please?
> My configuration can be seen here: 
> [https://github.com/robjg/oj-parent/blob/d3e2328ca285516f1a4f6ee2bce94b44ba89b748/pom.xml#L304]
> I attempted to report this problem via 'us...@maven.apache.org' however my 
> mail did not make it. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to