You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2018/12/28 11:30:00 UTC
[maven-javadoc-plugin] branch master updated: Refactor Strings to
Paths
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new b9d08e9 Refactor Strings to Paths
b9d08e9 is described below
commit b9d08e9ed358d0cfff89692946f02f668d5ab96f
Author: rfscholte <rf...@apache.org>
AuthorDate: Fri Dec 28 12:29:51 2018 +0100
Refactor Strings to Paths
---
.../maven/plugins/javadoc/AbstractJavadocMojo.java | 276 +++++++++++----------
.../maven/plugins/javadoc/JavadocReport.java | 7 +-
.../apache/maven/plugins/javadoc/JavadocUtil.java | 18 +-
.../plugins/javadoc/resolver/ResourceResolver.java | 21 +-
.../maven/plugins/javadoc/JavadocReportTest.java | 10 +-
.../maven/plugins/javadoc/JavadocUtilTest.java | 12 +-
.../AggregateProject1TestMavenProjectStub.java | 2 +-
.../AggregateProject2TestMavenProjectStub.java | 2 +-
.../DefaultConfigurationMavenProjectStub.java | 2 +-
.../stubs/DocfilesTestMavenProjectStub.java | 2 +-
.../stubs/JavadocJarArchiveConfigProjectStub.java | 2 +-
.../stubs/JavadocJarDefaultMavenProjectStub.java | 2 +-
.../JavadocJarFailOnErrorMavenProjectStub.java | 2 +-
.../JavadocJarInvalidDestdirMavenProjectStub.java | 3 +-
.../OptionsUmlautEncodingMavenProjectStub.java | 2 +-
.../javadoc/stubs/QuotedPathMavenProjectStub.java | 2 +-
.../stubs/SubpackagesTestMavenProjectStub.java | 2 +-
.../javadoc/stubs/TagletTestMavenProjectStub.java | 2 +-
18 files changed, 188 insertions(+), 181 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 e7c8bbc..b3f344c 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
@@ -127,6 +127,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
import java.util.StringTokenizer;
@@ -1988,11 +1989,11 @@ public abstract class AbstractJavadocMojo
throw new MavenReportException( "Failed to generate javadoc options file: " + e.getMessage(), e );
}
- Map<String, Collection<String>> sourcePaths = getSourcePaths();
+ Map<String, Collection<Path>> sourcePaths = getSourcePaths();
- Collection<String> collectedSourcePaths = collect( sourcePaths.values() );
+ Collection<Path> collectedSourcePaths = collect( sourcePaths.values() );
- List<String> files = getFiles( collectedSourcePaths );
+ Map<Path, Collection<String>> files = getFiles( collectedSourcePaths );
if ( !canGenerateReport( files ) )
{
return;
@@ -2020,9 +2021,9 @@ public abstract class AbstractJavadocMojo
}
else
{
- packageNames = getPackageNames( collectedSourcePaths, files );
+ packageNames = getPackageNames( files );
}
- List<String> filesWithUnnamedPackages = getFilesWithUnnamedPackages( collectedSourcePaths, files );
+ List<String> filesWithUnnamedPackages = getFilesWithUnnamedPackages( files );
// ----------------------------------------------------------------------
// Javadoc output directory as File
@@ -2135,10 +2136,19 @@ public abstract class AbstractJavadocMojo
// ----------------------------------------------------------------------
// Write argfile file and include it in the command line
// ----------------------------------------------------------------------
+
+ List<String> allFiles = new ArrayList<>();
+ for ( Map.Entry<Path, Collection<String>> filesEntry : files.entrySet() )
+ {
+ for ( String file : filesEntry.getValue() )
+ {
+ allFiles.add( filesEntry.getKey().resolve( file ).toString() );
+ }
+ }
if ( !files.isEmpty() )
{
- addCommandLineArgFile( cmd, javadocOutputDirectory, files );
+ addCommandLineArgFile( cmd, javadocOutputDirectory, allFiles );
}
}
@@ -2199,10 +2209,10 @@ public abstract class AbstractJavadocMojo
}
}
- protected final Collection<String> collect( Collection<Collection<String>> sourcePaths )
+ protected final <T> Collection<T> collect( Collection<Collection<T>> sourcePaths )
{
- Collection<String> collectedSourcePaths = new LinkedHashSet<>();
- for ( Collection<String> sp : sourcePaths )
+ Collection<T> collectedSourcePaths = new LinkedHashSet<>();
+ for ( Collection<T> sp : sourcePaths )
{
collectedSourcePaths.addAll( sp );
}
@@ -2216,23 +2226,25 @@ public abstract class AbstractJavadocMojo
* @return a List that contains the specific path for every source file
* @throws MavenReportException {@link MavenReportException}
*/
- protected List<String> getFiles( Collection<String> sourcePaths )
+ protected Map<Path, Collection<String>> getFiles( Collection<Path> sourcePaths )
throws MavenReportException
{
- List<String> files = new ArrayList<>();
+ Map<Path, Collection<String>> mappedFiles = new LinkedHashMap<>( sourcePaths.size() );
if ( StringUtils.isEmpty( subpackages ) )
{
Collection<String> excludedPackages = getExcludedPackages();
- for ( String sourcePath : sourcePaths )
+ for ( Path sourcePath : sourcePaths )
{
- File sourceDirectory = new File( sourcePath );
+ List<String> files = new ArrayList<>();
+ File sourceDirectory = sourcePath.toFile();
files.addAll( JavadocUtil.getFilesFromSource( sourceDirectory, sourceFileIncludes, sourceFileExcludes,
excludedPackages ) );
+ mappedFiles.put( sourcePath, files );
}
}
- return files;
+ return mappedFiles;
}
/**
@@ -2243,15 +2255,15 @@ public abstract class AbstractJavadocMojo
* @throws MavenReportException {@link MavenReportException}
* @see JavadocUtil#pruneDirs(MavenProject, Collection)
*/
- protected Map<String, Collection<String>> getSourcePaths()
+ protected Map<String, Collection<Path>> getSourcePaths()
throws MavenReportException
{
- Map<String, Collection<String>> mappedSourcePaths = new LinkedHashMap<>();
+ Map<String, Collection<Path>> mappedSourcePaths = new LinkedHashMap<>();
if ( StringUtils.isEmpty( sourcepath ) )
{
- Set<String> sourcePaths =
+ Set<Path> sourcePaths =
new LinkedHashSet<>( JavadocUtil.pruneDirs( project, getProjectSourceRoots( project ) ) );
if ( project.getExecutionProject() != null )
@@ -2269,7 +2281,7 @@ public abstract class AbstractJavadocMojo
File javadocDir = getJavadocDirectory();
if ( javadocDir.exists() && javadocDir.isDirectory() )
{
- Collection<String> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
+ Collection<Path> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
getJavadocDirectory().getAbsolutePath() ) );
sourcePaths.addAll( l );
}
@@ -2288,7 +2300,7 @@ public abstract class AbstractJavadocMojo
{
if ( subProject != project )
{
- Collection<String> additionalSourcePaths = new ArrayList<>();
+ Collection<Path> additionalSourcePaths = new ArrayList<>();
List<String> sourceRoots = getProjectSourceRoots( subProject );
@@ -2311,7 +2323,7 @@ public abstract class AbstractJavadocMojo
File javadocDir = new File( subProject.getBasedir(), javadocDirRelative );
if ( javadocDir.exists() && javadocDir.isDirectory() )
{
- Collection<String> l = JavadocUtil.pruneDirs( subProject, Collections.singletonList(
+ Collection<Path> l = JavadocUtil.pruneDirs( subProject, Collections.singletonList(
javadocDir.getAbsolutePath() ) );
additionalSourcePaths.addAll( l );
}
@@ -2325,11 +2337,12 @@ public abstract class AbstractJavadocMojo
}
else
{
- Collection<String> sourcePaths = new ArrayList<>( Arrays.asList( JavadocUtil.splitPath( sourcepath ) ) );
- sourcePaths = JavadocUtil.pruneDirs( project, sourcePaths );
+ Collection<Path> sourcePaths =
+ JavadocUtil.pruneDirs( project,
+ new ArrayList<>( Arrays.asList( JavadocUtil.splitPath( sourcepath ) ) ) );
if ( getJavadocDirectory() != null )
{
- Collection<String> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
+ Collection<Path> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
getJavadocDirectory().getAbsolutePath() ) );
sourcePaths.addAll( l );
}
@@ -2408,7 +2421,7 @@ public abstract class AbstractJavadocMojo
* @return List of source paths.
* @throws MavenReportException {@link MavenReportException}
*/
- protected final Map<String, Collection<String>> getDependencySourcePaths()
+ protected final Map<String, Collection<Path>> getDependencySourcePaths()
throws MavenReportException
{
try
@@ -2503,16 +2516,17 @@ public abstract class AbstractJavadocMojo
* @param files the project files
* @return a boolean that indicates whether javadoc report can be generated or not
*/
- protected boolean canGenerateReport( List<String> files )
+ protected boolean canGenerateReport( Map<Path, Collection<String>> files )
{
- boolean canGenerate = true;
-
- if ( files.isEmpty() && StringUtils.isEmpty( subpackages ) )
+ for ( Collection<String> filesValues : files.values() )
{
- canGenerate = false;
+ if ( !filesValues.isEmpty() )
+ {
+ return true;
+ }
}
- return canGenerate;
+ return !StringUtils.isEmpty( subpackages );
}
// ----------------------------------------------------------------------
@@ -2527,17 +2541,11 @@ public abstract class AbstractJavadocMojo
* @return a String that contains the exclude argument that will be used by javadoc
* @throws MavenReportException
*/
- private String getExcludedPackages( Collection<String> sourceFolders )
+ private String getExcludedPackages( Collection<Path> sourcePaths )
throws MavenReportException
{
List<String> excludedNames = null;
- Collection<Path> sourcePaths = new ArrayList<>( sourceFolders.size() );
- for ( String folder : sourceFolders )
- {
- sourcePaths.add( Paths.get( folder ) );
- }
-
if ( StringUtils.isNotEmpty( sourcepath ) && StringUtils.isNotEmpty( subpackages ) )
{
Collection<String> excludedPackages = getExcludedPackages();
@@ -2563,7 +2571,7 @@ public abstract class AbstractJavadocMojo
* string (colon (<code>:</code>) on Solaris or semi-colon (<code>;</code>) on Windows).
* @see File#pathSeparator
*/
- private String getSourcePath( Collection<String> sourcePaths )
+ private String getSourcePath( Collection<Path> sourcePaths )
{
String sourcePath = null;
@@ -3145,15 +3153,14 @@ public abstract class AbstractJavadocMojo
taglet.getTagletArtifact().getArtifactId() ) ) && ( StringUtils.isNotEmpty(
taglet.getTagletArtifact().getVersion() ) ) )
{
- pathParts.addAll( getArtifactsAbsolutePath( taglet.getTagletArtifact() ) );
-
- pathParts = JavadocUtil.pruneFiles( pathParts );
+ pathParts.addAll( JavadocUtil.pruneFiles( getArtifactsAbsolutePath( taglet.getTagletArtifact() ) ) );
}
else if ( StringUtils.isNotEmpty( taglet.getTagletpath() ) )
{
- pathParts.add( taglet.getTagletpath() );
-
- pathParts = JavadocUtil.pruneDirs( project, pathParts );
+ for ( Path dir : JavadocUtil.pruneDirs( project, Collections.singletonList( taglet.getTagletpath() ) ) )
+ {
+ pathParts.add( dir.toString() );
+ }
}
}
@@ -4346,9 +4353,42 @@ public abstract class AbstractJavadocMojo
* @param files not null
* @return the list of package names for files in the sourcePaths
*/
- private List<String> getPackageNames( Collection<String> sourcePaths, List<String> files )
+ private List<String> getPackageNames( Map<Path, Collection<String>> sourcePaths )
{
- return getPackageNamesOrFilesWithUnnamedPackages( sourcePaths, files, true );
+ List<String> returnList = new ArrayList<>();
+
+ if ( !StringUtils.isEmpty( sourcepath ) )
+ {
+ return returnList;
+ }
+
+ for ( Entry<Path, Collection<String>> currentPathEntry : sourcePaths.entrySet() )
+ {
+ for ( String currentFile : currentPathEntry.getValue() )
+ {
+ /*
+ * Remove the miscellaneous files
+ * http://docs.oracle.com/javase/1.4.2/docs/tooldocs/solaris/javadoc.html#unprocessed
+ */
+ if ( currentFile.contains( "doc-files" ) )
+ {
+ continue;
+ }
+
+ int lastIndexOfSeparator = currentFile.lastIndexOf( "/" );
+ if ( lastIndexOfSeparator != -1 )
+ {
+ String packagename = currentFile.substring( 0, lastIndexOfSeparator ).replace( '/', '.' );
+
+ if ( !returnList.contains( packagename ) )
+ {
+ returnList.add( packagename );
+ }
+ }
+ }
+ }
+
+ return returnList;
}
/**
@@ -4358,7 +4398,7 @@ public abstract class AbstractJavadocMojo
* @see #getFiles
* @see #getSourcePaths()
*/
- private List<String> getPackageNamesRespectingJavaModules( Map<String, Collection<String>> allSourcePaths )
+ private List<String> getPackageNamesRespectingJavaModules( Map<String, Collection<Path>> allSourcePaths )
throws MavenReportException
{
List<String> returnList = new ArrayList<>();
@@ -4369,7 +4409,7 @@ public abstract class AbstractJavadocMojo
}
LocationManager locationManager = new LocationManager();
- for ( Collection<String> artifactSourcePaths: allSourcePaths.values() )
+ for ( Collection<Path> artifactSourcePaths: allSourcePaths.values() )
{
Set<String> exportedPackages = new HashSet<>();
boolean exportAllPackages;
@@ -4404,40 +4444,28 @@ public abstract class AbstractJavadocMojo
exportAllPackages = true;
}
- for ( String currentFile : getFiles( artifactSourcePaths ) )
+ for ( Map.Entry<Path, Collection<String>> currentPathEntry : getFiles( artifactSourcePaths ).entrySet() )
{
- currentFile = currentFile.replace( '\\', '/' );
-
- for ( String currentSourcePath : artifactSourcePaths )
+ for ( String currentFile : currentPathEntry.getValue() )
{
- currentSourcePath = currentSourcePath.replace( '\\', '/' );
-
- if ( currentFile.contains( currentSourcePath ) )
+ /*
+ * Remove the miscellaneous files
+ * http://docs.oracle.com/javase/1.4.2/docs/tooldocs/solaris/javadoc.html#unprocessed
+ */
+ if ( currentFile.contains( "doc-files" ) )
{
- if ( !currentSourcePath.endsWith( "/" ) )
- {
- currentSourcePath += "/";
- }
- String packagename = currentFile.substring( currentSourcePath.length() + 1 );
+ continue;
+ }
- /*
- * Remove the miscellaneous files
- * http://docs.oracle.com/javase/1.4.2/docs/tooldocs/solaris/javadoc.html#unprocessed
- */
- if ( packagename.contains( "doc-files" ) )
- {
- continue;
- }
+ int lastIndexOfSeparator = currentFile.lastIndexOf( File.separatorChar );
+ if ( lastIndexOfSeparator != -1 )
+ {
+ String packagename =
+ currentFile.substring( 0, lastIndexOfSeparator ).replace( File.separatorChar, '.' );
- if ( packagename.lastIndexOf( "/" ) != -1 )
+ if ( exportAllPackages || exportedPackages.contains( packagename ) )
{
- packagename = packagename.substring( 0, packagename.lastIndexOf( "/" ) );
- packagename = packagename.replace( '/', '.' );
-
- if ( exportAllPackages || exportedPackages.contains( packagename ) )
- {
- returnList.add( packagename );
- }
+ returnList.add( packagename );
}
}
}
@@ -4452,73 +4480,37 @@ public abstract class AbstractJavadocMojo
* @param files not null
* @return a list files with unnamed package names for files in the sourcePaths
*/
- private List<String> getFilesWithUnnamedPackages( Collection<String> sourcePaths, List<String> files )
- {
- return getPackageNamesOrFilesWithUnnamedPackages( sourcePaths, files, false );
- }
-
- /**
- * @param sourcePaths not null, containing absolute and relative paths
- * @param files not null, containing list of quoted files
- * @param onlyPackageName boolean for only package name
- * @return a list of package names or files with unnamed package names, depending the value of the unnamed flag
- * @see #getFiles
- * @see #getSourcePaths()
- */
- private List<String> getPackageNamesOrFilesWithUnnamedPackages( Collection<String> sourcePaths, List<String> files,
- boolean onlyPackageName )
+ private List<String> getFilesWithUnnamedPackages( Map<Path, Collection<String>> sourcePaths )
{
List<String> returnList = new ArrayList<>();
-
+
if ( !StringUtils.isEmpty( sourcepath ) )
{
return returnList;
}
-
- for ( String currentFile : files )
+
+ for ( Entry<Path, Collection<String>> currentPathEntry : sourcePaths.entrySet() )
{
- currentFile = currentFile.replace( '\\', '/' );
-
- for ( String currentSourcePath : sourcePaths )
+ Path currentSourcePath = currentPathEntry.getKey();
+
+ for ( String currentFile : currentPathEntry.getValue() )
{
- currentSourcePath = currentSourcePath.replace( '\\', '/' );
-
- if ( !currentSourcePath.endsWith( "/" ) )
+ /*
+ * Remove the miscellaneous files
+ * http://docs.oracle.com/javase/1.4.2/docs/tooldocs/solaris/javadoc.html#unprocessed
+ */
+ if ( currentFile.contains( "doc-files" ) )
{
- currentSourcePath += "/";
+ continue;
}
-
- if ( currentFile.contains( currentSourcePath ) )
+
+ if ( currentFile.indexOf( File.separatorChar ) == -1 )
{
- String packagename = currentFile.substring( currentSourcePath.length() + 1 );
-
- /*
- * Remove the miscellaneous files
- * http://docs.oracle.com/javase/1.4.2/docs/tooldocs/solaris/javadoc.html#unprocessed
- */
- if ( packagename.contains( "doc-files" ) )
- {
- continue;
- }
-
- if ( onlyPackageName && packagename.lastIndexOf( "/" ) != -1 )
- {
- packagename = packagename.substring( 0, packagename.lastIndexOf( "/" ) );
- packagename = packagename.replace( '/', '.' );
-
- if ( !returnList.contains( packagename ) )
- {
- returnList.add( packagename );
- }
- }
- if ( !onlyPackageName && packagename.lastIndexOf( "/" ) == -1 )
- {
- returnList.add( currentFile );
- }
+ returnList.add( currentSourcePath.resolve( currentFile ).toAbsolutePath().toString() );
}
}
}
-
+
return returnList;
}
@@ -4595,10 +4587,16 @@ public abstract class AbstractJavadocMojo
cmd.createArg().setValue( "@" + FILES_FILE_NAME );
}
+ List<String> quotedFiles = new ArrayList<>( files.size() );
+ for ( String file : files )
+ {
+ quotedFiles.add( JavadocUtil.quotedPathArgument( file ) );
+ }
+
try
{
FileUtils.fileWrite( argfileFile.getAbsolutePath(), null /* platform encoding */,
- StringUtils.join( files.iterator(), SystemUtils.LINE_SEPARATOR ) );
+ StringUtils.join( quotedFiles.iterator(), SystemUtils.LINE_SEPARATOR ) );
}
catch ( IOException e )
{
@@ -4791,10 +4789,10 @@ public abstract class AbstractJavadocMojo
*/
private void addJavadocOptions( File javadocOutputDirectory,
List<String> arguments,
- Map<String, Collection<String>> allSourcePaths )
+ Map<String, Collection<Path>> allSourcePaths )
throws MavenReportException
{
- Collection<String> sourcePaths = collect( allSourcePaths.values() );
+ Collection<Path> sourcePaths = collect( allSourcePaths.values() );
validateJavadocOptions();
@@ -4836,7 +4834,7 @@ public abstract class AbstractJavadocMojo
Path moduleSourceDir = null;
if ( allSourcePaths.size() > 1 )
{
- for ( Map.Entry<String, Collection<String>> projectSourcepaths : allSourcePaths.entrySet() )
+ for ( Map.Entry<String, Collection<Path>> projectSourcepaths : allSourcePaths.entrySet() )
{
if ( reactorKeys.contains( projectSourcepaths.getKey() ) )
{
@@ -4885,7 +4883,11 @@ public abstract class AbstractJavadocMojo
}
}
- List<String> roots = getProjectSourceRoots( getProject() );
+ Collection<Path> roots = new ArrayList<>();
+ for ( String path : getProjectSourceRoots( getProject() ) )
+ {
+ roots.add( Paths.get( path ) );
+ }
File mainDescriptor = findMainDescriptor( roots );
@@ -5006,11 +5008,11 @@ public abstract class AbstractJavadocMojo
}
}
- private File findMainDescriptor( Collection<String> roots )
+ private File findMainDescriptor( Collection<Path> roots )
{
- for ( String root : roots )
+ for ( Path root : roots )
{
- File descriptorFile = new File( root, "module-info.java" ).getAbsoluteFile();
+ File descriptorFile = root.resolve( "module-info.java" ).toAbsolutePath().toFile();
if ( descriptorFile.exists() )
{
return descriptorFile;
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
index bbc034f..bdef0fb 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
@@ -20,9 +20,10 @@ package org.apache.maven.plugins.javadoc;
*/
import java.io.File;
+import java.nio.file.Path;
import java.util.Collection;
-import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.ResourceBundle;
import org.apache.maven.doxia.siterenderer.RenderingContext;
@@ -228,8 +229,8 @@ public class JavadocReport
if ( this.isAggregator() || !"pom".equals( this.project.getPackaging() ) )
{
- Collection<String> sourcePaths;
- List<String> files;
+ Collection<Path> sourcePaths;
+ Map<Path, Collection<String>> files;
try
{
sourcePaths = collect( getSourcePaths().values() );
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
index 2e24e06..f56da63 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
@@ -125,9 +125,11 @@ public class JavadocUtil
* @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.
*/
- public static Collection<String> pruneDirs( MavenProject project, Collection<String> dirs )
+ public static Collection<Path> pruneDirs( MavenProject project, Collection<String> dirs )
{
- Set<String> pruned = new LinkedHashSet<>( dirs.size() );
+ final Path projectBasedir = project.getBasedir().toPath();
+
+ Set<Path> pruned = new LinkedHashSet<>( dirs.size() );
for ( String dir : dirs )
{
if ( dir == null )
@@ -135,15 +137,11 @@ public class JavadocUtil
continue;
}
- File directory = new File( dir );
- if ( !directory.isAbsolute() )
- {
- directory = new File( project.getBasedir(), directory.getPath() );
- }
+ Path directory = projectBasedir.resolve( dir );
- if ( directory.isDirectory() )
+ if ( Files.isDirectory( directory ) )
{
- pruned.add( directory.getAbsolutePath() );
+ pruned.add( directory.toAbsolutePath() );
}
}
@@ -470,7 +468,7 @@ public class JavadocUtil
{
for ( String includedFile : getIncludedFiles( sourceDirectory, fileList, excludePackages ) )
{
- files.add( quotedPathArgument( new File( sourceDirectory, includedFile ).getAbsolutePath() ) );
+ files.add( includedFile );
}
}
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java b/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java
index 5e3eeda..99034b2 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java
@@ -24,6 +24,7 @@ import static org.codehaus.plexus.util.IOUtil.close;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.nio.file.Path;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Arrays;
@@ -148,10 +149,10 @@ public final class ResourceResolver extends AbstractLogEnabled
* @throws ArtifactResolutionException {@link ArtifactResolutionException}
* @throws ArtifactNotFoundException {@link ArtifactNotFoundException}
*/
- public Map<String, Collection<String>> resolveDependencySourcePaths( final SourceResolverConfig config )
+ public Map<String, Collection<Path>> resolveDependencySourcePaths( final SourceResolverConfig config )
throws ArtifactResolutionException, ArtifactNotFoundException
{
- final Map<String, Collection<String>> mappedDirs = new LinkedHashMap<>();
+ final Map<String, Collection<Path>> mappedDirs = new LinkedHashMap<>();
final Map<String, MavenProject> projectMap = new HashMap<>();
if ( config.reactorProjects() != null )
@@ -179,7 +180,7 @@ public final class ResourceResolver extends AbstractLogEnabled
}
}
- for ( Map.Entry<String, String> entry : resolveFromArtifacts( config, forResourceResolution ) )
+ for ( Map.Entry<String, Path> entry : resolveFromArtifacts( config, forResourceResolution ) )
{
mappedDirs.put( entry.getKey(), Collections.singletonList( entry.getValue() ) );
}
@@ -271,10 +272,10 @@ public final class ResourceResolver extends AbstractLogEnabled
List<String> dirs = new ArrayList<>( toResolve.size() );
try
{
- for ( Map.Entry<String, String> entry : resolveAndUnpack( toResolve, config, RESOURCE_VALID_CLASSIFIERS,
+ for ( Map.Entry<String, Path> entry : resolveAndUnpack( toResolve, config, RESOURCE_VALID_CLASSIFIERS,
false ) )
{
- dirs.add( entry.getValue() );
+ dirs.add( entry.getValue().toString() );
}
}
catch ( ArtifactResolutionException | ArtifactNotFoundException e )
@@ -313,7 +314,7 @@ public final class ResourceResolver extends AbstractLogEnabled
return result;
}
- private Collection<Entry<String, String>> resolveFromArtifacts( final SourceResolverConfig config,
+ private Collection<Entry<String, Path>> resolveFromArtifacts( final SourceResolverConfig config,
final List<Artifact> artifacts )
throws ArtifactResolutionException, ArtifactNotFoundException
{
@@ -365,7 +366,7 @@ public final class ResourceResolver extends AbstractLogEnabled
* @throws ArtifactResolutionException if an exception occurs
* @throws ArtifactNotFoundException if an exception occurs
*/
- private Collection<Map.Entry<String, String>> resolveAndUnpack( final List<Artifact> artifacts,
+ private Collection<Map.Entry<String, Path>> resolveAndUnpack( final List<Artifact> artifacts,
final SourceResolverConfig config,
final List<String> validClassifiers,
final boolean propagateErrors )
@@ -386,7 +387,7 @@ public final class ResourceResolver extends AbstractLogEnabled
filter = null;
}
- final List<Map.Entry<String, String>> result = new ArrayList<>( artifacts.size() );
+ final List<Map.Entry<String, Path>> result = new ArrayList<>( artifacts.size() );
for ( final Artifact a : artifactSet )
{
if ( !validClassifiers.contains( a.getClassifier() ) || ( filter != null && !filter.include( a ) ) )
@@ -421,7 +422,7 @@ public final class ResourceResolver extends AbstractLogEnabled
unArchiver.extract();
- result.add( new AbstractMap.SimpleEntry<>( a.getDependencyConflictId(), d.getAbsolutePath() ) );
+ result.add( new AbstractMap.SimpleEntry<>( a.getDependencyConflictId(), d.toPath().toAbsolutePath() ) );
}
catch ( final NoSuchArchiverException e )
{
@@ -443,7 +444,7 @@ public final class ResourceResolver extends AbstractLogEnabled
return result;
}
- private static Collection<String> resolveFromProject( final SourceResolverConfig config,
+ private static Collection<Path> resolveFromProject( final SourceResolverConfig config,
final MavenProject reactorProject, final Artifact artifact )
{
final List<String> dirs = new ArrayList<>();
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 46358ab..0afc13e 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
@@ -345,11 +345,11 @@ public class JavadocReportTest
File apidocs = new File( getBasedir(), "target/test/unit/docfiles-test/target/site/apidocs/" );
// check if the doc-files subdirectories were copied
- assertTrue( new File( apidocs, "doc-files" ).exists() );
- assertTrue( new File( apidocs, "doc-files/included-dir1/sample-included1.gif" ).exists() );
- assertTrue( new File( apidocs, "doc-files/included-dir2/sample-included2.gif" ).exists() );
- assertFalse( new File( apidocs, "doc-files/excluded-dir1" ).exists() );
- assertFalse( new File( apidocs, "doc-files/excluded-dir2" ).exists() );
+ assertTrue( new File( apidocs, "docfiles/test/doc-files" ).exists() );
+ assertTrue( new File( apidocs, "docfiles/test/doc-files/included-dir1/sample-included1.gif" ).exists() );
+ assertTrue( new File( apidocs, "docfiles/test/doc-files/included-dir2/sample-included2.gif" ).exists() );
+ assertFalse( new File( apidocs, "docfiles/test/doc-files/excluded-dir1" ).exists() );
+ assertFalse( new File( apidocs, "docfiles/test/doc-files/excluded-dir2" ).exists() );
testPom = new File( unit, "docfiles-with-java-test/docfiles-with-java-test-plugin-config.xml" );
mojo = lookupMojo( testPom );
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
index 139a09f..79b94ba 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
@@ -28,6 +28,8 @@ import java.io.OutputStream;
import java.net.SocketTimeoutException;
import java.net.URI;
import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -42,7 +44,9 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
import org.apache.maven.plugins.javadoc.ProxyServer.AuthAsyncProxyServlet;
+import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.PlexusTestCase;
@@ -739,10 +743,12 @@ public class JavadocUtilTest
list.add( getBasedir() + "/target/classes" );
list.add( getBasedir() + "/target/classes" );
- String FS = System.getProperty( "file.separator" );
- Set<String> expected = Collections.singleton( getBasedir() + FS +"target" + FS + "classes" );
+ Set<Path> expected = Collections.singleton( Paths.get( getBasedir(), "target/classes" ) );
+
+ MavenProjectStub project = new MavenProjectStub();
+ project.setFile( new File( getBasedir(), "pom.xml" ) );
- assertEquals( expected, JavadocUtil.pruneDirs( null, list ) );
+ assertEquals( expected, JavadocUtil.pruneDirs( project, list ) );
}
/**
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java
index 9ac1241..8f7263b 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java
@@ -54,7 +54,7 @@ public class AggregateProject1TestMavenProjectStub
String basedir = getBasedir().getAbsolutePath();
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( basedir + "/aggregate/test/project1" );
+ compileSourceRoots.add( basedir );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java
index 045bf3d..5b51e76 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java
@@ -54,7 +54,7 @@ public class AggregateProject2TestMavenProjectStub
String basedir = getBasedir().getAbsolutePath();
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( basedir + "/aggregate/test/project2" );
+ compileSourceRoots.add( basedir );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DefaultConfigurationMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DefaultConfigurationMavenProjectStub.java
index bbe7ad0..9db73d6 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DefaultConfigurationMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DefaultConfigurationMavenProjectStub.java
@@ -57,7 +57,7 @@ public class DefaultConfigurationMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/def/configuration" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesTestMavenProjectStub.java
index 86c15ac..52018c5 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesTestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesTestMavenProjectStub.java
@@ -58,7 +58,7 @@ public class DocfilesTestMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/docfiles/test" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarArchiveConfigProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarArchiveConfigProjectStub.java
index 398c25a..95f1928 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarArchiveConfigProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarArchiveConfigProjectStub.java
@@ -66,7 +66,7 @@ public class JavadocJarArchiveConfigProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/javadocjar/def" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarDefaultMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarDefaultMavenProjectStub.java
index d60ba81..4a5fd46 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarDefaultMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarDefaultMavenProjectStub.java
@@ -64,7 +64,7 @@ public class JavadocJarDefaultMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/javadocjar/def" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarFailOnErrorMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarFailOnErrorMavenProjectStub.java
index ff0f6cd..8eba1ec 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarFailOnErrorMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarFailOnErrorMavenProjectStub.java
@@ -64,7 +64,7 @@ public class JavadocJarFailOnErrorMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/javadocjar/def" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarInvalidDestdirMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarInvalidDestdirMavenProjectStub.java
index 59e9bd9..28b8a18 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarInvalidDestdirMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarInvalidDestdirMavenProjectStub.java
@@ -63,8 +63,7 @@ public class JavadocJarInvalidDestdirMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add(
- getBasedir() + "/javadocjar/invalid/destdir" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/OptionsUmlautEncodingMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/OptionsUmlautEncodingMavenProjectStub.java
index a38d7ce..f1db35c 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/OptionsUmlautEncodingMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/OptionsUmlautEncodingMavenProjectStub.java
@@ -53,7 +53,7 @@ public class OptionsUmlautEncodingMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/optionsumlautencoding/test" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/QuotedPathMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/QuotedPathMavenProjectStub.java
index a3c0b6e..097fbfc 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/QuotedPathMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/QuotedPathMavenProjectStub.java
@@ -57,7 +57,7 @@ public class QuotedPathMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/quotedpath/test" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/SubpackagesTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/SubpackagesTestMavenProjectStub.java
index 5213f93..1e26185 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/SubpackagesTestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/SubpackagesTestMavenProjectStub.java
@@ -57,7 +57,7 @@ public class SubpackagesTestMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/subpackages/test" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletTestMavenProjectStub.java
index d1c4c35..919bc8b 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletTestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletTestMavenProjectStub.java
@@ -57,7 +57,7 @@ public class TagletTestMavenProjectStub
setBuild( build );
List<String> compileSourceRoots = new ArrayList<>();
- compileSourceRoots.add( getBasedir() + "/taglet/test" );
+ compileSourceRoots.add( getBasedir().getAbsolutePath() );
setCompileSourceRoots( compileSourceRoots );
}