http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java
deleted file mode 100644
index b81450c..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java
+++ /dev/null
@@ -1,87 +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.net.MalformedURLException;
-
-import org.apache.maven.repository.internal.util.ConsoleRepositoryListener;
-import org.apache.maven.repository.internal.util.ConsoleTransferListener;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusTestCase;
-import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.LocalRepository;
-import org.eclipse.aether.repository.RemoteRepository;
-
-public abstract class AbstractRepositoryTestCase
-    extends PlexusTestCase
-{
-    protected RepositorySystem system;
-
-    protected RepositorySystemSession session;
-
-    @Override
-    protected void customizeContainerConfiguration( ContainerConfiguration 
containerConfiguration )
-    {
-        super.customizeContainerConfiguration( containerConfiguration );
-        containerConfiguration.setAutoWiring( true );
-        containerConfiguration.setClassPathScanning( 
PlexusConstants.SCANNING_INDEX );
-    }
-
-    @Override
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        system = lookup( RepositorySystem.class );
-        session = newMavenRepositorySystemSession( system );
-    }
-
-    @Override
-    protected void tearDown()
-        throws Exception
-    {
-        session = null;
-        system = null;
-        super.tearDown();
-    }
-
-    public static RepositorySystemSession newMavenRepositorySystemSession( 
RepositorySystem system )
-    {
-        DefaultRepositorySystemSession session = 
MavenRepositorySystemUtils.newSession();
-
-        LocalRepository localRepo = new LocalRepository( "target/local-repo" );
-        session.setLocalRepositoryManager( system.newLocalRepositoryManager( 
session, localRepo ) );
-
-        session.setTransferListener( new ConsoleTransferListener() );
-        session.setRepositoryListener( new ConsoleRepositoryListener() );
-
-        return session;
-    }
-
-    public static RemoteRepository newTestRepository()
-        throws MalformedURLException
-    {
-        return new RemoteRepository.Builder( "repo", "default",
-                                             getTestFile( 
"target/test-classes/repo" ).toURI().toURL().toString() ).build();
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java
deleted file mode 100644
index e873138..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java
+++ /dev/null
@@ -1,77 +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 static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-import org.eclipse.aether.RepositoryEvent;
-import org.eclipse.aether.RepositoryEvent.EventType;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.impl.ArtifactDescriptorReader;
-import org.eclipse.aether.impl.RepositoryEventDispatcher;
-import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
-import org.mockito.ArgumentCaptor;
-
-public class DefaultArtifactDescriptorReaderTest
-    extends AbstractRepositoryTestCase
-{
-
-    public void testMng5459()
-        throws Exception
-    {
-        // prepare
-        DefaultArtifactDescriptorReader reader = 
(DefaultArtifactDescriptorReader) lookup( ArtifactDescriptorReader.class );
-
-        RepositoryEventDispatcher eventDispatcher = mock( 
RepositoryEventDispatcher.class );
-
-        ArgumentCaptor<RepositoryEvent> event = ArgumentCaptor.forClass( 
RepositoryEvent.class );
-
-        reader.setRepositoryEventDispatcher( eventDispatcher );
-
-        ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
-
-        request.addRepository( newTestRepository() );
-
-        request.setArtifact( new DefaultArtifact( "org.apache.maven.its", 
"dep-mng5459", "jar", "0.4.0-SNAPSHOT" ) );
-
-        // execute
-        reader.readArtifactDescriptor( session, request );
-
-        // verify
-        verify( eventDispatcher ).dispatch( event.capture() );
-
-        boolean missingArtifactDescriptor = false;
-
-        for( RepositoryEvent evt : event.getAllValues() )
-        {
-            if ( EventType.ARTIFACT_DESCRIPTOR_MISSING.equals( evt.getType() ) 
)
-            {
-                assertEquals( "Could not find artifact 
org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2 in repo (" + 
newTestRepository().getUrl() + ")", evt.getException().getMessage() );
-                missingArtifactDescriptor = true;
-            }
-        }
-
-        if( !missingArtifactDescriptor )
-        {
-            fail( "Expected missing artifact descriptor for 
org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2" );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
deleted file mode 100644
index 90dd6a4..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
+++ /dev/null
@@ -1,96 +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.artifact.Artifact;
-import org.eclipse.aether.impl.VersionResolver;
-import org.eclipse.aether.resolution.VersionRequest;
-import org.eclipse.aether.resolution.VersionResult;
-import org.eclipse.aether.artifact.DefaultArtifact;
-
-public class DefaultVersionResolverTest
-    extends AbstractRepositoryTestCase
-{
-    private DefaultVersionResolver versionResolver;
-
-    @Override
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        // be sure we're testing the right class, i.e. 
DefaultVersionResolver.class
-        versionResolver = (DefaultVersionResolver) lookup( 
VersionResolver.class, "default" );
-    }
-
-    @Override
-    protected void tearDown()
-        throws Exception
-    {
-        versionResolver = null;
-        super.tearDown();
-    }
-
-    public void 
testResolveSeparateInstalledClassifiedNonUniqueVersionedArtifacts()
-        throws Exception
-    {
-        VersionRequest requestB = new VersionRequest();
-        requestB.addRepository( newTestRepository() );
-        Artifact artifactB =
-            new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", 
"classifierB", "jar", "07.20.3-SNAPSHOT" );
-        requestB.setArtifact( artifactB );
-
-        VersionResult resultB = versionResolver.resolveVersion( session, 
requestB );
-        assertEquals( "07.20.3-20120809.112920-97", resultB.getVersion() );
-
-        VersionRequest requestA = new VersionRequest();
-        requestA.addRepository( newTestRepository() );
-
-        Artifact artifactA =
-            new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", 
"classifierA", "jar", "07.20.3-SNAPSHOT" );
-        requestA.setArtifact( artifactA );
-
-        VersionResult resultA = versionResolver.resolveVersion( session, 
requestA );
-        assertEquals( "07.20.3-20120809.112124-88", resultA.getVersion() );
-    }
-
-    public void testResolveSeparateInstalledClassifiedNonVersionedArtifacts()
-        throws Exception
-    {
-        VersionRequest requestA = new VersionRequest();
-        requestA.addRepository( newTestRepository() );
-        String versionA = "07.20.3-20120809.112124-88";
-        Artifact artifactA =
-            new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", 
"classifierA", "jar", versionA );
-        requestA.setArtifact( artifactA );
-
-        VersionResult resultA = versionResolver.resolveVersion( session, 
requestA );
-        assertEquals( versionA, resultA.getVersion() );
-
-        VersionRequest requestB = new VersionRequest();
-        requestB.addRepository( newTestRepository() );
-        String versionB = "07.20.3-20120809.112920-97";
-        Artifact artifactB =
-            new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", 
"classifierB", "jar", versionB );
-        requestB.setArtifact( artifactB );
-
-        VersionResult resultB = versionResolver.resolveVersion( session, 
requestB );
-        assertEquals( versionB, resultB.getVersion() );
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java
deleted file mode 100644
index 768835a..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.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.RepositorySystem;
-import org.eclipse.aether.impl.MetadataGeneratorFactory;
-import org.eclipse.aether.spi.locator.ServiceLocator;
-
-import junit.framework.TestCase;
-
-public class MavenRepositorySystemUtilsTest
-    extends TestCase
-{
-
-    public void testGetRepositorySystem()
-    {
-        ServiceLocator locator = 
MavenRepositorySystemUtils.newServiceLocator();
-        RepositorySystem repoSys = locator.getService( RepositorySystem.class 
);
-        assertNotNull( repoSys );
-    }
-
-    public void testGetMetadataGeneratorFactories()
-    {
-        ServiceLocator locator = 
MavenRepositorySystemUtils.newServiceLocator();
-        assertEquals( 2, locator.getServices( MetadataGeneratorFactory.class 
).size() );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java
deleted file mode 100644
index 278231f..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java
+++ /dev/null
@@ -1,82 +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 static org.junit.Assert.assertTrue;
-
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Set;
-
-import org.apache.maven.artifact.repository.metadata.Metadata;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class RemoteSnapshotMetadataTest
-{
-    private Locale defaultLocale;
-
-    @Before
-    public void setLocaleToUseBuddhistCalendar()
-    {
-        defaultLocale = Locale.getDefault();
-        Locale.setDefault( new Locale( "th", "TH" ) );
-    }
-
-    @After
-    public void restoreLocale()
-    {
-        Locale.setDefault( defaultLocale );
-    }
-
-    static String gregorianDate()
-    {
-        SimpleDateFormat df = new SimpleDateFormat( "yyyyMMdd" );
-        df.setCalendar( new GregorianCalendar() );
-        df.setTimeZone( RemoteSnapshotMetadata.DEFAULT_SNAPSHOT_TIME_ZONE );
-        return df.format( new Date() );
-    }
-
-    @Test
-    public void gregorianCalendarIsUsed()
-    {
-        String dateBefore = gregorianDate();
-
-        RemoteSnapshotMetadata metadata = new RemoteSnapshotMetadata(
-                new DefaultArtifact( "a:b:1-SNAPSHOT" ), false);
-        metadata.merge( new Metadata() );
-
-        String dateAfter = gregorianDate();
-
-        String ts = 
metadata.metadata.getVersioning().getSnapshot().getTimestamp();
-        String datePart = ts.replaceAll( "\\..*", "" );
-
-        /* Allow for this test running across midnight */
-        Set<String> expected = new HashSet<String>( Arrays.asList( dateBefore, 
dateAfter ) );
-        assertTrue( "Expected " + datePart + " to be in " + expected,
-                expected.contains( datePart ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java
deleted file mode 100644
index db77a44..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java
+++ /dev/null
@@ -1,220 +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.Arrays;
-import java.util.List;
-
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.collection.CollectRequest;
-import org.eclipse.aether.collection.CollectResult;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.graph.DependencyNode;
-import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
-import org.eclipse.aether.resolution.ArtifactDescriptorResult;
-import org.eclipse.aether.resolution.ArtifactRequest;
-import org.eclipse.aether.resolution.ArtifactResult;
-import org.eclipse.aether.artifact.DefaultArtifact;
-
-public class RepositorySystemTest
-    extends AbstractRepositoryTestCase
-{
-    public void testResolveVersionRange()
-        throws Exception
-    {
-        //VersionRangeResult resolveVersionRange( RepositorySystemSession 
session, VersionRangeRequest request )
-        //                throws VersionRangeResolutionException;
-
-    }
-
-    public void testResolveVersion()
-        throws Exception
-    {
-        //VersionResult resolveVersion( RepositorySystemSession session, 
VersionRequest request )
-        //                throws VersionResolutionException;
-    }
-
-    public void testReadArtifactDescriptor()
-        throws Exception
-    {
-        Artifact artifact = new DefaultArtifact( 
"ut.simple:artifact:extension:classifier:1.0" );
-
-        ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
-        request.setArtifact( artifact );
-        request.addRepository( newTestRepository() );
-
-        ArtifactDescriptorResult result = system.readArtifactDescriptor( 
session, request );
-
-        List<Dependency> deps = result.getDependencies();
-        assertEquals( 2, deps.size() );
-        checkUtSimpleArtifactDependencies( deps.get( 0 ), deps.get( 1 ) );
-    }
-
-    /**
-     * check ut.simple:artifact:1.0 dependencies
-     */
-    private void checkUtSimpleArtifactDependencies( Dependency dep1, 
Dependency dep2 )
-    {
-        assertEquals( "compile", dep1.getScope() );
-        assertFalse( dep1.isOptional() );
-        assertEquals( 0, dep1.getExclusions().size() );
-        Artifact depArtifact = dep1.getArtifact();
-        assertEquals( "ut.simple", depArtifact.getGroupId() );
-        assertEquals( "dependency", depArtifact.getArtifactId() );
-        assertEquals( "1.0", depArtifact.getVersion() );
-        assertEquals( "1.0", depArtifact.getBaseVersion() );
-        assertNull( depArtifact.getFile() );
-        assertFalse( depArtifact.isSnapshot() );
-        assertEquals( "", depArtifact.getClassifier() );
-        assertEquals( "jar", depArtifact.getExtension() );
-        assertEquals( "java", depArtifact.getProperty( "language", null ) );
-        assertEquals( "jar", depArtifact.getProperty( "type", null ) );
-        assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", 
null ) );
-        assertEquals( "false", depArtifact.getProperty( 
"includesDependencies", null ) );
-        assertEquals( 4, depArtifact.getProperties().size() );
-
-        assertEquals( "compile", dep2.getScope() );
-        assertFalse( dep2.isOptional() );
-        assertEquals( 0, dep2.getExclusions().size() );
-        depArtifact = dep2.getArtifact();
-        assertEquals( "ut.simple", depArtifact.getGroupId() );
-        assertEquals( "dependency", depArtifact.getArtifactId() );
-        assertEquals( "1.0", depArtifact.getVersion() );
-        assertEquals( "1.0", depArtifact.getBaseVersion() );
-        assertNull( depArtifact.getFile() );
-        assertFalse( depArtifact.isSnapshot() );
-        assertEquals( "sources", depArtifact.getClassifier() );
-        assertEquals( "jar", depArtifact.getExtension() );
-        assertEquals( "java", depArtifact.getProperty( "language", null ) );
-        assertEquals( "jar", depArtifact.getProperty( "type", null ) ); // 
shouldn't it be java-sources given the classifier?
-        assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", 
null ) ); // shouldn't it be false given the classifier?
-        assertEquals( "false", depArtifact.getProperty( 
"includesDependencies", null ) );
-        assertEquals( 4, depArtifact.getProperties().size() );
-    }
-
-    public void testCollectDependencies()
-        throws Exception
-    {
-        Artifact artifact = new DefaultArtifact( 
"ut.simple:artifact:extension:classifier:1.0" );
-        // notice: extension and classifier not really used in this test...
-
-        CollectRequest collectRequest = new CollectRequest();
-        collectRequest.setRoot( new Dependency( artifact, null ) );
-        collectRequest.addRepository( newTestRepository() );
-
-        CollectResult collectResult = system.collectDependencies( session, 
collectRequest );
-
-        List<DependencyNode> nodes = collectResult.getRoot().getChildren();
-        assertEquals( 2, nodes.size() );
-        checkUtSimpleArtifactDependencies( nodes.get( 0 ).getDependency(), 
nodes.get( 1 ).getDependency() );
-    }
-
-    public void testResolveArtifact()
-        throws Exception
-    {
-        Artifact artifact = new DefaultArtifact( "ut.simple:artifact:1.0" );
-
-        ArtifactRequest artifactRequest = new ArtifactRequest();
-        artifactRequest.setArtifact( artifact );
-        artifactRequest.addRepository( newTestRepository() );
-
-        ArtifactResult artifactResult = system.resolveArtifact( session, 
artifactRequest );
-        checkArtifactResult( artifactResult, "artifact-1.0.jar" );
-
-        artifact = new DefaultArtifact( "ut.simple:artifact:zip:1.0" );
-        artifactRequest.setArtifact( artifact );
-        artifactResult = system.resolveArtifact( session, artifactRequest );
-        checkArtifactResult( artifactResult, "artifact-1.0.zip" );
-
-        artifact = new DefaultArtifact( 
"ut.simple:artifact:zip:classifier:1.0" );
-        artifactRequest.setArtifact( artifact );
-        artifactResult = system.resolveArtifact( session, artifactRequest );
-        checkArtifactResult( artifactResult, "artifact-1.0-classifier.zip" );
-    }
-
-    private void checkArtifactResult( ArtifactResult result, String filename )
-    {
-        assertFalse( result.isMissing() );
-        assertTrue( result.isResolved() );
-        Artifact artifact = result.getArtifact();
-        assertNotNull( artifact.getFile() );
-        assertEquals( filename, artifact.getFile().getName() );
-    }
-
-    public void testResolveArtifacts()
-        throws Exception
-    {
-        ArtifactRequest req1 = new ArtifactRequest();
-        req1.setArtifact( new DefaultArtifact( "ut.simple:artifact:1.0" ) );
-        req1.addRepository( newTestRepository() );
-
-        ArtifactRequest req2 = new ArtifactRequest();
-        req2.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:1.0" ) 
);
-        req2.addRepository( newTestRepository() );
-
-        ArtifactRequest req3 = new ArtifactRequest();
-        req3.setArtifact( new DefaultArtifact( 
"ut.simple:artifact:zip:classifier:1.0" ) );
-        req3.addRepository( newTestRepository() );
-
-        List<ArtifactRequest> requests = Arrays.asList( req1, req2, req3 );
-
-        List<ArtifactResult> results = system.resolveArtifacts( session, 
requests );
-
-        assertEquals( 3, results.size() );
-        checkArtifactResult( results.get( 0 ), "artifact-1.0.jar" );
-        checkArtifactResult( results.get( 1 ), "artifact-1.0.zip" );
-        checkArtifactResult( results.get( 2 ), "artifact-1.0-classifier.zip" );
-    }
-
-    public void testResolveMetadata()
-        throws Exception
-    {
-        //List<MetadataResult> resolveMetadata( RepositorySystemSession 
session,
-        //                                      Collection<? extends 
MetadataRequest> requests );
-    }
-
-    public void testInstall()
-        throws Exception
-    {
-        //InstallResult install( RepositorySystemSession session, 
InstallRequest request )
-        //                throws InstallationException;
-        // release, snapshot unique ou non unique, attachement
-    }
-
-    public void testDeploy()
-        throws Exception
-    {
-        //DeployResult deploy( RepositorySystemSession session, DeployRequest 
request )
-        //                throws DeploymentException;
-    }
-
-    public void testNewLocalRepositoryManager()
-        throws Exception
-    {
-        //LocalRepositoryManager newLocalRepositoryManager( LocalRepository 
localRepository );
-    }
-
-    public void testNewSyncContext()
-        throws Exception
-    {
-        //SyncContext newSyncContext( RepositorySystemSession session, boolean 
shared );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java
deleted file mode 100644
index 2879a9f..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.apache.maven.repository.internal.util;
-
-/*
- * 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.PrintStream;
-
-import org.eclipse.aether.AbstractRepositoryListener;
-import org.eclipse.aether.RepositoryEvent;
-
-public class ConsoleRepositoryListener
-    extends AbstractRepositoryListener
-{
-
-    private PrintStream out;
-
-    public ConsoleRepositoryListener()
-    {
-        this( null );
-    }
-
-    public ConsoleRepositoryListener( PrintStream out )
-    {
-        this.out = ( out != null ) ? out : System.out;
-    }
-
-    public void artifactDeployed( RepositoryEvent event )
-    {
-        println( "artifactDeployed", event.getArtifact() + " to " + 
event.getRepository() );
-    }
-
-    public void artifactDeploying( RepositoryEvent event )
-    {
-        println( "artifactDeploying", event.getArtifact() + " to " + 
event.getRepository() );
-    }
-
-    public void artifactDescriptorInvalid( RepositoryEvent event )
-    {
-        println( "artifactDescriptorInvalid", "for " + event.getArtifact() + 
": " + event.getException().getMessage() );
-    }
-
-    public void artifactDescriptorMissing( RepositoryEvent event )
-    {
-        println( "artifactDescriptorMissing", "for " + event.getArtifact() );
-    }
-
-    public void artifactInstalled( RepositoryEvent event )
-    {
-        println( "artifactInstalled", event.getArtifact() + " to " + 
event.getFile() );
-    }
-
-    public void artifactInstalling( RepositoryEvent event )
-    {
-        println( "artifactInstalling", event.getArtifact() + " to " + 
event.getFile() );
-    }
-
-    public void artifactResolved( RepositoryEvent event )
-    {
-        println( "artifactResolved", event.getArtifact() + " from " + 
event.getRepository() );
-    }
-
-    public void artifactDownloading( RepositoryEvent event )
-    {
-        println( "artifactDownloading", event.getArtifact() + " from " + 
event.getRepository() );
-    }
-
-    public void artifactDownloaded( RepositoryEvent event )
-    {
-        println( "artifactDownloaded", event.getArtifact() + " from " + 
event.getRepository() );
-    }
-
-    public void artifactResolving( RepositoryEvent event )
-    {
-        println( "artifactResolving", event.getArtifact().toString() );
-    }
-
-    public void metadataDeployed( RepositoryEvent event )
-    {
-        println( "metadataDeployed", event.getMetadata() + " to " + 
event.getRepository() );
-    }
-
-    public void metadataDeploying( RepositoryEvent event )
-    {
-        println( "metadataDeploying", event.getMetadata() + " to " + 
event.getRepository() );
-    }
-
-    public void metadataInstalled( RepositoryEvent event )
-    {
-        println( "metadataInstalled", event.getMetadata() + " to " + 
event.getFile() );
-    }
-
-    public void metadataInstalling( RepositoryEvent event )
-    {
-        println( "metadataInstalling", event.getMetadata() + " to " + 
event.getFile() );
-    }
-
-    public void metadataInvalid( RepositoryEvent event )
-    {
-        println( "metadataInvalid", event.getMetadata().toString() );
-    }
-
-    public void metadataResolved( RepositoryEvent event )
-    {
-        println( "metadataResolved", event.getMetadata() + " from " + 
event.getRepository() );
-    }
-
-    public void metadataResolving( RepositoryEvent event )
-    {
-        println( "metadataResolving", event.getMetadata() + " from " + 
event.getRepository() );
-    }
-
-    private void println( String event, String message )
-    {
-        out.println( "Aether Repository - " + event + ": " + message );
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java
 
b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java
deleted file mode 100644
index cf587d8..0000000
--- 
a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java
+++ /dev/null
@@ -1,186 +0,0 @@
-package org.apache.maven.repository.internal.util;
-
-/*
- * 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.PrintStream;
-import java.text.DecimalFormat;
-import java.text.DecimalFormatSymbols;
-import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.eclipse.aether.transfer.AbstractTransferListener;
-import org.eclipse.aether.transfer.TransferEvent;
-import org.eclipse.aether.transfer.TransferResource;
-
-public class ConsoleTransferListener
-    extends AbstractTransferListener
-{
-
-    private PrintStream out;
-
-    private Map<TransferResource, Long> downloads = new ConcurrentHashMap<>();
-
-    private int lastLength;
-
-    public ConsoleTransferListener()
-    {
-        this( null );
-    }
-
-    public ConsoleTransferListener( PrintStream out )
-    {
-        this.out = ( out != null ) ? out : System.out;
-    }
-
-    @Override
-    public void transferInitiated( TransferEvent event )
-    {
-        String message = event.getRequestType() == 
TransferEvent.RequestType.PUT ? "Uploading" : "Downloading";
-
-        println( "transferInitiated", message + ": " + 
event.getResource().getRepositoryUrl() + event.getResource().getResourceName() 
);
-    }
-
-    @Override
-    public void transferProgressed( TransferEvent event )
-    {
-        TransferResource resource = event.getResource();
-        downloads.put( resource, event.getTransferredBytes() );
-
-        StringBuilder buffer = new StringBuilder( 64 );
-
-        for ( Map.Entry<TransferResource, Long> entry : downloads.entrySet() )
-        {
-            long total = entry.getKey().getContentLength();
-            long complete = entry.getValue();
-
-            buffer.append( getStatus( complete, total ) ).append( "  " );
-        }
-
-        int pad = lastLength - buffer.length();
-        lastLength = buffer.length();
-        pad( buffer, pad );
-        buffer.append( '\r' );
-
-        print( "transferProgressed", buffer.toString() );
-    }
-
-    private String getStatus( long complete, long total )
-    {
-        if ( total >= 1024 )
-        {
-            return toKB( complete ) + "/" + toKB( total ) + " KB ";
-        }
-        else if ( total >= 0 )
-        {
-            return complete + "/" + total + " B ";
-        }
-        else if ( complete >= 1024 )
-        {
-            return toKB( complete ) + " KB ";
-        }
-        else
-        {
-            return complete + " B ";
-        }
-    }
-
-    private void pad( StringBuilder buffer, int spaces )
-    {
-        String block = "                                        ";
-        while ( spaces > 0 )
-        {
-            int n = Math.min( spaces, block.length() );
-            buffer.append( block, 0, n );
-            spaces -= n;
-        }
-    }
-
-    @Override
-    public void transferSucceeded( TransferEvent event )
-    {
-        transferCompleted( event );
-
-        TransferResource resource = event.getResource();
-        long contentLength = event.getTransferredBytes();
-        if ( contentLength >= 0 )
-        {
-            String type = ( event.getRequestType() == 
TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded" );
-            String len = contentLength >= 1024 ? toKB( contentLength ) + " KB" 
: contentLength + " B";
-
-            String throughput = "";
-            long duration = System.currentTimeMillis() - 
resource.getTransferStartTime();
-            if ( duration > 0 )
-            {
-                DecimalFormat format = new DecimalFormat( "0.0", new 
DecimalFormatSymbols( Locale.ENGLISH ) );
-                double kbPerSec = ( contentLength / 1024.0 ) / ( duration / 
1000.0 );
-                throughput = " at " + format.format( kbPerSec ) + " KB/sec";
-            }
-
-            println( "transferSucceeded", type + ": " + 
resource.getRepositoryUrl() + resource.getResourceName() + " ("
-                + len + throughput + ")" );
-        }
-    }
-
-    @Override
-    public void transferFailed( TransferEvent event )
-    {
-        transferCompleted( event );
-
-        println( "transferFailed", event.getException().getClass() + ": " + 
event.getException().getMessage()  );
-    }
-
-    private void transferCompleted( TransferEvent event )
-    {
-        downloads.remove( event.getResource() );
-
-        StringBuilder buffer = new StringBuilder( 64 );
-        pad( buffer, lastLength );
-        buffer.append( '\r' );
-        out.println( buffer );
-    }
-
-    @Override
-    public void transferCorrupted( TransferEvent event )
-    {
-        println( "transferCorrupted", event.getException().getClass() + ": " + 
event.getException().getMessage() );
-    }
-
-    protected long toKB( long bytes )
-    {
-        return ( bytes + 1023 ) / 1024;
-    }
-
-    private void println( String event, String message )
-    {
-        print( event, message );
-        out.println();
-    }
-
-    private void print( String event, String message )
-    {
-        out.print( "Aether Transfer - " + event );
-        if ( message != null )
-        {
-            out.print( ": " );
-            out.print( message );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
 
b/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
deleted file mode 100644
index 9f0a7fe..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
+++ /dev/null
@@ -1,49 +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.
--->
-
-<metadata xmlns="http://maven.apache.org/METADATA/1.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 
http://maven.apache.org/xsd/metadata-1.1.0.xsd";
-  modelVersion="1.1.0">
-  <groupId>org.apache.maven.its</groupId>
-  <artifactId>dep-mng5324</artifactId>
-  <version>07.20.3-SNAPSHOT</version><!-- metadata for artifact snapshot -->
-  <versioning>
-    <snapshot>
-      <timestamp>20120809.112920</timestamp>
-      <buildNumber>97</buildNumber>
-    </snapshot>
-    <lastUpdated>20120809112920</lastUpdated>
-    <snapshotVersions>
-      <snapshotVersion>
-        <classifier>classifierA</classifier>
-        <extension>jar</extension>
-        <value>07.20.3-20120809.112124-88</value>
-        <updated>20120809112124</updated>
-      </snapshotVersion>
-      <snapshotVersion>
-        <classifier>classifierB</classifier>
-        <extension>jar</extension>
-        <value>07.20.3-20120809.112920-97</value>
-        <updated>20120809112920</updated>
-      </snapshotVersion>
-    </snapshotVersions>
-  </versioning>
-</metadata>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml
 
b/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml
deleted file mode 100644
index 923f26f..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml
+++ /dev/null
@@ -1,47 +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.
--->
-
-<metadata xmlns="http://maven.apache.org/METADATA/1.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 
http://maven.apache.org/xsd/metadata-1.1.0.xsd";
-  modelVersion="1.1.0">
-  <groupId>org.apache.maven.its</groupId>
-  <artifactId>dep-mng5459</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
-  <versioning>
-    <snapshot>
-      <timestamp>20130404.090532</timestamp>
-      <buildNumber>2</buildNumber>
-    </snapshot>
-    <lastUpdated>20130404093657</lastUpdated>
-    <snapshotVersions>
-      <snapshotVersion>
-        <extension>pom</extension>
-        <value>0.4.0-20130404.090532-2</value>
-        <updated>20130404090532</updated>
-      </snapshotVersion>
-      <snapshotVersion>
-        <extension>jar</extension>
-        <value>0.4.0-20130404.093655-3</value>
-        <updated>20130404093655</updated>
-      </snapshotVersion>
-    </snapshotVersions>
-  </versioning>
-</metadata>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom
deleted file mode 100644
index f8b72af..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom
+++ /dev/null
@@ -1,48 +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>ut.simple</groupId>
-    <artifactId>parent</artifactId>
-    <version>1.0</version>
-  </parent>
-
-  <artifactId>artifact</artifactId>
-
-  <name>Simple Unit Test Artifact</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>ut.simple</groupId>
-      <artifactId>dependency</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>ut.simple</groupId>
-      <artifactId>dependency</artifactId>
-      <version>1.0</version>
-      <classifier>sources</classifier>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml
deleted file mode 100644
index 2de7ecc..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml
+++ /dev/null
@@ -1,34 +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.
--->
-
-<metadata xmlns="http://maven.apache.org/METADATA/1.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 
http://maven.apache.org/xsd/metadata-1.1.0.xsd";>
-  <groupId>ut.simple</groupId>
-  <artifactId>artifact</artifactId>
-  <versioning>
-    <latest>1.0</latest>
-    <release>1.0</release>
-    <versions>
-      <version>1.0</version>
-    </versions>
-    <lastUpdated>20111123122038</lastUpdated>
-  </versioning>
-</metadata>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom
deleted file mode 100644
index c021dfa..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom
+++ /dev/null
@@ -1,31 +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>
-
-  <groupId>ut.simple</groupId>
-  <artifactId>dependency</artifactId>
-  <version>1.0</version>
-
-  <name>Simple Unit Test Dependency</name>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml
deleted file mode 100644
index 8a97c34..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml
+++ /dev/null
@@ -1,34 +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.
--->
-
-<metadata xmlns="http://maven.apache.org/METADATA/1.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 
http://maven.apache.org/xsd/metadata-1.1.0.xsd";>
-  <groupId>ut.simple</groupId>
-  <artifactId>dependency</artifactId>
-  <versioning>
-    <latest>1.0</latest>
-    <release>1.0</release>
-    <versions>
-      <version>1.0</version>
-    </versions>
-    <lastUpdated>20111123122038</lastUpdated>
-  </versioning>
-</metadata>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom
deleted file mode 100644
index ed64c9e..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom
+++ /dev/null
@@ -1,43 +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>
-
-  <groupId>ut.simple</groupId>
-  <artifactId>parent</artifactId>
-  <version>1.0</version>
-  <packaging>pom</packaging>
-
-  <name>Simple Unit Test Parent</name>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>ut.simple</groupId>
-        <artifactId>dependency</artifactId>
-        <version>1.0</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml
----------------------------------------------------------------------
diff --git 
a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml
 
b/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml
deleted file mode 100644
index 7199d52..0000000
--- 
a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml
+++ /dev/null
@@ -1,34 +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.
--->
-
-<metadata xmlns="http://maven.apache.org/METADATA/1.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 
http://maven.apache.org/xsd/metadata-1.1.0.xsd";>
-  <groupId>ut.simple</groupId>
-  <artifactId>parent</artifactId>
-  <versioning>
-    <latest>1.0</latest>
-    <release>1.0</release>
-    <versions>
-      <version>1.0</version>
-    </versions>
-    <lastUpdated>20111123122038</lastUpdated>
-  </versioning>
-</metadata>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-compat/pom.xml
----------------------------------------------------------------------
diff --git a/maven-compat/pom.xml b/maven-compat/pom.xml
index 876c11c..c740504 100644
--- a/maven-compat/pom.xml
+++ b/maven-compat/pom.xml
@@ -60,7 +60,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-aether-provider</artifactId>
+      <artifactId>maven-resolver-provider</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.resolver</groupId>

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-core/pom.xml
----------------------------------------------------------------------
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index ad5484a..95162bd 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -70,7 +70,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-aether-provider</artifactId>
+      <artifactId>maven-resolver-provider</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.resolver</groupId>

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-core/src/main/resources/META-INF/maven/extension.xml
----------------------------------------------------------------------
diff --git a/maven-core/src/main/resources/META-INF/maven/extension.xml 
b/maven-core/src/main/resources/META-INF/maven/extension.xml
index f9cf07a..1d24d92 100644
--- a/maven-core/src/main/resources/META-INF/maven/extension.xml
+++ b/maven-core/src/main/resources/META-INF/maven/extension.xml
@@ -54,7 +54,7 @@ under the License.
     <exportedPackage>org.apache.maven.wagon.repository</exportedPackage>
     <exportedPackage>org.apache.maven.wagon.resource</exportedPackage>
 
-    <!-- aether-api, aether-spi, aether-impl -->
+    <!-- maven-resolver-api, maven-resolver-spi, maven-resolver-impl -->
     <exportedPackage>org.eclipse.aether.*</exportedPackage>
     <exportedPackage>org.eclipse.aether.artifact</exportedPackage>
     <exportedPackage>org.eclipse.aether.collection</exportedPackage>
@@ -132,7 +132,7 @@ under the License.
     <exportedArtifact>org.sonatype.sisu:sisu-inject-plexus</exportedArtifact>
     
<exportedArtifact>org.eclipse.sisu:org.eclipse.sisu.plexus</exportedArtifact>
     <exportedArtifact>org.apache.maven:maven-artifact</exportedArtifact>
-    <exportedArtifact>org.apache.maven:maven-aether-provider</exportedArtifact>
+    
<exportedArtifact>org.apache.maven:maven-resolver-provider</exportedArtifact>
     
<exportedArtifact>org.apache.maven:maven-artifact-manager</exportedArtifact>
     <exportedArtifact>org.apache.maven:maven-compat</exportedArtifact>
     <exportedArtifact>org.apache.maven:maven-core</exportedArtifact>
@@ -152,9 +152,9 @@ under the License.
     
<exportedArtifact>org.apache.maven:maven-settings-builder</exportedArtifact>
     <exportedArtifact>org.apache.maven:maven-toolchain</exportedArtifact>
     
<exportedArtifact>org.apache.maven.wagon:wagon-provider-api</exportedArtifact>
-    <exportedArtifact>org.eclipse.aether:aether-api</exportedArtifact>
-    <exportedArtifact>org.eclipse.aether:aether-spi</exportedArtifact>
-    <exportedArtifact>org.eclipse.aether:aether-impl</exportedArtifact>
+    
<exportedArtifact>org.apache.maven.resolver:maven-resolver-api</exportedArtifact>
+    
<exportedArtifact>org.apache.maven.resolver:maven-resolver-spi</exportedArtifact>
+    
<exportedArtifact>org.apache.maven.resolver:maven-resolver-impl</exportedArtifact>
 
     <exportedArtifact>javax.inject:javax.inject</exportedArtifact>
     <exportedArtifact>org.slf4j:slf4j-api</exportedArtifact>
@@ -166,6 +166,9 @@ under the License.
     <exportedArtifact>org.sonatype.aether:aether-api</exportedArtifact>
     <exportedArtifact>org.sonatype.aether:aether-spi</exportedArtifact>
     <exportedArtifact>org.sonatype.aether:aether-impl</exportedArtifact>
+    <exportedArtifact>org.eclipse.aether:aether-api</exportedArtifact>
+    <exportedArtifact>org.eclipse.aether:aether-spi</exportedArtifact>
+    <exportedArtifact>org.eclipse.aether:aether-impl</exportedArtifact>
 
     <!--
       | NOTE: Don't exclude the wagons or any of their dependencies (apart 
from the wagon API). This would otherwise

http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-resolver-provider/pom.xml
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/pom.xml b/maven-resolver-provider/pom.xml
new file mode 100644
index 0000000..7d71e33
--- /dev/null
+++ b/maven-resolver-provider/pom.xml
@@ -0,0 +1,128 @@
+<?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.5.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-resolver-provider</artifactId>
+
+  <name>Maven Artifact Resolver 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>
+    <!-- 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.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.plexus</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>1.9.5</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/8972072e/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
----------------------------------------------------------------------
diff --git 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
new file mode 100644
index 0000000..2395b36
--- /dev/null
+++ 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
@@ -0,0 +1,153 @@
+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.isOptional(), 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/8972072e/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
----------------------------------------------------------------------
diff --git 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
new file mode 100644
index 0000000..7d4ede8
--- /dev/null
+++ 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
@@ -0,0 +1,81 @@
+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 );
+    }
+
+}

Reply via email to