Switch from List to Collection to make it easier to use Sets when preferred
git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1816235 13f79535-47bb-0310-9956-ffa450edef68
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 a720528..df24821 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
@@ -1977,7 +1977,7 @@
throw new MavenReportException( "Failed to generate javadoc options file: " + e.getMessage(), e );
}
- List<String> sourcePaths = getSourcePaths();
+ Collection<String> sourcePaths = getSourcePaths();
List<String> files = getFiles( sourcePaths );
if ( !canGenerateReport( files ) )
{
@@ -2180,11 +2180,11 @@
/**
* Method to get the files on the specified source paths
*
- * @param sourcePaths a List that contains the paths to the source files
+ * @param sourcePaths a Collection that contains the paths to the source files
* @return a List that contains the specific path for every source file
* @throws MavenReportException {@link MavenReportException}
*/
- protected List<String> getFiles( List<String> sourcePaths )
+ protected List<String> getFiles( Collection<String> sourcePaths )
throws MavenReportException
{
List<String> files = new ArrayList<>();
@@ -2207,14 +2207,14 @@
* Method to get the source paths. If no source path is specified in the parameter, the compile source roots
* of the project will be used.
*
- * @return a List of the project absolute source paths as <code>String</code>
+ * @return a Collection of the project absolute source paths as <code>String</code>
* @throws MavenReportException {@link MavenReportException}
* @see JavadocUtil#pruneDirs(MavenProject, List)
*/
- protected List<String> getSourcePaths()
+ protected Collection<String> getSourcePaths()
throws MavenReportException
{
- List<String> sourcePaths;
+ Collection<String> sourcePaths;
if ( StringUtils.isEmpty( sourcepath ) )
{
@@ -2235,7 +2235,7 @@
File javadocDir = getJavadocDirectory();
if ( javadocDir.exists() && javadocDir.isDirectory() )
{
- List<String> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
+ Collection<String> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
getJavadocDirectory().getAbsolutePath() ) );
sourcePaths.addAll( l );
}
@@ -2273,7 +2273,7 @@
File javadocDir = new File( subProject.getBasedir(), javadocDirRelative );
if ( javadocDir.exists() && javadocDir.isDirectory() )
{
- List<String> l = JavadocUtil.pruneDirs( subProject, Collections.singletonList(
+ Collection<String> l = JavadocUtil.pruneDirs( subProject, Collections.singletonList(
javadocDir.getAbsolutePath() ) );
sourcePaths.addAll( l );
}
@@ -2288,7 +2288,7 @@
sourcePaths = JavadocUtil.pruneDirs( project, sourcePaths );
if ( getJavadocDirectory() != null )
{
- List<String> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
+ Collection<String> l = JavadocUtil.pruneDirs( project, Collections.singletonList(
getJavadocDirectory().getAbsolutePath() ) );
sourcePaths.addAll( l );
}
@@ -2436,11 +2436,11 @@
* Method to get the excluded source files from the javadoc and create the argument string
* that will be included in the javadoc commandline execution.
*
- * @param sourcePaths the list of paths to the source files
+ * @param sourcePaths the collection of paths to the source files
* @return a String that contains the exclude argument that will be used by javadoc
* @throws MavenReportException
*/
- private String getExcludedPackages( List<String> sourcePaths )
+ private String getExcludedPackages( Collection<String> sourcePaths )
throws MavenReportException
{
List<String> excludedNames = null;
@@ -2471,7 +2471,7 @@
* string (colon (<code>:</code>) on Solaris or semi-colon (<code>;</code>) on Windows).
* @see File#pathSeparator
*/
- private String getSourcePath( List<String> sourcePaths )
+ private String getSourcePath( Collection<String> sourcePaths )
{
String sourcePath = null;
@@ -3049,7 +3049,7 @@
throws MavenReportException
{
Set<TagletArtifact> tArtifacts = collectTagletArtifacts();
- List<String> pathParts = new ArrayList<>();
+ Collection<String> pathParts = new ArrayList<>();
for ( TagletArtifact tagletArtifact : tArtifacts )
{
@@ -4284,7 +4284,7 @@
* @param files not null
* @return the list of package names for files in the sourcePaths
*/
- private List<String> getPackageNames( List<String> sourcePaths, List<String> files )
+ private List<String> getPackageNames( Collection<String> sourcePaths, List<String> files )
{
return getPackageNamesOrFilesWithUnnamedPackages( sourcePaths, files, true );
}
@@ -4294,7 +4294,7 @@
* @param files not null
* @return a list files with unnamed package names for files in the sourecPaths
*/
- private List<String> getFilesWithUnnamedPackages( List<String> sourcePaths, List<String> files )
+ private List<String> getFilesWithUnnamedPackages( Collection<String> sourcePaths, List<String> files )
{
return getPackageNamesOrFilesWithUnnamedPackages( sourcePaths, files, false );
}
@@ -4307,7 +4307,7 @@
* @see #getFiles(List)
* @see #getSourcePaths()
*/
- private List<String> getPackageNamesOrFilesWithUnnamedPackages( List<String> sourcePaths, List<String> files,
+ private List<String> getPackageNamesOrFilesWithUnnamedPackages( Collection<String> sourcePaths, List<String> files,
boolean onlyPackageName )
{
List<String> returnList = new ArrayList<>();
@@ -4624,7 +4624,7 @@
* @throws MavenReportException if any
* @see <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#javadocoptions">http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#javadocoptions</a>
*/
- private void addJavadocOptions( List<String> arguments, List<String> sourcePaths )
+ private void addJavadocOptions( List<String> arguments, Collection<String> sourcePaths )
throws MavenReportException
{
validateJavadocOptions();
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 0274c89..3e8d01a 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
@@ -20,6 +20,7 @@
*/
import java.io.File;
+import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
@@ -235,7 +236,7 @@
if ( !this.isAggregator() || ( this.isAggregator() && this.project.isExecutionRoot() ) )
{
- List<String> sourcePaths;
+ Collection<String> sourcePaths;
List<String> files;
try
{
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 5844d66..90c5e84 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
@@ -78,10 +78,12 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.NoSuchElementException;
import java.util.Properties;
+import java.util.Set;
import java.util.StringTokenizer;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
@@ -112,12 +114,12 @@
* directory <code>String</code> path.
*
* @param project the current Maven project not null
- * @param dirs the list of <code>String</code> directories path that will be validated.
+ * @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 List<String> pruneDirs( MavenProject project, List<String> dirs )
+ public static Collection<String> pruneDirs( MavenProject project, Collection<String> dirs )
{
- List<String> pruned = new ArrayList<>( dirs.size() );
+ Set<String> pruned = new LinkedHashSet<>( dirs.size() );
for ( String dir : dirs )
{
if ( dir == null )
@@ -131,7 +133,7 @@
directory = new File( project.getBasedir(), directory.getPath() );
}
- if ( directory.isDirectory() && !pruned.contains( directory.getAbsolutePath() ) )
+ if ( directory.isDirectory() )
{
pruned.add( directory.getAbsolutePath() );
}
@@ -147,7 +149,7 @@
* @param files the list of <code>String</code> files paths that will be validated.
* @return a List of valid <code>File</code> objects.
*/
- protected static List<String> pruneFiles( List<String> files )
+ protected static List<String> pruneFiles( Collection<String> files )
{
List<String> pruned = new ArrayList<>( files.size() );
for ( String f : files )
@@ -191,7 +193,7 @@
* @param excludedPackages the package names to be excluded in the javadoc
* @return a List of the source files to be excluded in the generated javadoc
*/
- protected static List<String> getExcludedNames( List<String> sourcePaths, String[] subpackagesList,
+ protected static List<String> getExcludedNames( Collection<String> sourcePaths, String[] subpackagesList,
String[] excludedPackages )
{
List<String> excludedNames = new ArrayList<>();
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 c24c62b..e47aa99 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
@@ -26,6 +26,7 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
@@ -39,11 +40,11 @@
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.plugins.javadoc.options.JavadocOptions;
-import org.apache.maven.plugins.javadoc.options.io.xpp3.JavadocOptionsXpp3Reader;
import org.apache.maven.plugins.javadoc.AbstractJavadocMojo;
import org.apache.maven.plugins.javadoc.JavadocUtil;
import org.apache.maven.plugins.javadoc.ResourcesBundleMojo;
+import org.apache.maven.plugins.javadoc.options.JavadocOptions;
+import org.apache.maven.plugins.javadoc.options.io.xpp3.JavadocOptionsXpp3Reader;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.artifact.filter.resolve.transform.ArtifactIncludeFilterTransformer;
import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
@@ -439,7 +440,7 @@
return result;
}
- private static List<String> resolveFromProject( final SourceResolverConfig config,
+ private static Collection<String> 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/JavadocJarTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java
index ecff198..2ecd5d5 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarTest.java
@@ -75,13 +75,16 @@
new File( getBasedir(), "target/test/unit/javadocjar-default/target/javadocjar-default-javadoc.jar" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
- //validate contents of jar file
- ZipFile jar = new ZipFile( generatedFile );
Set<String> set = new HashSet<>();
- for( Enumeration<? extends ZipEntry> entries = jar.entries(); entries.hasMoreElements(); )
+
+ //validate contents of jar file
+ try ( ZipFile jar = new ZipFile( generatedFile ) )
{
- ZipEntry entry = entries.nextElement();
- set.add( entry.getName() );
+ for( Enumeration<? extends ZipEntry> entries = jar.entries(); entries.hasMoreElements(); )
+ {
+ ZipEntry entry = entries.nextElement();
+ set.add( entry.getName() );
+ }
}
assertTrue( set.contains( "stylesheet.css" ) );
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 8f8eb50..e13f176 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
@@ -25,9 +25,11 @@
import java.net.SocketTimeoutException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.regex.PatternSyntaxException;
import org.apache.commons.lang3.builder.EqualsBuilder;
@@ -585,10 +587,10 @@
list.add( getBasedir() + "/target/classes" );
list.add( getBasedir() + "/target/classes" );
- List<String> expected = new ArrayList<>();
- expected.add( getBasedir() + "/target/classes" );
+ String FS = System.getProperty( "file.separator" );
+ Set<String> expected = Collections.singleton( getBasedir() + FS +"target" + FS + "classes" );
- assertTrue( EqualsBuilder.reflectionEquals( expected, JavadocUtil.pruneDirs( null, list ) ) );
+ assertEquals( expected, JavadocUtil.pruneDirs( null, list ) );
}
/**