You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2017/01/15 19:24:09 UTC

[35/53] [abbrv] [partial] maven-resolver git commit: [MNG-6007] renamed Aether to Maven Artifact Resolver

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java
deleted file mode 100644
index c2cdd83..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.Calendar;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.impl.UpdatePolicyAnalyzer;
-import org.eclipse.aether.repository.RepositoryPolicy;
-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;
-
-/**
- */
-@Named
-public class DefaultUpdatePolicyAnalyzer
-    implements UpdatePolicyAnalyzer, Service
-{
-
-    private Logger logger = NullLoggerFactory.LOGGER;
-
-    public DefaultUpdatePolicyAnalyzer()
-    {
-        // enables default constructor
-    }
-
-    @Inject
-    DefaultUpdatePolicyAnalyzer( LoggerFactory loggerFactory )
-    {
-        setLoggerFactory( loggerFactory );
-    }
-
-    public void initService( ServiceLocator locator )
-    {
-        setLoggerFactory( locator.getService( LoggerFactory.class ) );
-    }
-
-    public DefaultUpdatePolicyAnalyzer setLoggerFactory( LoggerFactory loggerFactory )
-    {
-        this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
-        return this;
-    }
-
-    public String getEffectiveUpdatePolicy( RepositorySystemSession session, String policy1, String policy2 )
-    {
-        return ordinalOfUpdatePolicy( policy1 ) < ordinalOfUpdatePolicy( policy2 ) ? policy1 : policy2;
-    }
-
-    private int ordinalOfUpdatePolicy( String policy )
-    {
-        if ( RepositoryPolicy.UPDATE_POLICY_DAILY.equals( policy ) )
-        {
-            return 1440;
-        }
-        else if ( RepositoryPolicy.UPDATE_POLICY_ALWAYS.equals( policy ) )
-        {
-            return 0;
-        }
-        else if ( policy != null && policy.startsWith( RepositoryPolicy.UPDATE_POLICY_INTERVAL ) )
-        {
-            return getMinutes( policy );
-        }
-        else
-        {
-            // assume "never"
-            return Integer.MAX_VALUE;
-        }
-    }
-
-    public boolean isUpdatedRequired( RepositorySystemSession session, long lastModified, String policy )
-    {
-        boolean checkForUpdates;
-
-        if ( policy == null )
-        {
-            policy = "";
-        }
-
-        if ( RepositoryPolicy.UPDATE_POLICY_ALWAYS.equals( policy ) )
-        {
-            checkForUpdates = true;
-        }
-        else if ( RepositoryPolicy.UPDATE_POLICY_DAILY.equals( policy ) )
-        {
-            Calendar cal = Calendar.getInstance();
-            cal.set( Calendar.HOUR_OF_DAY, 0 );
-            cal.set( Calendar.MINUTE, 0 );
-            cal.set( Calendar.SECOND, 0 );
-            cal.set( Calendar.MILLISECOND, 0 );
-
-            checkForUpdates = cal.getTimeInMillis() > lastModified;
-        }
-        else if ( policy.startsWith( RepositoryPolicy.UPDATE_POLICY_INTERVAL ) )
-        {
-            int minutes = getMinutes( policy );
-
-            Calendar cal = Calendar.getInstance();
-            cal.add( Calendar.MINUTE, -minutes );
-
-            checkForUpdates = cal.getTimeInMillis() > lastModified;
-        }
-        else
-        {
-            // assume "never"
-            checkForUpdates = false;
-
-            if ( !RepositoryPolicy.UPDATE_POLICY_NEVER.equals( policy ) )
-            {
-                logger.warn( "Unknown repository update policy '" + policy + "', assuming '"
-                    + RepositoryPolicy.UPDATE_POLICY_NEVER + "'" );
-            }
-        }
-
-        return checkForUpdates;
-    }
-
-    private int getMinutes( String policy )
-    {
-        int minutes;
-        try
-        {
-            String s = policy.substring( RepositoryPolicy.UPDATE_POLICY_INTERVAL.length() + 1 );
-            minutes = Integer.valueOf( s );
-        }
-        catch ( RuntimeException e )
-        {
-            minutes = 24 * 60;
-
-            logger.warn( "Non-parseable repository update policy '" + policy + "', assuming '"
-                + RepositoryPolicy.UPDATE_POLICY_INTERVAL + ":1440'" );
-        }
-        return minutes;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
deleted file mode 100644
index 2007368..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
+++ /dev/null
@@ -1,217 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.collection.VersionFilter;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.repository.ArtifactRepository;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.resolution.VersionRangeResult;
-import org.eclipse.aether.version.Version;
-import org.eclipse.aether.version.VersionConstraint;
-
-/**
- * @see DefaultDependencyCollector
- */
-final class DefaultVersionFilterContext
-    implements VersionFilter.VersionFilterContext
-{
-
-    private final Iterator<Version> EMPTY = Collections.<Version>emptySet().iterator();
-
-    private final RepositorySystemSession session;
-
-    private Dependency dependency;
-
-    VersionRangeResult result;
-
-    int count;
-
-    byte[] deleted = new byte[64];
-
-    public DefaultVersionFilterContext( RepositorySystemSession session )
-    {
-        this.session = session;
-    }
-
-    public void set( Dependency dependency, VersionRangeResult result )
-    {
-        this.dependency = dependency;
-        this.result = result;
-        count = result.getVersions().size();
-        if ( deleted.length < count )
-        {
-            deleted = new byte[count];
-        }
-        else
-        {
-            for ( int i = count - 1; i >= 0; i-- )
-            {
-                deleted[i] = 0;
-            }
-        }
-    }
-
-    public List<Version> get()
-    {
-        if ( count == result.getVersions().size() )
-        {
-            return result.getVersions();
-        }
-        if ( count <= 1 )
-        {
-            if ( count <= 0 )
-            {
-                return Collections.emptyList();
-            }
-            return Collections.singletonList( iterator().next() );
-        }
-        List<Version> versions = new ArrayList<Version>( count );
-        for ( Version version : this )
-        {
-            versions.add( version );
-        }
-        return versions;
-    }
-
-    public RepositorySystemSession getSession()
-    {
-        return session;
-    }
-
-    public Dependency getDependency()
-    {
-        return dependency;
-    }
-
-    public VersionConstraint getVersionConstraint()
-    {
-        return result.getVersionConstraint();
-    }
-
-    public int getCount()
-    {
-        return count;
-    }
-
-    public ArtifactRepository getRepository( Version version )
-    {
-        return result.getRepository( version );
-    }
-
-    public List<RemoteRepository> getRepositories()
-    {
-        return Collections.unmodifiableList( result.getRequest().getRepositories() );
-    }
-
-    public Iterator<Version> iterator()
-    {
-        return ( count > 0 ) ? new VersionIterator() : EMPTY;
-    }
-
-    @Override
-    public String toString()
-    {
-        return dependency + " " + result.getVersions();
-    }
-
-    private class VersionIterator
-        implements Iterator<Version>
-    {
-
-        private final List<Version> versions;
-
-        private final int size;
-
-        private int count;
-
-        private int index;
-
-        private int next;
-
-        public VersionIterator()
-        {
-            count = DefaultVersionFilterContext.this.count;
-            index = -1;
-            next = 0;
-            versions = result.getVersions();
-            size = versions.size();
-            advance();
-        }
-
-        private void advance()
-        {
-            for ( next = index + 1; next < size && deleted[next] != 0; next++ )
-            {
-                // just advancing index
-            }
-        }
-
-        public boolean hasNext()
-        {
-            return next < size;
-        }
-
-        public Version next()
-        {
-            if ( count != DefaultVersionFilterContext.this.count )
-            {
-                throw new ConcurrentModificationException();
-            }
-            if ( next >= size )
-            {
-                throw new NoSuchElementException();
-            }
-            index = next;
-            advance();
-            return versions.get( index );
-        }
-
-        public void remove()
-        {
-            if ( count != DefaultVersionFilterContext.this.count )
-            {
-                throw new ConcurrentModificationException();
-            }
-            if ( index < 0 || deleted[index] == 1 )
-            {
-                throw new IllegalStateException();
-            }
-            deleted[index] = 1;
-            count = --DefaultVersionFilterContext.this.count;
-        }
-
-        @Override
-        public String toString()
-        {
-            return ( index < 0 ) ? "null" : String.valueOf( versions.get( index ) );
-        }
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java
deleted file mode 100644
index 11ba9a1..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java
+++ /dev/null
@@ -1,225 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.repository.LocalArtifactRegistration;
-import org.eclipse.aether.repository.LocalArtifactRequest;
-import org.eclipse.aether.repository.LocalArtifactResult;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.spi.log.Logger;
-import org.eclipse.aether.util.ConfigUtils;
-
-/**
- * These are implementation details for enhanced local repository manager, subject to change without prior notice.
- * Repositories from which a cached artifact was resolved are tracked in a properties file named
- * <code>_remote.repositories</code>, with content key as filename&gt;repo_id and value as empty string. If a file has
- * been installed in the repository, but not downloaded from a remote repository, it is tracked as empty repository id
- * and always resolved. For example:
- * 
- * <pre>
- * artifact-1.0.pom>=
- * artifact-1.0.jar>=
- * artifact-1.0.pom>central=
- * artifact-1.0.jar>central=
- * artifact-1.0.zip>central=
- * artifact-1.0-classifier.zip>central=
- * artifact-1.0.pom>my_repo_id=
- * </pre>
- * 
- * @see EnhancedLocalRepositoryManagerFactory
- */
-class EnhancedLocalRepositoryManager
-    extends SimpleLocalRepositoryManager
-{
-
-    private static final String LOCAL_REPO_ID = "";
-
-    private final String trackingFilename;
-
-    private final TrackingFileManager trackingFileManager;
-
-    public EnhancedLocalRepositoryManager( File basedir, RepositorySystemSession session )
-    {
-        super( basedir, "enhanced" );
-        String filename = ConfigUtils.getString( session, "", "aether.enhancedLocalRepository.trackingFilename" );
-        if ( filename.length() <= 0 || filename.contains( "/" ) || filename.contains( "\\" )
-            || filename.contains( ".." ) )
-        {
-            filename = "_remote.repositories";
-        }
-        trackingFilename = filename;
-        trackingFileManager = new TrackingFileManager();
-    }
-
-    @Override
-    public EnhancedLocalRepositoryManager setLogger( Logger logger )
-    {
-        super.setLogger( logger );
-        trackingFileManager.setLogger( logger );
-        return this;
-    }
-
-    @Override
-    public LocalArtifactResult find( RepositorySystemSession session, LocalArtifactRequest request )
-    {
-        String path = getPathForArtifact( request.getArtifact(), false );
-        File file = new File( getRepository().getBasedir(), path );
-
-        LocalArtifactResult result = new LocalArtifactResult( request );
-
-        if ( file.isFile() )
-        {
-            result.setFile( file );
-
-            Properties props = readRepos( file );
-
-            if ( props.get( getKey( file, LOCAL_REPO_ID ) ) != null )
-            {
-                // artifact installed into the local repo is always accepted
-                result.setAvailable( true );
-            }
-            else
-            {
-                String context = request.getContext();
-                for ( RemoteRepository repository : request.getRepositories() )
-                {
-                    if ( props.get( getKey( file, getRepositoryKey( repository, context ) ) ) != null )
-                    {
-                        // artifact downloaded from remote repository is accepted only downloaded from request
-                        // repositories
-                        result.setAvailable( true );
-                        result.setRepository( repository );
-                        break;
-                    }
-                }
-                if ( !result.isAvailable() && !isTracked( props, file ) )
-                {
-                    /*
-                     * NOTE: The artifact is present but not tracked at all, for inter-op with simple local repo, assume
-                     * the artifact was locally installed.
-                     */
-                    result.setAvailable( true );
-                }
-            }
-        }
-
-        return result;
-    }
-
-    @Override
-    public void add( RepositorySystemSession session, LocalArtifactRegistration request )
-    {
-        Collection<String> repositories;
-        if ( request.getRepository() == null )
-        {
-            repositories = Collections.singleton( LOCAL_REPO_ID );
-        }
-        else
-        {
-            repositories = getRepositoryKeys( request.getRepository(), request.getContexts() );
-        }
-        addArtifact( request.getArtifact(), repositories, request.getRepository() == null );
-    }
-
-    private Collection<String> getRepositoryKeys( RemoteRepository repository, Collection<String> contexts )
-    {
-        Collection<String> keys = new HashSet<String>();
-
-        if ( contexts != null )
-        {
-            for ( String context : contexts )
-            {
-                keys.add( getRepositoryKey( repository, context ) );
-            }
-        }
-
-        return keys;
-    }
-
-    private void addArtifact( Artifact artifact, Collection<String> repositories, boolean local )
-    {
-        if ( artifact == null )
-        {
-            throw new IllegalArgumentException( "artifact to register not specified" );
-        }
-        String path = getPathForArtifact( artifact, local );
-        File file = new File( getRepository().getBasedir(), path );
-        addRepo( file, repositories );
-    }
-
-    private Properties readRepos( File artifactFile )
-    {
-        File trackingFile = getTrackingFile( artifactFile );
-
-        Properties props = trackingFileManager.read( trackingFile );
-
-        return ( props != null ) ? props : new Properties();
-    }
-
-    private void addRepo( File artifactFile, Collection<String> repositories )
-    {
-        Map<String, String> updates = new HashMap<String, String>();
-        for ( String repository : repositories )
-        {
-            updates.put( getKey( artifactFile, repository ), "" );
-        }
-
-        File trackingFile = getTrackingFile( artifactFile );
-
-        trackingFileManager.update( trackingFile, updates );
-    }
-
-    private File getTrackingFile( File artifactFile )
-    {
-        return new File( artifactFile.getParentFile(), trackingFilename );
-    }
-
-    private String getKey( File file, String repository )
-    {
-        return file.getName() + '>' + repository;
-    }
-
-    private boolean isTracked( Properties props, File file )
-    {
-        if ( props != null )
-        {
-            String keyPrefix = file.getName() + '>';
-            for ( Object key : props.keySet() )
-            {
-                if ( key.toString().startsWith( keyPrefix ) )
-                {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
deleted file mode 100644
index cfd2013..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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 javax.inject.Inject;
-import javax.inject.Named;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.LocalRepository;
-import org.eclipse.aether.repository.LocalRepositoryManager;
-import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
-import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
-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;
-
-/**
- * Creates enhanced local repository managers for repository types {@code "default"} or {@code "" (automatic)}. Enhanced
- * local repository manager is built upon the classical Maven 2.0 local repository structure but additionally keeps
- * track of from what repositories a cached artifact was resolved. Resolution of locally cached artifacts will be
- * rejected in case the current resolution request does not match the known source repositories of an artifact, thereby
- * emulating physically separated artifact caches per remote repository.
- */
-@Named( "enhanced" )
-public class EnhancedLocalRepositoryManagerFactory
-    implements LocalRepositoryManagerFactory, Service
-{
-
-    private Logger logger = NullLoggerFactory.LOGGER;
-
-    private float priority = 10;
-
-    public EnhancedLocalRepositoryManagerFactory()
-    {
-        // enable no-arg constructor
-    }
-
-    @Inject
-    EnhancedLocalRepositoryManagerFactory( LoggerFactory loggerFactory )
-    {
-        setLoggerFactory( loggerFactory );
-    }
-
-    public LocalRepositoryManager newInstance( RepositorySystemSession session, LocalRepository repository )
-        throws NoLocalRepositoryManagerException
-    {
-        if ( "".equals( repository.getContentType() ) || "default".equals( repository.getContentType() ) )
-        {
-            return new EnhancedLocalRepositoryManager( repository.getBasedir(), session ).setLogger( logger );
-        }
-        else
-        {
-            throw new NoLocalRepositoryManagerException( repository );
-        }
-    }
-
-    public void initService( ServiceLocator locator )
-    {
-        setLoggerFactory( locator.getService( LoggerFactory.class ) );
-    }
-
-    public EnhancedLocalRepositoryManagerFactory setLoggerFactory( LoggerFactory loggerFactory )
-    {
-        this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, EnhancedLocalRepositoryManager.class );
-        return this;
-    }
-
-    public float getPriority()
-    {
-        return priority;
-    }
-
-    /**
-     * Sets the priority of this component.
-     * 
-     * @param priority The priority.
-     * @return This component for chaining, never {@code null}.
-     */
-    public EnhancedLocalRepositoryManagerFactory setPriority( float priority )
-    {
-        this.priority = priority;
-        return this;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java
deleted file mode 100644
index 4f3de45..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.spi.log.LoggerFactory;
-import org.eclipse.aether.transfer.ChecksumFailureException;
-import org.eclipse.aether.transfer.TransferResource;
-
-/**
- * Implements {@link org.eclipse.aether.repository.RepositoryPolicy#CHECKSUM_POLICY_FAIL}.
- */
-final class FailChecksumPolicy
-    extends AbstractChecksumPolicy
-{
-
-    public FailChecksumPolicy( LoggerFactory loggerFactory, TransferResource resource )
-    {
-        super( loggerFactory, resource );
-    }
-
-    public boolean onTransferChecksumFailure( ChecksumFailureException error )
-    {
-        return false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java
deleted file mode 100644
index 3d46490..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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 javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Provider;
-import javax.inject.Singleton;
-
-import org.eclipse.aether.spi.log.LoggerFactory;
-import org.eclipse.aether.spi.log.NullLoggerFactory;
-
-/**
- * Helps Sisu-based applications to pick the right logger factory depending on the classpath.
- */
-@Named
-@Singleton
-public class LoggerFactoryProvider
-    implements Provider<LoggerFactory>
-{
-
-    @Inject
-    @Named( "slf4j" )
-    private Provider<LoggerFactory> slf4j;
-
-    public LoggerFactory get()
-    {
-        try
-        {
-            LoggerFactory factory = slf4j.get();
-            if ( factory != null )
-            {
-                return factory;
-            }
-        }
-        catch ( LinkageError e )
-        {
-            // fall through
-        }
-        catch ( RuntimeException e )
-        {
-            // fall through
-        }
-        return NullLoggerFactory.INSTANCE;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java
deleted file mode 100644
index 9202c4b..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java
+++ /dev/null
@@ -1,186 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.URI;
-import java.net.URISyntaxException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import javax.inject.Named;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.metadata.Metadata;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.spi.connector.layout.RepositoryLayout;
-import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory;
-import org.eclipse.aether.transfer.NoRepositoryLayoutException;
-import org.eclipse.aether.util.ConfigUtils;
-
-/**
- * Provides a Maven-2 repository layout for repositories with content type {@code "default"}.
- */
-@Named( "maven2" )
-public final class Maven2RepositoryLayoutFactory
-    implements RepositoryLayoutFactory
-{
-
-    static final String CONFIG_PROP_SIGNATURE_CHECKSUMS = "aether.checksums.forSignature";
-
-    private float priority;
-
-    public float getPriority()
-    {
-        return priority;
-    }
-
-    /**
-     * Sets the priority of this component.
-     * 
-     * @param priority The priority.
-     * @return This component for chaining, never {@code null}.
-     */
-    public Maven2RepositoryLayoutFactory setPriority( float priority )
-    {
-        this.priority = priority;
-        return this;
-    }
-
-    public RepositoryLayout newInstance( RepositorySystemSession session, RemoteRepository repository )
-        throws NoRepositoryLayoutException
-    {
-        if ( !"default".equals( repository.getContentType() ) )
-        {
-            throw new NoRepositoryLayoutException( repository );
-        }
-        boolean forSignature = ConfigUtils.getBoolean( session, false, CONFIG_PROP_SIGNATURE_CHECKSUMS );
-        return forSignature ? Maven2RepositoryLayout.INSTANCE : Maven2RepositoryLayoutEx.INSTANCE;
-    }
-
-    private static class Maven2RepositoryLayout
-        implements RepositoryLayout
-    {
-
-        public static final RepositoryLayout INSTANCE = new Maven2RepositoryLayout();
-
-        private URI toUri( String path )
-        {
-            try
-            {
-                return new URI( null, null, path, null );
-            }
-            catch ( URISyntaxException e )
-            {
-                throw new IllegalStateException( e );
-            }
-        }
-
-        public URI getLocation( Artifact artifact, boolean upload )
-        {
-            StringBuilder path = new StringBuilder( 128 );
-
-            path.append( artifact.getGroupId().replace( '.', '/' ) ).append( '/' );
-
-            path.append( artifact.getArtifactId() ).append( '/' );
-
-            path.append( artifact.getBaseVersion() ).append( '/' );
-
-            path.append( artifact.getArtifactId() ).append( '-' ).append( artifact.getVersion() );
-
-            if ( artifact.getClassifier().length() > 0 )
-            {
-                path.append( '-' ).append( artifact.getClassifier() );
-            }
-
-            if ( artifact.getExtension().length() > 0 )
-            {
-                path.append( '.' ).append( artifact.getExtension() );
-            }
-
-            return toUri( path.toString() );
-        }
-
-        public URI getLocation( Metadata metadata, boolean upload )
-        {
-            StringBuilder path = new StringBuilder( 128 );
-
-            if ( metadata.getGroupId().length() > 0 )
-            {
-                path.append( metadata.getGroupId().replace( '.', '/' ) ).append( '/' );
-
-                if ( metadata.getArtifactId().length() > 0 )
-                {
-                    path.append( metadata.getArtifactId() ).append( '/' );
-
-                    if ( metadata.getVersion().length() > 0 )
-                    {
-                        path.append( metadata.getVersion() ).append( '/' );
-                    }
-                }
-            }
-
-            path.append( metadata.getType() );
-
-            return toUri( path.toString() );
-        }
-
-        public List<Checksum> getChecksums( Artifact artifact, boolean upload, URI location )
-        {
-            return getChecksums( location );
-        }
-
-        public List<Checksum> getChecksums( Metadata metadata, boolean upload, URI location )
-        {
-            return getChecksums( location );
-        }
-
-        private List<Checksum> getChecksums( URI location )
-        {
-            return Arrays.asList( Checksum.forLocation( location, "SHA-1" ), Checksum.forLocation( location, "MD5" ) );
-        }
-
-    }
-
-    private static class Maven2RepositoryLayoutEx
-        extends Maven2RepositoryLayout
-    {
-
-        public static final RepositoryLayout INSTANCE = new Maven2RepositoryLayoutEx();
-
-        @Override
-        public List<Checksum> getChecksums( Artifact artifact, boolean upload, URI location )
-        {
-            if ( isSignature( artifact.getExtension() ) )
-            {
-                return Collections.emptyList();
-            }
-            return super.getChecksums( artifact, upload, location );
-        }
-
-        private boolean isSignature( String extension )
-        {
-            return extension.endsWith( ".asc" );
-        }
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/NodeStack.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/NodeStack.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/NodeStack.java
deleted file mode 100644
index b0e0cd3..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/NodeStack.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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 org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.graph.DependencyNode;
-
-/**
- * @see DefaultDependencyCollector
- */
-final class NodeStack
-{
-
-    private DependencyNode[] nodes = new DependencyNode[96];
-
-    private int size;
-
-    public DependencyNode top()
-    {
-        if ( size <= 0 )
-        {
-            throw new IllegalStateException( "stack empty" );
-        }
-        return nodes[size - 1];
-    }
-
-    public void push( DependencyNode node )
-    {
-        if ( size >= nodes.length )
-        {
-            DependencyNode[] tmp = new DependencyNode[size + 64];
-            System.arraycopy( nodes, 0, tmp, 0, nodes.length );
-            nodes = tmp;
-        }
-        nodes[size++] = node;
-    }
-
-    public void pop()
-    {
-        if ( size <= 0 )
-        {
-            throw new IllegalStateException( "stack empty" );
-        }
-        size--;
-    }
-
-    public int find( Artifact artifact )
-    {
-        for ( int i = size - 1; i >= 0; i-- )
-        {
-            DependencyNode node = nodes[i];
-
-            Artifact a = node.getArtifact();
-            if ( a == null )
-            {
-                break;
-            }
-
-            if ( !a.getArtifactId().equals( artifact.getArtifactId() ) )
-            {
-                continue;
-            }
-            if ( !a.getGroupId().equals( artifact.getGroupId() ) )
-            {
-                continue;
-            }
-            if ( !a.getExtension().equals( artifact.getExtension() ) )
-            {
-                continue;
-            }
-            if ( !a.getClassifier().equals( artifact.getClassifier() ) )
-            {
-                continue;
-            }
-            /*
-             * NOTE: While a:1 and a:2 are technically different artifacts, we want to consider the path a:2 -> b:2 ->
-             * a:1 a cycle in the current context. The artifacts themselves might not form a cycle but their producing
-             * projects surely do. Furthermore, conflict resolution will always have to consider a:1 a loser (otherwise
-             * its ancestor a:2 would get pruned and so would a:1) so there is no point in building the sub graph of
-             * a:1.
-             */
-
-            return i;
-        }
-
-        return -1;
-    }
-
-    public int size()
-    {
-        return size;
-    }
-
-    public DependencyNode get( int index )
-    {
-        return nodes[index];
-    }
-
-    @Override
-    public String toString()
-    {
-        return Arrays.toString( nodes );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java
deleted file mode 100644
index 2307f7f..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.lang.ref.Reference;
-import java.lang.ref.WeakReference;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-/**
- * Pool of immutable object instances, used to avoid excessive memory consumption of (dirty) dependency graph which
- * tends to have many duplicate artifacts/dependencies.
- */
-class ObjectPool<T>
-{
-
-    private final Map<Object, Reference<T>> objects = new WeakHashMap<Object, Reference<T>>( 256 );
-
-    public synchronized T intern( T object )
-    {
-        Reference<T> pooledRef = objects.get( object );
-        if ( pooledRef != null )
-        {
-            T pooled = pooledRef.get();
-            if ( pooled != null )
-            {
-                return pooled;
-            }
-        }
-
-        objects.put( object, new WeakReference<T>( object ) );
-        return object;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java
deleted file mode 100644
index fc9ebeb..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.
- */
-
-final class PrioritizedComponent<T>
-    implements Comparable<PrioritizedComponent<?>>
-{
-
-    private final T component;
-
-    private final Class<?> type;
-
-    private final float priority;
-
-    private final int index;
-
-    public PrioritizedComponent( T component, Class<?> type, float priority, int index )
-    {
-        this.component = component;
-        this.type = type;
-        this.priority = priority;
-        this.index = index;
-    }
-
-    public T getComponent()
-    {
-        return component;
-    }
-
-    public Class<?> getType()
-    {
-        return type;
-    }
-
-    public float getPriority()
-    {
-        return priority;
-    }
-
-    public boolean isDisabled()
-    {
-        return Float.isNaN( priority );
-    }
-
-    public int compareTo( PrioritizedComponent<?> o )
-    {
-        int rel = ( isDisabled() ? 1 : 0 ) - ( o.isDisabled() ? 1 : 0 );
-        if ( rel == 0 )
-        {
-            rel = Float.compare( o.priority, priority );
-            if ( rel == 0 )
-            {
-                rel = index - o.index;
-            }
-        }
-        return rel;
-    }
-
-    @Override
-    public String toString()
-    {
-        return priority + " (#" + index + "): " + String.valueOf( component );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java
deleted file mode 100644
index 3ec5613..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.List;
-import java.util.Map;
-
-import org.eclipse.aether.ConfigurationProperties;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.util.ConfigUtils;
-
-/**
- * Helps to sort pluggable components by their priority.
- */
-final class PrioritizedComponents<T>
-{
-
-    private static final String FACTORY_SUFFIX = "Factory";
-
-    private final Map<?, ?> configProps;
-
-    private final boolean useInsertionOrder;
-
-    private final List<PrioritizedComponent<T>> components;
-
-    private int firstDisabled;
-
-    public PrioritizedComponents( RepositorySystemSession session )
-    {
-        this( session.getConfigProperties() );
-    }
-
-    PrioritizedComponents( Map<?, ?> configurationProperties )
-    {
-        configProps = configurationProperties;
-        useInsertionOrder =
-            ConfigUtils.getBoolean( configProps, ConfigurationProperties.DEFAULT_IMPLICIT_PRIORITIES,
-                                    ConfigurationProperties.IMPLICIT_PRIORITIES );
-        components = new ArrayList<PrioritizedComponent<T>>();
-        firstDisabled = 0;
-    }
-
-    public void add( T component, float priority )
-    {
-        Class<?> type = getImplClass( component );
-        int index = components.size();
-        priority = useInsertionOrder ? -index : ConfigUtils.getFloat( configProps, priority, getConfigKeys( type ) );
-        PrioritizedComponent<T> pc = new PrioritizedComponent<T>( component, type, priority, index );
-
-        if ( !useInsertionOrder )
-        {
-            index = Collections.binarySearch( components, pc );
-            if ( index < 0 )
-            {
-                index = -index - 1;
-            }
-            else
-            {
-                index++;
-            }
-        }
-        components.add( index, pc );
-
-        if ( index <= firstDisabled && !pc.isDisabled() )
-        {
-            firstDisabled++;
-        }
-    }
-
-    private static Class<?> getImplClass( Object component )
-    {
-        Class<?> type = component.getClass();
-        // detect and ignore CGLIB-based proxy classes employed by Guice for AOP (cf. BytecodeGen.newEnhancer)
-        int idx = type.getName().indexOf( "$$" );
-        if ( idx >= 0 )
-        {
-            Class<?> base = type.getSuperclass();
-            if ( base != null && idx == base.getName().length() && type.getName().startsWith( base.getName() ) )
-            {
-                type = base;
-            }
-        }
-        return type;
-    }
-
-    static String[] getConfigKeys( Class<?> type )
-    {
-        List<String> keys = new ArrayList<String>();
-        keys.add( ConfigurationProperties.PREFIX_PRIORITY + type.getName() );
-        String sn = type.getSimpleName();
-        keys.add( ConfigurationProperties.PREFIX_PRIORITY + sn );
-        if ( sn.endsWith( FACTORY_SUFFIX ) )
-        {
-            keys.add( ConfigurationProperties.PREFIX_PRIORITY + sn.substring( 0, sn.length() - FACTORY_SUFFIX.length() ) );
-        }
-        return keys.toArray( new String[keys.size()] );
-    }
-
-    public boolean isEmpty()
-    {
-        return components.isEmpty();
-    }
-
-    public List<PrioritizedComponent<T>> getAll()
-    {
-        return components;
-    }
-
-    public List<PrioritizedComponent<T>> getEnabled()
-    {
-        return components.subList( 0, firstDisabled );
-    }
-
-    public void list( StringBuilder buffer )
-    {
-        for ( int i = 0; i < components.size(); i++ )
-        {
-            if ( i > 0 )
-            {
-                buffer.append( ", " );
-            }
-            PrioritizedComponent<?> component = components.get( i );
-            buffer.append( component.getType().getSimpleName() );
-            if ( component.isDisabled() )
-            {
-                buffer.append( " (disabled)" );
-            }
-        }
-    }
-
-    @Override
-    public String toString()
-    {
-        return components.toString();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java
deleted file mode 100644
index 1ba8a37..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.RepositorySystemSession;
-import org.eclipse.aether.spi.log.Logger;
-import org.eclipse.aether.transfer.AbstractTransferListener;
-import org.eclipse.aether.transfer.TransferCancelledException;
-import org.eclipse.aether.transfer.TransferEvent;
-import org.eclipse.aether.transfer.TransferListener;
-
-class SafeTransferListener
-    extends AbstractTransferListener
-{
-
-    private final Logger logger;
-
-    private final TransferListener listener;
-
-    public static TransferListener wrap( RepositorySystemSession session, Logger logger )
-    {
-        TransferListener listener = session.getTransferListener();
-        if ( listener == null )
-        {
-            return null;
-        }
-        return new SafeTransferListener( listener, logger );
-    }
-
-    protected SafeTransferListener( RepositorySystemSession session, Logger logger )
-    {
-        this( session.getTransferListener(), logger );
-    }
-
-    private SafeTransferListener( TransferListener listener, Logger logger )
-    {
-        this.listener = listener;
-        this.logger = logger;
-    }
-
-    private void logError( TransferEvent event, Throwable e )
-    {
-        String msg = "Failed to dispatch transfer event '" + event + "' to " + listener.getClass().getCanonicalName();
-        logger.debug( msg, e );
-    }
-
-    @Override
-    public void transferInitiated( TransferEvent event )
-        throws TransferCancelledException
-    {
-        if ( listener != null )
-        {
-            try
-            {
-                listener.transferInitiated( event );
-            }
-            catch ( RuntimeException e )
-            {
-                logError( event, e );
-            }
-            catch ( LinkageError e )
-            {
-                logError( event, e );
-            }
-        }
-    }
-
-    @Override
-    public void transferStarted( TransferEvent event )
-        throws TransferCancelledException
-    {
-        if ( listener != null )
-        {
-            try
-            {
-                listener.transferStarted( event );
-            }
-            catch ( RuntimeException e )
-            {
-                logError( event, e );
-            }
-            catch ( LinkageError e )
-            {
-                logError( event, e );
-            }
-        }
-    }
-
-    @Override
-    public void transferProgressed( TransferEvent event )
-        throws TransferCancelledException
-    {
-        if ( listener != null )
-        {
-            try
-            {
-                listener.transferProgressed( event );
-            }
-            catch ( RuntimeException e )
-            {
-                logError( event, e );
-            }
-            catch ( LinkageError e )
-            {
-                logError( event, e );
-            }
-        }
-    }
-
-    @Override
-    public void transferCorrupted( TransferEvent event )
-        throws TransferCancelledException
-    {
-        if ( listener != null )
-        {
-            try
-            {
-                listener.transferCorrupted( event );
-            }
-            catch ( RuntimeException e )
-            {
-                logError( event, e );
-            }
-            catch ( LinkageError e )
-            {
-                logError( event, e );
-            }
-        }
-    }
-
-    @Override
-    public void transferSucceeded( TransferEvent event )
-    {
-        if ( listener != null )
-        {
-            try
-            {
-                listener.transferSucceeded( event );
-            }
-            catch ( RuntimeException e )
-            {
-                logError( event, e );
-            }
-            catch ( LinkageError e )
-            {
-                logError( event, e );
-            }
-        }
-    }
-
-    @Override
-    public void transferFailed( TransferEvent event )
-    {
-        if ( listener != null )
-        {
-            try
-            {
-                listener.transferFailed( event );
-            }
-            catch ( RuntimeException e )
-            {
-                logError( event, e );
-            }
-            catch ( LinkageError e )
-            {
-                logError( event, e );
-            }
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
deleted file mode 100644
index 9b51e98..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.UnsupportedEncodingException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * A simple digester for strings.
- */
-class SimpleDigest
-{
-
-    private MessageDigest digest;
-
-    private long hash;
-
-    public SimpleDigest()
-    {
-        try
-        {
-            digest = MessageDigest.getInstance( "SHA-1" );
-        }
-        catch ( NoSuchAlgorithmException e )
-        {
-            try
-            {
-                digest = MessageDigest.getInstance( "MD5" );
-            }
-            catch ( NoSuchAlgorithmException ne )
-            {
-                digest = null;
-                hash = 13;
-            }
-        }
-    }
-
-    public void update( String data )
-    {
-        if ( data == null || data.length() <= 0 )
-        {
-            return;
-        }
-        if ( digest != null )
-        {
-            try
-            {
-                digest.update( data.getBytes( "UTF-8" ) );
-            }
-            catch ( UnsupportedEncodingException e )
-            {
-                // broken JVM
-            }
-        }
-        else
-        {
-            hash = hash * 31 + data.hashCode();
-        }
-    }
-
-    public String digest()
-    {
-        if ( digest != null )
-        {
-            StringBuilder buffer = new StringBuilder( 64 );
-
-            byte[] bytes = digest.digest();
-            for ( byte aByte : bytes )
-            {
-                int b = aByte & 0xFF;
-
-                if ( b < 0x10 )
-                {
-                    buffer.append( '0' );
-                }
-
-                buffer.append( Integer.toHexString( b ) );
-            }
-
-            return buffer.toString();
-        }
-        else
-        {
-            return Long.toHexString( hash );
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java
deleted file mode 100644
index 97c7bba..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java
+++ /dev/null
@@ -1,269 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.SortedSet;
-import java.util.TreeSet;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.metadata.Metadata;
-import org.eclipse.aether.repository.LocalArtifactRegistration;
-import org.eclipse.aether.repository.LocalArtifactRequest;
-import org.eclipse.aether.repository.LocalArtifactResult;
-import org.eclipse.aether.repository.LocalMetadataRegistration;
-import org.eclipse.aether.repository.LocalMetadataRequest;
-import org.eclipse.aether.repository.LocalMetadataResult;
-import org.eclipse.aether.repository.LocalRepository;
-import org.eclipse.aether.repository.LocalRepositoryManager;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.spi.log.Logger;
-
-/**
- * A local repository manager that realizes the classical Maven 2.0 local repository.
- */
-class SimpleLocalRepositoryManager
-    implements LocalRepositoryManager
-{
-
-    private final LocalRepository repository;
-
-    public SimpleLocalRepositoryManager( File basedir )
-    {
-        this( basedir, "simple" );
-    }
-
-    public SimpleLocalRepositoryManager( String basedir )
-    {
-        this( ( basedir != null ) ? new File( basedir ) : null, "simple" );
-    }
-
-    SimpleLocalRepositoryManager( File basedir, String type )
-    {
-        if ( basedir == null )
-        {
-            throw new IllegalArgumentException( "base directory has not been specified" );
-        }
-        repository = new LocalRepository( basedir.getAbsoluteFile(), type );
-    }
-
-    public SimpleLocalRepositoryManager setLogger( Logger logger )
-    {
-        return this;
-    }
-
-    public LocalRepository getRepository()
-    {
-        return repository;
-    }
-
-    String getPathForArtifact( Artifact artifact, boolean local )
-    {
-        StringBuilder path = new StringBuilder( 128 );
-
-        path.append( artifact.getGroupId().replace( '.', '/' ) ).append( '/' );
-
-        path.append( artifact.getArtifactId() ).append( '/' );
-
-        path.append( artifact.getBaseVersion() ).append( '/' );
-
-        path.append( artifact.getArtifactId() ).append( '-' );
-        if ( local )
-        {
-            path.append( artifact.getBaseVersion() );
-        }
-        else
-        {
-            path.append( artifact.getVersion() );
-        }
-
-        if ( artifact.getClassifier().length() > 0 )
-        {
-            path.append( '-' ).append( artifact.getClassifier() );
-        }
-
-        if ( artifact.getExtension().length() > 0 )
-        {
-            path.append( '.' ).append( artifact.getExtension() );
-        }
-
-        return path.toString();
-    }
-
-    public String getPathForLocalArtifact( Artifact artifact )
-    {
-        return getPathForArtifact( artifact, true );
-    }
-
-    public String getPathForRemoteArtifact( Artifact artifact, RemoteRepository repository, String context )
-    {
-        return getPathForArtifact( artifact, false );
-    }
-
-    public String getPathForLocalMetadata( Metadata metadata )
-    {
-        return getPath( metadata, "local" );
-    }
-
-    public String getPathForRemoteMetadata( Metadata metadata, RemoteRepository repository, String context )
-    {
-        return getPath( metadata, getRepositoryKey( repository, context ) );
-    }
-
-    String getRepositoryKey( RemoteRepository repository, String context )
-    {
-        String key;
-
-        if ( repository.isRepositoryManager() )
-        {
-            // repository serves dynamic contents, take request parameters into account for key
-
-            StringBuilder buffer = new StringBuilder( 128 );
-
-            buffer.append( repository.getId() );
-
-            buffer.append( '-' );
-
-            SortedSet<String> subKeys = new TreeSet<String>();
-            for ( RemoteRepository mirroredRepo : repository.getMirroredRepositories() )
-            {
-                subKeys.add( mirroredRepo.getId() );
-            }
-
-            SimpleDigest digest = new SimpleDigest();
-            digest.update( context );
-            for ( String subKey : subKeys )
-            {
-                digest.update( subKey );
-            }
-            buffer.append( digest.digest() );
-
-            key = buffer.toString();
-        }
-        else
-        {
-            // repository serves static contents, its id is sufficient as key
-
-            key = repository.getId();
-        }
-
-        return key;
-    }
-
-    private String getPath( Metadata metadata, String repositoryKey )
-    {
-        StringBuilder path = new StringBuilder( 128 );
-
-        if ( metadata.getGroupId().length() > 0 )
-        {
-            path.append( metadata.getGroupId().replace( '.', '/' ) ).append( '/' );
-
-            if ( metadata.getArtifactId().length() > 0 )
-            {
-                path.append( metadata.getArtifactId() ).append( '/' );
-
-                if ( metadata.getVersion().length() > 0 )
-                {
-                    path.append( metadata.getVersion() ).append( '/' );
-                }
-            }
-        }
-
-        path.append( insertRepositoryKey( metadata.getType(), repositoryKey ) );
-
-        return path.toString();
-    }
-
-    private String insertRepositoryKey( String filename, String repositoryKey )
-    {
-        String result;
-        int idx = filename.indexOf( '.' );
-        if ( idx < 0 )
-        {
-            result = filename + '-' + repositoryKey;
-        }
-        else
-        {
-            result = filename.substring( 0, idx ) + '-' + repositoryKey + filename.substring( idx );
-        }
-        return result;
-    }
-
-    public LocalArtifactResult find( RepositorySystemSession session, LocalArtifactRequest request )
-    {
-        String path = getPathForArtifact( request.getArtifact(), false );
-        File file = new File( getRepository().getBasedir(), path );
-
-        LocalArtifactResult result = new LocalArtifactResult( request );
-        if ( file.isFile() )
-        {
-            result.setFile( file );
-            result.setAvailable( true );
-        }
-
-        return result;
-    }
-
-    public void add( RepositorySystemSession session, LocalArtifactRegistration request )
-    {
-        // noop
-    }
-
-    @Override
-    public String toString()
-    {
-        return String.valueOf( getRepository() );
-    }
-
-    public LocalMetadataResult find( RepositorySystemSession session, LocalMetadataRequest request )
-    {
-        LocalMetadataResult result = new LocalMetadataResult( request );
-
-        String path;
-
-        Metadata metadata = request.getMetadata();
-        String context = request.getContext();
-        RemoteRepository remote = request.getRepository();
-
-        if ( remote != null )
-        {
-            path = getPathForRemoteMetadata( metadata, remote, context );
-        }
-        else
-        {
-            path = getPathForLocalMetadata( metadata );
-        }
-
-        File file = new File( getRepository().getBasedir(), path );
-        if ( file.isFile() )
-        {
-            result.setFile( file );
-        }
-
-        return result;
-    }
-
-    public void add( RepositorySystemSession session, LocalMetadataRegistration request )
-    {
-        // noop
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java
deleted file mode 100644
index 3c2cf6d..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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 javax.inject.Inject;
-import javax.inject.Named;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.LocalRepository;
-import org.eclipse.aether.repository.LocalRepositoryManager;
-import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
-import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
-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;
-
-/**
- * Creates local repository managers for repository type {@code "simple"}.
- */
-@Named( "simple" )
-public class SimpleLocalRepositoryManagerFactory
-    implements LocalRepositoryManagerFactory, Service
-{
-
-    private Logger logger = NullLoggerFactory.LOGGER;
-
-    private float priority;
-
-    public SimpleLocalRepositoryManagerFactory()
-    {
-        // enable no-arg constructor
-    }
-
-    @Inject
-    SimpleLocalRepositoryManagerFactory( LoggerFactory loggerFactory )
-    {
-        setLoggerFactory( loggerFactory );
-    }
-
-    public LocalRepositoryManager newInstance( RepositorySystemSession session, LocalRepository repository )
-        throws NoLocalRepositoryManagerException
-    {
-        if ( "".equals( repository.getContentType() ) || "simple".equals( repository.getContentType() ) )
-        {
-            return new SimpleLocalRepositoryManager( repository.getBasedir() ).setLogger( logger );
-        }
-        else
-        {
-            throw new NoLocalRepositoryManagerException( repository );
-        }
-    }
-
-    public void initService( ServiceLocator locator )
-    {
-        setLoggerFactory( locator.getService( LoggerFactory.class ) );
-    }
-
-    public SimpleLocalRepositoryManagerFactory setLoggerFactory( LoggerFactory loggerFactory )
-    {
-        this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, SimpleLocalRepositoryManager.class );
-        return this;
-    }
-
-    public float getPriority()
-    {
-        return priority;
-    }
-
-    /**
-     * Sets the priority of this component.
-     * 
-     * @param priority The priority.
-     * @return This component for chaining, never {@code null}.
-     */
-    public SimpleLocalRepositoryManagerFactory setPriority( float priority )
-    {
-        this.priority = priority;
-        return this;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
deleted file mode 100644
index 7b33f6e..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
+++ /dev/null
@@ -1,240 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.Closeable;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.channels.FileChannel;
-import java.nio.channels.FileLock;
-import java.nio.channels.OverlappingFileLockException;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.aether.spi.log.Logger;
-import org.eclipse.aether.spi.log.NullLoggerFactory;
-
-/**
- * Manages potentially concurrent accesses to a properties file.
- */
-class TrackingFileManager
-{
-
-    private Logger logger = NullLoggerFactory.LOGGER;
-
-    public TrackingFileManager setLogger( Logger logger )
-    {
-        this.logger = ( logger != null ) ? logger : NullLoggerFactory.LOGGER;
-        return this;
-    }
-
-    public Properties read( File file )
-    {
-        synchronized ( getLock( file ) )
-        {
-            FileLock lock = null;
-            FileInputStream stream = null;
-            try
-            {
-                if ( !file.exists() )
-                {
-                    return null;
-                }
-
-                stream = new FileInputStream( file );
-
-                lock = lock( stream.getChannel(), Math.max( 1, file.length() ), true );
-
-                Properties props = new Properties();
-                props.load( stream );
-
-                return props;
-            }
-            catch ( IOException e )
-            {
-                logger.warn( "Failed to read tracking file " + file, e );
-            }
-            finally
-            {
-                release( lock, file );
-                close( stream, file );
-            }
-        }
-
-        return null;
-    }
-
-    public Properties update( File file, Map<String, String> updates )
-    {
-        Properties props = new Properties();
-
-        synchronized ( getLock( file ) )
-        {
-            File directory = file.getParentFile();
-            if ( !directory.mkdirs() && !directory.exists() )
-            {
-                logger.warn( "Failed to create parent directories for tracking file " + file );
-                return props;
-            }
-
-            RandomAccessFile raf = null;
-            FileLock lock = null;
-            try
-            {
-                raf = new RandomAccessFile( file, "rw" );
-                lock = lock( raf.getChannel(), Math.max( 1, raf.length() ), false );
-
-                if ( file.canRead() )
-                {
-                    byte[] buffer = new byte[(int) raf.length()];
-
-                    raf.readFully( buffer );
-
-                    ByteArrayInputStream stream = new ByteArrayInputStream( buffer );
-
-                    props.load( stream );
-                }
-
-                for ( Map.Entry<String, String> update : updates.entrySet() )
-                {
-                    if ( update.getValue() == null )
-                    {
-                        props.remove( update.getKey() );
-                    }
-                    else
-                    {
-                        props.setProperty( update.getKey(), update.getValue() );
-                    }
-                }
-
-                ByteArrayOutputStream stream = new ByteArrayOutputStream( 1024 * 2 );
-
-                logger.debug( "Writing tracking file " + file );
-                props.store( stream, "NOTE: This is an Aether internal implementation file"
-                    + ", its format can be changed without prior notice." );
-
-                raf.seek( 0 );
-                raf.write( stream.toByteArray() );
-                raf.setLength( raf.getFilePointer() );
-            }
-            catch ( IOException e )
-            {
-                logger.warn( "Failed to write tracking file " + file, e );
-            }
-            finally
-            {
-                release( lock, file );
-                close( raf, file );
-            }
-        }
-
-        return props;
-    }
-
-    private void release( FileLock lock, File file )
-    {
-        if ( lock != null )
-        {
-            try
-            {
-                lock.release();
-            }
-            catch ( IOException e )
-            {
-                logger.warn( "Error releasing lock for tracking file " + file, e );
-            }
-        }
-    }
-
-    private void close( Closeable closeable, File file )
-    {
-        if ( closeable != null )
-        {
-            try
-            {
-                closeable.close();
-            }
-            catch ( IOException e )
-            {
-                logger.warn( "Error closing tracking file " + file, e );
-            }
-        }
-    }
-
-    private Object getLock( File file )
-    {
-        /*
-         * NOTE: Locks held by one JVM must not overlap and using the canonical path is our best bet, still another
-         * piece of code might have locked the same file (unlikely though) or the canonical path fails to capture file
-         * identity sufficiently as is the case with Java 1.6 and symlinks on Windows.
-         */
-        try
-        {
-            return file.getCanonicalPath().intern();
-        }
-        catch ( IOException e )
-        {
-            logger.warn( "Failed to canonicalize path " + file + ": " + e.getMessage() );
-            return file.getAbsolutePath().intern();
-        }
-    }
-
-    private FileLock lock( FileChannel channel, long size, boolean shared )
-        throws IOException
-    {
-        FileLock lock = null;
-
-        for ( int attempts = 8; attempts >= 0; attempts-- )
-        {
-            try
-            {
-                lock = channel.lock( 0, size, shared );
-                break;
-            }
-            catch ( OverlappingFileLockException e )
-            {
-                if ( attempts <= 0 )
-                {
-                    throw (IOException) new IOException().initCause( e );
-                }
-                try
-                {
-                    Thread.sleep( 50 );
-                }
-                catch ( InterruptedException e1 )
-                {
-                    Thread.currentThread().interrupt();
-                }
-            }
-        }
-
-        if ( lock == null )
-        {
-            throw new IOException( "Could not lock file" );
-        }
-
-        return lock;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java
deleted file mode 100644
index deb830d..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.Collection;
-import java.util.List;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.impl.MetadataGenerator;
-import org.eclipse.aether.impl.MetadataGeneratorFactory;
-import org.eclipse.aether.impl.OfflineController;
-import org.eclipse.aether.metadata.Metadata;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.resolution.ResolutionErrorPolicy;
-import org.eclipse.aether.resolution.ResolutionErrorPolicyRequest;
-import org.eclipse.aether.transfer.RepositoryOfflineException;
-
-/**
- * Internal utility methods.
- */
-final class Utils
-{
-
-    public static PrioritizedComponents<MetadataGeneratorFactory> sortMetadataGeneratorFactories( RepositorySystemSession session,
-                                                                                                  Collection<? extends MetadataGeneratorFactory> factories )
-    {
-        PrioritizedComponents<MetadataGeneratorFactory> result =
-            new PrioritizedComponents<MetadataGeneratorFactory>( session );
-        for ( MetadataGeneratorFactory factory : factories )
-        {
-            result.add( factory, factory.getPriority() );
-        }
-        return result;
-    }
-
-    public static List<Metadata> prepareMetadata( List<? extends MetadataGenerator> generators,
-                                                  List<? extends Artifact> artifacts )
-    {
-        List<Metadata> metadatas = new ArrayList<Metadata>();
-
-        for ( MetadataGenerator generator : generators )
-        {
-            metadatas.addAll( generator.prepare( artifacts ) );
-        }
-
-        return metadatas;
-    }
-
-    public static List<Metadata> finishMetadata( List<? extends MetadataGenerator> generators,
-                                                 List<? extends Artifact> artifacts )
-    {
-        List<Metadata> metadatas = new ArrayList<Metadata>();
-
-        for ( MetadataGenerator generator : generators )
-        {
-            metadatas.addAll( generator.finish( artifacts ) );
-        }
-
-        return metadatas;
-    }
-
-    public static <T> List<T> combine( Collection<? extends T> first, Collection<? extends T> second )
-    {
-        List<T> result = new ArrayList<T>( first.size() + second.size() );
-        result.addAll( first );
-        result.addAll( second );
-        return result;
-    }
-
-    public static int getPolicy( RepositorySystemSession session, Artifact artifact, RemoteRepository repository )
-    {
-        ResolutionErrorPolicy rep = session.getResolutionErrorPolicy();
-        if ( rep == null )
-        {
-            return ResolutionErrorPolicy.CACHE_DISABLED;
-        }
-        return rep.getArtifactPolicy( session, new ResolutionErrorPolicyRequest<Artifact>( artifact, repository ) );
-    }
-
-    public static int getPolicy( RepositorySystemSession session, Metadata metadata, RemoteRepository repository )
-    {
-        ResolutionErrorPolicy rep = session.getResolutionErrorPolicy();
-        if ( rep == null )
-        {
-            return ResolutionErrorPolicy.CACHE_DISABLED;
-        }
-        return rep.getMetadataPolicy( session, new ResolutionErrorPolicyRequest<Metadata>( metadata, repository ) );
-    }
-
-    public static void appendClassLoader( StringBuilder buffer, Object component )
-    {
-        ClassLoader loader = component.getClass().getClassLoader();
-        if ( loader != null && !loader.equals( Utils.class.getClassLoader() ) )
-        {
-            buffer.append( " from " ).append( loader );
-        }
-    }
-
-    public static void checkOffline( RepositorySystemSession session, OfflineController offlineController,
-                                     RemoteRepository repository )
-        throws RepositoryOfflineException
-    {
-        if ( session.isOffline() )
-        {
-            offlineController.checkOffline( session, repository );
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-impl/src/main/java/org/eclipse/aether/internal/impl/WarnChecksumPolicy.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/WarnChecksumPolicy.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/WarnChecksumPolicy.java
deleted file mode 100644
index b5e72ec..0000000
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/WarnChecksumPolicy.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.spi.log.LoggerFactory;
-import org.eclipse.aether.transfer.ChecksumFailureException;
-import org.eclipse.aether.transfer.TransferResource;
-
-/**
- * Implements {@link org.eclipse.aether.repository.RepositoryPolicy#CHECKSUM_POLICY_WARN}.
- */
-final class WarnChecksumPolicy
-    extends AbstractChecksumPolicy
-{
-
-    public WarnChecksumPolicy( LoggerFactory loggerFactory, TransferResource resource )
-    {
-        super( loggerFactory, resource );
-    }
-
-    public boolean onTransferChecksumFailure( ChecksumFailureException exception )
-    {
-        String msg =
-            "Could not validate integrity of download from " + resource.getRepositoryUrl() + resource.getResourceName();
-        if ( logger.isDebugEnabled() )
-        {
-            logger.warn( msg, exception );
-        }
-        else
-        {
-            logger.warn( msg + ": " + exception.getMessage() );
-        }
-        return true;
-    }
-
-}