http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
deleted file mode 100644
index bd248a0..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
+++ /dev/null
@@ -1,389 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.Closeable;
-import java.io.File;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.aether.RepositorySystemSession;
-
-/**
- * A glorified map of key value pairs holding (cleartext) authentication data. 
Authentication contexts are used
- * internally when network operations need to access secured repositories or 
proxies. Each authentication context
- * manages the credentials required to access a single host. Unlike {@link 
Authentication} callbacks which exist for a
- * potentially long time like the duration of a repository system session, an 
authentication context has a supposedly
- * short lifetime and should be {@link #close() closed} as soon as the 
corresponding network operation has finished:
- * 
- * <pre>
- * AuthenticationContext context = AuthenticationContext.forRepository( 
session, repository );
- * try {
- *     // get credentials
- *     char[] password = context.get( AuthenticationContext.PASSWORD, 
char[].class );
- *     // perform network operation using retrieved credentials
- *     ...
- * } finally {
- *     // erase confidential authentication data from heap memory
- *     AuthenticationContext.close( context );
- * }
- * </pre>
- * 
- * The same authentication data can often be presented using different data 
types, e.g. a password can be presented
- * using a character array or (less securely) using a string. For ease of use, 
an authentication context treats the
- * following groups of data types as equivalent and converts values 
automatically during retrieval:
- * <ul>
- * <li>{@code String}, {@code char[]}</li>
- * <li>{@code String}, {@code File}</li>
- * </ul>
- * An authentication context is thread-safe.
- */
-public final class AuthenticationContext
-    implements Closeable
-{
-
-    /**
-     * The key used to store the username. The corresponding authentication 
data should be of type {@link String}.
-     */
-    public static final String USERNAME = "username";
-
-    /**
-     * The key used to store the password. The corresponding authentication 
data should be of type {@code char[]} or
-     * {@link String}.
-     */
-    public static final String PASSWORD = "password";
-
-    /**
-     * The key used to store the NTLM domain. The corresponding authentication 
data should be of type {@link String}.
-     */
-    public static final String NTLM_DOMAIN = "ntlm.domain";
-
-    /**
-     * The key used to store the NTML workstation. The corresponding 
authentication data should be of type
-     * {@link String}.
-     */
-    public static final String NTLM_WORKSTATION = "ntlm.workstation";
-
-    /**
-     * The key used to store the pathname to a private key file. The 
corresponding authentication data should be of type
-     * {@link String} or {@link File}.
-     */
-    public static final String PRIVATE_KEY_PATH = "privateKey.path";
-
-    /**
-     * The key used to store the passphrase protecting the private key. The 
corresponding authentication data should be
-     * of type {@code char[]} or {@link String}.
-     */
-    public static final String PRIVATE_KEY_PASSPHRASE = 
"privateKey.passphrase";
-
-    /**
-     * The key used to store the acceptance policy for unknown host keys. The 
corresponding authentication data should
-     * be of type {@link Boolean}. When querying this authentication data, the 
extra data should provide
-     * {@link #HOST_KEY_REMOTE} and {@link #HOST_KEY_LOCAL}, e.g. to enable a 
well-founded decision of the user during
-     * an interactive prompt.
-     */
-    public static final String HOST_KEY_ACCEPTANCE = "hostKey.acceptance";
-
-    /**
-     * The key used to store the fingerprint of the public key advertised by 
remote host. Note that this key is used to
-     * query the extra data passed to {@link #get(String, Map, Class)} when 
getting {@link #HOST_KEY_ACCEPTANCE}, not
-     * the authentication data in a context.
-     */
-    public static final String HOST_KEY_REMOTE = "hostKey.remote";
-
-    /**
-     * The key used to store the fingerprint of the public key expected from 
remote host as recorded in a known hosts
-     * database. Note that this key is used to query the extra data passed to 
{@link #get(String, Map, Class)} when
-     * getting {@link #HOST_KEY_ACCEPTANCE}, not the authentication data in a 
context.
-     */
-    public static final String HOST_KEY_LOCAL = "hostKey.local";
-
-    /**
-     * The key used to store the SSL context. The corresponding authentication 
data should be of type
-     * {@link javax.net.ssl.SSLContext}.
-     */
-    public static final String SSL_CONTEXT = "ssl.context";
-
-    /**
-     * The key used to store the SSL hostname verifier. The corresponding 
authentication data should be of type
-     * {@link javax.net.ssl.HostnameVerifier}.
-     */
-    public static final String SSL_HOSTNAME_VERIFIER = "ssl.hostnameVerifier";
-
-    private final RepositorySystemSession session;
-
-    private final RemoteRepository repository;
-
-    private final Proxy proxy;
-
-    private final Authentication auth;
-
-    private final Map<String, Object> authData;
-
-    private boolean fillingAuthData;
-
-    /**
-     * Gets an authentication context for the specified repository.
-     * 
-     * @param session The repository system session during which the 
repository is accessed, must not be {@code null}.
-     * @param repository The repository for which to create an authentication 
context, must not be {@code null}.
-     * @return An authentication context for the repository or {@code null} if 
no authentication is configured for it.
-     */
-    public static AuthenticationContext forRepository( RepositorySystemSession 
session, RemoteRepository repository )
-    {
-        return newInstance( session, repository, null, 
repository.getAuthentication() );
-    }
-
-    /**
-     * Gets an authentication context for the proxy of the specified 
repository.
-     * 
-     * @param session The repository system session during which the 
repository is accessed, must not be {@code null}.
-     * @param repository The repository for whose proxy to create an 
authentication context, must not be {@code null}.
-     * @return An authentication context for the proxy or {@code null} if no 
proxy is set or no authentication is
-     *         configured for it.
-     */
-    public static AuthenticationContext forProxy( RepositorySystemSession 
session, RemoteRepository repository )
-    {
-        Proxy proxy = repository.getProxy();
-        return newInstance( session, repository, proxy, ( proxy != null ) ? 
proxy.getAuthentication() : null );
-    }
-
-    private static AuthenticationContext newInstance( RepositorySystemSession 
session, RemoteRepository repository,
-                                                      Proxy proxy, 
Authentication auth )
-    {
-        if ( auth == null )
-        {
-            return null;
-        }
-        return new AuthenticationContext( session, repository, proxy, auth );
-    }
-
-    private AuthenticationContext( RepositorySystemSession session, 
RemoteRepository repository, Proxy proxy,
-                                   Authentication auth )
-    {
-        if ( session == null )
-        {
-            throw new IllegalArgumentException( "repository system session 
missing" );
-        }
-        this.session = session;
-        this.repository = repository;
-        this.proxy = proxy;
-        this.auth = auth;
-        authData = new HashMap<String, Object>();
-    }
-
-    /**
-     * Gets the repository system session during which the authentication 
happens.
-     * 
-     * @return The repository system session, never {@code null}.
-     */
-    public RepositorySystemSession getSession()
-    {
-        return session;
-    }
-
-    /**
-     * Gets the repository requiring authentication. If {@link #getProxy()} is 
not {@code null}, the data gathered by
-     * this authentication context does not apply to the repository's host but 
rather the proxy.
-     * 
-     * @return The repository to be contacted, never {@code null}.
-     */
-    public RemoteRepository getRepository()
-    {
-        return repository;
-    }
-
-    /**
-     * Gets the proxy (if any) to be authenticated with.
-     * 
-     * @return The proxy or {@code null} if authenticating directly with the 
repository's host.
-     */
-    public Proxy getProxy()
-    {
-        return proxy;
-    }
-
-    /**
-     * Gets the authentication data for the specified key.
-     * 
-     * @param key The key whose authentication data should be retrieved, must 
not be {@code null}.
-     * @return The requested authentication data or {@code null} if none.
-     */
-    public String get( String key )
-    {
-        return get( key, null, String.class );
-    }
-
-    /**
-     * Gets the authentication data for the specified key.
-     * 
-     * @param <T> The data type of the authentication data.
-     * @param key The key whose authentication data should be retrieved, must 
not be {@code null}.
-     * @param type The expected type of the authentication data, must not be 
{@code null}.
-     * @return The requested authentication data or {@code null} if none or if 
the data doesn't match the expected type.
-     */
-    public <T> T get( String key, Class<T> type )
-    {
-        return get( key, null, type );
-    }
-
-    /**
-     * Gets the authentication data for the specified key.
-     * 
-     * @param <T> The data type of the authentication data.
-     * @param key The key whose authentication data should be retrieved, must 
not be {@code null}.
-     * @param data Any (read-only) extra data in form of key value pairs that 
might be useful when getting the
-     *            authentication data, may be {@code null}.
-     * @param type The expected type of the authentication data, must not be 
{@code null}.
-     * @return The requested authentication data or {@code null} if none or if 
the data doesn't match the expected type.
-     */
-    public <T> T get( String key, Map<String, String> data, Class<T> type )
-    {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "authentication data key 
missing" );
-        }
-        Object value;
-        synchronized ( authData )
-        {
-            value = authData.get( key );
-            if ( value == null && !authData.containsKey( key ) && 
!fillingAuthData )
-            {
-                if ( auth != null )
-                {
-                    try
-                    {
-                        fillingAuthData = true;
-                        auth.fill( this, key, data );
-                    }
-                    finally
-                    {
-                        fillingAuthData = false;
-                    }
-                    value = authData.get( key );
-                }
-                if ( value == null )
-                {
-                    authData.put( key, value );
-                }
-            }
-        }
-
-        return convert( value, type );
-    }
-
-    private <T> T convert( Object value, Class<T> type )
-    {
-        if ( !type.isInstance( value ) )
-        {
-            if ( String.class.equals( type ) )
-            {
-                if ( value instanceof File )
-                {
-                    value = ( (File) value ).getPath();
-                }
-                else if ( value instanceof char[] )
-                {
-                    value = new String( (char[]) value );
-                }
-            }
-            else if ( File.class.equals( type ) )
-            {
-                if ( value instanceof String )
-                {
-                    value = new File( (String) value );
-                }
-            }
-            else if ( char[].class.equals( type ) )
-            {
-                if ( value instanceof String )
-                {
-                    value = ( (String) value ).toCharArray();
-                }
-            }
-        }
-
-        if ( type.isInstance( value ) )
-        {
-            return type.cast( value );
-        }
-
-        return null;
-    }
-
-    /**
-     * Puts the specified authentication data into this context. This method 
should only be called from implementors of
-     * {@link Authentication#fill(AuthenticationContext, String, Map)}. Passed 
in character arrays are not cloned and
-     * become owned by this context, i.e. get erased when the context gets 
closed.
-     * 
-     * @param key The key to associate the authentication data with, must not 
be {@code null}.
-     * @param value The (cleartext) authentication data to store, may be 
{@code null}.
-     */
-    public void put( String key, Object value )
-    {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "authentication data key 
missing" );
-        }
-        synchronized ( authData )
-        {
-            Object oldValue = authData.put( key, value );
-            if ( oldValue instanceof char[] )
-            {
-                Arrays.fill( (char[]) oldValue, '\0' );
-            }
-        }
-    }
-
-    /**
-     * Closes this authentication context and erases sensitive authentication 
data from heap memory. Closing an already
-     * closed context has no effect.
-     */
-    public void close()
-    {
-        synchronized ( authData )
-        {
-            for ( Object value : authData.values() )
-            {
-                if ( value instanceof char[] )
-                {
-                    Arrays.fill( (char[]) value, '\0' );
-                }
-            }
-            authData.clear();
-        }
-    }
-
-    /**
-     * Closes the specified authentication context. This is a convenience 
method doing a {@code null} check before
-     * calling {@link #close()} on the given context.
-     * 
-     * @param context The authentication context to close, may be {@code null}.
-     */
-    public static void close( AuthenticationContext context )
-    {
-        if ( context != null )
-        {
-            context.close();
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
deleted file mode 100644
index 03725b6..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
+++ /dev/null
@@ -1,219 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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;
-
-import org.eclipse.aether.RepositorySystemSession;
-
-/**
- * A helper to calculate a fingerprint/digest for the authentication data of a 
repository/proxy. Such a fingerprint can
- * be used to detect changes in the authentication data across JVM restarts 
without exposing sensitive information.
- */
-public final class AuthenticationDigest
-{
-
-    private final MessageDigest digest;
-
-    private final RepositorySystemSession session;
-
-    private final RemoteRepository repository;
-
-    private final Proxy proxy;
-
-    /**
-     * Gets the fingerprint for the authentication of the specified repository.
-     * 
-     * @param session The repository system session during which the 
fingerprint is requested, must not be {@code null}.
-     * @param repository The repository whose authentication is to be 
fingerprinted, must not be {@code null}.
-     * @return The fingerprint of the repository authentication or an empty 
string if no authentication is configured,
-     *         never {@code null}.
-     */
-    public static String forRepository( RepositorySystemSession session, 
RemoteRepository repository )
-    {
-        String digest = "";
-        Authentication auth = repository.getAuthentication();
-        if ( auth != null )
-        {
-            AuthenticationDigest authDigest = new AuthenticationDigest( 
session, repository, null );
-            auth.digest( authDigest );
-            digest = authDigest.digest();
-        }
-        return digest;
-    }
-
-    /**
-     * Gets the fingerprint for the authentication of the specified 
repository's proxy.
-     * 
-     * @param session The repository system session during which the 
fingerprint is requested, must not be {@code null}.
-     * @param repository The repository whose proxy authentication is to be 
fingerprinted, must not be {@code null}.
-     * @return The fingerprint of the proxy authentication or an empty string 
if no proxy is present or if no proxy
-     *         authentication is configured, never {@code null}.
-     */
-    public static String forProxy( RepositorySystemSession session, 
RemoteRepository repository )
-    {
-        String digest = "";
-        Proxy proxy = repository.getProxy();
-        if ( proxy != null )
-        {
-            Authentication auth = proxy.getAuthentication();
-            if ( auth != null )
-            {
-                AuthenticationDigest authDigest = new AuthenticationDigest( 
session, repository, proxy );
-                auth.digest( authDigest );
-                digest = authDigest.digest();
-            }
-        }
-        return digest;
-    }
-
-    private AuthenticationDigest( RepositorySystemSession session, 
RemoteRepository repository, Proxy proxy )
-    {
-        this.session = session;
-        this.repository = repository;
-        this.proxy = proxy;
-        digest = newDigest();
-    }
-
-    private static MessageDigest newDigest()
-    {
-        try
-        {
-            return MessageDigest.getInstance( "SHA-1" );
-        }
-        catch ( NoSuchAlgorithmException e )
-        {
-            try
-            {
-                return MessageDigest.getInstance( "MD5" );
-            }
-            catch ( NoSuchAlgorithmException ne )
-            {
-                throw new IllegalStateException( ne );
-            }
-        }
-    }
-
-    /**
-     * Gets the repository system session during which the authentication 
fingerprint is calculated.
-     * 
-     * @return The repository system session, never {@code null}.
-     */
-    public RepositorySystemSession getSession()
-    {
-        return session;
-    }
-
-    /**
-     * Gets the repository requiring authentication. If {@link #getProxy()} is 
not {@code null}, the data gathered by
-     * this authentication digest does not apply to the repository's host but 
rather the proxy.
-     * 
-     * @return The repository to be contacted, never {@code null}.
-     */
-    public RemoteRepository getRepository()
-    {
-        return repository;
-    }
-
-    /**
-     * Gets the proxy (if any) to be authenticated with.
-     * 
-     * @return The proxy or {@code null} if authenticating directly with the 
repository's host.
-     */
-    public Proxy getProxy()
-    {
-        return proxy;
-    }
-
-    /**
-     * Updates the digest with the specified strings.
-     * 
-     * @param strings The strings to update the digest with, may be {@code 
null} or contain {@code null} elements.
-     */
-    public void update( String... strings )
-    {
-        if ( strings != null )
-        {
-            for ( String string : strings )
-            {
-                if ( string != null )
-                {
-                    try
-                    {
-                        digest.update( string.getBytes( "UTF-8" ) );
-                    }
-                    catch ( UnsupportedEncodingException e )
-                    {
-                        throw new IllegalStateException( e );
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Updates the digest with the specified characters.
-     * 
-     * @param chars The characters to update the digest with, may be {@code 
null}.
-     */
-    public void update( char... chars )
-    {
-        if ( chars != null )
-        {
-            for ( char c : chars )
-            {
-                digest.update( (byte) ( c >> 8 ) );
-                digest.update( (byte) ( c & 0xFF ) );
-            }
-        }
-    }
-
-    /**
-     * Updates the digest with the specified bytes.
-     * 
-     * @param bytes The bytes to update the digest with, may be {@code null}.
-     */
-    public void update( byte... bytes )
-    {
-        if ( bytes != null )
-        {
-            digest.update( bytes );
-        }
-    }
-
-    private String digest()
-    {
-        byte[] bytes = digest.digest();
-        StringBuilder buffer = new StringBuilder( bytes.length * 2 );
-        for ( byte aByte : bytes )
-        {
-            int b = aByte & 0xFF;
-            if ( b < 0x10 )
-            {
-                buffer.append( '0' );
-            }
-            buffer.append( Integer.toHexString( b ) );
-        }
-        return buffer.toString();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationSelector.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationSelector.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationSelector.java
deleted file mode 100644
index 0637d1c..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/AuthenticationSelector.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.
- */
-
-/**
- * Selects authentication for a given remote repository.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getAuthenticationSelector()
- */
-public interface AuthenticationSelector
-{
-
-    /**
-     * Selects authentication for the specified remote repository.
-     * 
-     * @param repository The repository for which to select authentication, 
must not be {@code null}.
-     * @return The selected authentication or {@code null} if none.
-     */
-    Authentication getAuthentication( RemoteRepository repository );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java
deleted file mode 100644
index 1065779..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.Collection;
-import java.util.Collections;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-
-/**
- * A request to register an artifact within the local repository. Certain 
local repository implementations can refuse to
- * serve physically present artifacts if those haven't been previously 
registered to them.
- * 
- * @see LocalRepositoryManager#add(RepositorySystemSession, 
LocalArtifactRegistration)
- */
-public final class LocalArtifactRegistration
-{
-
-    private Artifact artifact;
-
-    private RemoteRepository repository;
-
-    private Collection<String> contexts = Collections.emptyList();
-
-    /**
-     * Creates an uninitialized registration.
-     */
-    public LocalArtifactRegistration()
-    {
-        // enables default constructor
-    }
-
-    /**
-     * Creates a registration request for the specified (locally installed) 
artifact.
-     * 
-     * @param artifact The artifact to register, may be {@code null}.
-     */
-    public LocalArtifactRegistration( Artifact artifact )
-    {
-        setArtifact( artifact );
-    }
-
-    /**
-     * Creates a registration request for the specified artifact.
-     * 
-     * @param artifact The artifact to register, may be {@code null}.
-     * @param repository The remote repository from which the artifact was 
resolved or {@code null} if the artifact was
-     *            locally installed.
-     * @param contexts The resolution contexts, may be {@code null}.
-     */
-    public LocalArtifactRegistration( Artifact artifact, RemoteRepository 
repository, Collection<String> contexts )
-    {
-        setArtifact( artifact );
-        setRepository( repository );
-        setContexts( contexts );
-    }
-
-    /**
-     * Gets the artifact to register.
-     * 
-     * @return The artifact or {@code null} if not set.
-     */
-    public Artifact getArtifact()
-    {
-        return artifact;
-    }
-
-    /**
-     * Sets the artifact to register.
-     * 
-     * @param artifact The artifact, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public LocalArtifactRegistration setArtifact( Artifact artifact )
-    {
-        this.artifact = artifact;
-        return this;
-    }
-
-    /**
-     * Gets the remote repository from which the artifact was resolved.
-     * 
-     * @return The remote repository or {@code null} if the artifact was 
locally installed.
-     */
-    public RemoteRepository getRepository()
-    {
-        return repository;
-    }
-
-    /**
-     * Sets the remote repository from which the artifact was resolved.
-     * 
-     * @param repository The remote repository or {@code null} if the artifact 
was locally installed.
-     * @return This request for chaining, never {@code null}.
-     */
-    public LocalArtifactRegistration setRepository( RemoteRepository 
repository )
-    {
-        this.repository = repository;
-        return this;
-    }
-
-    /**
-     * Gets the resolution contexts in which the artifact is available.
-     * 
-     * @return The resolution contexts in which the artifact is available, 
never {@code null}.
-     */
-    public Collection<String> getContexts()
-    {
-        return contexts;
-    }
-
-    /**
-     * Sets the resolution contexts in which the artifact is available.
-     * 
-     * @param contexts The resolution contexts, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public LocalArtifactRegistration setContexts( Collection<String> contexts )
-    {
-        if ( contexts != null )
-        {
-            this.contexts = contexts;
-        }
-        else
-        {
-            this.contexts = Collections.emptyList();
-        }
-        return this;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
deleted file mode 100644
index 8f6eabf..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.Collections;
-import java.util.List;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-
-/**
- * A query to the local repository for the existence of an artifact.
- * 
- * @see LocalRepositoryManager#find(RepositorySystemSession, 
LocalArtifactRequest)
- */
-public final class LocalArtifactRequest
-{
-
-    private Artifact artifact;
-
-    private String context = "";
-
-    private List<RemoteRepository> repositories = Collections.emptyList();
-
-    /**
-     * Creates an uninitialized query.
-     */
-    public LocalArtifactRequest()
-    {
-        // enables default constructor
-    }
-
-    /**
-     * Creates a query with the specified properties.
-     * 
-     * @param artifact The artifact to query for, may be {@code null}.
-     * @param repositories The remote repositories that should be considered 
as potential sources for the artifact, may
-     *            be {@code null} or empty to only consider locally installed 
artifacts.
-     * @param context The resolution context for the artifact, may be {@code 
null}.
-     */
-    public LocalArtifactRequest( Artifact artifact, List<RemoteRepository> 
repositories, String context )
-    {
-        setArtifact( artifact );
-        setRepositories( repositories );
-        setContext( context );
-    }
-
-    /**
-     * Gets the artifact to query for.
-     * 
-     * @return The artifact or {@code null} if not set.
-     */
-    public Artifact getArtifact()
-    {
-        return artifact;
-    }
-
-    /**
-     * Sets the artifact to query for.
-     * 
-     * @param artifact The artifact, may be {@code null}.
-     * @return This query for chaining, never {@code null}.
-     */
-    public LocalArtifactRequest setArtifact( Artifact artifact )
-    {
-        this.artifact = artifact;
-        return this;
-    }
-
-    /**
-     * Gets the resolution context.
-     * 
-     * @return The resolution context, never {@code null}.
-     */
-    public String getContext()
-    {
-        return context;
-    }
-
-    /**
-     * Sets the resolution context.
-     * 
-     * @param context The resolution context, may be {@code null}.
-     * @return This query for chaining, never {@code null}.
-     */
-    public LocalArtifactRequest setContext( String context )
-    {
-        this.context = ( context != null ) ? context : "";
-        return this;
-    }
-
-    /**
-     * Gets the remote repositories to consider as sources of the artifact.
-     * 
-     * @return The remote repositories, never {@code null}.
-     */
-    public List<RemoteRepository> getRepositories()
-    {
-        return repositories;
-    }
-
-    /**
-     * Sets the remote repositories to consider as sources of the artifact.
-     * 
-     * @param repositories The remote repositories, may be {@code null} or 
empty to only consider locally installed
-     *            artifacts.
-     * @return This query for chaining, never {@code null}.
-     */
-    public LocalArtifactRequest setRepositories( List<RemoteRepository> 
repositories )
-    {
-        if ( repositories != null )
-        {
-            this.repositories = repositories;
-        }
-        else
-        {
-            this.repositories = Collections.emptyList();
-        }
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getArtifact() + " @ " + getRepositories();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
deleted file mode 100644
index e611b27..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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 org.eclipse.aether.RepositorySystemSession;
-
-/**
- * A result from the local repository about the existence of an artifact.
- * 
- * @see LocalRepositoryManager#find(RepositorySystemSession, 
LocalArtifactRequest)
- */
-public final class LocalArtifactResult
-{
-
-    private final LocalArtifactRequest request;
-
-    private File file;
-
-    private boolean available;
-
-    private RemoteRepository repository;
-
-    /**
-     * Creates a new result for the specified request.
-     * 
-     * @param request The local artifact request, must not be {@code null}.
-     */
-    public LocalArtifactResult( LocalArtifactRequest request )
-    {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "local artifact request has 
not been specified" );
-        }
-        this.request = request;
-    }
-
-    /**
-     * Gets the request corresponding to this result.
-     * 
-     * @return The corresponding request, never {@code null}.
-     */
-    public LocalArtifactRequest getRequest()
-    {
-        return request;
-    }
-
-    /**
-     * Gets the file to the requested artifact. Note that this file must not 
be used unless {@link #isAvailable()}
-     * returns {@code true}. An artifact file can be found but considered 
unavailable if the artifact was cached from a
-     * remote repository that is not part of the list of remote repositories 
used for the query.
-     * 
-     * @return The file to the requested artifact or {@code null} if the 
artifact does not exist locally.
-     */
-    public File getFile()
-    {
-        return file;
-    }
-
-    /**
-     * Sets the file to requested artifact.
-     * 
-     * @param file The artifact file, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public LocalArtifactResult setFile( File file )
-    {
-        this.file = file;
-        return this;
-    }
-
-    /**
-     * Indicates whether the requested artifact is available for use. As a 
minimum, the file needs to be physically
-     * existent in the local repository to be available. Additionally, a local 
repository manager can consider the list
-     * of supplied remote repositories to determine whether the artifact is 
logically available and mark an artifact
-     * unavailable (despite its physical existence) if it is not known to be 
hosted by any of the provided repositories.
-     * 
-     * @return {@code true} if the artifact is available, {@code false} 
otherwise.
-     * @see LocalArtifactRequest#getRepositories()
-     */
-    public boolean isAvailable()
-    {
-        return available;
-    }
-
-    /**
-     * Sets whether the artifact is available.
-     * 
-     * @param available {@code true} if the artifact is available, {@code 
false} otherwise.
-     * @return This result for chaining, never {@code null}.
-     */
-    public LocalArtifactResult setAvailable( boolean available )
-    {
-        this.available = available;
-        return this;
-    }
-
-    /**
-     * Gets the (first) remote repository from which the artifact was cached 
(if any).
-     * 
-     * @return The remote repository from which the artifact was originally 
retrieved or {@code null} if unknown or if
-     *         the artifact has been locally installed.
-     * @see LocalArtifactRequest#getRepositories()
-     */
-    public RemoteRepository getRepository()
-    {
-        return repository;
-    }
-
-    /**
-     * Sets the (first) remote repository from which the artifact was cached.
-     * 
-     * @param repository The remote repository from which the artifact was 
originally retrieved, may be {@code null} if
-     *            unknown or if the artifact has been locally installed.
-     * @return This result for chaining, never {@code null}.
-     */
-    public LocalArtifactResult setRepository( RemoteRepository repository )
-    {
-        this.repository = repository;
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getFile() + " (" + ( isAvailable() ? "available" : 
"unavailable" ) + ")";
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java
deleted file mode 100644
index dd0d587..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.Collection;
-import java.util.Collections;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.metadata.Metadata;
-
-/**
- * A request to register metadata within the local repository.
- * 
- * @see LocalRepositoryManager#add(RepositorySystemSession, 
LocalMetadataRegistration)
- */
-public final class LocalMetadataRegistration
-{
-
-    private Metadata metadata;
-
-    private RemoteRepository repository;
-
-    private Collection<String> contexts = Collections.emptyList();
-
-    /**
-     * Creates an uninitialized registration.
-     */
-    public LocalMetadataRegistration()
-    {
-        // enables default constructor
-    }
-
-    /**
-     * Creates a registration request for the specified metadata accompanying 
a locally installed artifact.
-     * 
-     * @param metadata The metadata to register, may be {@code null}.
-     */
-    public LocalMetadataRegistration( Metadata metadata )
-    {
-        setMetadata( metadata );
-    }
-
-    /**
-     * Creates a registration request for the specified metadata.
-     * 
-     * @param metadata The metadata to register, may be {@code null}.
-     * @param repository The remote repository from which the metadata was 
resolved or {@code null} if the metadata
-     *            accompanies a locally installed artifact.
-     * @param contexts The resolution contexts, may be {@code null}.
-     */
-    public LocalMetadataRegistration( Metadata metadata, RemoteRepository 
repository, Collection<String> contexts )
-    {
-        setMetadata( metadata );
-        setRepository( repository );
-        setContexts( contexts );
-    }
-
-    /**
-     * Gets the metadata to register.
-     * 
-     * @return The metadata or {@code null} if not set.
-     */
-    public Metadata getMetadata()
-    {
-        return metadata;
-    }
-
-    /**
-     * Sets the metadata to register.
-     * 
-     * @param metadata The metadata, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public LocalMetadataRegistration setMetadata( Metadata metadata )
-    {
-        this.metadata = metadata;
-        return this;
-    }
-
-    /**
-     * Gets the remote repository from which the metadata was resolved.
-     * 
-     * @return The remote repository or {@code null} if the metadata was 
locally installed.
-     */
-    public RemoteRepository getRepository()
-    {
-        return repository;
-    }
-
-    /**
-     * Sets the remote repository from which the metadata was resolved.
-     * 
-     * @param repository The remote repository or {@code null} if the metadata 
accompanies a locally installed artifact.
-     * @return This request for chaining, never {@code null}.
-     */
-    public LocalMetadataRegistration setRepository( RemoteRepository 
repository )
-    {
-        this.repository = repository;
-        return this;
-    }
-
-    /**
-     * Gets the resolution contexts in which the metadata is available.
-     * 
-     * @return The resolution contexts in which the metadata is available, 
never {@code null}.
-     */
-    public Collection<String> getContexts()
-    {
-        return contexts;
-    }
-
-    /**
-     * Sets the resolution contexts in which the metadata is available.
-     * 
-     * @param contexts The resolution contexts, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public LocalMetadataRegistration setContexts( Collection<String> contexts )
-    {
-        if ( contexts != null )
-        {
-            this.contexts = contexts;
-        }
-        else
-        {
-            this.contexts = Collections.emptyList();
-        }
-        return this;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
deleted file mode 100644
index 4c8f270..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.metadata.Metadata;
-
-/**
- * A query to the local repository for the existence of metadata.
- * 
- * @see LocalRepositoryManager#find(RepositorySystemSession, 
LocalMetadataRequest)
- */
-public final class LocalMetadataRequest
-{
-
-    private Metadata metadata;
-
-    private String context = "";
-
-    private RemoteRepository repository = null;
-
-    /**
-     * Creates an uninitialized query.
-     */
-    public LocalMetadataRequest()
-    {
-        // enables default constructor
-    }
-
-    /**
-     * Creates a query with the specified properties.
-     * 
-     * @param metadata The metadata to query for, may be {@code null}.
-     * @param repository The source remote repository for the metadata, may be 
{@code null} for local metadata.
-     * @param context The resolution context for the metadata, may be {@code 
null}.
-     */
-    public LocalMetadataRequest( Metadata metadata, RemoteRepository 
repository, String context )
-    {
-        setMetadata( metadata );
-        setRepository( repository );
-        setContext( context );
-    }
-
-    /**
-     * Gets the metadata to query for.
-     * 
-     * @return The metadata or {@code null} if not set.
-     */
-    public Metadata getMetadata()
-    {
-        return metadata;
-    }
-
-    /**
-     * Sets the metadata to query for.
-     * 
-     * @param metadata The metadata, may be {@code null}.
-     * @return This query for chaining, never {@code null}.
-     */
-    public LocalMetadataRequest setMetadata( Metadata metadata )
-    {
-        this.metadata = metadata;
-        return this;
-    }
-
-    /**
-     * Gets the resolution context.
-     * 
-     * @return The resolution context, never {@code null}.
-     */
-    public String getContext()
-    {
-        return context;
-    }
-
-    /**
-     * Sets the resolution context.
-     * 
-     * @param context The resolution context, may be {@code null}.
-     * @return This query for chaining, never {@code null}.
-     */
-    public LocalMetadataRequest setContext( String context )
-    {
-        this.context = ( context != null ) ? context : "";
-        return this;
-    }
-
-    /**
-     * Gets the remote repository to use as source of the metadata.
-     * 
-     * @return The remote repositories, may be {@code null} for local metadata.
-     */
-    public RemoteRepository getRepository()
-    {
-        return repository;
-    }
-
-    /**
-     * Sets the remote repository to use as sources of the metadata.
-     * 
-     * @param repository The remote repository, may be {@code null}.
-     * @return This query for chaining, may be {@code null} for local metadata.
-     */
-    public LocalMetadataRequest setRepository( RemoteRepository repository )
-    {
-        this.repository = repository;
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getMetadata() + " @ " + getRepository();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
deleted file mode 100644
index 29bd045..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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 org.eclipse.aether.RepositorySystemSession;
-
-/**
- * A result from the local repository about the existence of metadata.
- * 
- * @see LocalRepositoryManager#find(RepositorySystemSession, 
LocalMetadataRequest)
- */
-public final class LocalMetadataResult
-{
-
-    private final LocalMetadataRequest request;
-
-    private File file;
-
-    private boolean stale;
-
-    /**
-     * Creates a new result for the specified request.
-     * 
-     * @param request The local metadata request, must not be {@code null}.
-     */
-    public LocalMetadataResult( LocalMetadataRequest request )
-    {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "local metadata request has 
not been specified" );
-        }
-        this.request = request;
-    }
-
-    /**
-     * Gets the request corresponding to this result.
-     * 
-     * @return The corresponding request, never {@code null}.
-     */
-    public LocalMetadataRequest getRequest()
-    {
-        return request;
-    }
-
-    /**
-     * Gets the file to the requested metadata if the metadata is available in 
the local repository.
-     * 
-     * @return The file to the requested metadata or {@code null}.
-     */
-    public File getFile()
-    {
-        return file;
-    }
-
-    /**
-     * Sets the file to requested metadata.
-     * 
-     * @param file The metadata file, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public LocalMetadataResult setFile( File file )
-    {
-        this.file = file;
-        return this;
-    }
-
-    /**
-     * This value indicates whether the metadata is stale and should be 
updated.
-     * 
-     * @return {@code true} if the metadata is stale and should be updated, 
{@code false} otherwise.
-     */
-    public boolean isStale()
-    {
-        return stale;
-    }
-
-    /**
-     * Sets whether the metadata is stale.
-     * 
-     * @param stale {@code true} if the metadata is stale and should be 
updated, {@code false} otherwise.
-     * @return This result for chaining, never {@code null}.
-     */
-    public LocalMetadataResult setStale( boolean stale )
-    {
-        this.stale = stale;
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return request.toString() + "(" + getFile() + ")";
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java
deleted file mode 100644
index 32dce73..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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;
-
-/**
- * A repository on the local file system used to cache contents of remote 
repositories and to store locally installed
- * artifacts. Note that this class merely describes such a repository, actual 
access to the contained artifacts is
- * handled by a {@link LocalRepositoryManager} which is usually determined 
from the {@link #getContentType() type} of
- * the repository.
- */
-public final class LocalRepository
-    implements ArtifactRepository
-{
-
-    private final File basedir;
-
-    private final String type;
-
-    /**
-     * Creates a new local repository with the specified base directory and 
unknown type.
-     * 
-     * @param basedir The base directory of the repository, may be {@code 
null}.
-     */
-    public LocalRepository( String basedir )
-    {
-        this( ( basedir != null ) ? new File( basedir ) : null, "" );
-    }
-
-    /**
-     * Creates a new local repository with the specified base directory and 
unknown type.
-     * 
-     * @param basedir The base directory of the repository, may be {@code 
null}.
-     */
-    public LocalRepository( File basedir )
-    {
-        this( basedir, "" );
-    }
-
-    /**
-     * Creates a new local repository with the specified properties.
-     * 
-     * @param basedir The base directory of the repository, may be {@code 
null}.
-     * @param type The type of the repository, may be {@code null}.
-     */
-    public LocalRepository( File basedir, String type )
-    {
-        this.basedir = basedir;
-        this.type = ( type != null ) ? type : "";
-    }
-
-    public String getContentType()
-    {
-        return type;
-    }
-
-    public String getId()
-    {
-        return "local";
-    }
-
-    /**
-     * Gets the base directory of the repository.
-     * 
-     * @return The base directory or {@code null} if none.
-     */
-    public File getBasedir()
-    {
-        return basedir;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getBasedir() + " (" + getContentType() + ")";
-    }
-
-    @Override
-    public boolean equals( Object obj )
-    {
-        if ( this == obj )
-        {
-            return true;
-        }
-        if ( obj == null || !getClass().equals( obj.getClass() ) )
-        {
-            return false;
-        }
-
-        LocalRepository that = (LocalRepository) obj;
-
-        return eq( basedir, that.basedir ) && eq( type, that.type );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int hash = 17;
-        hash = hash * 31 + hash( basedir );
-        hash = hash * 31 + hash( type );
-        return hash;
-    }
-
-    private static int hash( Object obj )
-    {
-        return obj != null ? obj.hashCode() : 0;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepositoryManager.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepositoryManager.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepositoryManager.java
deleted file mode 100644
index 649707c..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/LocalRepositoryManager.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.artifact.Artifact;
-import org.eclipse.aether.metadata.Metadata;
-
-/**
- * Manages access to a local repository.
- * 
- * @see RepositorySystemSession#getLocalRepositoryManager()
- * @see 
org.eclipse.aether.RepositorySystem#newLocalRepositoryManager(RepositorySystemSession,
 LocalRepository)
- */
-public interface LocalRepositoryManager
-{
-
-    /**
-     * Gets the description of the local repository being managed.
-     * 
-     * @return The description of the local repository, never {@code null}.
-     */
-    LocalRepository getRepository();
-
-    /**
-     * Gets the relative path for a locally installed artifact. Note that the 
artifact need not actually exist yet at
-     * the returned location, the path merely indicates where the artifact 
would eventually be stored. The path uses the
-     * forward slash as directory separator regardless of the underlying file 
system.
-     * 
-     * @param artifact The artifact for which to determine the path, must not 
be {@code null}.
-     * @return The path, relative to the local repository's base directory.
-     */
-    String getPathForLocalArtifact( Artifact artifact );
-
-    /**
-     * Gets the relative path for an artifact cached from a remote repository. 
Note that the artifact need not actually
-     * exist yet at the returned location, the path merely indicates where the 
artifact would eventually be stored. The
-     * path uses the forward slash as directory separator regardless of the 
underlying file system.
-     * 
-     * @param artifact The artifact for which to determine the path, must not 
be {@code null}.
-     * @param repository The source repository of the artifact, must not be 
{@code null}.
-     * @param context The resolution context in which the artifact is being 
requested, may be {@code null}.
-     * @return The path, relative to the local repository's base directory.
-     */
-    String getPathForRemoteArtifact( Artifact artifact, RemoteRepository 
repository, String context );
-
-    /**
-     * Gets the relative path for locally installed metadata. Note that the 
metadata need not actually exist yet at the
-     * returned location, the path merely indicates where the metadata would 
eventually be stored. The path uses the
-     * forward slash as directory separator regardless of the underlying file 
system.
-     * 
-     * @param metadata The metadata for which to determine the path, must not 
be {@code null}.
-     * @return The path, relative to the local repository's base directory.
-     */
-    String getPathForLocalMetadata( Metadata metadata );
-
-    /**
-     * Gets the relative path for metadata cached from a remote repository. 
Note that the metadata need not actually
-     * exist yet at the returned location, the path merely indicates where the 
metadata would eventually be stored. The
-     * path uses the forward slash as directory separator regardless of the 
underlying file system.
-     * 
-     * @param metadata The metadata for which to determine the path, must not 
be {@code null}.
-     * @param repository The source repository of the metadata, must not be 
{@code null}.
-     * @param context The resolution context in which the metadata is being 
requested, may be {@code null}.
-     * @return The path, relative to the local repository's base directory.
-     */
-    String getPathForRemoteMetadata( Metadata metadata, RemoteRepository 
repository, String context );
-
-    /**
-     * Queries for the existence of an artifact in the local repository. The 
request could be satisfied by a locally
-     * installed artifact or a previously downloaded artifact.
-     * 
-     * @param session The repository system session during which the request 
is made, must not be {@code null}.
-     * @param request The artifact request, must not be {@code null}.
-     * @return The result of the request, never {@code null}.
-     */
-    LocalArtifactResult find( RepositorySystemSession session, 
LocalArtifactRequest request );
-
-    /**
-     * Registers an installed or resolved artifact with the local repository. 
Note that artifact registration is merely
-     * concerned about updating the local repository's internal state, not 
about actually installing the artifact or its
-     * accompanying metadata.
-     * 
-     * @param session The repository system session during which the 
registration is made, must not be {@code null}.
-     * @param request The registration request, must not be {@code null}.
-     */
-    void add( RepositorySystemSession session, LocalArtifactRegistration 
request );
-
-    /**
-     * Queries for the existence of metadata in the local repository. The 
request could be satisfied by locally
-     * installed or previously downloaded metadata.
-     * 
-     * @param session The repository system session during which the request 
is made, must not be {@code null}.
-     * @param request The metadata request, must not be {@code null}.
-     * @return The result of the request, never {@code null}.
-     */
-    LocalMetadataResult find( RepositorySystemSession session, 
LocalMetadataRequest request );
-
-    /**
-     * Registers installed or resolved metadata with the local repository. 
Note that metadata registration is merely
-     * concerned about updating the local repository's internal state, not 
about actually installing the metadata.
-     * However, this method MUST be called after the actual install to give 
the repository manager the opportunity to
-     * inspect the added metadata.
-     * 
-     * @param session The repository system session during which the 
registration is made, must not be {@code null}.
-     * @param request The registration request, must not be {@code null}.
-     */
-    void add( RepositorySystemSession session, LocalMetadataRegistration 
request );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/MirrorSelector.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/MirrorSelector.java 
b/aether-api/src/main/java/org/eclipse/aether/repository/MirrorSelector.java
deleted file mode 100644
index d50262c..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/repository/MirrorSelector.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.
- */
-
-/**
- * Selects a mirror for a given remote repository.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getMirrorSelector()
- */
-public interface MirrorSelector
-{
-
-    /**
-     * Selects a mirror for the specified repository.
-     * 
-     * @param repository The repository to select a mirror for, must not be 
{@code null}.
-     * @return The selected mirror or {@code null} if none.
-     * @see RemoteRepository#getMirroredRepositories()
-     */
-    RemoteRepository getMirror( RemoteRepository repository );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/NoLocalRepositoryManagerException.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/NoLocalRepositoryManagerException.java
 
b/aether-api/src/main/java/org/eclipse/aether/repository/NoLocalRepositoryManagerException.java
deleted file mode 100644
index c804821..0000000
--- 
a/aether-api/src/main/java/org/eclipse/aether/repository/NoLocalRepositoryManagerException.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.RepositoryException;
-
-/**
- * Thrown in case of an unsupported local repository type.
- */
-public class NoLocalRepositoryManagerException
-    extends RepositoryException
-{
-
-    private final transient LocalRepository repository;
-
-    /**
-     * Creates a new exception with the specified repository.
-     * 
-     * @param repository The local repository for which no support is 
available, may be {@code null}.
-     */
-    public NoLocalRepositoryManagerException( LocalRepository repository )
-    {
-        this( repository, toMessage( repository ) );
-    }
-
-    /**
-     * Creates a new exception with the specified repository and detail 
message.
-     * 
-     * @param repository The local repository for which no support is 
available, may be {@code null}.
-     * @param message The detail message, may be {@code null}.
-     */
-    public NoLocalRepositoryManagerException( LocalRepository repository, 
String message )
-    {
-        super( message );
-        this.repository = repository;
-    }
-
-    /**
-     * Creates a new exception with the specified repository and cause.
-     * 
-     * @param repository The local repository for which no support is 
available, may be {@code null}.
-     * @param cause The exception that caused this one, may be {@code null}.
-     */
-    public NoLocalRepositoryManagerException( LocalRepository repository, 
Throwable cause )
-    {
-        this( repository, toMessage( repository ), cause );
-    }
-
-    /**
-     * Creates a new exception with the specified repository, detail message 
and cause.
-     * 
-     * @param repository The local repository for which no support is 
available, may be {@code null}.
-     * @param message The detail message, may be {@code null}.
-     * @param cause The exception that caused this one, may be {@code null}.
-     */
-    public NoLocalRepositoryManagerException( LocalRepository repository, 
String message, Throwable cause )
-    {
-        super( message, cause );
-        this.repository = repository;
-    }
-
-    private static String toMessage( LocalRepository repository )
-    {
-        if ( repository != null )
-        {
-            return "No manager available for local repository (" + 
repository.getBasedir().getAbsolutePath()
-                + ") of type " + repository.getContentType();
-        }
-        else
-        {
-            return "No manager available for local repository";
-        }
-    }
-
-    /**
-     * Gets the local repository whose content type is not supported.
-     * 
-     * @return The unsupported local repository or {@code null} if unknown.
-     */
-    public LocalRepository getRepository()
-    {
-        return repository;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/Proxy.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/repository/Proxy.java 
b/aether-api/src/main/java/org/eclipse/aether/repository/Proxy.java
deleted file mode 100644
index 8e8cba1..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/repository/Proxy.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.
- */
-
-/**
- * A proxy to use for connections to a repository.
- */
-public final class Proxy
-{
-
-    /**
-     * Type denoting a proxy for HTTP transfers.
-     */
-    public static final String TYPE_HTTP = "http";
-
-    /**
-     * Type denoting a proxy for HTTPS transfers.
-     */
-    public static final String TYPE_HTTPS = "https";
-
-    private final String type;
-
-    private final String host;
-
-    private final int port;
-
-    private final Authentication auth;
-
-    /**
-     * Creates a new proxy with the specified properties and no authentication.
-     * 
-     * @param type The type of the proxy, e.g. "http", may be {@code null}.
-     * @param host The host of the proxy, may be {@code null}.
-     * @param port The port of the proxy.
-     */
-    public Proxy( String type, String host, int port )
-    {
-        this( type, host, port, null );
-    }
-
-    /**
-     * Creates a new proxy with the specified properties.
-     * 
-     * @param type The type of the proxy, e.g. "http", may be {@code null}.
-     * @param host The host of the proxy, may be {@code null}.
-     * @param port The port of the proxy.
-     * @param auth The authentication to use for the proxy connection, may be 
{@code null}.
-     */
-    public Proxy( String type, String host, int port, Authentication auth )
-    {
-        this.type = ( type != null ) ? type : "";
-        this.host = ( host != null ) ? host : "";
-        this.port = port;
-        this.auth = auth;
-    }
-
-    /**
-     * Gets the type of this proxy.
-     * 
-     * @return The type of this proxy, never {@code null}.
-     */
-    public String getType()
-    {
-        return type;
-    }
-
-    /**
-     * Gets the host for this proxy.
-     * 
-     * @return The host for this proxy, never {@code null}.
-     */
-    public String getHost()
-    {
-        return host;
-    }
-
-    /**
-     * Gets the port number for this proxy.
-     * 
-     * @return The port number for this proxy.
-     */
-    public int getPort()
-    {
-        return port;
-    }
-
-    /**
-     * Gets the authentication to use for the proxy connection.
-     * 
-     * @return The authentication to use or {@code null} if none.
-     */
-    public Authentication getAuthentication()
-    {
-        return auth;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getHost() + ':' + getPort();
-    }
-
-    @Override
-    public boolean equals( Object obj )
-    {
-        if ( this == obj )
-        {
-            return true;
-        }
-        if ( obj == null || !getClass().equals( obj.getClass() ) )
-        {
-            return false;
-        }
-
-        Proxy that = (Proxy) obj;
-
-        return eq( type, that.type ) && eq( host, that.host ) && port == 
that.port && eq( auth, that.auth );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int hash = 17;
-        hash = hash * 31 + hash( host );
-        hash = hash * 31 + hash( type );
-        hash = hash * 31 + port;
-        hash = hash * 31 + hash( auth );
-        return hash;
-    }
-
-    private static int hash( Object obj )
-    {
-        return obj != null ? obj.hashCode() : 0;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/ProxySelector.java
----------------------------------------------------------------------
diff --git 
a/aether-api/src/main/java/org/eclipse/aether/repository/ProxySelector.java 
b/aether-api/src/main/java/org/eclipse/aether/repository/ProxySelector.java
deleted file mode 100644
index 29b9e4e..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/repository/ProxySelector.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.aether.repository;
-
-/*
- * 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.
- */
-
-/**
- * Selects a proxy for a given remote repository.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getProxySelector()
- */
-public interface ProxySelector
-{
-
-    /**
-     * Selects a proxy for the specified remote repository.
-     * 
-     * @param repository The repository for which to select a proxy, must not 
be {@code null}.
-     * @return The selected proxy or {@code null} if none.
-     */
-    Proxy getProxy( RemoteRepository repository );
-
-}

Reply via email to