From efca2ce03c049ad9293d73cbc6c9da5a34a1c164 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Wed, 30 Jun 2021 09:43:25 +1000 Subject: [PATCH] Java 8 code style update and bump some maven dependencies (#463) * some cleanup Signed-off-by: olivier lamy * some cleanup Signed-off-by: olivier lamy * Update src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java Co-authored-by: Benjamin Marwell * Update src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java Co-authored-by: Benjamin Marwell * Update src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java Co-authored-by: Benjamin Marwell * Update src/main/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojo.java Co-authored-by: Benjamin Marwell * fix casting and renamed variable. * rework dependency matching * rework dependency management dependency matches and loop. * more cleanup java8, upgrade some maven dependencies but this might need more changes Signed-off-by: olivier lamy * Update src/main/java/org/codehaus/mojo/versions/api/PomHelper.java Co-authored-by: Benjamin Marwell * sugar syntax Signed-off-by: olivier lamy Co-authored-by: Benjamin Marwell Co-authored-by: Benjamin Marwell --- pom.xml | 22 +---- ...AbstractVersionsDependencyUpdaterMojo.java | 21 +--- .../mojo/versions/AbstractVersionsReport.java | 4 +- .../AbstractVersionsReportRenderer.java | 4 +- .../versions/AbstractVersionsUpdaterMojo.java | 16 ++-- .../versions/CompareDependenciesMojo.java | 6 +- .../versions/DependencyUpdatesRenderer.java | 3 +- .../DisplayDependencyUpdatesMojo.java | 63 +++++++----- .../versions/DisplayPluginUpdatesMojo.java | 28 +++--- .../mojo/versions/ForceReleasesMojo.java | 1 - .../mojo/versions/PluginUpdatesDetails.java | 11 +-- .../mojo/versions/PluginUpdatesRenderer.java | 7 +- .../versions/PluginUpdatesXmlRenderer.java | 12 +-- .../mojo/versions/UpdateChildModulesMojo.java | 29 +++--- .../mojo/versions/UseDepVersionMojo.java | 3 +- .../mojo/versions/UseLatestReleasesMojo.java | 3 +- .../mojo/versions/UseLatestSnapshotsMojo.java | 15 ++- .../mojo/versions/UseLatestVersionsMojo.java | 6 +- .../mojo/versions/UseNextReleasesMojo.java | 3 +- .../mojo/versions/UseNextSnapshotsMojo.java | 5 +- .../mojo/versions/UseNextVersionsMojo.java | 3 +- .../versions/api/AbstractVersionDetails.java | 11 +-- .../versions/api/ArtifactAssociation.java | 2 +- .../mojo/versions/api/ArtifactVersions.java | 13 +-- .../api/DefaultArtifactAssociation.java | 4 +- .../versions/api/DefaultVersionsHelper.java | 95 +++++-------------- .../codehaus/mojo/versions/api/PomHelper.java | 63 ++++-------- .../mojo/versions/api/PropertyVersions.java | 15 ++- .../versions/api/PropertyVersionsBuilder.java | 19 ++-- .../mojo/versions/api/UpdateScope.java | 15 ++- .../mojo/versions/change/VersionChange.java | 10 +- .../versions/ordering/ComparableVersion.java | 37 ++++---- .../ordering/MajorMinorIncrementalFilter.java | 10 +- .../mojo/versions/utils/RegexUtils.java | 4 +- .../mojo/versions/utils/WagonUtils.java | 4 +- .../api/DefaultVersionsHelperTest.java | 48 ++++------ 36 files changed, 243 insertions(+), 372 deletions(-) diff --git a/pom.xml b/pom.xml index 8cbf64231..af07bf513 100644 --- a/pom.xml +++ b/pom.xml @@ -25,17 +25,6 @@ - - - ossrh-staging - https://oss.sonatype.org/service/local/staging/deploy/maven2 - - - ossrh-snapshots - https://oss.sonatype.org/content/repositories/snapshots - - - Stephen Connolly @@ -110,7 +99,7 @@ 1.8 ${mojo.java.target} - 2.2.1 + 3.0.5 3.4.0 1.9.1 1.7 @@ -134,12 +123,12 @@ org.apache.maven - maven-artifact-manager + maven-core ${mavenVersion} org.apache.maven - maven-core + maven-compat ${mavenVersion} @@ -157,11 +146,6 @@ maven-settings ${mavenVersion} - - org.apache.maven - maven-project - ${mavenVersion} - org.apache.maven.reporting maven-reporting-api diff --git a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java index 780cec259..3114a07e0 100644 --- a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.Iterator; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -207,10 +206,8 @@ protected Artifact findArtifact( Dependency dependency ) { return null; } - Iterator iter = getProject().getDependencyArtifacts().iterator(); - while ( iter.hasNext() ) + for ( Artifact artifact : getProject().getDependencyArtifacts() ) { - Artifact artifact = (Artifact) iter.next(); if ( compare( artifact, dependency ) ) { return artifact; @@ -334,11 +331,7 @@ private boolean compare( MavenProject project, Dependency dep ) { return false; } - if ( !StringUtils.equals( project.getArtifactId(), dep.getArtifactId() ) ) - { - return false; - } - return true; + return project.getArtifactId().equals( dep.getArtifactId() ); } /** @@ -363,11 +356,7 @@ private boolean compare( Artifact artifact, Dependency dep ) { return false; } - if ( !StringUtils.equals( artifact.getClassifier(), dep.getClassifier() ) ) - { - return false; - } - return true; + return StringUtils.equals( artifact.getClassifier(), dep.getClassifier() ); } /** @@ -495,9 +484,9 @@ private int findFirstChar( final String includeString, final String chars ) int nextRangeStartDelimiterIndex = -1; char[] delimiters = chars.toCharArray(); - for ( int i = 0; i < delimiters.length; i++ ) + for ( char delimiter : delimiters ) { - int index = includeString.indexOf( delimiters[i] ); + int index = includeString.indexOf( delimiter ); if ( index >= 0 && nextRangeStartDelimiterIndex >= 0 ) { nextRangeStartDelimiterIndex = Math.min( index, nextRangeStartDelimiterIndex ); diff --git a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java index 88b29b3bc..4be880877 100644 --- a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java +++ b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java @@ -125,13 +125,13 @@ public abstract class AbstractVersionsReport * @since 1.0-alpha-3 */ @Parameter( defaultValue = "${project.remoteArtifactRepositories}", readonly = true ) - protected List remoteArtifactRepositories; + protected List remoteArtifactRepositories; /** * @since 1.0-alpha-3 */ @Parameter( defaultValue = "${project.pluginArtifactRepositories}", readonly = true ) - protected List remotePluginRepositories; + protected List remotePluginRepositories; /** * @since 1.0-alpha-1 diff --git a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReportRenderer.java b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReportRenderer.java index 6115461f2..bd5e15b7f 100644 --- a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReportRenderer.java +++ b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReportRenderer.java @@ -832,9 +832,9 @@ private Set getVersionsInRange( Property property, PropertyVersions vers { tmp = artifactVersions; } - for ( int i = 0; i < tmp.length; i++ ) + for ( ArtifactVersion artifactVersion : tmp ) { - rangeVersions.add( tmp[i].toString() ); + rangeVersions.add( artifactVersion.toString() ); } return rangeVersions; } diff --git a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java index 8babe9d49..5a114a310 100644 --- a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java @@ -112,13 +112,13 @@ public abstract class AbstractVersionsUpdaterMojo * @since 1.0-alpha-3 */ @Parameter( defaultValue = "${project.remoteArtifactRepositories}", readonly = true ) - protected List remoteArtifactRepositories; + protected List remoteArtifactRepositories; /** * @since 1.0-alpha-3 */ @Parameter( defaultValue = "${project.pluginArtifactRepositories}", readonly = true ) - protected List remotePluginRepositories; + protected List remotePluginRepositories; /** * @since 1.0-alpha-1 @@ -336,11 +336,7 @@ protected void process( File outFile ) writeFile( outFile, input ); } } - catch ( IOException e ) - { - getLog().error( e ); - } - catch ( XMLStreamException e ) + catch ( IOException | XMLStreamException e ) { getLog().error( e ); } @@ -434,18 +430,18 @@ protected boolean shouldApplyUpdate( Artifact artifact, String currentVersion, A } catch ( ArtifactResolutionException e ) { - getLog().warn( "Not updating version: could not resolve " + artifact.toString(), e ); + getLog().warn( "Not updating version: could not resolve " + artifact, e ); return false; } catch ( ArtifactNotFoundException e ) { - getLog().warn( "Not updating version: could not find " + artifact.toString(), e ); + getLog().warn( "Not updating version: could not find " + artifact, e ); return false; } if ( currentVersion.equals( updateVersion.toString() ) ) { - getLog().info( "Current version of " + artifact.toString() + " is the latest." ); + getLog().info( "Current version of " + artifact + " is the latest." ); return false; } return true; diff --git a/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java b/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java index c50ba5fcf..c74116c0c 100644 --- a/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java @@ -176,8 +176,8 @@ protected void update( ModifiedPomXMLEventReader pom ) mapDependencies( remoteDepsMap, remoteProjectDeps ); } - List totalDiffs = new ArrayList(); - List propertyDiffs = new ArrayList(); + List totalDiffs = new ArrayList<>(); + List propertyDiffs = new ArrayList<>(); if ( getProject().getDependencyManagement() != null && isProcessingDependencyManagement() ) { List depManDiffs = @@ -458,4 +458,4 @@ private static String generateId( Artifact artifact ) return sb.toString(); } -} \ No newline at end of file +} diff --git a/src/main/java/org/codehaus/mojo/versions/DependencyUpdatesRenderer.java b/src/main/java/org/codehaus/mojo/versions/DependencyUpdatesRenderer.java index 19d478ec5..81eff8626 100644 --- a/src/main/java/org/codehaus/mojo/versions/DependencyUpdatesRenderer.java +++ b/src/main/java/org/codehaus/mojo/versions/DependencyUpdatesRenderer.java @@ -53,8 +53,7 @@ public DependencyUpdatesRenderer( Sink sink, I18N i18n, String bundleName, Local protected void renderBody() { - Map allUpdates = - new TreeMap( new DependencyComparator() ); + Map allUpdates = new TreeMap<>( new DependencyComparator() ); allUpdates.putAll( dependencyManagementUpdates ); allUpdates.putAll( dependencyUpdates ); diff --git a/src/main/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojo.java b/src/main/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojo.java index 13e1562a9..a851263bd 100644 --- a/src/main/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojo.java @@ -40,6 +40,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.TreeSet; @@ -159,10 +160,7 @@ private static Set extractPluginDependenciesFromPluginsInPluginManag { if ( plugin.getDependencies() != null && !plugin.getDependencies().isEmpty() ) { - for ( Dependency pluginDependency : plugin.getDependencies() ) - { - result.add( pluginDependency ); - } + result.addAll( plugin.getDependencies() ); } } } @@ -176,10 +174,7 @@ private static Set extractDependenciesFromPlugins( List plug { if ( plugin.getDependencies() != null && !plugin.getDependencies().isEmpty() ) { - for ( Dependency pluginDependency : plugin.getDependencies() ) - { - result.add( pluginDependency ); - } + result.addAll( plugin.getDependencies() ); } } return result; @@ -198,20 +193,12 @@ private static Set extractDependenciesFromPlugins( List plug private static Set removeDependencyManagment( Set dependencies, Set dependencyManagement ) { Set result = new TreeSet<>( new DependencyComparator() ); - for ( Iterator i = dependencies.iterator(); i.hasNext(); ) + for ( Dependency dependency : dependencies ) { - Dependency c = i.next(); boolean matched = false; - Iterator j = dependencyManagement.iterator(); - while ( !matched && j.hasNext() ) + for ( Dependency managedDependency : dependencyManagement ) { - Dependency t =j.next(); - if ( StringUtils.equals( t.getGroupId(), c.getGroupId() ) - && StringUtils.equals( t.getArtifactId(), c.getArtifactId() ) - && ( t.getScope() == null || StringUtils.equals( t.getScope(), c.getScope() ) ) - && ( t.getClassifier() == null || StringUtils.equals( t.getClassifier(), c.getClassifier() ) ) - && ( c.getVersion() == null || t.getVersion() == null - || StringUtils.equals( t.getVersion(), c.getVersion() ) ) ) + if ( dependenciesMatch( dependency, managedDependency ) ) { matched = true; break; @@ -219,12 +206,42 @@ private static Set removeDependencyManagment( Set depend } if ( !matched ) { - result.add( c ); + result.add( dependency ); } } return result; } + // open for tests + protected static boolean dependenciesMatch( Dependency dependency, Dependency managedDependency ) + { + if ( ! managedDependency.getGroupId().equals( dependency.getGroupId() ) ) + { + return false; + } + + if ( ! managedDependency.getArtifactId().equals( dependency.getArtifactId() ) ) + { + return false; + } + + if ( managedDependency.getScope() == null + || Objects.equals( managedDependency.getScope(), dependency.getScope() ) ) + { + return false; + } + + if ( managedDependency.getClassifier() == null + || Objects.equals( managedDependency.getClassifier(), dependency.getClassifier() ) ) + { + return false; + } + + return dependency.getVersion() == null + || managedDependency.getVersion() == null + || Objects.equals( managedDependency.getVersion(), dependency.getVersion() ); + } + public boolean isProcessingDependencyManagement() { return processDependencyManagement; @@ -355,11 +372,7 @@ public void execute() logUpdates( getHelper().lookupDependenciesUpdates( pluginDependencies, false ), "Plugin Dependencies" ); } } - catch ( InvalidVersionSpecificationException e ) - { - throw new MojoExecutionException( e.getMessage(), e ); - } - catch ( ArtifactMetadataRetrievalException e ) + catch ( InvalidVersionSpecificationException | ArtifactMetadataRetrievalException e ) { throw new MojoExecutionException( e.getMessage(), e ); } diff --git a/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java b/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java index 53875d8f4..2bff6801b 100644 --- a/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java @@ -179,7 +179,7 @@ private Map getSuperPomPluginManagement() getProject().getPackaging() } ); // we need to provide a copy with the version blanked out so that inferring from super-pom // works as for 2.x as 3.x fills in the version on us! - Map result = new LinkedHashMap( plugins.size() ); + Map result = new LinkedHashMap<>( plugins.size() ); for ( Plugin plugin : plugins ) { result.put( plugin.getKey(), plugin.getVersion() ); @@ -196,7 +196,7 @@ private Map getSuperPomPluginManagement() Pattern pathRegex = Pattern.compile( "/project(/profiles/profile)?" + "((/build(/pluginManagement)?)|(/reporting))" + "/plugins/plugin" ); - Stack pathStack = new Stack(); + Stack pathStack = new Stack<>(); StackState curState = null; while ( pom.hasNext() ) { @@ -269,12 +269,12 @@ else if ( event.isEndElement() ) } } getLog().debug( "Using Maven 2.x strategy to determine superpom defined plugins" ); - Map superPomPluginManagement = new HashMap<>(); + Map superPomPluginManagement; try { MavenProject superProject = projectBuilder.buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() ); - superPomPluginManagement.putAll( getPluginManagement( superProject.getOriginalModel() ) ); + superPomPluginManagement = new HashMap<>( getPluginManagement( superProject.getOriginalModel() ) ); } catch ( ProjectBuildingException e ) { @@ -373,8 +373,8 @@ public void execute() // renaming parentPluginManagement to parentPlugins) // NOTICE: getProjectPlugins() takes profiles while getParentPlugins does not // there is probably a little inconsistency (if plugins configured in profiles of parents) - Map parentBuildPlugins = new HashMap(); - Map parentReportPlugins = new HashMap(); + Map parentBuildPlugins = new HashMap<>(); + Map parentReportPlugins = new HashMap<>(); Set plugins = getProjectPlugins( superPomPluginManagement, parentPlugins, parentBuildPlugins, parentReportPlugins, pluginsWithVersionsSpecified ); @@ -454,12 +454,8 @@ public void execute() // upgrade if ( minRequires == null || compare( minRequires, pluginRequires ) > 0 ) { - Map upgradePlugins = mavenUpgrades.get( pluginRequires ); - if ( upgradePlugins == null ) - { - mavenUpgrades.put( pluginRequires, - upgradePlugins = new LinkedHashMap() ); - } + Map upgradePlugins = + mavenUpgrades.computeIfAbsent( pluginRequires, k -> new LinkedHashMap<>() ); String upgradePluginKey = compactKey( groupId, artifactId ); if ( !upgradePlugins.containsKey( upgradePluginKey ) ) @@ -728,7 +724,7 @@ private static String pad( String start, int len, String...ends ) private Map getParentsPlugins( List parents ) throws MojoExecutionException { - Map parentPlugins = new HashMap(); + Map parentPlugins = new HashMap<>(); for ( MavenProject parentProject : parents ) { getLog().debug( "Processing parent: " + parentProject.getGroupId() + ":" + parentProject.getArtifactId() @@ -881,7 +877,7 @@ private Set findPluginsWithVersionsSpecified( StringBuilder pomContents, Pattern pathRegex = Pattern.compile( "/project(/profiles/profile)?" + "((/build(/pluginManagement)?)|(/reporting))" + "/plugins/plugin" ); - Stack pathStack = new Stack(); + Stack pathStack = new Stack<>(); StackState curState = null; while ( pom.hasNext() ) { @@ -1079,7 +1075,7 @@ private Set getBoundPlugins( MavenProject project, String thePhases ) project.getPackaging() == null ? "jar" : project.getPackaging() } ); // we need to provide a copy with the version blanked out so that inferring from super-pom // works as for 2.x as 3.x fills in the version on us! - Set result = new LinkedHashSet( plugins.size() ); + Set result = new LinkedHashSet<>( plugins.size() ); for ( Plugin plugin : plugins ) { Plugin dup = new Plugin(); @@ -1106,7 +1102,7 @@ private Set getBoundPlugins( MavenProject project, String thePhases ) // no much we can do here } - Set allPlugins = new HashSet(); + Set allPlugins = new HashSet<>(); // lookup the bindings for all the passed in phases for ( String lifecyclePhase : thePhases.split( "," ) ) diff --git a/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java b/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java index d6ee0bf07..b50796e9e 100644 --- a/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java @@ -32,7 +32,6 @@ import javax.xml.stream.XMLStreamException; import java.util.Collection; -import java.util.Iterator; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/main/java/org/codehaus/mojo/versions/PluginUpdatesDetails.java b/src/main/java/org/codehaus/mojo/versions/PluginUpdatesDetails.java index 17ae51c1d..1ea7c67b6 100644 --- a/src/main/java/org/codehaus/mojo/versions/PluginUpdatesDetails.java +++ b/src/main/java/org/codehaus/mojo/versions/PluginUpdatesDetails.java @@ -20,10 +20,10 @@ */ import org.apache.maven.artifact.versioning.ArtifactVersion; +import org.apache.maven.model.Dependency; import org.codehaus.mojo.versions.api.ArtifactVersions; import org.codehaus.mojo.versions.api.UpdateScope; -import java.util.Iterator; import java.util.Map; import java.util.Objects; @@ -34,11 +34,11 @@ public class PluginUpdatesDetails { private final ArtifactVersions artifactVersions; - private final Map dependencyVersions; + private final Map dependencyVersions; private final boolean includeSnapshots; - public PluginUpdatesDetails( ArtifactVersions artifactVersions, Map dependencyVersions, boolean includeSnapshots ) + public PluginUpdatesDetails( ArtifactVersions artifactVersions, Map dependencyVersions, boolean includeSnapshots ) { Objects.requireNonNull( artifactVersions ); Objects.requireNonNull( dependencyVersions ); @@ -52,7 +52,7 @@ public ArtifactVersions getArtifactVersions() return artifactVersions; } - public Map getDependencyVersions() + public Map getDependencyVersions() { return dependencyVersions; } @@ -64,9 +64,8 @@ public boolean isArtifactUpdateAvailable() public boolean isDependencyUpdateAvailable() { - for ( Iterator i = dependencyVersions.values().iterator(); i.hasNext(); ) + for ( ArtifactVersions versions : dependencyVersions.values() ) { - ArtifactVersions versions = (ArtifactVersions) i.next(); ArtifactVersion[] dependencyUpdates = versions.getAllUpdates( UpdateScope.ANY, includeSnapshots ); if ( dependencyUpdates != null && dependencyUpdates.length > 0 ) { diff --git a/src/main/java/org/codehaus/mojo/versions/PluginUpdatesRenderer.java b/src/main/java/org/codehaus/mojo/versions/PluginUpdatesRenderer.java index 98ab468a2..be98904f4 100644 --- a/src/main/java/org/codehaus/mojo/versions/PluginUpdatesRenderer.java +++ b/src/main/java/org/codehaus/mojo/versions/PluginUpdatesRenderer.java @@ -505,11 +505,8 @@ else if ( equals( versions[i], sink.section3_(); - for ( Iterator i = details.getDependencyVersions().entrySet().iterator(); i.hasNext(); ) - { - Map.Entry entry = (Map.Entry) i.next(); - renderDependencyDetail( (Dependency) entry.getKey(), (ArtifactVersions) entry.getValue() ); - } + details.getDependencyVersions().entrySet() + .forEach( entry -> renderDependencyDetail( entry.getKey(), entry.getValue() ) ); } sink.section2_(); } diff --git a/src/main/java/org/codehaus/mojo/versions/PluginUpdatesXmlRenderer.java b/src/main/java/org/codehaus/mojo/versions/PluginUpdatesXmlRenderer.java index 9dcbe1aff..6cc5bf23a 100644 --- a/src/main/java/org/codehaus/mojo/versions/PluginUpdatesXmlRenderer.java +++ b/src/main/java/org/codehaus/mojo/versions/PluginUpdatesXmlRenderer.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; +import java.util.stream.Collectors; import org.apache.maven.model.Plugin; import org.apache.maven.reporting.MavenReportException; @@ -83,8 +84,7 @@ public void render() { StringBuilder sb = new StringBuilder(); sb.append( "" ).append( NL ); - Map allUpdates = - new TreeMap( new PluginComparator() ); + Map allUpdates = new TreeMap<>( new PluginComparator() ); allUpdates.putAll( pluginManagementUpdates ); allUpdates.putAll( pluginUpdates ); sb.append( getSummaryBlock( allUpdates ) ); @@ -106,11 +106,9 @@ public void render() private static String getSummaryBlock( Map allUpdates ) { - Collection allVersions = new ArrayList(); - for ( PluginUpdatesDetails details : allUpdates.values() ) - { - allVersions.add( details.getArtifactVersions() ); - } + Collection allVersions = allUpdates.values().stream() + .map( PluginUpdatesDetails::getArtifactVersions ) + .collect( Collectors.toList() ); return DependencyUpdatesXmlRenderer.getSummaryBlock( allVersions ); } diff --git a/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java b/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java index 9ffa142a7..0a6552b62 100644 --- a/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java @@ -32,7 +32,6 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -79,24 +78,20 @@ public void execute() { final Map reactor = PomHelper.getReactorModels( getProject(), getLog() ); List order = new ArrayList<>( reactor.keySet() ); - Collections.sort( order, new Comparator() - { - public int compare( String o1, String o2 ) + order.sort( ( o1, o2 ) -> { + Model m1 = reactor.get( o1 ); + Model m2 = reactor.get( o2 ); + int d1 = PomHelper.getReactorParentCount( reactor, m1 ); + int d2 = PomHelper.getReactorParentCount( reactor, m2 ); + if ( d1 < d2 ) { - Model m1 = reactor.get( o1 ); - Model m2 = reactor.get( o2 ); - int d1 = PomHelper.getReactorParentCount( reactor, m1 ); - int d2 = PomHelper.getReactorParentCount( reactor, m2 ); - if ( d1 < d2 ) - { - return -1; - } - else if ( d1 > d2 ) - { - return 1; - } - return 0; + return -1; + } + else if ( d1 > d2 ) + { + return 1; } + return 0; } ); for ( String sourcePath : order ) diff --git a/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java b/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java index 0bdc5ddb8..317eba5e9 100644 --- a/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java @@ -20,7 +20,6 @@ */ import java.util.Collection; -import java.util.Iterator; import javax.xml.stream.XMLStreamException; @@ -134,4 +133,4 @@ private void useDepVersion( ModifiedPomXMLEventReader pom, Collection result = new TreeSet<>( versionComparator ); - for ( ArtifactVersion candidate : Arrays.asList( getVersions( includeSnapshots ) ) ) + for ( ArtifactVersion candidate : getVersions( includeSnapshots ) ) { if ( versionRange != null && !ArtifactVersions.isVersionInRange( candidate, versionRange ) ) { @@ -344,7 +343,7 @@ public final ArtifactVersion[] getVersions( VersionRange versionRange, ArtifactV } result.add( candidate ); } - return result.toArray( new ArtifactVersion[result.size()] ); + return result.toArray( new ArtifactVersion[0] ); } public final ArtifactVersion getOldestUpdate( ArtifactVersion currentVersion, UpdateScope updateScope ) diff --git a/src/main/java/org/codehaus/mojo/versions/api/ArtifactAssociation.java b/src/main/java/org/codehaus/mojo/versions/api/ArtifactAssociation.java index 99603acc1..71043e969 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/ArtifactAssociation.java +++ b/src/main/java/org/codehaus/mojo/versions/api/ArtifactAssociation.java @@ -27,7 +27,7 @@ * @author Stephen Connolly * @since 1.0-alpha-3 */ -public interface ArtifactAssociation +public interface ArtifactAssociation extends Comparable { String getGroupId(); diff --git a/src/main/java/org/codehaus/mojo/versions/api/ArtifactVersions.java b/src/main/java/org/codehaus/mojo/versions/api/ArtifactVersions.java index 1092d660b..1fbc5b006 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/ArtifactVersions.java +++ b/src/main/java/org/codehaus/mojo/versions/api/ArtifactVersions.java @@ -73,7 +73,7 @@ public ArtifactVersions( Artifact artifact, List versions, Vers { this.artifact = artifact; this.versionComparator = versionComparator; - this.versions = new TreeSet( versionComparator ); + this.versions = new TreeSet<>( versionComparator ); this.versions.addAll( versions ); if ( artifact.getVersion() != null ) { @@ -174,7 +174,7 @@ public ArtifactVersion[] getVersions( boolean includeSnapshots ) result.add( candidate ); } } - return result.toArray( new ArtifactVersion[result.size()] ); + return result.toArray( new ArtifactVersion[0] ); } public VersionComparator getVersionComparator() @@ -187,12 +187,7 @@ public VersionComparator getVersionComparator() */ public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append( "ArtifactVersions" ); - sb.append( "{artifact=" ).append( artifact ); - sb.append( ", versions=" ).append( versions ); - sb.append( ", versionComparator=" ).append( versionComparator ); - sb.append( '}' ); - return sb.toString(); + return "ArtifactVersions" + "{artifact=" + artifact + ", versions=" + versions + ", versionComparator=" + + versionComparator + '}'; } } diff --git a/src/main/java/org/codehaus/mojo/versions/api/DefaultArtifactAssociation.java b/src/main/java/org/codehaus/mojo/versions/api/DefaultArtifactAssociation.java index fef721eed..694f2faa7 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/DefaultArtifactAssociation.java +++ b/src/main/java/org/codehaus/mojo/versions/api/DefaultArtifactAssociation.java @@ -31,7 +31,7 @@ * @since Aug 6, 2009 9:23:13 AM */ final class DefaultArtifactAssociation - implements Comparable, ArtifactAssociation + implements ArtifactAssociation { private final Artifact artifact; @@ -64,7 +64,7 @@ public boolean isUsePluginRepositories() return usePluginRepositories; } - public int compareTo( Object o ) + public int compareTo( ArtifactAssociation o ) { if ( this == o ) { diff --git a/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java b/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java index 46a82f7a8..a5f800187 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java +++ b/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java @@ -132,14 +132,14 @@ public class DefaultVersionsHelper * * @since 1.0-alpha-3 */ - private final List remoteArtifactRepositories; + private final List remoteArtifactRepositories; /** * The remote plugin repositories to consult. * * @since 1.0-alpha-3 */ - private final List remotePluginRepositories; + private final List remotePluginRepositories; /** * The artifact factory. @@ -197,8 +197,8 @@ public class DefaultVersionsHelper * @since 1.0-alpha-3 */ public DefaultVersionsHelper( ArtifactFactory artifactFactory, ArtifactResolver artifactResolver, - ArtifactMetadataSource artifactMetadataSource, List remoteArtifactRepositories, - List remotePluginRepositories, ArtifactRepository localRepository, + ArtifactMetadataSource artifactMetadataSource, List remoteArtifactRepositories, + List remotePluginRepositories, ArtifactRepository localRepository, WagonManager wagonManager, Settings settings, String serverId, String rulesUri, Log log, MavenSession mavenSession, PathTranslator pathTranslator ) throws MojoExecutionException @@ -223,22 +223,10 @@ private static RuleSet getRuleSet( Wagon wagon, String remoteURI ) try { wagon.get( remoteURI, tempFile ); - InputStream is = new FileInputStream(tempFile ); - try + try(InputStream is = new FileInputStream(tempFile)) { return readRulesFromStream(is); } - finally - { - try - { - is.close(); - } - catch ( IOException e ) - { - // ignore - } - } } finally { @@ -253,28 +241,13 @@ private static RuleSet getRuleSet( Wagon wagon, String remoteURI ) private static RuleSet readRulesFromStream(InputStream stream) throws IOException { RuleXpp3Reader reader = new RuleXpp3Reader(); - BufferedInputStream bis = new BufferedInputStream( stream ); - - try + try (BufferedInputStream bis = new BufferedInputStream( stream )) { return reader.read( bis ); } catch ( XmlPullParserException e ) { - final IOException ioe = new IOException(); - ioe.initCause( e ); - throw ioe; - } - finally - { - try - { - bis.close(); - } - catch ( IOException e ) - { - // ignore - } + throw new IOException( e ); } } @@ -488,7 +461,7 @@ else if ( TYPE_EXACT.equals( ignoreVersion.getType() ) ) */ private List getIgnoredVersions( Artifact artifact ) { - final List ret = new ArrayList(); + final List ret = new ArrayList<>(); for ( final IgnoreVersion ignoreVersion : ruleSet.getIgnoreVersions() ) { @@ -550,7 +523,7 @@ private String showIgnoredVersions( List ignoredVersions ) public void resolveArtifact( Artifact artifact, boolean usePluginRepositories ) throws ArtifactResolutionException, ArtifactNotFoundException { - List remoteRepositories = usePluginRepositories ? remotePluginRepositories : remoteArtifactRepositories; + List remoteRepositories = usePluginRepositories ? remotePluginRepositories : remoteArtifactRepositories; artifactResolver.resolve( artifact, remoteRepositories, localRepository ); } @@ -678,7 +651,7 @@ public Artifact createDependencyArtifact( Dependency dependency ) */ public Set extractArtifacts( Collection mavenProjects ) { - Set result = new HashSet(); + Set result = new HashSet<>(); for ( MavenProject project : mavenProjects ) { result.add( project.getArtifact() ); @@ -718,14 +691,13 @@ public Map lookupDependenciesUpdates( Set> requestsForDetails = - new ArrayList>( dependencies.size() ); + new ArrayList<>( dependencies.size() ); for ( final Dependency dependency : dependencies ) { requestsForDetails.add( new DependencyLookup( dependency, usePluginRepositories ) ); } - final Map dependencyUpdates = - new TreeMap( new DependencyComparator() ); + final Map dependencyUpdates = new TreeMap<>( new DependencyComparator() ); // Lookup details in parallel... final ExecutorService executor = Executors.newFixedThreadPool( LOOKUP_PARALLEL_THREADS ); @@ -741,15 +713,10 @@ public Map lookupDependenciesUpdates( Set lookupPluginsUpdates( Set plugi throws ArtifactMetadataRetrievalException, InvalidVersionSpecificationException { // Create the request for details collection for parallel lookup... - final List> requestsForDetails = - new ArrayList>( plugins.size() ); + List> requestsForDetails = new ArrayList<>( plugins.size() ); for ( final Plugin plugin : plugins ) { requestsForDetails.add( new PluginLookup( plugin, allowSnapshots ) ); } - final Map pluginUpdates = - new TreeMap( new PluginComparator() ); + Map pluginUpdates = new TreeMap<>( new PluginComparator() ); // Lookup details in parallel... - final ExecutorService executor = Executors.newFixedThreadPool( LOOKUP_PARALLEL_THREADS ); + ExecutorService executor = Executors.newFixedThreadPool( LOOKUP_PARALLEL_THREADS ); try { final List> responseForDetails = @@ -806,15 +771,10 @@ public Map lookupPluginsUpdates( Set plugi pluginUpdates.put( pud.getPlugin(), pud.getPluginUpdatesDetails() ); } } - catch ( final ExecutionException ee ) - { - throw new ArtifactMetadataRetrievalException( "Unable to acquire metadata for plugins " + plugins + ": " - + ee.getMessage(), ee ); - } - catch ( final InterruptedException ie ) + catch ( ExecutionException | InterruptedException ie ) { throw new ArtifactMetadataRetrievalException( "Unable to acquire metadata for plugins " + plugins + ": " - + ie.getMessage(), ie ); + + ie.getMessage(), ie, null ); } finally { @@ -836,13 +796,13 @@ public PluginUpdatesDetails lookupPluginUpdates( Plugin plugin, boolean allowSna VersionRange versionRange = VersionRange.createFromVersion( version ); - final boolean includeSnapshots = allowSnapshots; + boolean includeSnapshots = allowSnapshots; final ArtifactVersions pluginArtifactVersions = lookupArtifactVersions( createPluginArtifact( plugin.getGroupId(), plugin.getArtifactId(), versionRange ), true ); - Set pluginDependencies = new TreeSet( new DependencyComparator() ); + Set pluginDependencies = new TreeSet<>( new DependencyComparator() ); if ( plugin.getDependencies() != null ) { pluginDependencies.addAll( plugin.getDependencies() ); @@ -870,7 +830,7 @@ public Map getVersionPropertiesMap( MavenProject pro boolean autoLinkItems ) throws MojoExecutionException { - Map properties = new HashMap(); + Map properties = new HashMap<>(); if ( propertyDefinitions != null ) { for ( Property propertyDefinition : propertyDefinitions ) @@ -878,7 +838,7 @@ public Map getVersionPropertiesMap( MavenProject pro properties.put( propertyDefinition.getName(), propertyDefinition ); } } - Map builders = new HashMap(); + Map builders = new HashMap<>(); if ( autoLinkItems ) { final PropertyVersionsBuilder[] propertyVersionsBuilders; @@ -886,11 +846,7 @@ public Map getVersionPropertiesMap( MavenProject pro { propertyVersionsBuilders = PomHelper.getPropertyVersionsBuilders( this, project ); } - catch ( ExpressionEvaluationException e ) - { - throw new MojoExecutionException( e.getMessage(), e ); - } - catch ( IOException e ) + catch ( ExpressionEvaluationException | IOException e ) { throw new MojoExecutionException( e.getMessage(), e ); } @@ -933,8 +889,7 @@ else if ( !excludePropertiesList.isEmpty() && excludePropertiesList.contains( pr } } i = properties.values().iterator(); - Map propertyVersions = - new LinkedHashMap( properties.size() ); + Map propertyVersions = new LinkedHashMap<>( properties.size() ); while ( i.hasNext() ) { Property property = i.next(); diff --git a/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java b/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java index 4b73fc30d..4c814eba5 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java +++ b/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java @@ -20,7 +20,6 @@ */ import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.model.Dependency; @@ -31,10 +30,7 @@ import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.apache.maven.plugin.logging.Log; -import org.apache.maven.profiles.ProfileManager; import org.apache.maven.project.MavenProject; -import org.apache.maven.project.MavenProjectBuilder; -import org.apache.maven.project.ProjectBuildingException; import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader; import org.codehaus.mojo.versions.utils.RegexUtils; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; @@ -46,7 +42,6 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.XMLEvent; - import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -147,7 +142,7 @@ public static boolean setPropertyVersion( final ModifiedPomXMLEventReader pom, f final String property, final String value ) throws XMLStreamException { - Stack stack = new Stack(); + Stack stack = new Stack<>(); String path = ""; final Pattern propertyRegex; final Pattern matchScopeRegex; @@ -246,7 +241,7 @@ public static boolean setProjectVersion( final ModifiedPomXMLEventReader pom, fi public static boolean setProjectValue( final ModifiedPomXMLEventReader pom, String pattern, final String value ) throws XMLStreamException { - Stack stack = new Stack(); + Stack stack = new Stack<>(); String path = ""; final Pattern matchScopeRegex; boolean madeReplacement = false; @@ -297,7 +292,7 @@ public static boolean setProjectValue( final ModifiedPomXMLEventReader pom, Stri public static String getProjectVersion( final ModifiedPomXMLEventReader pom ) throws XMLStreamException { - Stack stack = new Stack(); + Stack stack = new Stack<>(); String path = ""; final Pattern matchScopeRegex = Pattern.compile( "/project/version" ); @@ -345,7 +340,7 @@ public static String getProjectVersion( final ModifiedPomXMLEventReader pom ) public static boolean setProjectParentVersion( final ModifiedPomXMLEventReader pom, final String value ) throws XMLStreamException { - Stack stack = new Stack(); + Stack stack = new Stack<>(); String path = ""; final Pattern matchScopeRegex; boolean madeReplacement = false; @@ -463,14 +458,14 @@ public static boolean setDependencyVersion( final ModifiedPomXMLEventReader pom, final String newVersion, final Model model ) throws XMLStreamException { - Stack stack = new Stack(); + Stack stack = new Stack<>(); String path = ""; Set implicitPaths = - new HashSet( Arrays.asList( "/project/parent/groupId", "/project/parent/artifactId", + new HashSet<>( Arrays.asList( "/project/parent/groupId", "/project/parent/artifactId", "/project/parent/version", "/project/groupId", "/project/artifactId", "/project/version" ) ); - Map implicitProperties = new HashMap(); + Map implicitProperties = new HashMap<>(); for ( Map.Entry entry : model.getProperties().entrySet() ) { @@ -877,10 +872,10 @@ public static PropertyVersionsBuilder[] getPropertyVersionsBuilders( VersionsHel { ExpressionEvaluator expressionEvaluator = helper.getExpressionEvaluator( project ); Model model = getRawModel( project ); - Map result = new TreeMap(); + Map result = new TreeMap<>(); Set activeProfiles = new TreeSet<>(); - for ( Profile profile : (List) project.getActiveProfiles() ) + for ( Profile profile : project.getActiveProfiles() ) { activeProfiles.add( profile.getId() ); } @@ -967,7 +962,7 @@ public static PropertyVersionsBuilder[] getPropertyVersionsBuilders( VersionsHel // finally, remove any properties without associations purgeProperties( result ); - return result.values().toArray( new PropertyVersionsBuilder[result.values().size()] ); + return result.values().toArray( new PropertyVersionsBuilder[0] ); } /** @@ -1186,9 +1181,9 @@ private static void addProperties( VersionsHelper helper, Map j = (Enumeration) properties.propertyNames(); j.hasMoreElements(); ) { - String propertyName = (String) j.nextElement(); + String propertyName = j.nextElement(); if ( !result.containsKey( propertyName ) ) { result.put( propertyName, new PropertyVersionsBuilder( profileId, propertyName, helper ) ); @@ -1198,14 +1193,7 @@ private static void addProperties( VersionsHelper helper, Map result ) { - for ( Iterator i = result.values().iterator(); i.hasNext(); ) - { - PropertyVersionsBuilder versions = (PropertyVersionsBuilder) i.next(); - if ( versions.getAssociations().length == 0 ) - { - i.remove(); - } - } + result.values().removeIf( versions -> versions.getAssociations().length == 0 ); } /** @@ -1216,7 +1204,7 @@ private static void purgeProperties( Map result * @param logger The logger to use. * @return the set of all child modules of the project. */ - public static Set getAllChildModules( MavenProject project, Log logger ) + public static Set getAllChildModules( MavenProject project, Log logger ) { return getAllChildModules( project.getOriginalModel(), logger ); } @@ -1232,12 +1220,8 @@ public static Set getAllChildModules( MavenProject project, Log logger ) public static Set getAllChildModules( Model model, Log logger ) { logger.debug( "Finding child modules..." ); - Set childModules = new TreeSet(); - childModules.addAll( model.getModules() ); - for ( Profile profile : model.getProfiles() ) - { - childModules.addAll( profile.getModules() ); - } + Set childModules = new TreeSet<>( model.getModules() ); + model.getProfiles().forEach( profile -> childModules.addAll( profile.getModules() ) ); debugModules( logger, "Child modules:", childModules ); return childModules; } @@ -1249,9 +1233,8 @@ public static Set getAllChildModules( Model model, Log logger ) * @param message The message to display. * @param modules The modules to append to the message. */ - public static void debugModules( Log logger, String message, Collection modules ) + public static void debugModules( Log logger, String message, Collection modules ) { - Iterator i; if ( logger.isDebugEnabled() ) { logger.debug( message ); @@ -1261,11 +1244,7 @@ public static void debugModules( Log logger, String message, Collection modules } else { - i = modules.iterator(); - while ( i.hasNext() ) - { - logger.debug( " " + i.next() ); - } + modules.forEach( module -> logger.debug( " " + module )); } } @@ -1467,7 +1446,7 @@ private static Map getReactorModels( String path, Model model, Ma */ public static Map getChildModels( Map reactor, String groupId, String artifactId ) { - final Map result = new LinkedHashMap(); + final Map result = new LinkedHashMap<>(); for ( Map.Entry entry : reactor.entrySet() ) { final String path = entry.getKey(); @@ -1581,8 +1560,8 @@ public static String getGAV( Model model ) public static List readImportedPOMsFromDependencyManagementSection( ModifiedPomXMLEventReader pom ) throws XMLStreamException { - List importedPOMs = new ArrayList(); - Stack stack = new Stack(); + List importedPOMs = new ArrayList<>(); + Stack stack = new Stack<>(); String groupIdElement = "groupId"; String artifactIdElement = "artifactId"; diff --git a/src/main/java/org/codehaus/mojo/versions/api/PropertyVersions.java b/src/main/java/org/codehaus/mojo/versions/api/PropertyVersions.java index 067b93867..3d7957052 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/PropertyVersions.java +++ b/src/main/java/org/codehaus/mojo/versions/api/PropertyVersions.java @@ -95,11 +95,11 @@ private static SortedSet resolveAssociatedVersions( VersionsHel final ArtifactVersion[] artifactVersions = associatedVersions.getVersions( true ); // since ArtifactVersion does not override equals, we have to do this the hard way // result.retainAll( Arrays.asList( artifactVersions ) ); - Iterator j = versions.iterator(); + Iterator j = versions.iterator(); while ( j.hasNext() ) { boolean contains = false; - ArtifactVersion version = (ArtifactVersion) j.next(); + ArtifactVersion version = j.next(); for ( ArtifactVersion artifactVersion : artifactVersions ) { if ( version.compareTo( artifactVersion ) == 0 ) @@ -140,18 +140,17 @@ public VersionComparator getVersionComparator() public ArtifactAssociation[] getAssociations() { - return associations.toArray( new ArtifactAssociation[associations.size()] ); + return associations.toArray( new ArtifactAssociation[0] ); } private VersionComparator[] lookupComparators() { Set result = new HashSet(); - Iterator i = associations.iterator(); - while ( i.hasNext() ) + for ( ArtifactAssociation association : associations ) { - result.add( helper.getVersionComparator( i.next().getArtifact() ) ); + result.add( helper.getVersionComparator( association.getArtifact() ) ); } - return result.toArray( new VersionComparator[result.size()] ); + return result.toArray( new VersionComparator[0] ); } /** @@ -262,7 +261,7 @@ private ArtifactVersion[] asArtifactVersionArray( Collection re } else { - final ArtifactVersion[] answer = result.toArray( new ArtifactVersion[result.size()] ); + final ArtifactVersion[] answer = result.toArray( new ArtifactVersion[0] ); VersionComparator[] rules = lookupComparators(); assert rules.length > 0; Arrays.sort( answer, rules[0] ); diff --git a/src/main/java/org/codehaus/mojo/versions/api/PropertyVersionsBuilder.java b/src/main/java/org/codehaus/mojo/versions/api/PropertyVersionsBuilder.java index acc88f304..9d5cf9e22 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/PropertyVersionsBuilder.java +++ b/src/main/java/org/codehaus/mojo/versions/api/PropertyVersionsBuilder.java @@ -25,7 +25,6 @@ import org.codehaus.mojo.versions.ordering.VersionComparator; import java.util.Comparator; -import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; @@ -47,9 +46,9 @@ class PropertyVersionsBuilder private final VersionsHelper helper; - private final Map upperBounds = new LinkedHashMap(); + private final Map upperBounds = new LinkedHashMap<>(); - private final Map lowerBounds = new LinkedHashMap(); + private final Map lowerBounds = new LinkedHashMap<>(); /** * Constructs a new {@link org.codehaus.mojo.versions.api.PropertyVersions}. @@ -62,7 +61,7 @@ public PropertyVersionsBuilder( String profileId, String name, VersionsHelper he { this.profileId = profileId; this.name = name; - this.associations = new TreeSet(); + this.associations = new TreeSet<>(); this.helper = helper; } @@ -88,7 +87,7 @@ public boolean isAssociated() public ArtifactAssociation[] getAssociations() { - return associations.toArray( new ArtifactAssociation[associations.size()] ); + return associations.toArray( new ArtifactAssociation[0] ); } public PropertyVersions newPropertyVersions() @@ -216,12 +215,10 @@ public void addUpperBound( String upperBound, boolean includeUpper ) private VersionComparator[] lookupComparators() { - Set result = new HashSet(); - for ( ArtifactAssociation association : associations ) - { - result.add( helper.getVersionComparator( association.getArtifact() ) ); - } - return result.toArray( new VersionComparator[result.size()] ); + return associations.stream().map( + association -> helper.getVersionComparator( association.getArtifact() ) ) + .distinct() + .toArray( VersionComparator[]::new ); } private final class PropertyVersionComparator diff --git a/src/main/java/org/codehaus/mojo/versions/api/UpdateScope.java b/src/main/java/org/codehaus/mojo/versions/api/UpdateScope.java index 371241e00..62406c7b6 100644 --- a/src/main/java/org/codehaus/mojo/versions/api/UpdateScope.java +++ b/src/main/java/org/codehaus/mojo/versions/api/UpdateScope.java @@ -24,9 +24,7 @@ import java.io.StreamCorruptedException; import java.util.HashMap; import java.util.Map; -import java.util.Objects; -import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.codehaus.mojo.versions.ordering.VersionComparator; @@ -38,7 +36,7 @@ * @since 1.0-beta-1 */ public abstract class UpdateScope - implements Comparable, Serializable + implements Comparable, Serializable { /** @@ -373,9 +371,8 @@ protected final Object clone() * by this method is the order in which the constants are declared. *

*/ - public final int compareTo( Object o ) + public final int compareTo( UpdateScope other ) { - UpdateScope other = (UpdateScope) o; UpdateScope self = this; if ( self.getClass() != other.getClass() ) { @@ -392,7 +389,7 @@ public final int compareTo( Object o ) * * @return the Class object corresponding to this enum constant's enum type */ - public final Class getDeclaringClass() + public final Class getDeclaringClass() { return getClass(); } @@ -409,7 +406,7 @@ public final Class getDeclaringClass() */ public static UpdateScope valueOf( String name ) { - UpdateScope result = (UpdateScope) levelConstants.get( name ); + UpdateScope result = levelConstants.get( name ); if ( result != null ) { return result; @@ -467,11 +464,11 @@ public static UpdateScope classifyUpdate( VersionComparator comparator, Artifact } } - private static final Map levelConstants; + private static final Map levelConstants; static { - Map map = new HashMap( 5 ); + Map map = new HashMap<>( 5 ); map.put( SUBINCREMENTAL.name(), SUBINCREMENTAL ); map.put( INCREMENTAL.name(), INCREMENTAL ); map.put( MINOR.name(), MINOR ); diff --git a/src/main/java/org/codehaus/mojo/versions/change/VersionChange.java b/src/main/java/org/codehaus/mojo/versions/change/VersionChange.java index df2166262..1c63d956b 100644 --- a/src/main/java/org/codehaus/mojo/versions/change/VersionChange.java +++ b/src/main/java/org/codehaus/mojo/versions/change/VersionChange.java @@ -19,6 +19,8 @@ * under the License. */ +import java.util.Objects; + /** * Represents a change of an artifact's version. * @@ -76,19 +78,19 @@ public boolean equals( Object o ) VersionChange versionChange = (VersionChange) o; - if ( artifactId != null ? !artifactId.equals( versionChange.artifactId ) : versionChange.artifactId != null ) + if ( !Objects.equals( artifactId, versionChange.artifactId ) ) { return false; } - if ( groupId != null ? !groupId.equals( versionChange.groupId ) : versionChange.groupId != null ) + if ( !Objects.equals( groupId, versionChange.groupId ) ) { return false; } - if ( newVersion != null ? !newVersion.equals( versionChange.newVersion ) : versionChange.newVersion != null ) + if ( !Objects.equals( newVersion, versionChange.newVersion ) ) { return false; } - if ( oldVersion != null ? !oldVersion.equals( versionChange.oldVersion ) : versionChange.oldVersion != null ) + if ( !Objects.equals( oldVersion, versionChange.oldVersion ) ) { return false; } diff --git a/src/main/java/org/codehaus/mojo/versions/ordering/ComparableVersion.java b/src/main/java/org/codehaus/mojo/versions/ordering/ComparableVersion.java index 182029ab2..1d656c0dd 100644 --- a/src/main/java/org/codehaus/mojo/versions/ordering/ComparableVersion.java +++ b/src/main/java/org/codehaus/mojo/versions/ordering/ComparableVersion.java @@ -34,11 +34,10 @@ * * @author Kenney Westerhof * @author Herve Boutemy - * @version $Id: ComparableVersion.java 720520 2008-11-25 16:07:14Z bentmann $ * Note: The implementation of the maven core should be used. */ public class ComparableVersion - implements Comparable + implements Comparable { private String value; @@ -130,7 +129,7 @@ private static class StringItem { private final static String[] QUALIFIERS = { "snapshot", "alpha", "beta", "milestone", "rc", "", "sp" }; - private final static List QUALIFIERS_LIST = Arrays.asList( QUALIFIERS ); + private final static List QUALIFIERS_LIST = Arrays.asList( QUALIFIERS ); private final static Properties ALIASES = new Properties(); @@ -145,9 +144,9 @@ private static class StringItem * A comparable for the empty-string qualifier. This one is used to determine if a given qualifier makes the * version older than one without a qualifier, or more recent. */ - private static Comparable RELEASE_VERSION_INDEX = String.valueOf( QUALIFIERS_LIST.indexOf( "" ) ); + private static final Comparable RELEASE_VERSION_INDEX = String.valueOf( QUALIFIERS_LIST.indexOf( "" ) ); - private String value; + private final String value; public StringItem( String value, boolean followedByDigit ) { @@ -234,7 +233,7 @@ public String toString() * with '-(number)' in the version specification). */ private static class ListItem - extends ArrayList + extends ArrayList implements Item { public int getType() @@ -249,9 +248,9 @@ public boolean isNull() void normalize() { - for ( ListIterator iterator = listIterator( size() ); iterator.hasPrevious(); ) + for ( ListIterator iterator = listIterator( size() ); iterator.hasPrevious(); ) { - Item item = (Item) iterator.previous(); + Item item = iterator.previous(); if ( item.isNull() ) { iterator.remove(); // remove null trailing items: 0, "", empty list @@ -271,7 +270,7 @@ public int compareTo( Item item ) { return 0; // 1-0 = 1- (normalize) = 1 } - Item first = (Item) get( 0 ); + Item first = get( 0 ); return first.compareTo( null ); } @@ -284,13 +283,13 @@ public int compareTo( Item item ) return 1; // 1-1 > 1-sp case LIST_ITEM: - Iterator left = iterator(); - Iterator right = ( (ListItem) item ).iterator(); + Iterator left = iterator(); + Iterator right = ( (ListItem) item ).iterator(); while ( left.hasNext() || right.hasNext() ) { - Item l = left.hasNext() ? (Item) left.next() : null; - Item r = right.hasNext() ? (Item) right.next() : null; + Item l = left.hasNext() ? left.next() : null; + Item r = right.hasNext() ? right.next() : null; // if this is shorter, then invert the compare and mul with -1 int result = l == null ? -1 * r.compareTo( l ) : l.compareTo( r ); @@ -311,7 +310,7 @@ public int compareTo( Item item ) public String toString() { StringBuilder buffer = new StringBuilder( "(" ); - for ( Iterator iter = iterator(); iter.hasNext(); ) + for ( Iterator iter = iterator(); iter.hasNext(); ) { buffer.append( iter.next() ); if ( iter.hasNext() ) @@ -339,7 +338,7 @@ public final void parseVersion( String version ) ListItem list = items; - Stack stack = new Stack(); + Stack stack = new Stack<>(); stack.push( list ); boolean isDigit = false; @@ -417,7 +416,7 @@ else if ( Character.isDigit( c ) ) while ( !stack.isEmpty() ) { - list = (ListItem) stack.pop(); + list = stack.pop(); list.normalize(); } @@ -426,12 +425,12 @@ else if ( Character.isDigit( c ) ) private static Item parseItem( boolean isDigit, String buf ) { - return isDigit ? (Item) new IntegerItem( buf ) : (Item) new StringItem( buf, false ); + return isDigit ? new IntegerItem( buf ) : new StringItem( buf, false ); } - public int compareTo( Object o ) + public int compareTo( ComparableVersion o ) { - return items.compareTo( ( (ComparableVersion) o ).items ); + return items.compareTo( ( o ).items ); } public String toString() diff --git a/src/main/java/org/codehaus/mojo/versions/ordering/MajorMinorIncrementalFilter.java b/src/main/java/org/codehaus/mojo/versions/ordering/MajorMinorIncrementalFilter.java index c6f1440a6..1d802f22b 100644 --- a/src/main/java/org/codehaus/mojo/versions/ordering/MajorMinorIncrementalFilter.java +++ b/src/main/java/org/codehaus/mojo/versions/ordering/MajorMinorIncrementalFilter.java @@ -51,11 +51,11 @@ public class MajorMinorIncrementalFilter { - private boolean allowMajorUpdates; + private final boolean allowMajorUpdates; - private boolean allowMinorUpdates; + private final boolean allowMinorUpdates; - private boolean allowIncrementalUpdates; + private final boolean allowIncrementalUpdates; public MajorMinorIncrementalFilter( boolean allowMajorUpdates, boolean allowMinorUpdates, boolean allowIncrementalUpdates ) @@ -73,7 +73,7 @@ public MajorMinorIncrementalFilter( boolean allowMajorUpdates, boolean allowMino */ public ArtifactVersion[] filter( ArtifactVersion selectedVersion, ArtifactVersion[] newerVersions ) { - List versionsToUse = new LinkedList(); + List versionsToUse = new LinkedList<>(); for ( ArtifactVersion artifactVersion : newerVersions ) { if ( artifactVersion.getMajorVersion() != selectedVersion.getMajorVersion() ) @@ -114,7 +114,7 @@ else if ( artifactVersion.getIncrementalVersion() != selectedVersion.getIncremen } } } - return versionsToUse.toArray( new ArtifactVersion[versionsToUse.size()] ); + return versionsToUse.toArray( new ArtifactVersion[0] ); } } diff --git a/src/main/java/org/codehaus/mojo/versions/utils/RegexUtils.java b/src/main/java/org/codehaus/mojo/versions/utils/RegexUtils.java index f6c5beb73..7a7496767 100644 --- a/src/main/java/org/codehaus/mojo/versions/utils/RegexUtils.java +++ b/src/main/java/org/codehaus/mojo/versions/utils/RegexUtils.java @@ -79,7 +79,7 @@ public static String quote( String s ) do { // we are safe from pos to i - sb.append( s.substring( pos, i ) ); + sb.append( s, pos, i ); // now escape-escape sb.append( REGEX_QUOTE_END_ESCAPED ); // move the working start @@ -88,7 +88,7 @@ public static String quote( String s ) } while ( i != -1 ); - sb.append( s.substring( pos, s.length() ) ); + sb.append( s.substring( pos ) ); sb.append( REGEX_QUOTE_END ); return sb.toString(); diff --git a/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java b/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java index 4a5862d72..ecb714ff5 100644 --- a/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java +++ b/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java @@ -19,7 +19,7 @@ * under the License. */ -import org.apache.maven.artifact.manager.WagonConfigurationException; +import org.apache.maven.repository.legacy.WagonConfigurationException; import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.plugin.logging.Log; import org.apache.maven.settings.Proxy; @@ -79,7 +79,7 @@ public static ProxyInfo getProxyInfo( Settings settings ) * @param logger The logger to use. * @return The wagon to connect to the url. * @throws org.apache.maven.wagon.UnsupportedProtocolException if the protocol is not supported. - * @throws org.apache.maven.artifact.manager.WagonConfigurationException if the wagon cannot be configured. + * @throws org.apache.maven.repository.legacy.WagonConfigurationException if the wagon cannot be configured. * @throws org.apache.maven.wagon.ConnectionException If the connection cannot be established. * @throws org.apache.maven.wagon.authentication.AuthenticationException If the connection cannot be authenticated. */ diff --git a/src/test/java/org/codehaus/mojo/versions/api/DefaultVersionsHelperTest.java b/src/test/java/org/codehaus/mojo/versions/api/DefaultVersionsHelperTest.java index 779d9f4b7..3cf61215a 100644 --- a/src/test/java/org/codehaus/mojo/versions/api/DefaultVersionsHelperTest.java +++ b/src/test/java/org/codehaus/mojo/versions/api/DefaultVersionsHelperTest.java @@ -21,8 +21,7 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.DefaultArtifactFactory; -import org.apache.maven.artifact.manager.DefaultWagonManager; -import org.apache.maven.artifact.manager.WagonConfigurationException; +import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.DefaultArtifactRepository; @@ -30,19 +29,15 @@ import org.apache.maven.artifact.resolver.DefaultArtifactResolver; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; -import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; import org.apache.maven.project.artifact.MavenMetadataSource; import org.apache.maven.project.path.DefaultPathTranslator; import org.apache.maven.settings.Settings; -import org.apache.maven.wagon.UnsupportedProtocolException; -import org.apache.maven.wagon.Wagon; -import org.apache.maven.wagon.providers.file.FileWagon; -import org.apache.maven.wagon.repository.Repository; import org.apache.maven.execution.MavenSession; import org.codehaus.mojo.versions.Property; import org.codehaus.mojo.versions.ordering.VersionComparators; +import org.codehaus.plexus.PlexusTestCase; import org.hamcrest.CoreMatchers; import org.junit.Test; @@ -52,9 +47,6 @@ import static java.util.Arrays.asList; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.junit.matchers.JUnitMatchers.hasItems; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyList; @@ -65,7 +57,7 @@ /** * Test {@link DefaultVersionsHelper} */ -public class DefaultVersionsHelperTest +public class DefaultVersionsHelperTest extends PlexusTestCase { @Test @@ -76,7 +68,7 @@ public void testPerRuleVersionsIgnored() throws Exception when( artifact.getGroupId() ).thenReturn( "com.mycompany.maven" ); when( artifact.getArtifactId() ).thenReturn( "artifact-one" ); - final List artifactVersions = new ArrayList(); + final List artifactVersions = new ArrayList<>(); artifactVersions.add( new DefaultArtifactVersion( "one" ) ); artifactVersions.add( new DefaultArtifactVersion( "two" ) ); @@ -108,7 +100,7 @@ public void testGlobalRuleVersionsIgnored() throws Exception when( artifact.getGroupId() ).thenReturn( "other.company" ); when( artifact.getArtifactId() ).thenReturn( "artifact-two" ); - final List artifactVersions = new ArrayList(); + final List artifactVersions = new ArrayList<>(); final ArtifactVersion one = new DefaultArtifactVersion( "one" ); final ArtifactVersion two = new DefaultArtifactVersion( "two" ); @@ -169,7 +161,7 @@ public void testRuleSets() @Test public void testMVERSIONS159_ExcludedAndNotIncluded() - throws MojoExecutionException + throws Exception { VersionsHelper helper = createHelper(); MavenProject project = null; @@ -183,7 +175,7 @@ public void testMVERSIONS159_ExcludedAndNotIncluded() } @Test - public void testIsClasspathUriDetectsClassPathProtocol() throws MojoExecutionException { + public void testIsClasspathUriDetectsClassPathProtocol() throws Exception { DefaultVersionsHelper helper = createHelper(); String uri = "classpath:/p/a/c/k/a/g/e/resource.res"; @@ -191,7 +183,7 @@ public void testIsClasspathUriDetectsClassPathProtocol() throws MojoExecutionExc } @Test - public void testIsClasspathUriDetectsThatItIsDifferentProtocol() throws MojoExecutionException { + public void testIsClasspathUriDetectsThatItIsDifferentProtocol() throws Exception { DefaultVersionsHelper helper = createHelper(); String uri = "http://10.10.10.10/p/a/c/k/a/g/e/resource.res"; @@ -200,12 +192,12 @@ public void testIsClasspathUriDetectsThatItIsDifferentProtocol() throws MojoExec private DefaultVersionsHelper createHelper() - throws MojoExecutionException + throws Exception { return createHelper( new MavenMetadataSource() ); } - private DefaultVersionsHelper createHelper( ArtifactMetadataSource metadataSource ) throws MojoExecutionException + private DefaultVersionsHelper createHelper( ArtifactMetadataSource metadataSource ) throws Exception { final String resourcePath = "/" + getClass().getPackage().getName().replace( '.', '/' ) + "/rules.xml"; final String rulesUri = getClass().getResource( resourcePath ).toExternalForm(); @@ -214,16 +206,18 @@ private DefaultVersionsHelper createHelper( ArtifactMetadataSource metadataSourc } private DefaultVersionsHelper createHelper( String rulesUri, ArtifactMetadataSource metadataSource ) - throws MojoExecutionException + throws Exception { - final DefaultWagonManager wagonManager = new DefaultWagonManager() - { - public Wagon getWagon( Repository repository ) - throws UnsupportedProtocolException, WagonConfigurationException - { - return new FileWagon(); - } - }; + WagonManager wagonManager = lookup(WagonManager.class); +// new DefaultWagonManager() +// { +// @Override +// public Wagon getWagon( String protocol ) +// throws UnsupportedProtocolException +// { +// return new FileWagon(); +// } +// }; DefaultVersionsHelper helper = new DefaultVersionsHelper( new DefaultArtifactFactory(), new DefaultArtifactResolver(), metadataSource, new ArrayList(),