You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sc...@apache.org on 2016/12/11 22:37:31 UTC

[7/7] maven git commit: [MNG-6110] Upgrade Aether to Maven Resolver 1.2

[MNG-6110] Upgrade Aether to Maven Resolver 1.2

o Updated to rename 'maven-aether-provider' to 'maven-resolver-provider'.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/58554032
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/58554032
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/58554032

Branch: refs/heads/master
Commit: 58554032fe026f3fa3588be7911505d1aa1fff3f
Parents: 624a736
Author: Christian Schulte <sc...@apache.org>
Authored: Sun Dec 11 23:36:04 2016 +0100
Committer: Christian Schulte <sc...@apache.org>
Committed: Sun Dec 11 23:36:04 2016 +0100

----------------------------------------------------------------------
 maven-aether-provider/pom.xml                   | 139 -----
 .../ArtifactDescriptorReaderDelegate.java       | 157 -----
 .../internal/ArtifactDescriptorUtils.java       |  81 ---
 .../DefaultArtifactDescriptorReader.java        | 415 -------------
 .../repository/internal/DefaultModelCache.java  | 119 ----
 .../internal/DefaultModelResolver.java          | 279 ---------
 .../internal/DefaultVersionRangeResolver.java   | 327 ----------
 .../DefaultVersionRangeResultFilter.java        |  45 --
 .../internal/DefaultVersionResolver.java        | 612 -------------------
 .../internal/LocalSnapshotMetadata.java         | 163 -----
 .../LocalSnapshotMetadataGenerator.java         |  82 ---
 .../repository/internal/MavenAetherModule.java  |  76 ---
 .../repository/internal/MavenMetadata.java      | 137 -----
 .../internal/MavenRepositorySystemUtils.java    | 146 -----
 .../internal/MavenSnapshotMetadata.java         | 100 ---
 .../internal/MavenWorkspaceReader.java          |  32 -
 .../repository/internal/RelocatedArtifact.java  | 114 ----
 .../internal/RemoteSnapshotMetadata.java        | 157 -----
 .../RemoteSnapshotMetadataGenerator.java        | 107 ----
 .../SnapshotMetadataGeneratorFactory.java       |  52 --
 .../internal/VersionRangeResultFilter.java      |  45 --
 .../repository/internal/VersionsMetadata.java   | 133 ----
 .../internal/VersionsMetadataGenerator.java     | 108 ----
 .../VersionsMetadataGeneratorFactory.java       |  52 --
 .../maven/repository/internal/package-info.java |  25 -
 maven-aether-provider/src/site/apt/index.apt    |  33 -
 maven-aether-provider/src/site/site.xml         |  36 --
 .../internal/AbstractRepositoryTestCase.java    |  87 ---
 .../DefaultArtifactDescriptorReaderTest.java    |  77 ---
 .../DefaultVersionRangeResolverTest.java        | 455 --------------
 .../internal/DefaultVersionResolverTest.java    |  96 ---
 .../MavenRepositorySystemUtilsTest.java         |  45 --
 .../internal/RemoteSnapshotMetadataTest.java    |  82 ---
 .../internal/RepositorySystemTest.java          | 220 -------
 .../util/ConsoleRepositoryListener.java         | 132 ----
 .../internal/util/ConsoleTransferListener.java  | 186 ------
 .../07.20.3-SNAPSHOT/maven-metadata.xml         |  49 --
 .../0.4.0-SNAPSHOT/maven-metadata.xml           |  47 --
 .../maven/its/mng-3092/maven-metadata.xml       | 104 ----
 .../artifact/1.0/artifact-1.0-classifier.zip    |   0
 .../ut/simple/artifact/1.0/artifact-1.0.jar     |   0
 .../ut/simple/artifact/1.0/artifact-1.0.pom     |  48 --
 .../ut/simple/artifact/1.0/artifact-1.0.zip     |   0
 .../repo/ut/simple/artifact/maven-metadata.xml  |  34 --
 .../dependency/1.0/dependency-1.0-sources.jar   |   0
 .../ut/simple/dependency/1.0/dependency-1.0.jar |   0
 .../ut/simple/dependency/1.0/dependency-1.0.pom |  31 -
 .../ut/simple/dependency/maven-metadata.xml     |  34 --
 .../repo/ut/simple/parent/1.0/parent-1.0.pom    |  43 --
 .../repo/ut/simple/parent/maven-metadata.xml    |  34 --
 maven-compat/pom.xml                            |   2 +-
 maven-core/pom.xml                              |   2 +-
 .../main/resources/META-INF/maven/extension.xml |  13 +-
 maven-resolver-provider/pom.xml                 | 139 +++++
 .../ArtifactDescriptorReaderDelegate.java       | 157 +++++
 .../internal/ArtifactDescriptorUtils.java       |  81 +++
 .../DefaultArtifactDescriptorReader.java        | 415 +++++++++++++
 .../repository/internal/DefaultModelCache.java  | 119 ++++
 .../internal/DefaultModelResolver.java          | 279 +++++++++
 .../internal/DefaultVersionRangeResolver.java   | 327 ++++++++++
 .../DefaultVersionRangeResultFilter.java        |  45 ++
 .../internal/DefaultVersionResolver.java        | 612 +++++++++++++++++++
 .../internal/LocalSnapshotMetadata.java         | 163 +++++
 .../LocalSnapshotMetadataGenerator.java         |  82 +++
 .../repository/internal/MavenAetherModule.java  |  80 +++
 .../repository/internal/MavenMetadata.java      | 137 +++++
 .../internal/MavenRepositorySystemUtils.java    | 146 +++++
 .../internal/MavenResolverModule.java           |  70 +++
 .../internal/MavenSnapshotMetadata.java         | 100 +++
 .../internal/MavenWorkspaceReader.java          |  32 +
 .../repository/internal/RelocatedArtifact.java  | 114 ++++
 .../internal/RemoteSnapshotMetadata.java        | 157 +++++
 .../RemoteSnapshotMetadataGenerator.java        | 107 ++++
 .../SnapshotMetadataGeneratorFactory.java       |  52 ++
 .../internal/VersionRangeResultFilter.java      |  45 ++
 .../repository/internal/VersionsMetadata.java   | 133 ++++
 .../internal/VersionsMetadataGenerator.java     | 108 ++++
 .../VersionsMetadataGeneratorFactory.java       |  52 ++
 .../maven/repository/internal/package-info.java |  25 +
 maven-resolver-provider/src/site/apt/index.apt  |  33 +
 maven-resolver-provider/src/site/site.xml       |  36 ++
 .../internal/AbstractRepositoryTestCase.java    |  87 +++
 .../DefaultArtifactDescriptorReaderTest.java    |  77 +++
 .../DefaultVersionRangeResolverTest.java        | 455 ++++++++++++++
 .../internal/DefaultVersionResolverTest.java    |  96 +++
 .../MavenRepositorySystemUtilsTest.java         |  45 ++
 .../internal/RemoteSnapshotMetadataTest.java    |  82 +++
 .../internal/RepositorySystemTest.java          | 220 +++++++
 .../util/ConsoleRepositoryListener.java         | 132 ++++
 .../internal/util/ConsoleTransferListener.java  | 186 ++++++
 .../07.20.3-SNAPSHOT/maven-metadata.xml         |  49 ++
 .../0.4.0-SNAPSHOT/maven-metadata.xml           |  47 ++
 .../maven/its/mng-3092/maven-metadata.xml       | 104 ++++
 .../artifact/1.0/artifact-1.0-classifier.zip    |   0
 .../ut/simple/artifact/1.0/artifact-1.0.jar     |   0
 .../ut/simple/artifact/1.0/artifact-1.0.pom     |  48 ++
 .../ut/simple/artifact/1.0/artifact-1.0.zip     |   0
 .../repo/ut/simple/artifact/maven-metadata.xml  |  34 ++
 .../dependency/1.0/dependency-1.0-sources.jar   |   0
 .../ut/simple/dependency/1.0/dependency-1.0.jar |   0
 .../ut/simple/dependency/1.0/dependency-1.0.pom |  31 +
 .../ut/simple/dependency/maven-metadata.xml     |  34 ++
 .../repo/ut/simple/parent/1.0/parent-1.0.pom    |  43 ++
 .../repo/ut/simple/parent/maven-metadata.xml    |  34 ++
 pom.xml                                         |   4 +-
 src/site/resources/images/maven-deps.png        | Bin 75522 -> 136318 bytes
 src/site/xdoc/index.xml                         |   4 +-
 src/site/xdoc/maven-deps.odg                    | Bin 34309 -> 18245 bytes
 108 files changed, 5664 insertions(+), 5587 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/pom.xml
