From 6eede1a8ff4b7bcbbbafd0729548b87deec30e07 Mon Sep 17 00:00:00 2001 From: Sylwester Lachiewicz Date: Wed, 8 Nov 2017 22:29:50 +0100 Subject: [PATCH] Remove Google Guava usage (move to Java7) --- .../java/org/apache/maven/DefaultMaven.java | 8 +- .../DefaultMavenExecutionRequest.java | 4 +- .../scope/internal/MojoExecutionScope.java | 6 +- .../maven/extension/internal/CoreExports.java | 10 +- .../internal/CoreExtensionEntry.java | 7 +- .../maven/graph/DefaultGraphBuilder.java | 18 +-- .../maven/lifecycle/DefaultLifecycles.java | 7 +- ...faultLifecycleExecutionPlanCalculator.java | 5 +- .../maven/project/ProjectModelResolver.java | 14 +-- .../session/scope/internal/SessionScope.java | 9 +- .../java/org/apache/maven/cli/MavenCli.java | 5 +- .../apache/maven/model/building/Result.java | 109 ++++++++++-------- 12 files changed, 104 insertions(+), 98 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java index 7e46ad046f6b..7f052c139d75 100644 --- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java +++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java @@ -60,8 +60,6 @@ import org.eclipse.aether.repository.WorkspaceReader; import org.eclipse.aether.util.repository.ChainedWorkspaceReader; -import com.google.common.collect.Iterables; - /** * @author Jason van Zyl */ @@ -222,8 +220,7 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request, MavenSess if ( graphResult.hasErrors() ) { - return addExceptionToResult( result, Iterables.toArray( graphResult.getProblems(), - ModelProblem.class )[0].getException() ); + return addExceptionToResult( result, graphResult.getProblems().iterator().next().getException() ); } try @@ -289,8 +286,7 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request, MavenSess if ( graphResult.hasErrors() ) { - return addExceptionToResult( result, Iterables.toArray( graphResult.getProblems(), - ModelProblem.class )[0].getException() ); + return addExceptionToResult( result, graphResult.getProblems().iterator().next().getException() ); } try diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java index 089a7db2645b..fe558cd338d0 100644 --- a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java +++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java @@ -43,8 +43,6 @@ import org.eclipse.aether.repository.WorkspaceReader; import org.eclipse.aether.transfer.TransferListener; -import com.google.common.collect.Maps; - /** * @author Jason van Zyl */ @@ -1280,7 +1278,7 @@ public Map getData() { if ( data == null ) { - data = Maps.newHashMap(); + data = new HashMap<>(); } return data; diff --git a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java index e5b6c16759d2..6989dd1514df 100644 --- a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java +++ b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java @@ -20,6 +20,7 @@ */ import java.util.Collection; +import java.util.HashMap; import java.util.IdentityHashMap; import java.util.LinkedList; import java.util.Map; @@ -29,7 +30,6 @@ import org.apache.maven.execution.scope.WeakMojoExecutionListener; import org.apache.maven.plugin.MojoExecutionException; -import com.google.common.collect.Maps; import com.google.inject.Key; import com.google.inject.OutOfScopeException; import com.google.inject.Provider; @@ -49,9 +49,9 @@ public Object get() private static final class ScopeState { - public final Map, Provider> seeded = Maps.newHashMap(); + public final Map, Provider> seeded = new HashMap<>(); - public final Map, Object> provided = Maps.newHashMap(); + public final Map, Object> provided = new HashMap<>(); } private final ThreadLocal> values = new ThreadLocal<>(); diff --git a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java index e253e9fd81ad..331617cfa232 100644 --- a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java +++ b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java @@ -19,15 +19,15 @@ * under the License. */ +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import org.codehaus.plexus.classworlds.realm.ClassRealm; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; - /** * Provides information about artifacts (identified by groupId:artifactId string key) and classpath elements exported by * Maven core itself and loaded Maven core extensions. @@ -52,8 +52,8 @@ public CoreExports( ClassRealm realm, Set exportedArtifacts, Set { packages.put( pkg, realm ); } - this.artifacts = ImmutableSet.copyOf( exportedArtifacts ); - this.packages = ImmutableMap.copyOf( packages ); + this.artifacts = Collections.unmodifiableSet( new HashSet<>( exportedArtifacts ) ); + this.packages = Collections.unmodifiableMap( new HashMap<>( packages ) ); } /** diff --git a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java index ce740a9679f2..ba805ba7ec9d 100644 --- a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java +++ b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java @@ -19,7 +19,6 @@ * under the License. */ -import com.google.common.collect.ImmutableSet; import org.apache.maven.project.ExtensionDescriptor; import org.apache.maven.project.ExtensionDescriptorBuilder; import org.codehaus.plexus.classworlds.realm.ClassRealm; @@ -29,7 +28,9 @@ import java.io.InputStream; import java.net.URL; import java.util.Collection; +import java.util.Collections; import java.util.Enumeration; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; @@ -50,8 +51,8 @@ public class CoreExtensionEntry public CoreExtensionEntry( ClassRealm realm, Collection artifacts, Collection packages ) { this.realm = realm; - this.artifacts = ImmutableSet.copyOf( artifacts ); - this.packages = ImmutableSet.copyOf( packages ); + this.artifacts = Collections.unmodifiableSet( new HashSet<>( artifacts ) ); + this.packages = Collections.unmodifiableSet( new HashSet<>( packages ) ); } /** diff --git a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java index 2cbea8457b9d..3ad92aa9397c 100644 --- a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java +++ b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java @@ -23,12 +23,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import com.google.common.collect.Lists; import org.apache.maven.DefaultMaven; import org.apache.maven.MavenExecutionException; import org.apache.maven.ProjectCycleException; @@ -82,23 +82,17 @@ public Result build( MavenSession session ) return result; } - catch ( final ProjectBuildingException e ) + catch ( final ProjectBuildingException | DuplicateProjectException | MavenExecutionException e ) { - return Result.error( Lists.newArrayList( new DefaultModelProblem( null, null, null, null, 0, 0, e ) ) ); + return Result.error( Collections.singletonList + ( new DefaultModelProblem ( null, null, null, null, 0, 0, e ) ) ); } catch ( final CycleDetectedException e ) { String message = "The projects in the reactor contain a cyclic reference: " + e.getMessage(); ProjectCycleException error = new ProjectCycleException( message, e ); - return Result.error( Lists.newArrayList( new DefaultModelProblem( null, null, null, null, 0, 0, error ) ) ); - } - catch ( final DuplicateProjectException e ) - { - return Result.error( Lists.newArrayList( new DefaultModelProblem( null, null, null, null, 0, 0, e ) ) ); - } - catch ( final MavenExecutionException e ) - { - return Result.error( Lists.newArrayList( new DefaultModelProblem( null, null, null, null, 0, 0, e ) ) ); + return Result.error( Collections.singletonList( + new DefaultModelProblem( null, null, null, null, 0, 0, error ) ) ); } } diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java index 8186a39fc243..a7d9facb2e90 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java @@ -24,8 +24,6 @@ import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.StringUtils; -import com.google.common.base.Preconditions; - import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -122,7 +120,10 @@ public List getLifeCycles() for ( String name : lifecycleNames ) { Lifecycle lifecycle = lifecycles.get( name ); - Preconditions.checkNotNull( "A lifecycle must have an id.", lifecycle.getId() ); + if ( lifecycle.getId() == null ) + { + throw new NullPointerException( "A lifecycle must have an id." ); + } result.add( lifecycle ); } diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java index 1e81b18fe020..ef60c4eb36b0 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java @@ -59,7 +59,6 @@ import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import com.google.common.collect.ImmutableMap; /** * NOTE: This class is not part of any public api and can be changed or deleted without prior notice. @@ -111,8 +110,8 @@ public DefaultLifecycleExecutionPlanCalculator( BuildPluginManager pluginManager this.defaultLifeCycles = defaultLifeCycles; this.mojoDescriptorCreator = mojoDescriptorCreator; this.lifecyclePluginResolver = lifecyclePluginResolver; - this.mojoExecutionConfigurators = - ImmutableMap.of( "default", (MojoExecutionConfigurator) new DefaultMojoExecutionConfigurator() ); + this.mojoExecutionConfigurators = Collections.singletonMap( + "default", (MojoExecutionConfigurator) new DefaultMojoExecutionConfigurator() ); } @Override diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java index 3a31d338660d..2b3108a47fb8 100644 --- a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java +++ b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java @@ -23,11 +23,10 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; import org.apache.maven.model.Dependency; import org.apache.maven.model.Parent; import org.apache.maven.model.Repository; @@ -157,14 +156,15 @@ public void addRepository( final Repository repository, boolean replace ) private static void removeMatchingRepository( Iterable repositories, final String id ) { - Iterables.removeIf( repositories, new Predicate() + Iterator iterator = repositories.iterator( ); + while ( iterator.hasNext() ) { - @Override - public boolean apply( RemoteRepository remoteRepository ) + RemoteRepository next = ( RemoteRepository ) iterator.next(); + if ( next.getId().equals( id ) ) { - return remoteRepository.getId().equals( id ); + iterator.remove(); } - } ); + } } public ModelResolver newCopy() diff --git a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java index 7ca63abe7f08..ccc4ba3125bf 100644 --- a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java +++ b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java @@ -20,11 +20,10 @@ */ import java.util.Collections; +import java.util.HashMap; import java.util.LinkedList; import java.util.Map; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; import com.google.inject.Key; import com.google.inject.OutOfScopeException; import com.google.inject.Provider; @@ -43,7 +42,7 @@ public static class Memento Memento( final Map, Provider> seeded ) { - this.seeded = ImmutableMap.copyOf( seeded ); + this.seeded = Collections.unmodifiableMap( new HashMap<>( seeded ) ); } } @@ -57,9 +56,9 @@ public Object get() private static final class ScopeState { - public final Map, Provider> seeded = Maps.newHashMap(); + public final Map, Provider> seeded = new HashMap<>(); - public final Map, Object> provided = Maps.newHashMap(); + public final Map, Object> provided = new HashMap<>(); } private final ThreadLocal> values = new ThreadLocal<>(); diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index 77ef1342b9f7..1bd1233d354b 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -19,8 +19,6 @@ * under the License. */ -import com.google.common.base.Charsets; -import com.google.common.io.Files; import com.google.inject.AbstractModule; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -101,6 +99,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -378,7 +377,7 @@ void cli( CliRequest cliRequest ) if ( configFile.isFile() ) { - for ( String arg : Files.toString( configFile, Charsets.UTF_8 ).split( "\\s+" ) ) + for ( String arg : new String( Files.readAllBytes( configFile.toPath() ) ).split( "\\s+" ) ) { if ( !arg.isEmpty() ) { diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java index c9d5f68b689b..df0c797200eb 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java @@ -19,23 +19,14 @@ * under the License. */ -import static com.google.common.base.Predicates.in; -import static com.google.common.collect.Iterables.any; -import static com.google.common.collect.Iterables.concat; -import static com.google.common.collect.Iterables.transform; import static java.util.Collections.singleton; -import static java.util.EnumSet.of; import static org.apache.maven.model.building.ModelProblem.Severity.ERROR; import static org.apache.maven.model.building.ModelProblem.Severity.FATAL; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; - -import org.apache.maven.model.building.ModelProblem.Severity; - -import com.google.common.base.Function; -import com.google.common.base.Predicates; -import com.google.common.collect.Iterables; +import java.util.List; /** * There are various forms of results that are represented by this class: @@ -83,7 +74,17 @@ public static Result success( T model, Iterable p */ public static Result success( T model, Result... results ) { - return success( model, Iterables.concat( Iterables.transform( Arrays.asList( results ), GET_PROBLEMS ) ) ); + final List problemsList = new ArrayList<>(); + + for ( Result result1 : results ) + { + for ( ModelProblem modelProblem : result1.getProblems() ) + { + problemsList.add( modelProblem ); + } + } + + return success( model, problemsList ); } /** @@ -108,7 +109,17 @@ public static Result error( Result result ) public static Result error( Result... results ) { - return error( Iterables.concat( Iterables.transform( Arrays.asList( results ), GET_PROBLEMS ) ) ); + final List problemsList = new ArrayList<>( ); + + for ( Result result1 : results ) + { + for ( ModelProblem modelProblem : result1.getProblems( ) ) + { + problemsList.add( modelProblem ); + } + } + + return error( problemsList ); } /** @@ -153,13 +164,30 @@ public static Result addProblem( Result result, ModelProblem problem ) */ public static Result addProblems( Result result, Iterable problems ) { - return new Result<>( result.hasErrors() || hasErrors( problems ), result.get(), concat( result.getProblems(), - problems ) ); + Collection list = new ArrayList<>(); + for ( ModelProblem item : problems ) + { + list.add( item ); + } + for ( ModelProblem item : result.getProblems() ) + { + list.add( item ); + } + return new Result<>( result.hasErrors() || hasErrors( problems ), result.get(), list ); } public static Result addProblems( Result result, Result... results ) { - return addProblems( result, Iterables.concat( Iterables.transform( Arrays.asList( results ), GET_PROBLEMS ) ) ); + final List problemsList = new ArrayList<>(); + + for ( Result result1 : results ) + { + for ( ModelProblem modelProblem : result1.getProblems( ) ) + { + problemsList.add( modelProblem ); + } + } + return addProblems( result, problemsList ); } /** @@ -169,37 +197,38 @@ public static Result addProblems( Result result, Result... results */ public static Result> newResultSet( Iterable> results ) { - final boolean hasErrors = any( transform( results, new Function, Boolean>() + boolean hasErrors = false; + List modelsList = new ArrayList<>(); + List problemsList = new ArrayList<>(); + + for ( Result result : results ) { - @Override - public Boolean apply( Result input ) + modelsList.add( result.get() ); + + for ( ModelProblem modelProblem : result.getProblems() ) { - return input.hasErrors(); + problemsList.add( modelProblem ); } - } ), Predicates.equalTo( true ) ); - final Iterable models = transform( results, new Function, T>() - { - @Override - public T apply( Result input ) + + if ( result.hasErrors() ) { - return input.get(); + hasErrors = true; } - } ); - final Iterable problems = concat( transform( results, GET_PROBLEMS ) ); - return new Result<>( hasErrors, models, problems ); + } + return new Result<>( hasErrors, ( Iterable ) modelsList, problemsList ); } // helper to determine if problems contain error private static boolean hasErrors( Iterable problems ) { - return any( transform( problems, new Function() + for ( ModelProblem input : problems ) { - @Override - public Severity apply( ModelProblem input ) + if ( input.getSeverity().equals( ERROR ) || input.getSeverity().equals( FATAL ) ) { - return input.getSeverity(); + return true; } - } ), in( of( ERROR, FATAL ) ) ); + } + return false; } /** @@ -233,14 +262,4 @@ public boolean hasErrors() { return errors; } - - private static final Function, Iterable> GET_PROBLEMS = - new Function, Iterable>() - { - @Override - public Iterable apply( Result input ) - { - return input.getProblems(); - } - }; } \ No newline at end of file