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:22 UTC

[48/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-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java b/aether-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
deleted file mode 100644
index d9c2527..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
+++ /dev/null
@@ -1,356 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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 org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.RequestTrace;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.repository.RemoteRepository;
-
-/**
- * A request to collect the transitive dependencies and to build a dependency graph from them. There are three ways to
- * create a dependency graph. First, only the root dependency can be given. Second, a root dependency and direct
- * dependencies can be specified in which case the specified direct dependencies are merged with the direct dependencies
- * retrieved from the artifact descriptor of the root dependency. And last, only direct dependencies can be specified in
- * which case the root node of the resulting graph has no associated dependency.
- * 
- * @see RepositorySystem#collectDependencies(RepositorySystemSession, CollectRequest)
- */
-public final class CollectRequest
-{
-
-    private Artifact rootArtifact;
-
-    private Dependency root;
-
-    private List<Dependency> dependencies = Collections.emptyList();
-
-    private List<Dependency> managedDependencies = Collections.emptyList();
-
-    private List<RemoteRepository> repositories = Collections.emptyList();
-
-    private String context = "";
-
-    private RequestTrace trace;
-
-    /**
-     * Creates an uninitialized request.
-     */
-    public CollectRequest()
-    {
-        // enables default constructor
-    }
-
-    /**
-     * Creates a request with the specified properties.
-     * 
-     * @param root The root dependency whose transitive dependencies should be collected, may be {@code null}.
-     * @param repositories The repositories to use for the collection, may be {@code null}.
-     */
-    public CollectRequest( Dependency root, List<RemoteRepository> repositories )
-    {
-        setRoot( root );
-        setRepositories( repositories );
-    }
-
-    /**
-     * Creates a new request with the specified properties.
-     * 
-     * @param root The root dependency whose transitive dependencies should be collected, may be {@code null}.
-     * @param dependencies The direct dependencies to merge with the direct dependencies from the root dependency's
-     *            artifact descriptor.
-     * @param repositories The repositories to use for the collection, may be {@code null}.
-     */
-    public CollectRequest( Dependency root, List<Dependency> dependencies, List<RemoteRepository> repositories )
-    {
-        setRoot( root );
-        setDependencies( dependencies );
-        setRepositories( repositories );
-    }
-
-    /**
-     * Creates a new request with the specified properties.
-     * 
-     * @param dependencies The direct dependencies of some imaginary root, may be {@code null}.
-     * @param managedDependencies The dependency management information to apply to the transitive dependencies, may be
-     *            {@code null}.
-     * @param repositories The repositories to use for the collection, may be {@code null}.
-     */
-    public CollectRequest( List<Dependency> dependencies, List<Dependency> managedDependencies,
-                           List<RemoteRepository> repositories )
-    {
-        setDependencies( dependencies );
-        setManagedDependencies( managedDependencies );
-        setRepositories( repositories );
-    }
-
-    /**
-     * Gets the root artifact for the dependency graph.
-     * 
-     * @return The root artifact for the dependency graph or {@code null} if none.
-     */
-    public Artifact getRootArtifact()
-    {
-        return rootArtifact;
-    }
-
-    /**
-     * Sets the root artifact for the dependency graph. This must not be confused with {@link #setRoot(Dependency)}: The
-     * root <em>dependency</em>, like any other specified dependency, will be subject to dependency
-     * collection/resolution, i.e. should have an artifact descriptor and a corresponding artifact file. The root
-     * <em>artifact</em> on the other hand is only used as a label for the root node of the graph in case no root
-     * dependency was specified. As such, the configured root artifact is ignored if {@link #getRoot()} does not return
-     * {@code null}.
-     * 
-     * @param rootArtifact The root artifact for the dependency graph, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest setRootArtifact( Artifact rootArtifact )
-    {
-        this.rootArtifact = rootArtifact;
-        return this;
-    }
-
-    /**
-     * Gets the root dependency of the graph.
-     * 
-     * @return The root dependency of the graph or {@code null} if none.
-     */
-    public Dependency getRoot()
-    {
-        return root;
-    }
-
-    /**
-     * Sets the root dependency of the graph.
-     * 
-     * @param root The root dependency of the graph, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest setRoot( Dependency root )
-    {
-        this.root = root;
-        return this;
-    }
-
-    /**
-     * Gets the direct dependencies.
-     * 
-     * @return The direct dependencies, never {@code null}.
-     */
-    public List<Dependency> getDependencies()
-    {
-        return dependencies;
-    }
-
-    /**
-     * Sets the direct dependencies. If both a root dependency and direct dependencies are given in the request, the
-     * direct dependencies from the request will be merged with the direct dependencies from the root dependency's
-     * artifact descriptor, giving higher priority to the dependencies from the request.
-     * 
-     * @param dependencies The direct dependencies, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest setDependencies( List<Dependency> dependencies )
-    {
-        if ( dependencies == null )
-        {
-            this.dependencies = Collections.emptyList();
-        }
-        else
-        {
-            this.dependencies = dependencies;
-        }
-        return this;
-    }
-
-    /**
-     * Adds the specified direct dependency.
-     * 
-     * @param dependency The dependency to add, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest addDependency( Dependency dependency )
-    {
-        if ( dependency != null )
-        {
-            if ( this.dependencies.isEmpty() )
-            {
-                this.dependencies = new ArrayList<Dependency>();
-            }
-            this.dependencies.add( dependency );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the dependency management to apply to transitive dependencies.
-     * 
-     * @return The dependency management to apply to transitive dependencies, never {@code null}.
-     */
-    public List<Dependency> getManagedDependencies()
-    {
-        return managedDependencies;
-    }
-
-    /**
-     * Sets the dependency management to apply to transitive dependencies. To clarify, this management does not apply to
-     * the direct dependencies of the root node.
-     * 
-     * @param managedDependencies The dependency management, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest setManagedDependencies( List<Dependency> managedDependencies )
-    {
-        if ( managedDependencies == null )
-        {
-            this.managedDependencies = Collections.emptyList();
-        }
-        else
-        {
-            this.managedDependencies = managedDependencies;
-        }
-        return this;
-    }
-
-    /**
-     * Adds the specified managed dependency.
-     * 
-     * @param managedDependency The managed dependency to add, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest addManagedDependency( Dependency managedDependency )
-    {
-        if ( managedDependency != null )
-        {
-            if ( this.managedDependencies.isEmpty() )
-            {
-                this.managedDependencies = new ArrayList<Dependency>();
-            }
-            this.managedDependencies.add( managedDependency );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the repositories to use for the collection.
-     * 
-     * @return The repositories to use for the collection, never {@code null}.
-     */
-    public List<RemoteRepository> getRepositories()
-    {
-        return repositories;
-    }
-
-    /**
-     * Sets the repositories to use for the collection.
-     * 
-     * @param repositories The repositories to use for the collection, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest setRepositories( List<RemoteRepository> repositories )
-    {
-        if ( repositories == null )
-        {
-            this.repositories = Collections.emptyList();
-        }
-        else
-        {
-            this.repositories = repositories;
-        }
-        return this;
-    }
-
-    /**
-     * Adds the specified repository for collection.
-     * 
-     * @param repository The repository to collect dependency information from, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest addRepository( RemoteRepository repository )
-    {
-        if ( repository != null )
-        {
-            if ( this.repositories.isEmpty() )
-            {
-                this.repositories = new ArrayList<RemoteRepository>();
-            }
-            this.repositories.add( repository );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the context in which this request is made.
-     * 
-     * @return The context, never {@code null}.
-     */
-    public String getRequestContext()
-    {
-        return context;
-    }
-
-    /**
-     * Sets the context in which this request is made.
-     * 
-     * @param context The context, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest setRequestContext( String context )
-    {
-        this.context = ( context != null ) ? context : "";
-        return this;
-    }
-
-    /**
-     * Gets the trace information that describes the higher level request/operation in which this request is issued.
-     * 
-     * @return The trace information about the higher level operation or {@code null} if none.
-     */
-    public RequestTrace getTrace()
-    {
-        return trace;
-    }
-
-    /**
-     * Sets the trace information that describes the higher level request/operation in which this request is issued.
-     * 
-     * @param trace The trace information about the higher level operation, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public CollectRequest setTrace( RequestTrace trace )
-    {
-        this.trace = trace;
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getRoot() + " -> " + getDependencies() + " < " + getRepositories();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/CollectResult.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/CollectResult.java b/aether-api/src/main/java/org/eclipse/aether/collection/CollectResult.java
deleted file mode 100644
index dd9f02e..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/CollectResult.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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 org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.graph.DependencyCycle;
-import org.eclipse.aether.graph.DependencyNode;
-
-/**
- * The result of a dependency collection request.
- * 
- * @see RepositorySystem#collectDependencies(RepositorySystemSession, CollectRequest)
- */
-public final class CollectResult
-{
-
-    private final CollectRequest request;
-
-    private List<Exception> exceptions;
-
-    private List<DependencyCycle> cycles;
-
-    private DependencyNode root;
-
-    /**
-     * Creates a new result for the specified request.
-     * 
-     * @param request The resolution request, must not be {@code null}.
-     */
-    public CollectResult( CollectRequest request )
-    {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "dependency collection request has not been specified" );
-        }
-        this.request = request;
-        exceptions = Collections.emptyList();
-        cycles = Collections.emptyList();
-    }
-
-    /**
-     * Gets the collection request that was made.
-     * 
-     * @return The collection request, never {@code null}.
-     */
-    public CollectRequest getRequest()
-    {
-        return request;
-    }
-
-    /**
-     * Gets the exceptions that occurred while building the dependency graph.
-     * 
-     * @return The exceptions that occurred, never {@code null}.
-     */
-    public List<Exception> getExceptions()
-    {
-        return exceptions;
-    }
-
-    /**
-     * Records the specified exception while building the dependency graph.
-     * 
-     * @param exception The exception to record, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public CollectResult addException( Exception exception )
-    {
-        if ( exception != null )
-        {
-            if ( exceptions.isEmpty() )
-            {
-                exceptions = new ArrayList<Exception>();
-            }
-            exceptions.add( exception );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the dependency cycles that were encountered while building the dependency graph.
-     * 
-     * @return The dependency cycles in the (raw) graph, never {@code null}.
-     */
-    public List<DependencyCycle> getCycles()
-    {
-        return cycles;
-    }
-
-    /**
-     * Records the specified dependency cycle.
-     * 
-     * @param cycle The dependency cycle to record, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public CollectResult addCycle( DependencyCycle cycle )
-    {
-        if ( cycle != null )
-        {
-            if ( cycles.isEmpty() )
-            {
-                cycles = new ArrayList<DependencyCycle>();
-            }
-            cycles.add( cycle );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the root node of the dependency graph.
-     * 
-     * @return The root node of the dependency graph or {@code null} if none.
-     */
-    public DependencyNode getRoot()
-    {
-        return root;
-    }
-
-    /**
-     * Sets the root node of the dependency graph.
-     * 
-     * @param root The root node of the dependency graph, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public CollectResult setRoot( DependencyNode root )
-    {
-        this.root = root;
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return String.valueOf( getRoot() );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionContext.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionContext.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionContext.java
deleted file mode 100644
index 671bd2a..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionContext.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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.List;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.graph.Dependency;
-
-/**
- * A context used during dependency collection to update the dependency manager, selector and traverser.
- * 
- * @see DependencyManager#deriveChildManager(DependencyCollectionContext)
- * @see DependencyTraverser#deriveChildTraverser(DependencyCollectionContext)
- * @see DependencySelector#deriveChildSelector(DependencyCollectionContext)
- * @see VersionFilter#deriveChildFilter(DependencyCollectionContext)
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface DependencyCollectionContext
-{
-
-    /**
-     * Gets the repository system session during which the dependency collection happens.
-     * 
-     * @return The repository system session, never {@code null}.
-     */
-    RepositorySystemSession getSession();
-
-    /**
-     * Gets the artifact whose children are to be processed next during dependency collection. For all nodes but the
-     * root, this is simply shorthand for {@code getDependency().getArtifact()}. In case of the root node however,
-     * {@link #getDependency()} might be {@code null} while the node still has an artifact which serves as its label and
-     * is not to be resolved.
-     * 
-     * @return The artifact whose children are going to be processed or {@code null} in case of the root node without
-     *         dependency and label.
-     */
-    Artifact getArtifact();
-
-    /**
-     * Gets the dependency whose children are to be processed next during dependency collection.
-     * 
-     * @return The dependency whose children are going to be processed or {@code null} in case of the root node without
-     *         dependency.
-     */
-    Dependency getDependency();
-
-    /**
-     * Gets the dependency management information that was contributed by the artifact descriptor of the current
-     * dependency.
-     * 
-     * @return The dependency management information, never {@code null}.
-     */
-    List<Dependency> getManagedDependencies();
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionException.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionException.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionException.java
deleted file mode 100644
index 8a04d79..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyCollectionException.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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 bad artifact descriptors, version ranges or other issues encountered during calculation of the
- * dependency graph.
- */
-public class DependencyCollectionException
-    extends RepositoryException
-{
-
-    private final transient CollectResult result;
-
-    /**
-     * Creates a new exception with the specified result.
-     * 
-     * @param result The collection result at the point the exception occurred, may be {@code null}.
-     */
-    public DependencyCollectionException( CollectResult result )
-    {
-        super( "Failed to collect dependencies for " + getSource( result ), getCause( result ) );
-        this.result = result;
-    }
-
-    /**
-     * Creates a new exception with the specified result and detail message.
-     * 
-     * @param result The collection result at the point the exception occurred, may be {@code null}.
-     * @param message The detail message, may be {@code null}.
-     */
-    public DependencyCollectionException( CollectResult result, String message )
-    {
-        super( message, getCause( result ) );
-        this.result = result;
-    }
-
-    /**
-     * Creates a new exception with the specified result, detail message and cause.
-     * 
-     * @param result The collection result at the point the exception occurred, 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 DependencyCollectionException( CollectResult result, String message, Throwable cause )
-    {
-        super( message, cause );
-        this.result = result;
-    }
-
-    /**
-     * Gets the collection result at the point the exception occurred. Despite being incomplete, callers might want to
-     * use this result to fail gracefully and continue their operation with whatever interim data has been gathered.
-     * 
-     * @return The collection result or {@code null} if unknown.
-     */
-    public CollectResult getResult()
-    {
-        return result;
-    }
-
-    private static String getSource( CollectResult result )
-    {
-        if ( result == null )
-        {
-            return "";
-        }
-
-        CollectRequest request = result.getRequest();
-        if ( request.getRoot() != null )
-        {
-            return request.getRoot().toString();
-        }
-        if ( request.getRootArtifact() != null )
-        {
-            return request.getRootArtifact().toString();
-        }
-
-        return request.getDependencies().toString();
-    }
-
-    private static Throwable getCause( CollectResult result )
-    {
-        Throwable cause = null;
-        if ( result != null && !result.getExceptions().isEmpty() )
-        {
-            cause = result.getExceptions().get( 0 );
-        }
-        return cause;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformationContext.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformationContext.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformationContext.java
deleted file mode 100644
index ba66474..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformationContext.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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;
-
-/**
- * A context used during dependency collection to exchange information within a chain of dependency graph transformers.
- * 
- * @see DependencyGraphTransformer
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface DependencyGraphTransformationContext
-{
-
-    /**
-     * Gets the repository system session during which the graph transformation happens.
-     * 
-     * @return The repository system session, never {@code null}.
-     */
-    RepositorySystemSession getSession();
-
-    /**
-     * Gets a keyed value from the context.
-     * 
-     * @param key The key used to query the value, must not be {@code null}.
-     * @return The queried value or {@code null} if none.
-     */
-    Object get( Object key );
-
-    /**
-     * Puts a keyed value into the context.
-     * 
-     * @param key The key used to store the value, must not be {@code null}.
-     * @param value The value to store, may be {@code null} to remove the mapping.
-     * @return The previous value associated with the key or {@code null} if none.
-     */
-    Object put( Object key, Object value );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java
deleted file mode 100644
index c472500..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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;
-import org.eclipse.aether.graph.DependencyNode;
-
-/**
- * Transforms a given dependency graph.
- * <p>
- * <strong>Note:</strong> Implementations must be stateless.
- * <p>
- * <em>Warning:</em> Dependency graphs may generally contain cycles. As such a graph transformer that cannot assume for
- * sure that cycles have already been eliminated must gracefully handle cyclic graphs, e.g. guard against infinite
- * recursion.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getDependencyGraphTransformer()
- */
-public interface DependencyGraphTransformer
-{
-
-    /**
-     * Transforms the dependency graph denoted by the specified root node. The transformer may directly change the
-     * provided input graph or create a new graph, the former is recommended for performance reasons.
-     * 
-     * @param node The root node of the (possibly cyclic!) graph to transform, must not be {@code null}.
-     * @param context The graph transformation context, must not be {@code null}.
-     * @return The result graph of the transformation, never {@code null}.
-     * @throws RepositoryException If the transformation failed.
-     */
-    DependencyNode transformGraph( DependencyNode node, DependencyGraphTransformationContext context )
-        throws RepositoryException;
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java
deleted file mode 100644
index 054bfe0..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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.Map;
-
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.graph.Exclusion;
-
-/**
- * The management updates to apply to a dependency.
- * 
- * @see DependencyManager#manageDependency(Dependency)
- */
-public final class DependencyManagement
-{
-
-    private String version;
-
-    private String scope;
-
-    private Boolean optional;
-
-    private Collection<Exclusion> exclusions;
-
-    private Map<String, String> properties;
-
-    /**
-     * Creates an empty management update.
-     */
-    public DependencyManagement()
-    {
-        // enables default constructor
-    }
-
-    /**
-     * Gets the new version to apply to the dependency.
-     * 
-     * @return The new version or {@code null} if the version is not managed and the existing dependency version should
-     *         remain unchanged.
-     */
-    public String getVersion()
-    {
-        return version;
-    }
-
-    /**
-     * Sets the new version to apply to the dependency.
-     * 
-     * @param version The new version, may be {@code null} if the version is not managed.
-     * @return This management update for chaining, never {@code null}.
-     */
-    public DependencyManagement setVersion( String version )
-    {
-        this.version = version;
-        return this;
-    }
-
-    /**
-     * Gets the new scope to apply to the dependency.
-     * 
-     * @return The new scope or {@code null} if the scope is not managed and the existing dependency scope should remain
-     *         unchanged.
-     */
-    public String getScope()
-    {
-        return scope;
-    }
-
-    /**
-     * Sets the new scope to apply to the dependency.
-     * 
-     * @param scope The new scope, may be {@code null} if the scope is not managed.
-     * @return This management update for chaining, never {@code null}.
-     */
-    public DependencyManagement setScope( String scope )
-    {
-        this.scope = scope;
-        return this;
-    }
-
-    /**
-     * Gets the new optional flag to apply to the dependency.
-     * 
-     * @return The new optional flag or {@code null} if the flag is not managed and the existing optional flag of the
-     *         dependency should remain unchanged.
-     */
-    public Boolean getOptional()
-    {
-        return optional;
-    }
-
-    /**
-     * Sets the new optional flag to apply to the dependency.
-     * 
-     * @param optional The optional flag, may be {@code null} if the flag is not managed.
-     * @return This management update for chaining, never {@code null}.
-     */
-    public DependencyManagement setOptional( Boolean optional )
-    {
-        this.optional = optional;
-        return this;
-    }
-
-    /**
-     * Gets the new exclusions to apply to the dependency. Note that this collection denotes the complete set of
-     * exclusions for the dependency, i.e. the dependency manager controls whether any existing exclusions get merged
-     * with information from dependency management or overridden by it.
-     * 
-     * @return The new exclusions or {@code null} if the exclusions are not managed and the existing dependency
-     *         exclusions should remain unchanged.
-     */
-    public Collection<Exclusion> getExclusions()
-    {
-        return exclusions;
-    }
-
-    /**
-     * Sets the new exclusions to apply to the dependency. Note that this collection denotes the complete set of
-     * exclusions for the dependency, i.e. the dependency manager controls whether any existing exclusions get merged
-     * with information from dependency management or overridden by it.
-     * 
-     * @param exclusions The new exclusions, may be {@code null} if the exclusions are not managed.
-     * @return This management update for chaining, never {@code null}.
-     */
-    public DependencyManagement setExclusions( Collection<Exclusion> exclusions )
-    {
-        this.exclusions = exclusions;
-        return this;
-    }
-
-    /**
-     * Gets the new properties to apply to the dependency. Note that this map denotes the complete set of properties,
-     * i.e. the dependency manager controls whether any existing properties get merged with the information from
-     * dependency management or overridden by it.
-     * 
-     * @return The new artifact properties or {@code null} if the properties are not managed and the existing properties
-     *         should remain unchanged.
-     */
-    public Map<String, String> getProperties()
-    {
-        return properties;
-    }
-
-    /**
-     * Sets the new properties to apply to the dependency. Note that this map denotes the complete set of properties,
-     * i.e. the dependency manager controls whether any existing properties get merged with the information from
-     * dependency management or overridden by it.
-     * 
-     * @param properties The new artifact properties, may be {@code null} if the properties are not managed.
-     * @return This management update for chaining, never {@code null}.
-     */
-    public DependencyManagement setProperties( Map<String, String> properties )
-    {
-        this.properties = properties;
-        return this;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java
deleted file mode 100644
index 993e388..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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.graph.Dependency;
-
-/**
- * Applies dependency management to the dependencies of a dependency node.
- * <p>
- * <strong>Note:</strong> Implementations must be stateless.
- * <p>
- * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
- * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getDependencyManager()
- * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,
- *      CollectRequest)
- */
-public interface DependencyManager
-{
-
-    /**
-     * Applies dependency management to the specified dependency.
-     * 
-     * @param dependency The dependency to manage, must not be {@code null}.
-     * @return The management update to apply to the dependency or {@code null} if the dependency is not managed at all.
-     */
-    DependencyManagement manageDependency( Dependency dependency );
-
-    /**
-     * Derives a dependency manager for the specified collection context. When calculating the child manager,
-     * implementors are strongly advised to simply return the current instance if nothing changed to help save memory.
-     * 
-     * @param context The dependency collection context, must not be {@code null}.
-     * @return The dependency manager for the dependencies of the target node or {@code null} if dependency management
-     *         should no longer be applied.
-     */
-    DependencyManager deriveChildManager( DependencyCollectionContext context );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java
deleted file mode 100644
index b257ffa..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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.graph.Dependency;
-
-/**
- * Decides what dependencies to include in the dependency graph.
- * <p>
- * <strong>Note:</strong> Implementations must be stateless.
- * <p>
- * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
- * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getDependencySelector()
- * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,
- *      CollectRequest)
- */
-public interface DependencySelector
-{
-
-    /**
-     * Decides whether the specified dependency should be included in the dependency graph.
-     * 
-     * @param dependency The dependency to check, must not be {@code null}.
-     * @return {@code false} if the dependency should be excluded from the children of the current node, {@code true}
-     *         otherwise.
-     */
-    boolean selectDependency( Dependency dependency );
-
-    /**
-     * Derives a dependency selector for the specified collection context. When calculating the child selector,
-     * implementors are strongly advised to simply return the current instance if nothing changed to help save memory.
-     * 
-     * @param context The dependency collection context, must not be {@code null}.
-     * @return The dependency selector for the target node or {@code null} if dependencies should be unconditionally
-     *         included in the sub graph.
-     */
-    DependencySelector deriveChildSelector( DependencyCollectionContext context );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java
deleted file mode 100644
index be1887b..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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.graph.Dependency;
-
-/**
- * Decides whether the dependencies of a dependency node should be traversed as well.
- * <p>
- * <strong>Note:</strong> Implementations must be stateless.
- * <p>
- * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
- * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getDependencyTraverser()
- * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,
- *      CollectRequest)
- */
-public interface DependencyTraverser
-{
-
-    /**
-     * Decides whether the dependencies of the specified dependency should be traversed.
-     * 
-     * @param dependency The dependency to check, must not be {@code null}.
-     * @return {@code true} if the dependency graph builder should recurse into the specified dependency and process its
-     *         dependencies, {@code false} otherwise.
-     */
-    boolean traverseDependency( Dependency dependency );
-
-    /**
-     * Derives a dependency traverser that will be used to decide whether the transitive dependencies of the dependency
-     * given in the collection context shall be traversed. When calculating the child traverser, implementors are
-     * strongly advised to simply return the current instance if nothing changed to help save memory.
-     * 
-     * @param context The dependency collection context, must not be {@code null}.
-     * @return The dependency traverser for the target node or {@code null} if dependencies should be unconditionally
-     *         traversed in the sub graph.
-     */
-    DependencyTraverser deriveChildTraverser( DependencyCollectionContext context );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java b/aether-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java
deleted file mode 100644
index 54a7004..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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 java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-
-import org.eclipse.aether.RepositoryException;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.graph.DependencyNode;
-import org.eclipse.aether.version.VersionConstraint;
-
-/**
- * Thrown in case of an unsolvable conflict between different version constraints for a dependency.
- */
-public class UnsolvableVersionConflictException
-    extends RepositoryException
-{
-
-    private final transient Collection<String> versions;
-
-    private final transient Collection<? extends List<? extends DependencyNode>> paths;
-
-    /**
-     * Creates a new exception with the specified paths to conflicting nodes in the dependency graph.
-     * 
-     * @param paths The paths to the dependency nodes that participate in the version conflict, may be {@code null}.
-     */
-    public UnsolvableVersionConflictException( Collection<? extends List<? extends DependencyNode>> paths )
-    {
-        super( "Could not resolve version conflict among " + toPaths( paths ) );
-        if ( paths == null )
-        {
-            this.paths = Collections.emptyList();
-            this.versions = Collections.emptyList();
-        }
-        else
-        {
-            this.paths = paths;
-            this.versions = new LinkedHashSet<String>();
-            for ( List<? extends DependencyNode> path : paths )
-            {
-                VersionConstraint constraint = path.get( path.size() - 1 ).getVersionConstraint();
-                if ( constraint != null && constraint.getRange() != null )
-                {
-                    versions.add( constraint.toString() );
-                }
-            }
-        }
-    }
-
-    private static String toPaths( Collection<? extends List<? extends DependencyNode>> paths )
-    {
-        String result = "";
-
-        if ( paths != null )
-        {
-            Collection<String> strings = new LinkedHashSet<String>();
-
-            for ( List<? extends DependencyNode> path : paths )
-            {
-                strings.add( toPath( path ) );
-            }
-
-            result = strings.toString();
-        }
-
-        return result;
-    }
-
-    private static String toPath( List<? extends DependencyNode> path )
-    {
-        StringBuilder buffer = new StringBuilder( 256 );
-
-        for ( Iterator<? extends DependencyNode> it = path.iterator(); it.hasNext(); )
-        {
-            DependencyNode node = it.next();
-            if ( node.getDependency() == null )
-            {
-                continue;
-            }
-
-            Artifact artifact = node.getDependency().getArtifact();
-            buffer.append( artifact.getGroupId() );
-            buffer.append( ':' ).append( artifact.getArtifactId() );
-            buffer.append( ':' ).append( artifact.getExtension() );
-            if ( artifact.getClassifier().length() > 0 )
-            {
-                buffer.append( ':' ).append( artifact.getClassifier() );
-            }
-            buffer.append( ':' ).append( node.getVersionConstraint() );
-
-            if ( it.hasNext() )
-            {
-                buffer.append( " -> " );
-            }
-        }
-
-        return buffer.toString();
-    }
-
-    /**
-     * Gets the paths leading to the conflicting dependencies.
-     * 
-     * @return The (read-only) paths leading to the conflicting dependencies, never {@code null}.
-     */
-    public Collection<? extends List<? extends DependencyNode>> getPaths()
-    {
-        return paths;
-    }
-
-    /**
-     * Gets the conflicting version constraints of the dependency.
-     * 
-     * @return The (read-only) conflicting version constraints, never {@code null}.
-     */
-    public Collection<String> getVersions()
-    {
-        return versions;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java b/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java
deleted file mode 100644
index fb36747..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.eclipse.aether.collection;
-
-/*
- * 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.Iterator;
-import java.util.List;
-
-import org.eclipse.aether.RepositoryException;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.repository.ArtifactRepository;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.version.Version;
-import org.eclipse.aether.version.VersionConstraint;
-
-/**
- * Decides which versions matching a version range should actually be considered for the dependency graph. The version
- * filter is not invoked for dependencies that do not declare a version range but a single version.
- * <p>
- * <strong>Note:</strong> Implementations must be stateless.
- * <p>
- * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
- * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
- * 
- * @see org.eclipse.aether.RepositorySystemSession#getVersionFilter()
- * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,
- *      CollectRequest)
- */
-public interface VersionFilter
-{
-
-    /**
-     * A context used during version filtering to hold relevant data.
-     * 
-     * @noimplement This interface is not intended to be implemented by clients.
-     * @noextend This interface is not intended to be extended by clients.
-     */
-    interface VersionFilterContext
-        extends Iterable<Version>
-    {
-
-        /**
-         * Gets the repository system session during which the version filtering happens.
-         * 
-         * @return The repository system session, never {@code null}.
-         */
-        RepositorySystemSession getSession();
-
-        /**
-         * Gets the dependency whose version range is being filtered.
-         * 
-         * @return The dependency, never {@code null}.
-         */
-        Dependency getDependency();
-
-        /**
-         * Gets the total number of available versions. This count reflects any removals made during version filtering.
-         * 
-         * @return The total number of available versions.
-         */
-        int getCount();
-
-        /**
-         * Gets an iterator over the available versions of the dependency. The iterator returns versions in ascending
-         * order. Use {@link Iterator#remove()} to exclude a version from further consideration in the dependency graph.
-         * 
-         * @return The iterator of available versions, never {@code null}.
-         */
-        Iterator<Version> iterator();
-
-        /**
-         * Gets the version constraint that was parsed from the dependency's version string.
-         * 
-         * @return The parsed version constraint, never {@code null}.
-         */
-        VersionConstraint getVersionConstraint();
-
-        /**
-         * Gets the repository from which the specified version was resolved.
-         * 
-         * @param version The version whose source repository should be retrieved, must not be {@code null}.
-         * @return The repository from which the version was resolved or {@code null} if unknown.
-         */
-        ArtifactRepository getRepository( Version version );
-
-        /**
-         * Gets the remote repositories from which the versions were resolved.
-         * 
-         * @return The (read-only) list of repositories, never {@code null}.
-         */
-        List<RemoteRepository> getRepositories();
-
-    }
-
-    /**
-     * Filters the available versions for a given dependency. Implementations will usually call
-     * {@link VersionFilterContext#iterator() context.iterator()} to inspect the available versions and use
-     * {@link java.util.Iterator#remove()} to delete unacceptable versions. If no versions remain after all filtering
-     * has been performed, the dependency collection process will automatically fail, i.e. implementations need not
-     * handle this situation on their own.
-     * 
-     * @param context The version filter context, must not be {@code null}.
-     * @throws RepositoryException If the filtering could not be performed.
-     */
-    void filterVersions( VersionFilterContext context )
-        throws RepositoryException;
-
-    /**
-     * Derives a version filter for the specified collection context. The derived filter will be used to handle version
-     * ranges encountered in child dependencies of the current node. When calculating the child filter, implementors are
-     * strongly advised to simply return the current instance if nothing changed to help save memory.
-     * 
-     * @param context The dependency collection context, must not be {@code null}.
-     * @return The version filter for the target node or {@code null} if versions should not be filtered any more.
-     */
-    VersionFilter deriveChildFilter( DependencyCollectionContext context );
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/collection/package-info.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/package-info.java b/aether-api/src/main/java/org/eclipse/aether/collection/package-info.java
deleted file mode 100644
index 414629f..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/collection/package-info.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// CHECKSTYLE_OFF: RegexpHeader
-/*
- * 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.
- */
-/**
- * The types and extension points for collecting the transitive dependencies of an artifact and building a dependency
- * graph.
- */
-package org.eclipse.aether.collection;
-

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java b/aether-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java
deleted file mode 100644
index 637f47d..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-package org.eclipse.aether.deployment;
-
-/*
- * 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.Collections;
-
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.RequestTrace;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.metadata.Metadata;
-import org.eclipse.aether.repository.RemoteRepository;
-
-/**
- * A request to deploy artifacts and their accompanying metadata into the a remote repository.
- * 
- * @see RepositorySystem#deploy(RepositorySystemSession, DeployRequest)
- */
-public final class DeployRequest
-{
-
-    private Collection<Artifact> artifacts = Collections.emptyList();
-
-    private Collection<Metadata> metadata = Collections.emptyList();
-
-    private RemoteRepository repository;
-
-    private RequestTrace trace;
-
-    /**
-     * Creates an uninitialized request.
-     */
-    public DeployRequest()
-    {
-    }
-
-    /**
-     * Gets the artifact to deploy.
-     * 
-     * @return The artifacts to deploy, never {@code null}.
-     */
-    public Collection<Artifact> getArtifacts()
-    {
-        return artifacts;
-    }
-
-    /**
-     * Sets the artifacts to deploy.
-     * 
-     * @param artifacts The artifacts to deploy, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public DeployRequest setArtifacts( Collection<Artifact> artifacts )
-    {
-        if ( artifacts == null )
-        {
-            this.artifacts = Collections.emptyList();
-        }
-        else
-        {
-            this.artifacts = artifacts;
-        }
-        return this;
-    }
-
-    /**
-     * Adds the specified artifacts for deployment.
-     * 
-     * @param artifact The artifact to add, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public DeployRequest addArtifact( Artifact artifact )
-    {
-        if ( artifact != null )
-        {
-            if ( artifacts.isEmpty() )
-            {
-                artifacts = new ArrayList<Artifact>();
-            }
-            artifacts.add( artifact );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the metadata to deploy.
-     * 
-     * @return The metadata to deploy, never {@code null}.
-     */
-    public Collection<Metadata> getMetadata()
-    {
-        return metadata;
-    }
-
-    /**
-     * Sets the metadata to deploy.
-     * 
-     * @param metadata The metadata to deploy, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public DeployRequest setMetadata( Collection<Metadata> metadata )
-    {
-        if ( metadata == null )
-        {
-            this.metadata = Collections.emptyList();
-        }
-        else
-        {
-            this.metadata = metadata;
-        }
-        return this;
-    }
-
-    /**
-     * Adds the specified metadata for deployment.
-     * 
-     * @param metadata The metadata to add, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public DeployRequest addMetadata( Metadata metadata )
-    {
-        if ( metadata != null )
-        {
-            if ( this.metadata.isEmpty() )
-            {
-                this.metadata = new ArrayList<Metadata>();
-            }
-            this.metadata.add( metadata );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the repository to deploy to.
-     * 
-     * @return The repository to deploy to or {@code null} if not set.
-     */
-    public RemoteRepository getRepository()
-    {
-        return repository;
-    }
-
-    /**
-     * Sets the repository to deploy to.
-     * 
-     * @param repository The repository to deploy to, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public DeployRequest setRepository( RemoteRepository repository )
-    {
-        this.repository = repository;
-        return this;
-    }
-
-    /**
-     * Gets the trace information that describes the higher level request/operation in which this request is issued.
-     * 
-     * @return The trace information about the higher level operation or {@code null} if none.
-     */
-    public RequestTrace getTrace()
-    {
-        return trace;
-    }
-
-    /**
-     * Sets the trace information that describes the higher level request/operation in which this request is issued.
-     * 
-     * @param trace The trace information about the higher level operation, may be {@code null}.
-     * @return This request for chaining, never {@code null}.
-     */
-    public DeployRequest setTrace( RequestTrace trace )
-    {
-        this.trace = trace;
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getArtifacts() + ", " + getMetadata() + " > " + getRepository();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java b/aether-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java
deleted file mode 100644
index f75705e..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package org.eclipse.aether.deployment;
-
-/*
- * 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.Collections;
-
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.metadata.Metadata;
-
-/**
- * The result of deploying artifacts and their accompanying metadata into the a remote repository.
- * 
- * @see RepositorySystem#deploy(RepositorySystemSession, DeployRequest)
- */
-public final class DeployResult
-{
-
-    private final DeployRequest request;
-
-    private Collection<Artifact> artifacts;
-
-    private Collection<Metadata> metadata;
-
-    /**
-     * Creates a new result for the specified request.
-     * 
-     * @param request The deployment request, must not be {@code null}.
-     */
-    public DeployResult( DeployRequest request )
-    {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "deploy request has not been specified" );
-        }
-        this.request = request;
-        artifacts = Collections.emptyList();
-        metadata = Collections.emptyList();
-    }
-
-    /**
-     * Gets the deploy request that was made.
-     * 
-     * @return The deploy request, never {@code null}.
-     */
-    public DeployRequest getRequest()
-    {
-        return request;
-    }
-
-    /**
-     * Gets the artifacts that got deployed.
-     * 
-     * @return The deployed artifacts, never {@code null}.
-     */
-    public Collection<Artifact> getArtifacts()
-    {
-        return artifacts;
-    }
-
-    /**
-     * Sets the artifacts that got deployed.
-     * 
-     * @param artifacts The deployed artifacts, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public DeployResult setArtifacts( Collection<Artifact> artifacts )
-    {
-        if ( artifacts == null )
-        {
-            this.artifacts = Collections.emptyList();
-        }
-        else
-        {
-            this.artifacts = artifacts;
-        }
-        return this;
-    }
-
-    /**
-     * Adds the specified artifacts to the result.
-     * 
-     * @param artifact The deployed artifact to add, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public DeployResult addArtifact( Artifact artifact )
-    {
-        if ( artifact != null )
-        {
-            if ( artifacts.isEmpty() )
-            {
-                artifacts = new ArrayList<Artifact>();
-            }
-            artifacts.add( artifact );
-        }
-        return this;
-    }
-
-    /**
-     * Gets the metadata that got deployed. Note that due to automatically generated metadata, there might have been
-     * more metadata deployed than originally specified in the deploy request.
-     * 
-     * @return The deployed metadata, never {@code null}.
-     */
-    public Collection<Metadata> getMetadata()
-    {
-        return metadata;
-    }
-
-    /**
-     * Sets the metadata that got deployed.
-     * 
-     * @param metadata The deployed metadata, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public DeployResult setMetadata( Collection<Metadata> metadata )
-    {
-        if ( metadata == null )
-        {
-            this.metadata = Collections.emptyList();
-        }
-        else
-        {
-            this.metadata = metadata;
-        }
-        return this;
-    }
-
-    /**
-     * Adds the specified metadata to this result.
-     * 
-     * @param metadata The deployed metadata to add, may be {@code null}.
-     * @return This result for chaining, never {@code null}.
-     */
-    public DeployResult addMetadata( Metadata metadata )
-    {
-        if ( metadata != null )
-        {
-            if ( this.metadata.isEmpty() )
-            {
-                this.metadata = new ArrayList<Metadata>();
-            }
-            this.metadata.add( metadata );
-        }
-        return this;
-    }
-
-    @Override
-    public String toString()
-    {
-        return getArtifacts() + ", " + getMetadata();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/deployment/DeploymentException.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/deployment/DeploymentException.java b/aether-api/src/main/java/org/eclipse/aether/deployment/DeploymentException.java
deleted file mode 100644
index 53252ba..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/deployment/DeploymentException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.eclipse.aether.deployment;
-
-/*
- * 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 a deployment error like authentication failure.
- */
-public class DeploymentException
-    extends RepositoryException
-{
-
-    /**
-     * Creates a new exception with the specified detail message.
-     * 
-     * @param message The detail message, may be {@code null}.
-     */
-    public DeploymentException( String message )
-    {
-        super( message );
-    }
-
-    /**
-     * Creates a new exception with the specified detail message and cause.
-     * 
-     * @param message The detail message, may be {@code null}.
-     * @param cause The exception that caused this one, may be {@code null}.
-     */
-    public DeploymentException( String message, Throwable cause )
-    {
-        super( message, cause );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/deployment/package-info.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/deployment/package-info.java b/aether-api/src/main/java/org/eclipse/aether/deployment/package-info.java
deleted file mode 100644
index dc50c21..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/deployment/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-// CHECKSTYLE_OFF: RegexpHeader
-/*
- * 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.
- */
-/**
- * The types supporting the publishing of artifacts to a remote repository.
- */
-package org.eclipse.aether.deployment;
-

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java b/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
deleted file mode 100644
index 66a60c6..0000000
--- a/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
+++ /dev/null
@@ -1,368 +0,0 @@
-package org.eclipse.aether.graph;
-
-/*
- * 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.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.version.Version;
-import org.eclipse.aether.version.VersionConstraint;
-
-/**
- * A node within a dependency graph.
- */
-public final class DefaultDependencyNode
-    implements DependencyNode
-{
-
-    private List<DependencyNode> children;
-
-    private Dependency dependency;
-
-    private Artifact artifact;
-
-    private List<? extends Artifact> relocations;
-
-    private Collection<? extends Artifact> aliases;
-
-    private VersionConstraint versionConstraint;
-
-    private Version version;
-
-    private byte managedBits;
-
-    private List<RemoteRepository> repositories;
-
-    private String context;
-
-    private Map<Object, Object> data;
-
-    /**
-     * Creates a new node with the specified dependency.
-     * 
-     * @param dependency The dependency associated with this node, may be {@code null} for a root node.
-     */
-    public DefaultDependencyNode( Dependency dependency )
-    {
-        this.dependency = dependency;
-        artifact = ( dependency != null ) ? dependency.getArtifact() : null;
-        children = new ArrayList<DependencyNode>( 0 );
-        aliases = relocations = Collections.emptyList();
-        repositories = Collections.emptyList();
-        context = "";
-        data = Collections.emptyMap();
-    }
-
-    /**
-     * Creates a new root node with the specified artifact as its label. Note that the new node has no dependency, i.e.
-     * {@link #getDependency()} will return {@code null}. Put differently, the specified artifact will not be subject to
-     * dependency collection/resolution.
-     * 
-     * @param artifact The artifact to use as label for this node, may be {@code null}.
-     */
-    public DefaultDependencyNode( Artifact artifact )
-    {
-        this.artifact = artifact;
-        children = new ArrayList<DependencyNode>( 0 );
-        aliases = relocations = Collections.emptyList();
-        repositories = Collections.emptyList();
-        context = "";
-        data = Collections.emptyMap();
-    }
-
-    /**
-     * Creates a mostly shallow clone of the specified node. The new node has its own copy of any custom data and
-     * initially no children.
-     * 
-     * @param node The node to copy, must not be {@code null}.
-     */
-    public DefaultDependencyNode( DependencyNode node )
-    {
-        dependency = node.getDependency();
-        artifact = node.getArtifact();
-        children = new ArrayList<DependencyNode>( 0 );
-        setAliases( node.getAliases() );
-        setRequestContext( node.getRequestContext() );
-        setManagedBits( node.getManagedBits() );
-        setRelocations( node.getRelocations() );
-        setRepositories( node.getRepositories() );
-        setVersion( node.getVersion() );
-        setVersionConstraint( node.getVersionConstraint() );
-        Map<?, ?> data = node.getData();
-        setData( data.isEmpty() ? null : new HashMap<Object, Object>( data ) );
-    }
-
-    public List<DependencyNode> getChildren()
-    {
-        return children;
-    }
-
-    public void setChildren( List<DependencyNode> children )
-    {
-        if ( children == null )
-        {
-            this.children = new ArrayList<DependencyNode>( 0 );
-        }
-        else
-        {
-            this.children = children;
-        }
-    }
-
-    public Dependency getDependency()
-    {
-        return dependency;
-    }
-
-    public Artifact getArtifact()
-    {
-        return artifact;
-    }
-
-    public void setArtifact( Artifact artifact )
-    {
-        if ( dependency == null )
-        {
-            throw new UnsupportedOperationException( "node does not have a dependency" );
-        }
-        dependency = dependency.setArtifact( artifact );
-        this.artifact = dependency.getArtifact();
-    }
-
-    public List<? extends Artifact> getRelocations()
-    {
-        return relocations;
-    }
-
-    /**
-     * Sets the sequence of relocations that was followed to resolve this dependency's artifact.
-     * 
-     * @param relocations The sequence of relocations, may be {@code null}.
-     */
-    public void setRelocations( List<? extends Artifact> relocations )
-    {
-        if ( relocations == null || relocations.isEmpty() )
-        {
-            this.relocations = Collections.emptyList();
-        }
-        else
-        {
-            this.relocations = relocations;
-        }
-    }
-
-    public Collection<? extends Artifact> getAliases()
-    {
-        return aliases;
-    }
-
-    /**
-     * Sets the known aliases for this dependency's artifact.
-     * 
-     * @param aliases The known aliases, may be {@code null}.
-     */
-    public void setAliases( Collection<? extends Artifact> aliases )
-    {
-        if ( aliases == null || aliases.isEmpty() )
-        {
-            this.aliases = Collections.emptyList();
-        }
-        else
-        {
-            this.aliases = aliases;
-        }
-    }
-
-    public VersionConstraint getVersionConstraint()
-    {
-        return versionConstraint;
-    }
-
-    /**
-     * Sets the version constraint that was parsed from the dependency's version declaration.
-     * 
-     * @param versionConstraint The version constraint for this node, may be {@code null}.
-     */
-    public void setVersionConstraint( VersionConstraint versionConstraint )
-    {
-        this.versionConstraint = versionConstraint;
-    }
-
-    public Version getVersion()
-    {
-        return version;
-    }
-
-    /**
-     * Sets the version that was selected for the dependency's target artifact.
-     * 
-     * @param version The parsed version, may be {@code null}.
-     */
-    public void setVersion( Version version )
-    {
-        this.version = version;
-    }
-
-    public void setScope( String scope )
-    {
-        if ( dependency == null )
-        {
-            throw new UnsupportedOperationException( "node does not have a dependency" );
-        }
-        dependency = dependency.setScope( scope );
-    }
-
-    public void setOptional( Boolean optional )
-    {
-        if ( dependency == null )
-        {
-            throw new UnsupportedOperationException( "node does not have a dependency" );
-        }
-        dependency = dependency.setOptional( optional );
-    }
-
-    public int getManagedBits()
-    {
-        return managedBits;
-    }
-
-    /**
-     * Sets a bit field indicating which attributes of this node were subject to dependency management.
-     * 
-     * @param managedBits The bit field indicating the managed attributes or {@code 0} if dependency management wasn't
-     *            applied.
-     */
-    public void setManagedBits( int managedBits )
-    {
-        this.managedBits = (byte) ( managedBits & 0x1F );
-    }
-
-    public List<RemoteRepository> getRepositories()
-    {
-        return repositories;
-    }
-
-    /**
-     * Sets the remote repositories from which this node's artifact shall be resolved.
-     * 
-     * @param repositories The remote repositories to use for artifact resolution, may be {@code null}.
-     */
-    public void setRepositories( List<RemoteRepository> repositories )
-    {
-        if ( repositories == null || repositories.isEmpty() )
-        {
-            this.repositories = Collections.emptyList();
-        }
-        else
-        {
-            this.repositories = repositories;
-        }
-    }
-
-    public String getRequestContext()
-    {
-        return context;
-    }
-
-    public void setRequestContext( String context )
-    {
-        this.context = ( context != null ) ? context : "";
-    }
-
-    public Map<Object, Object> getData()
-    {
-        return data;
-    }
-
-    public void setData( Map<Object, Object> data )
-    {
-        if ( data == null )
-        {
-            this.data = Collections.emptyMap();
-        }
-        else
-        {
-            this.data = data;
-        }
-    }
-
-    public void setData( Object key, Object value )
-    {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
-
-        if ( value == null )
-        {
-            if ( !data.isEmpty() )
-            {
-                data.remove( key );
-
-                if ( data.isEmpty() )
-                {
-                    data = Collections.emptyMap();
-                }
-            }
-        }
-        else
-        {
-            if ( data.isEmpty() )
-            {
-                data = new HashMap<Object, Object>( 1, 2 ); // nodes can be numerous so let's be space conservative
-            }
-            data.put( key, value );
-        }
-    }
-
-    public boolean accept( DependencyVisitor visitor )
-    {
-        if ( visitor.visitEnter( this ) )
-        {
-            for ( DependencyNode child : children )
-            {
-                if ( !child.accept( visitor ) )
-                {
-                    break;
-                }
-            }
-        }
-
-        return visitor.visitLeave( this );
-    }
-
-    @Override
-    public String toString()
-    {
-        Dependency dep = getDependency();
-        if ( dep == null )
-        {
-            return String.valueOf( getArtifact() );
-        }
-        return dep.toString();
-    }
-
-}