----------------------------------------------------------------------
diff --git a/maven-aether-provider/pom.xml b/maven-aether-provider/pom.xml
deleted file mode 100644
index 4579ae5..0000000
--- a/maven-aether-provider/pom.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven</groupId>
-    <artifactId>maven</artifactId>
-    <version>3.4.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>maven-aether-provider</artifactId>
-
-  <name>Maven Aether Provider</name>
-  <description>Extensions to Maven Resolver for utilizing Maven POM and repository metadata.</description>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-model</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-model-builder</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-repository-metadata</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-spi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.google.inject</groupId>
-      <artifactId>guice</artifactId>
-      <classifier>no_aop</classifier>
-      <optional>true</optional>
-      <exclusions>
-        <exclusion>
-          <groupId>aopalliance</groupId>
-          <artifactId>aopalliance</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.sisu</groupId>
-      <artifactId>org.eclipse.sisu.inject</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.sisu</groupId>
-      <artifactId>org.eclipse.sisu.plexus</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.inject</groupId>
-      <artifactId>javax.inject</artifactId>
-    </dependency>
-    <!-- Testing -->
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-connector-basic</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-transport-wagon</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.wagon</groupId>
-      <artifactId>wagon-file</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <version>1.10.19</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
-

http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
----------------------------------------------------------------------
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
deleted file mode 100644
index 284ee86..0000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.maven.model.DependencyManagement;
-import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.model.License;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.Prerequisites;
-import org.apache.maven.model.Repository;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.ArtifactProperties;
-import org.eclipse.aether.artifact.ArtifactType;
-import org.eclipse.aether.artifact.ArtifactTypeRegistry;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.artifact.DefaultArtifactType;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.graph.Exclusion;
-import org.eclipse.aether.resolution.ArtifactDescriptorResult;
-
-/**
- * Populates Aether {@link ArtifactDescriptorResult} from Maven project {@link Model}.
- *
- * @since 3.2.4
- * @provisional This class is part of work in progress and can be changed or removed without notice.
- */
-public class ArtifactDescriptorReaderDelegate
-{
-    public void populateResult( RepositorySystemSession session, ArtifactDescriptorResult result, Model model )
-    {
-        ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();
-
-        for ( Repository r : model.getRepositories() )
-        {
-            result.addRepository( ArtifactDescriptorUtils.toRemoteRepository( r ) );
-        }
-
-        for ( org.apache.maven.model.Dependency dependency : model.getDependencies() )
-        {
-            result.addDependency( convert( dependency, stereotypes ) );
-        }
-
-        DependencyManagement mngt = model.getDependencyManagement();
-        if ( mngt != null )
-        {
-            for ( org.apache.maven.model.Dependency dependency : mngt.getDependencies() )
-            {
-                result.addManagedDependency( convert( dependency, stereotypes ) );
-            }
-        }
-
-        Map<String, Object> properties = new LinkedHashMap<>();
-
-        Prerequisites prerequisites = model.getPrerequisites();
-        if ( prerequisites != null )
-        {
-            properties.put( "prerequisites.maven", prerequisites.getMaven() );
-        }
-
-        List<License> licenses = model.getLicenses();
-        properties.put( "license.count", licenses.size() );
-        for ( int i = 0; i < licenses.size(); i++ )
-        {
-            License license = licenses.get( i );
-            properties.put( "license." + i + ".name", license.getName() );
-            properties.put( "license." + i + ".url", license.getUrl() );
-            properties.put( "license." + i + ".comments", license.getComments() );
-            properties.put( "license." + i + ".distribution", license.getDistribution() );
-        }
-
-        result.setProperties( properties );
-
-        setArtifactProperties( result, model );
-    }
-
-    private Dependency convert( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes )
-    {
-        ArtifactType stereotype = stereotypes.get( dependency.getType() );
-        if ( stereotype == null )
-        {
-            stereotype = new DefaultArtifactType( dependency.getType() );
-        }
-
-        boolean system = dependency.getSystemPath() != null && dependency.getSystemPath().length() > 0;
-
-        Map<String, String> props = null;
-        if ( system )
-        {
-            props = Collections.singletonMap( ArtifactProperties.LOCAL_PATH, dependency.getSystemPath() );
-        }
-
-        Artifact artifact =
-            new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), null,
-                                 dependency.getVersion(), props, stereotype );
-
-        List<Exclusion> exclusions = new ArrayList<>( dependency.getExclusions().size() );
-        for ( org.apache.maven.model.Exclusion exclusion : dependency.getExclusions() )
-        {
-            exclusions.add( convert( exclusion ) );
-        }
-
-        Dependency result = new Dependency( artifact, dependency.getScope(),
-                                            dependency.getOptional() != null
-                                                ? dependency.isOptional()
-                                                : null,
-                                            exclusions );
-
-        return result;
-    }
-
-    private Exclusion convert( org.apache.maven.model.Exclusion exclusion )
-    {
-        return new Exclusion( exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*" );
-    }
-
-    private void setArtifactProperties( ArtifactDescriptorResult result, Model model )
-    {
-        String downloadUrl = null;
-        DistributionManagement distMngt = model.getDistributionManagement();
-        if ( distMngt != null )
-        {
-            downloadUrl = distMngt.getDownloadUrl();
-        }
-        if ( downloadUrl != null && downloadUrl.length() > 0 )
-        {
-            Artifact artifact = result.getArtifact();
-            Map<String, String> props = new HashMap<>( artifact.getProperties() );
-            props.put( ArtifactProperties.DOWNLOAD_URL, downloadUrl );
-            result.setArtifact( artifact.setProperties( props ) );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
----------------------------------------------------------------------
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
deleted file mode 100644
index 7d4ede8..0000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.maven.model.Repository;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.repository.RepositoryPolicy;
-
-/**
- * <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part
- * of the public API. In particular, this class can be changed or deleted without prior notice.
- *
- * @author Benjamin Bentmann
- */
-public class ArtifactDescriptorUtils
-{
-
-    public static Artifact toPomArtifact( Artifact artifact )
-    {
-        Artifact pomArtifact = artifact;
-
-        if ( pomArtifact.getClassifier().length() > 0 || !"pom".equals( pomArtifact.getExtension() ) )
-        {
-            pomArtifact =
-                new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), "pom", artifact.getVersion() );
-        }
-
-        return pomArtifact;
-    }
-
-    public static RemoteRepository toRemoteRepository( Repository repository )
-    {
-        RemoteRepository.Builder builder =
-            new RemoteRepository.Builder( repository.getId(), repository.getLayout(), repository.getUrl() );
-        builder.setSnapshotPolicy( toRepositoryPolicy( repository.getSnapshots() ) );
-        builder.setReleasePolicy( toRepositoryPolicy( repository.getReleases() ) );
-        return builder.build();
-    }
-
-    public static RepositoryPolicy toRepositoryPolicy( org.apache.maven.model.RepositoryPolicy policy )
-    {
-        boolean enabled = true;
-        String checksums = RepositoryPolicy.CHECKSUM_POLICY_WARN;
-        String updates = RepositoryPolicy.UPDATE_POLICY_DAILY;
-
-        if ( policy != null )
-        {
-            enabled = policy.isEnabled();
-            if ( policy.getUpdatePolicy() != null )
-            {
-                updates = policy.getUpdatePolicy();
-            }
-            if ( policy.getChecksumPolicy() != null )
-            {
-                checksums = policy.getChecksumPolicy();
-            }
-        }
-
-        return new RepositoryPolicy( enabled, updates, checksums );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
----------------------------------------------------------------------
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
deleted file mode 100644
index 0f31330..0000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
+++ /dev/null
@@ -1,415 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.apache.commons.lang3.Validate;
-import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.Relocation;
-import org.apache.maven.model.building.DefaultModelBuilderFactory;
-import org.apache.maven.model.building.DefaultModelBuildingRequest;
-import org.apache.maven.model.building.FileModelSource;
-import org.apache.maven.model.building.ModelBuilder;
-import org.apache.maven.model.building.ModelBuildingException;
-import org.apache.maven.model.building.ModelBuildingRequest;
-import org.apache.maven.model.building.ModelProblem;
-import org.apache.maven.model.resolution.UnresolvableModelException;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
-import org.eclipse.aether.RepositoryEvent;
-import org.eclipse.aether.RepositoryEvent.EventType;
-import org.eclipse.aether.RepositoryException;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.RequestTrace;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.impl.ArtifactDescriptorReader;
-import org.eclipse.aether.impl.ArtifactResolver;
-import org.eclipse.aether.impl.RemoteRepositoryManager;
-import org.eclipse.aether.impl.RepositoryEventDispatcher;
-import org.eclipse.aether.impl.VersionRangeResolver;
-import org.eclipse.aether.impl.VersionResolver;
-import org.eclipse.aether.repository.WorkspaceReader;
-import org.eclipse.aether.repository.WorkspaceRepository;
-import org.eclipse.aether.resolution.ArtifactDescriptorException;
-import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
-import org.eclipse.aether.resolution.ArtifactDescriptorPolicyRequest;
-import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
-import org.eclipse.aether.resolution.ArtifactDescriptorResult;
-import org.eclipse.aether.resolution.ArtifactRequest;
-import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.eclipse.aether.resolution.ArtifactResult;
-import org.eclipse.aether.resolution.VersionRequest;
-import org.eclipse.aether.resolution.VersionResolutionException;
-import org.eclipse.aether.resolution.VersionResult;
-import org.eclipse.aether.spi.locator.Service;
-import org.eclipse.aether.spi.locator.ServiceLocator;
-import org.eclipse.aether.spi.log.Logger;
-import org.eclipse.aether.spi.log.LoggerFactory;
-import org.eclipse.aether.spi.log.NullLoggerFactory;
-import org.eclipse.aether.transfer.ArtifactNotFoundException;
-
-/**
- * @author Benjamin Bentmann
- */
-@Named
-@Component( role = ArtifactDescriptorReader.class )
-public class DefaultArtifactDescriptorReader
-    implements ArtifactDescriptorReader, Service
-{
-
-    @SuppressWarnings( "unused" )
-    @Requirement( role = LoggerFactory.class )
-    private Logger logger = NullLoggerFactory.LOGGER;
-
-    @Requirement
-    private RemoteRepositoryManager remoteRepositoryManager;
-
-    @Requirement
-    private VersionResolver versionResolver;
-
-    @Requirement
-    private VersionRangeResolver versionRangeResolver;
-
-    @Requirement
-    private ArtifactResolver artifactResolver;
-
-    @Requirement
-    private RepositoryEventDispatcher repositoryEventDispatcher;
-
-    @Requirement
-    private ModelBuilder modelBuilder;
-
-    public DefaultArtifactDescriptorReader()
-    {
-        // enable no-arg constructor
-    }
-
-    @Inject
-    DefaultArtifactDescriptorReader( RemoteRepositoryManager remoteRepositoryManager, VersionResolver versionResolver,
-                                     ArtifactResolver artifactResolver, ModelBuilder modelBuilder,
-                                     RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
-    {
-        setRemoteRepositoryManager( remoteRepositoryManager );
-        setVersionResolver( versionResolver );
-        setArtifactResolver( artifactResolver );
-        setModelBuilder( modelBuilder );
-        setLoggerFactory( loggerFactory );
-        setRepositoryEventDispatcher( repositoryEventDispatcher );
-    }
-
-    public void initService( ServiceLocator locator )
-    {
-        setLoggerFactory( locator.getService( LoggerFactory.class ) );
-        setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) );
-        setVersionResolver( locator.getService( VersionResolver.class ) );
-        setVersionRangeResolver( locator.getService( VersionRangeResolver.class ) );
-        setArtifactResolver( locator.getService( ArtifactResolver.class ) );
-        setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
-        modelBuilder = locator.getService( ModelBuilder.class );
-        if ( modelBuilder == null )
-        {
-            setModelBuilder( new DefaultModelBuilderFactory().newInstance() );
-        }
-    }
-
-    public DefaultArtifactDescriptorReader setLoggerFactory( LoggerFactory loggerFactory )
-    {
-        this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
-        return this;
-    }
-
-    void setLogger( LoggerFactory loggerFactory )
-    {
-        // plexus support
-        setLoggerFactory( loggerFactory );
-    }
-
-    public DefaultArtifactDescriptorReader setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
-    {
-        this.remoteRepositoryManager = Validate.notNull( remoteRepositoryManager,
-            "remoteRepositoryManager cannot be null" );
-        return this;
-    }
-
-    public DefaultArtifactDescriptorReader setVersionResolver( VersionResolver versionResolver )
-    {
-        this.versionResolver = Validate.notNull( versionResolver, "versionResolver cannot be null" );
-        return this;
-    }
-
-    /** @since 3.2.2 */
-    public DefaultArtifactDescriptorReader setVersionRangeResolver( VersionRangeResolver versionRangeResolver )
-    {
-        this.versionRangeResolver = Validate.notNull( versionRangeResolver, "versionRangeResolver cannot be null" );
-        return this;
-    }
-
-    public DefaultArtifactDescriptorReader setArtifactResolver( ArtifactResolver artifactResolver )
-    {
-        this.artifactResolver = Validate.notNull( artifactResolver, "artifactResolver cannot be null" );
-        return this;
-    }
-
-    public DefaultArtifactDescriptorReader setRepositoryEventDispatcher(
-        RepositoryEventDispatcher repositoryEventDispatcher )
-    {
-        this.repositoryEventDispatcher = Validate.notNull( repositoryEventDispatcher,
-            "repositoryEventDispatcher cannot be null" );
-        return this;
-    }
-
-    public DefaultArtifactDescriptorReader setModelBuilder( ModelBuilder modelBuilder )
-    {
-        this.modelBuilder = Validate.notNull( modelBuilder, "modelBuilder cannot be null" );
-        return this;
-    }
-
-    public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session,
-                                                            ArtifactDescriptorRequest request )
-        throws ArtifactDescriptorException
-    {
-        ArtifactDescriptorResult result = new ArtifactDescriptorResult( request );
-
-        Model model = loadPom( session, request, result );
-        if ( model != null )
-        {
-            Map<String, Object> config = session.getConfigProperties();
-            ArtifactDescriptorReaderDelegate delegate =
-                (ArtifactDescriptorReaderDelegate) config.get( ArtifactDescriptorReaderDelegate.class.getName() );
-
-            if ( delegate == null )
-            {
-                delegate = new ArtifactDescriptorReaderDelegate();
-            }
-
-            delegate.populateResult( session, result, model );
-        }
-
-        return result;
-    }
-
-    private Model loadPom( RepositorySystemSession session, ArtifactDescriptorRequest request,
-                           ArtifactDescriptorResult result )
-        throws ArtifactDescriptorException
-    {
-        RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
-
-        Set<String> visited = new LinkedHashSet<>();
-        for ( Artifact a = request.getArtifact();; )
-        {
-            Artifact pomArtifact = ArtifactDescriptorUtils.toPomArtifact( a );
-            try
-            {
-                VersionRequest versionRequest =
-                    new VersionRequest( a, request.getRepositories(), request.getRequestContext() );
-                versionRequest.setTrace( trace );
-                VersionResult versionResult = versionResolver.resolveVersion( session, versionRequest );
-
-                a = a.setVersion( versionResult.getVersion() );
-
-                versionRequest =
-                    new VersionRequest( pomArtifact, request.getRepositories(), request.getRequestContext() );
-                versionRequest.setTrace( trace );
-                versionResult = versionResolver.resolveVersion( session, versionRequest );
-
-                pomArtifact = pomArtifact.setVersion( versionResult.getVersion() );
-            }
-            catch ( VersionResolutionException e )
-            {
-                result.addException( e );
-                throw new ArtifactDescriptorException( result );
-            }
-
-            if ( !visited.add( a.getGroupId() + ':' + a.getArtifactId() + ':' + a.getBaseVersion() ) )
-            {
-                RepositoryException exception =
-                    new RepositoryException( "Artifact relocations form a cycle: " + visited );
-                invalidDescriptor( session, trace, a, exception );
-                if ( ( getPolicy( session, a, request ) & ArtifactDescriptorPolicy.IGNORE_INVALID ) != 0 )
-                {
-                    return null;
-                }
-                result.addException( exception );
-                throw new ArtifactDescriptorException( result );
-            }
-
-            ArtifactResult resolveResult;
-            try
-            {
-                ArtifactRequest resolveRequest =
-                    new ArtifactRequest( pomArtifact, request.getRepositories(), request.getRequestContext() );
-                resolveRequest.setTrace( trace );
-                resolveResult = artifactResolver.resolveArtifact( session, resolveRequest );
-                pomArtifact = resolveResult.getArtifact();
-                result.setRepository( resolveResult.getRepository() );
-            }
-            catch ( ArtifactResolutionException e )
-            {
-                if ( e.getCause() instanceof ArtifactNotFoundException )
-                {
-                    missingDescriptor( session, trace, a, (Exception) e.getCause() );
-                    if ( ( getPolicy( session, a, request ) & ArtifactDescriptorPolicy.IGNORE_MISSING ) != 0 )
-                    {
-                        return null;
-                    }
-                }
-                result.addException( e );
-                throw new ArtifactDescriptorException( result );
-            }
-
-            Model model;
-
-            // hack: don't rebuild model if it was already loaded during reactor resolution
-            final WorkspaceReader workspace = session.getWorkspaceReader();
-            if ( workspace instanceof MavenWorkspaceReader )
-            {
-                model = ( (MavenWorkspaceReader) workspace ).findModel( pomArtifact );
-                if ( model != null )
-                {
-                    return model;
-                }
-            }
-
-            try
-            {
-                ModelBuildingRequest modelRequest = new DefaultModelBuildingRequest();
-                modelRequest.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL );
-                modelRequest.setProcessPlugins( false );
-                modelRequest.setTwoPhaseBuilding( false );
-                modelRequest.setSystemProperties( toProperties( session.getUserProperties(),
-                                                                session.getSystemProperties() ) );
-                modelRequest.setModelCache( DefaultModelCache.newInstance( session ) );
-                modelRequest.setModelResolver( new DefaultModelResolver( session, trace.newChild( modelRequest ),
-                                                                         request.getRequestContext(), artifactResolver,
-                                                                         versionRangeResolver, remoteRepositoryManager,
-                                                                         request.getRepositories() ) );
-                if ( resolveResult.getRepository() instanceof WorkspaceRepository )
-                {
-                    modelRequest.setPomFile( pomArtifact.getFile() );
-                }
-                else
-                {
-                    modelRequest.setModelSource( new FileModelSource( pomArtifact.getFile() ) );
-                }
-
-                model = modelBuilder.build( modelRequest ).getEffectiveModel();
-            }
-            catch ( ModelBuildingException e )
-            {
-                for ( ModelProblem problem : e.getProblems() )
-                {
-                    if ( problem.getException() instanceof UnresolvableModelException )
-                    {
-                        result.addException( problem.getException() );
-                        throw new ArtifactDescriptorException( result );
-                    }
-                }
-                invalidDescriptor( session, trace, a, e );
-                if ( ( getPolicy( session, a, request ) & ArtifactDescriptorPolicy.IGNORE_INVALID ) != 0 )
-                {
-                    return null;
-                }
-                result.addException( e );
-                throw new ArtifactDescriptorException( result );
-            }
-
-            Relocation relocation = getRelocation( model );
-
-            if ( relocation != null )
-            {
-                result.addRelocation( a );
-                a =
-                    new RelocatedArtifact( a, relocation.getGroupId(), relocation.getArtifactId(),
-                                           relocation.getVersion() );
-                result.setArtifact( a );
-            }
-            else
-            {
-                return model;
-            }
-        }
-    }
-
-    private Properties toProperties( Map<String, String> dominant, Map<String, String> recessive )
-    {
-        Properties props = new Properties();
-        if ( recessive != null )
-        {
-            props.putAll( recessive );
-        }
-        if ( dominant != null )
-        {
-            props.putAll( dominant );
-        }
-        return props;
-    }
-
-    private Relocation getRelocation( Model model )
-    {
-        Relocation relocation = null;
-        DistributionManagement distMngt = model.getDistributionManagement();
-        if ( distMngt != null )
-        {
-            relocation = distMngt.getRelocation();
-        }
-        return relocation;
-    }
-
-    private void missingDescriptor( RepositorySystemSession session, RequestTrace trace, Artifact artifact,
-                                    Exception exception )
-    {
-        RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.ARTIFACT_DESCRIPTOR_MISSING );
-        event.setTrace( trace );
-        event.setArtifact( artifact );
-        event.setException( exception );
-
-        repositoryEventDispatcher.dispatch( event.build() );
-    }
-
-    private void invalidDescriptor( RepositorySystemSession session, RequestTrace trace, Artifact artifact,
-                                    Exception exception )
-    {
-        RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.ARTIFACT_DESCRIPTOR_INVALID );
-        event.setTrace( trace );
-        event.setArtifact( artifact );
-        event.setException( exception );
-
-        repositoryEventDispatcher.dispatch( event.build() );
-    }
-
-    private int getPolicy( RepositorySystemSession session, Artifact a, ArtifactDescriptorRequest request )
-    {
-        ArtifactDescriptorPolicy policy = session.getArtifactDescriptorPolicy();
-        if ( policy == null )
-        {
-            return ArtifactDescriptorPolicy.STRICT;
-        }
-        return policy.getPolicy( session, new ArtifactDescriptorPolicyRequest( a, request.getRequestContext() ) );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
----------------------------------------------------------------------
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
deleted file mode 100644
index f13495d..0000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.maven.model.building.ModelCache;
-import org.eclipse.aether.RepositoryCache;
-import org.eclipse.aether.RepositorySystemSession;
-
-/**
- * A model builder cache backed by the repository system cache.
- *
- * @author Benjamin Bentmann
- */
-class DefaultModelCache
-    implements ModelCache
-{
-
-    private final RepositorySystemSession session;
-
-    private final RepositoryCache cache;
-
-    public static ModelCache newInstance( RepositorySystemSession session )
-    {
-        if ( session.getCache() == null )
-        {
-            return null;
-        }
-        else
-        {
-            return new DefaultModelCache( session );
-        }
-    }
-
-    private DefaultModelCache( RepositorySystemSession session )
-    {
-        this.session = session;
-        this.cache = session.getCache();
-    }
-
-    public Object get( String groupId, String artifactId, String version, String tag )
-    {
-        return cache.get( session, new Key( groupId, artifactId, version, tag ) );
-    }
-
-    public void put( String groupId, String artifactId, String version, String tag, Object data )
-    {
-        cache.put( session, new Key( groupId, artifactId, version, tag ), data );
-    }
-
-    static class Key
-    {
-
-        private final String groupId;
-
-        private final String artifactId;
-
-        private final String version;
-
-        private final String tag;
-
-        private final int hash;
-
-        public Key( String groupId, String artifactId, String version, String tag )
-        {
-            this.groupId = groupId;
-            this.artifactId = artifactId;
-            this.version = version;
-            this.tag = tag;
-
-            int h = 17;
-            h = h * 31 + this.groupId.hashCode();
-            h = h * 31 + this.artifactId.hashCode();
-            h = h * 31 + this.version.hashCode();
-            h = h * 31 + this.tag.hashCode();
-            hash = h;
-        }
-
-        @Override
-        public boolean equals( Object obj )
-        {
-            if ( this == obj )
-            {
-                return true;
-            }
-            if ( null == obj || !getClass().equals( obj.getClass() ) )
-            {
-                return false;
-            }
-
-            Key that = (Key) obj;
-            return artifactId.equals( that.artifactId ) && groupId.equals( that.groupId )
-                && version.equals( that.version ) && tag.equals( that.tag );
-        }
-
-        @Override
-        public int hashCode()
-        {
-            return hash;
-        }
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
----------------------------------------------------------------------
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
deleted file mode 100644
index 0832a3a..0000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
+++ /dev/null
@@ -1,279 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.maven.model.Dependency;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-import org.apache.maven.model.Parent;
-import org.apache.maven.model.Repository;
-import org.apache.maven.model.building.FileModelSource;
-import org.apache.maven.model.building.ModelSource;
-import org.apache.maven.model.resolution.InvalidRepositoryException;
-import org.apache.maven.model.resolution.ModelResolver;
-import org.apache.maven.model.resolution.UnresolvableModelException;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.RequestTrace;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.impl.ArtifactResolver;
-import org.eclipse.aether.impl.RemoteRepositoryManager;
-import org.eclipse.aether.impl.VersionRangeResolver;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.resolution.ArtifactRequest;
-import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.eclipse.aether.resolution.VersionRangeRequest;
-import org.eclipse.aether.resolution.VersionRangeResolutionException;
-import org.eclipse.aether.resolution.VersionRangeResult;
-
-/**
- * A model resolver to assist building of dependency POMs. This resolver gives priority to those repositories that have
- * been initially specified and repositories discovered in dependency POMs are recessively merged into the search chain.
- *
- * @author Benjamin Bentmann
- * @see DefaultArtifactDescriptorReader
- */
-class DefaultModelResolver
-    implements ModelResolver
-{
-
-    private final RepositorySystemSession session;
-
-    private final RequestTrace trace;
-
-    private final String context;
-
-    private List<RemoteRepository> repositories;
-
-    private final List<RemoteRepository> externalRepositories;
-
-    private final ArtifactResolver resolver;
-
-    private final VersionRangeResolver versionRangeResolver;
-
-    private final RemoteRepositoryManager remoteRepositoryManager;
-
-    private final Set<String> repositoryIds;
-
-    public DefaultModelResolver( RepositorySystemSession session, RequestTrace trace, String context,
-                                 ArtifactResolver resolver, VersionRangeResolver versionRangeResolver,
-                                 RemoteRepositoryManager remoteRepositoryManager, List<RemoteRepository> repositories )
-    {
-        this.session = session;
-        this.trace = trace;
-        this.context = context;
-        this.resolver = resolver;
-        this.versionRangeResolver = versionRangeResolver;
-        this.remoteRepositoryManager = remoteRepositoryManager;
-        this.repositories = repositories;
-        List<RemoteRepository> externalRepositories = new ArrayList<>();
-        externalRepositories.addAll( repositories );
-        this.externalRepositories = Collections.unmodifiableList( externalRepositories );
-
-        this.repositoryIds = new HashSet<>();
-    }
-
-    private DefaultModelResolver( DefaultModelResolver original )
-    {
-        this.session = original.session;
-        this.trace = original.trace;
-        this.context = original.context;
-        this.resolver = original.resolver;
-        this.versionRangeResolver = original.versionRangeResolver;
-        this.remoteRepositoryManager = original.remoteRepositoryManager;
-        this.repositories = new ArrayList<>( original.repositories );
-        this.externalRepositories = original.externalRepositories;
-        this.repositoryIds = new HashSet<>( original.repositoryIds );
-    }
-
-    @Override
-    public void addRepository( Repository repository )
-        throws InvalidRepositoryException
-    {
-        addRepository( repository, false );
-    }
-
-    @Override
-    public void addRepository( final Repository repository, boolean replace )
-        throws InvalidRepositoryException
-    {
-        if ( session.isIgnoreArtifactDescriptorRepositories() )
-        {
-            return;
-        }
-
-        if ( !repositoryIds.add( repository.getId() ) )
-        {
-            if ( !replace )
-            {
-                return;
-            }
-
-            removeMatchingRepository( repositories, repository.getId() );
-        }
-
-        List<RemoteRepository> newRepositories =
-            Collections.singletonList( ArtifactDescriptorUtils.toRemoteRepository( repository ) );
-
-        this.repositories =
-            remoteRepositoryManager.aggregateRepositories( session, repositories, newRepositories, true );
-    }
-
-    private static void removeMatchingRepository( Iterable<RemoteRepository> repositories, final String id )
-    {
-        Iterables.removeIf( repositories, new Predicate<RemoteRepository>()
-        {
-            @Override
-            public boolean apply( RemoteRepository remoteRepository )
-            {
-                return remoteRepository.getId().equals( id );
-            }
-        } );
-    }
-
-    @Override
-    public ModelResolver newCopy()
-    {
-        return new DefaultModelResolver( this );
-    }
-
-    @Override
-    public ModelSource resolveModel( String groupId, String artifactId, String version )
-        throws UnresolvableModelException
-    {
-        Artifact pomArtifact = new DefaultArtifact( groupId, artifactId, "", "pom", version );
-
-        try
-        {
-            ArtifactRequest request = new ArtifactRequest( pomArtifact, repositories, context );
-            request.setTrace( trace );
-            pomArtifact = resolver.resolveArtifact( session, request ).getArtifact();
-        }
-        catch ( ArtifactResolutionException e )
-        {
-            throw new UnresolvableModelException( e.getMessage(), groupId, artifactId, version, e );
-        }
-
-        File pomFile = pomArtifact.getFile();
-
-        return new FileModelSource( pomFile );
-    }
-
-    @Override
-    public ModelSource resolveModel( final Parent parent )
-        throws UnresolvableModelException
-    {
-        try
-        {
-            final Artifact artifact = new DefaultArtifact( parent.getGroupId(), parent.getArtifactId(), "", "pom",
-                                                           parent.getVersion() );
-
-            final VersionRangeRequest versionRangeRequest = new VersionRangeRequest( artifact, repositories, context );
-            versionRangeRequest.setTrace( trace );
-
-            final VersionRangeResult versionRangeResult =
-                versionRangeResolver.resolveVersionRange( session, versionRangeRequest );
-
-            if ( versionRangeResult.getHighestVersion() == null )
-            {
-                throw new UnresolvableModelException(
-                    String.format( "No versions matched the requested parent version range '%s'",
-                                   parent.getVersion() ),
-                    parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
-
-            }
-
-            if ( versionRangeResult.getVersionConstraint() != null
-                     && versionRangeResult.getVersionConstraint().getRange() != null
-                     && versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null )
-            {
-                throw new UnresolvableModelException(
-                    String.format( "The requested parent version range '%s' does not specify an upper bound",
-                                   parent.getVersion() ),
-                    parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
-
-            }
-
-            parent.setVersion( versionRangeResult.getHighestVersion().toString() );
-
-            return resolveModel( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
-        }
-        catch ( final VersionRangeResolutionException e )
-        {
-            throw new UnresolvableModelException( e.getMessage(), parent.getGroupId(), parent.getArtifactId(),
-                                                  parent.getVersion(), e );
-
-        }
-    }
-
-    @Override
-    public ModelSource resolveModel( final Dependency dependency )
-        throws UnresolvableModelException
-    {
-        try
-        {
-            final Artifact artifact = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), "",
-                                                           "pom", dependency.getVersion() );
-
-            final VersionRangeRequest versionRangeRequest = new VersionRangeRequest( artifact, repositories, context );
-            versionRangeRequest.setTrace( trace );
-
-            final VersionRangeResult versionRangeResult =
-                versionRangeResolver.resolveVersionRange( session, versionRangeRequest );
-
-            if ( versionRangeResult.getHighestVersion() == null )
-            {
-                throw new UnresolvableModelException(
-                    String.format( "No versions matched the requested dependency version range '%s'",
-                                   dependency.getVersion() ),
-                    dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() );
-
-            }
-
-            if ( versionRangeResult.getVersionConstraint() != null
-                     && versionRangeResult.getVersionConstraint().getRange() != null
-                     && versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null )
-            {
-                throw new UnresolvableModelException(
-                    String.format( "The requested dependency version range '%s' does not specify an upper bound",
-                                   dependency.getVersion() ),
-                    dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() );
-
-            }
-
-            dependency.setVersion( versionRangeResult.getHighestVersion().toString() );
-
-            return resolveModel( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() );
-        }
-        catch ( VersionRangeResolutionException e )
-        {
-            throw new UnresolvableModelException( e.getMessage(), dependency.getGroupId(), dependency.getArtifactId(),
-                                                  dependency.getVersion(), e );
-
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
----------------------------------------------------------------------
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
deleted file mode 100644
index 8e53c74..0000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
+++ /dev/null
@@ -1,327 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.commons.lang3.Validate;
-import org.apache.maven.artifact.repository.metadata.Versioning;
-import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
-import org.eclipse.aether.RepositoryEvent;
-import org.eclipse.aether.RepositoryEvent.EventType;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.RequestTrace;
-import org.eclipse.aether.SyncContext;
-import org.eclipse.aether.impl.MetadataResolver;
-import org.eclipse.aether.impl.RepositoryEventDispatcher;
-import org.eclipse.aether.impl.SyncContextFactory;
-import org.eclipse.aether.impl.VersionRangeResolver;
-import org.eclipse.aether.metadata.DefaultMetadata;
-import org.eclipse.aether.metadata.Metadata;
-import org.eclipse.aether.repository.ArtifactRepository;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.repository.WorkspaceReader;
-import org.eclipse.aether.resolution.MetadataRequest;
-import org.eclipse.aether.resolution.MetadataResult;
-import org.eclipse.aether.resolution.VersionRangeRequest;
-import org.eclipse.aether.resolution.VersionRangeResolutionException;
-import org.eclipse.aether.resolution.VersionRangeResult;
-import org.eclipse.aether.spi.locator.Service;
-import org.eclipse.aether.spi.locator.ServiceLocator;
-import org.eclipse.aether.spi.log.Logger;
-import org.eclipse.aether.spi.log.LoggerFactory;
-import org.eclipse.aether.spi.log.NullLoggerFactory;
-import org.eclipse.aether.util.version.GenericVersionScheme;
-import org.eclipse.aether.version.InvalidVersionSpecificationException;
-import org.eclipse.aether.version.Version;
-import org.eclipse.aether.version.VersionConstraint;
-import org.eclipse.aether.version.VersionScheme;
-import org.eclipse.sisu.Nullable;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author Benjamin Bentmann
- */
-@Named
-@Singleton
-@Component( role = VersionRangeResolver.class, hint = "default" )
-public class DefaultVersionRangeResolver
-    implements VersionRangeResolver, Service
-{
-
-    private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
-
-    @SuppressWarnings( "unused" )
-    @Requirement( role = LoggerFactory.class )
-    private Logger logger = NullLoggerFactory.LOGGER;
-
-    @Requirement
-    private MetadataResolver metadataResolver;
-
-    @Requirement
-    private SyncContextFactory syncContextFactory;
-
-    @Requirement
-    private RepositoryEventDispatcher repositoryEventDispatcher;
-
-    @Requirement( role = VersionRangeResultFilter.class, optional = true )
-    private VersionRangeResultFilter versionRangeResultFilter = new DefaultVersionRangeResultFilter();
-
-    public DefaultVersionRangeResolver()
-    {
-        // enable default constructor
-    }
-
-    @Inject
-    DefaultVersionRangeResolver( MetadataResolver metadataResolver, SyncContextFactory syncContextFactory,
-                                 RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory,
-                                 @Nullable VersionRangeResultFilter versionRangeResultFilter )
-    {
-        setMetadataResolver( metadataResolver );
-        setSyncContextFactory( syncContextFactory );
-        setLoggerFactory( loggerFactory );
-        setRepositoryEventDispatcher( repositoryEventDispatcher );
-        if ( versionRangeResultFilter != null )
-        {
-            setVersionRangeResultFilter( versionRangeResultFilter );
-        }
-    }
-
-    public void initService( ServiceLocator locator )
-    {
-        setLoggerFactory( locator.getService( LoggerFactory.class ) );
-        setMetadataResolver( locator.getService( MetadataResolver.class ) );
-        setSyncContextFactory( locator.getService( SyncContextFactory.class ) );
-        setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
-        final VersionRangeResultFilter versionRangeResultFilter = locator.getService( VersionRangeResultFilter.class );
-        if ( versionRangeResultFilter != null )
-        {
-            setVersionRangeResultFilter( versionRangeResultFilter );
-        }
-    }
-
-    public DefaultVersionRangeResolver setLoggerFactory( LoggerFactory loggerFactory )
-    {
-        this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
-        return this;
-    }
-
-    void setLogger( LoggerFactory loggerFactory )
-    {
-        // plexus support
-        setLoggerFactory( loggerFactory );
-    }
-
-    public DefaultVersionRangeResolver setMetadataResolver( MetadataResolver metadataResolver )
-    {
-        this.metadataResolver = Validate.notNull( metadataResolver, "metadataResolver cannot be null" );
-        return this;
-    }
-
-    public DefaultVersionRangeResolver setSyncContextFactory( SyncContextFactory syncContextFactory )
-    {
-        this.syncContextFactory = Validate.notNull( syncContextFactory, "syncContextFactory cannot be null" );
-        return this;
-    }
-
-    public DefaultVersionRangeResolver setRepositoryEventDispatcher(
-        RepositoryEventDispatcher repositoryEventDispatcher )
-    {
-        this.repositoryEventDispatcher = Validate.notNull( repositoryEventDispatcher,
-            "repositoryEventDispatcher cannot be null" );
-        return this;
-    }
-
-    public DefaultVersionRangeResolver setVersionRangeResultFilter( VersionRangeResultFilter versionRangeResultFilter )
-    {
-        this.versionRangeResultFilter = Validate.notNull( versionRangeResultFilter,
-                "versionRangeResultFilter cannot be null" );
-        return this;
-    }
-
-    public VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
-        throws VersionRangeResolutionException
-    {
-        VersionRangeResult result = new VersionRangeResult( request );
-
-        VersionScheme versionScheme = new GenericVersionScheme();
-
-        VersionConstraint versionConstraint;
-        try
-        {
-            versionConstraint = versionScheme.parseVersionConstraint( request.getArtifact().getVersion() );
-        }
-        catch ( InvalidVersionSpecificationException e )
-        {
-            result.addException( e );
-            throw new VersionRangeResolutionException( result );
-        }
-
-        result.setVersionConstraint( versionConstraint );
-
-        if ( versionConstraint.getRange() == null )
-        {
-            result.addVersion( versionConstraint.getVersion() );
-        }
-        else
-        {
-            Map<String, ArtifactRepository> versionIndex = getVersions( session, result, request );
-
-            List<Version> versions = new ArrayList<>();
-            for ( Map.Entry<String, ArtifactRepository> v : versionIndex.entrySet() )
-            {
-                try
-                {
-                    Version ver = versionScheme.parseVersion( v.getKey() );
-                    if ( versionConstraint.containsVersion( ver ) )
-                    {
-                        versions.add( ver );
-                        result.setRepository( ver, v.getValue() );
-                    }
-                }
-                catch ( InvalidVersionSpecificationException e )
-                {
-                    result.addException( e );
-                }
-            }
-
-            Collections.sort( versions );
-            result.setVersions( versions );
-        }
-
-        return versionRangeResultFilter.filterVersionRangeResult( result );
-    }
-
-    private Map<String, ArtifactRepository> getVersions( RepositorySystemSession session, VersionRangeResult result,
-                                                         VersionRangeRequest request )
-    {
-        RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
-
-        Map<String, ArtifactRepository> versionIndex = new HashMap<>();
-
-        Metadata metadata =
-            new DefaultMetadata( request.getArtifact().getGroupId(), request.getArtifact().getArtifactId(),
-                                 MAVEN_METADATA_XML, Metadata.Nature.RELEASE_OR_SNAPSHOT );
-
-        List<MetadataRequest> metadataRequests = new ArrayList<>( request.getRepositories().size() );
-
-        metadataRequests.add( new MetadataRequest( metadata, null, request.getRequestContext() ) );
-
-        for ( RemoteRepository repository : request.getRepositories() )
-        {
-            MetadataRequest metadataRequest = new MetadataRequest( metadata, repository, request.getRequestContext() );
-            metadataRequest.setDeleteLocalCopyIfMissing( true );
-            metadataRequest.setTrace( trace );
-            metadataRequests.add( metadataRequest );
-        }
-
-        List<MetadataResult> metadataResults = metadataResolver.resolveMetadata( session, metadataRequests );
-
-        WorkspaceReader workspace = session.getWorkspaceReader();
-        if ( workspace != null )
-        {
-            List<String> versions = workspace.findVersions( request.getArtifact() );
-            for ( String version : versions )
-            {
-                versionIndex.put( version, workspace.getRepository() );
-            }
-        }
-
-        for ( MetadataResult metadataResult : metadataResults )
-        {
-            result.addException( metadataResult.getException() );
-
-            ArtifactRepository repository = metadataResult.getRequest().getRepository();
-            if ( repository == null )
-            {
-                repository = session.getLocalRepository();
-            }
-
-            Versioning versioning = readVersions( session, trace, metadataResult.getMetadata(), repository, result );
-            for ( String version : versioning.getVersions() )
-            {
-                if ( !versionIndex.containsKey( version ) )
-                {
-                    versionIndex.put( version, repository );
-                }
-            }
-        }
-
-        return versionIndex;
-    }
-
-    private Versioning readVersions( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
-                                     ArtifactRepository repository, VersionRangeResult result )
-    {
-        Versioning versioning = null;
-
-        try
-        {
-            if ( metadata != null )
-            {
-                try ( SyncContext syncContext = syncContextFactory.newInstance( session, true ) )
-                {
-                    syncContext.acquire( null, Collections.singleton( metadata ) );
-
-                    if ( metadata.getFile() != null && metadata.getFile().exists() )
-                    {
-                        try ( InputStream in = new FileInputStream( metadata.getFile() ) )
-                        {
-                            org.apache.maven.artifact.repository.metadata.Metadata m =
-                                new MetadataXpp3Reader().read( in, false );
-
-                            versioning = m.getVersioning();
-                        }
-                    }
-                }
-            }
-        }
-        catch ( Exception e )
-        {
-            invalidMetadata( session, trace, metadata, repository, e );
-            result.addException( e );
-        }
-
-        return ( versioning != null ) ? versioning : new Versioning();
-    }
-
-    private void invalidMetadata( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
-                                  ArtifactRepository repository, Exception exception )
-    {
-        RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_INVALID );
-        event.setTrace( trace );
-        event.setMetadata( metadata );
-        event.setException( exception );
-        event.setRepository( repository );
-
-        repositoryEventDispatcher.dispatch( event.build() );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/58554032/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResultFilter.java
----------------------------------------------------------------------
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResultFilter.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResultFilter.java
deleted file mode 100644
index 5ecaf8f..0000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResultFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.eclipse.aether.resolution.VersionRangeResolutionException;
-import org.eclipse.aether.resolution.VersionRangeResult;
-
-/**
- * Non filtering implementation of {@link VersionRangeResultFilter}.
- *
- * <p>
- * This implementation reflects the Apache Maven default version range handling and don't filter anything out of
- * {@link VersionRangeResult}.
- * </p>
- *
- * @author barthel
- * @since 3.4.0
- */
-public class DefaultVersionRangeResultFilter implements VersionRangeResultFilter
-{
-
-    @Override
-    public VersionRangeResult filterVersionRangeResult( VersionRangeResult versionRangeResult )
-            throws VersionRangeResolutionException
-    {
-        return versionRangeResult;
-    }
-}