http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/Pom.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/eclipse/aether/internal/ant/types/Pom.java 
b/src/main/java/org/eclipse/aether/internal/ant/types/Pom.java
new file mode 100644
index 0000000..5b30eba
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/types/Pom.java
@@ -0,0 +1,343 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import java.io.File;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.maven.model.Model;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.PropertyHelper;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.Reference;
+import org.eclipse.aether.internal.ant.AntRepoSys;
+import org.eclipse.aether.internal.ant.ProjectWorkspaceReader;
+import org.eclipse.aether.internal.ant.tasks.RefTask;
+
+/**
+ */
+public class Pom
+    extends RefTask
+{
+
+    private Model model;
+
+    private String id;
+
+    private File file;
+
+    private String groupId;
+
+    private String artifactId;
+
+    private String version;
+
+    private String packaging = "jar";
+
+    private RemoteRepositories remoteRepositories;
+
+    private String coords;
+
+    protected Pom getRef()
+    {
+        return (Pom) getCheckedRef();
+    }
+
+    public void validate()
+    {
+        if ( isReference() )
+        {
+            getRef().validate();
+        }
+        else
+        {
+            if ( file == null )
+            {
+                if ( groupId == null )
+                {
+                    throw new BuildException( "You must specify the 'groupId' 
for the POM" );
+                }
+                if ( artifactId == null )
+                {
+                    throw new BuildException( "You must specify the 
'artifactId' for the POM" );
+                }
+                if ( version == null )
+                {
+                    throw new BuildException( "You must specify the 'version' 
for the POM" );
+                }
+            }
+        }
+
+    }
+
+    public void setRefid( Reference ref )
+    {
+        if ( id != null || file != null || groupId != null || artifactId != 
null || version != null )
+        {
+            throw tooManyAttributes();
+        }
+        if ( remoteRepositories != null )
+        {
+            throw noChildrenAllowed();
+        }
+        super.setRefid( ref );
+    }
+
+    public void setId( String id )
+    {
+        checkAttributesAllowed();
+        this.id = id;
+    }
+
+    public File getFile()
+    {
+        if ( isReference() )
+        {
+            return getRef().getFile();
+        }
+        return file;
+    }
+
+    public void setFile( File file )
+    {
+        checkAttributesAllowed();
+        if ( groupId != null || artifactId != null || version != null )
+        {
+            throw ambiguousSource();
+        }
+
+        this.file = file;
+
+    }
+
+    public String getGroupId()
+    {
+        if ( isReference() )
+        {
+            return getRef().getGroupId();
+        }
+        return groupId;
+    }
+
+    public void setGroupId( String groupId )
+    {
+        checkAttributesAllowed();
+        if ( this.groupId != null )
+        {
+            throw ambiguousCoords();
+        }
+        if ( file != null )
+        {
+            throw ambiguousSource();
+        }
+        this.groupId = groupId;
+    }
+
+    public String getArtifactId()
+    {
+        if ( isReference() )
+        {
+            return getRef().getArtifactId();
+        }
+        return artifactId;
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        checkAttributesAllowed();
+        if ( this.artifactId != null )
+        {
+            throw ambiguousCoords();
+        }
+        if ( file != null )
+        {
+            throw ambiguousSource();
+        }
+        this.artifactId = artifactId;
+    }
+
+    public String getVersion()
+    {
+        if ( isReference() )
+        {
+            return getRef().getVersion();
+        }
+        return version;
+    }
+
+    public void setVersion( String version )
+    {
+        checkAttributesAllowed();
+        if ( this.version != null )
+        {
+            throw ambiguousCoords();
+        }
+        if ( file != null )
+        {
+            throw ambiguousSource();
+        }
+        this.version = version;
+    }
+
+    public String getCoords()
+    {
+        if ( isReference() )
+        {
+            return getRef().getCoords();
+        }
+        return coords;
+    }
+
+    public void setCoords( String coords )
+    {
+        checkAttributesAllowed();
+        if ( file != null )
+        {
+            throw ambiguousSource();
+        }
+        if ( groupId != null || artifactId != null || version != null )
+        {
+            throw ambiguousCoords();
+        }
+        Pattern p = Pattern.compile( "([^: ]+):([^: ]+):([^: ]+)" );
+        Matcher m = p.matcher( coords );
+        if ( !m.matches() )
+        {
+            throw new BuildException( "Bad POM coordinates, expected format is 
<groupId>:<artifactId>:<version>" );
+        }
+        groupId = m.group( 1 );
+        artifactId = m.group( 2 );
+        version = m.group( 3 );
+    }
+
+    private BuildException ambiguousCoords()
+    {
+        return new BuildException( "You must not specify both 'coords' and 
('groupId', 'artifactId', 'version')" );
+    }
+
+    private BuildException ambiguousSource()
+    {
+        return new BuildException( "You must not specify both 'file' and "
+            + "('coords', 'groupId', 'artifactId', 'version')" );
+    }
+
+    public String getPackaging()
+    {
+        if ( isReference() )
+        {
+            return getRef().getPackaging();
+        }
+        return packaging;
+    }
+
+    public void setPackaging( String packaging )
+    {
+        checkAttributesAllowed();
+        if ( file != null )
+        {
+            throw ambiguousSource();
+        }
+        this.packaging = packaging;
+    }
+
+    private RemoteRepositories getRemoteRepos()
+    {
+        if ( remoteRepositories == null )
+        {
+            remoteRepositories = new RemoteRepositories();
+            remoteRepositories.setProject( getProject() );
+        }
+        return remoteRepositories;
+    }
+
+    public void addRemoteRepo( RemoteRepository repository )
+    {
+        getRemoteRepos().addRemoterepo( repository );
+    }
+
+    public void addRemoteRepos( RemoteRepositories repositories )
+    {
+        getRemoteRepos().addRemoterepos( repositories );
+    }
+
+    public void setRemoteReposRef( Reference ref )
+    {
+        RemoteRepositories repos = new RemoteRepositories();
+        repos.setProject( getProject() );
+        repos.setRefid( ref );
+        getRemoteRepos().addRemoterepos( repos );
+    }
+
+    public Model getModel( Task task )
+    {
+        if ( isReference() )
+        {
+            return getRef().getModel( task );
+        }
+        synchronized ( this )
+        {
+            if ( model == null )
+            {
+                if ( file != null )
+                {
+                    model = AntRepoSys.getInstance( getProject() ).loadModel( 
task, file, true, remoteRepositories );
+                }
+            }
+            return model;
+        }
+    }
+
+    @Override
+    public void execute()
+    {
+        validate();
+
+        if ( file != null && ( id == null || AntRepoSys.getInstance( 
getProject() ).getDefaultPom() == null ) )
+        {
+            AntRepoSys.getInstance( getProject() ).setDefaultPom( this );
+        }
+
+        ProjectWorkspaceReader.getInstance().addPom( this );
+
+        Model model = getModel( this );
+
+        if ( model == null )
+        {
+            coords = getGroupId() + ":" + getArtifactId() + ":" + getVersion();
+            return;
+        }
+
+        coords = model.getGroupId() + ":" + model.getArtifactId() + ":" + 
model.getVersion();
+
+        ModelValueExtractor extractor = new ModelValueExtractor( id, model, 
getProject() );
+
+        PropertyHelper propHelper = PropertyHelper.getPropertyHelper( 
getProject() );
+
+        try
+        {
+            // Ant 1.8.0 delegate
+            PomPropertyEvaluator.register( extractor, propHelper );
+        }
+        catch ( LinkageError e )
+        {
+            // Ant 1.6 - 1.7.1 interceptor chaining
+            PomPropertyHelper.register( extractor, propHelper );
+        }
+
+    }
+
+    public String toString()
+    {
+        return coords + " (" + super.toString() + ")";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyEvaluator.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyEvaluator.java 
b/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyEvaluator.java
new file mode 100644
index 0000000..234149c
--- /dev/null
+++ 
b/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyEvaluator.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import org.apache.tools.ant.PropertyHelper;
+import org.apache.tools.ant.PropertyHelper.PropertyEvaluator;
+import org.apache.tools.ant.property.NullReturn;
+
+/**
+ */
+class PomPropertyEvaluator
+    implements PropertyEvaluator
+{
+
+    private final ModelValueExtractor extractor;
+
+    public static void register( ModelValueExtractor extractor, PropertyHelper 
propertyHelper )
+    {
+        propertyHelper.add( new PomPropertyEvaluator( extractor ) );
+    }
+
+    private PomPropertyEvaluator( ModelValueExtractor extractor )
+    {
+        if ( extractor == null )
+        {
+            throw new IllegalArgumentException( "no model value exractor 
specified" );
+        }
+        this.extractor = extractor;
+    }
+
+    public Object evaluate( String property, PropertyHelper propertyHelper )
+    {
+        Object value = extractor.getValue( property );
+        if ( value != null )
+        {
+            return value;
+        }
+        else if ( extractor.isApplicable( property ) )
+        {
+            return NullReturn.NULL;
+        }
+        return null;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyHelper.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyHelper.java 
b/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyHelper.java
new file mode 100644
index 0000000..a22b10d
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/types/PomPropertyHelper.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import org.apache.tools.ant.PropertyHelper;
+
+/**
+ */
+@SuppressWarnings( "deprecation" )
+class PomPropertyHelper
+    extends PropertyHelper
+{
+
+    private final ModelValueExtractor extractor;
+
+    public static void register( ModelValueExtractor extractor, PropertyHelper 
propertyHelper )
+    {
+        PomPropertyHelper helper = new PomPropertyHelper( extractor );
+        helper.setNext( propertyHelper.getNext() );
+        propertyHelper.setNext( helper );
+    }
+
+    public PomPropertyHelper( ModelValueExtractor extractor )
+    {
+        if ( extractor == null )
+        {
+            throw new IllegalArgumentException( "no model value exractor 
specified" );
+        }
+        this.extractor = extractor;
+        setProject( extractor.getProject() );
+    }
+
+    @Override
+    public Object getPropertyHook( String ns, String name, boolean user )
+    {
+        Object value = extractor.getValue( name );
+        if ( value != null )
+        {
+            return value;
+        }
+        else if ( extractor.isApplicable( name ) )
+        {
+            return null;
+        }
+        return super.getPropertyHook( ns, name, user );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/Proxy.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/eclipse/aether/internal/ant/types/Proxy.java 
b/src/main/java/org/eclipse/aether/internal/ant/types/Proxy.java
new file mode 100644
index 0000000..7203a25
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/types/Proxy.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+import org.eclipse.aether.internal.ant.AntRepoSys;
+
+/**
+ */
+public class Proxy
+    extends DataType
+{
+
+    private String host;
+
+    private int port;
+
+    private String type;
+
+    private String nonProxyHosts;
+
+    private Authentication authentication;
+
+    @Override
+    public void setProject( Project project )
+    {
+        super.setProject( project );
+
+        AntRepoSys.getInstance( project ).addProxy( this );
+    }
+
+    protected Proxy getRef()
+    {
+        return (Proxy) getCheckedRef();
+    }
+
+    public void setRefid( Reference ref )
+    {
+        if ( host != null || port != 0 || type != null || nonProxyHosts != 
null )
+        {
+            throw tooManyAttributes();
+        }
+        if ( authentication != null )
+        {
+            throw noChildrenAllowed();
+        }
+        super.setRefid( ref );
+    }
+
+    public String getHost()
+    {
+        if ( isReference() )
+        {
+            return getRef().getHost();
+        }
+        return host;
+    }
+
+    public void setHost( String host )
+    {
+        checkAttributesAllowed();
+        this.host = host;
+    }
+
+    public int getPort()
+    {
+        if ( isReference() )
+        {
+            return getRef().getPort();
+        }
+        return port;
+    }
+
+    public void setPort( int port )
+    {
+        checkAttributesAllowed();
+        if ( port <= 0 || port > 0xFFFF )
+        {
+            throw new BuildException( "The port number must be within the 
range 1 - 65535" );
+        }
+        this.port = port;
+    }
+
+    public String getType()
+    {
+        if ( isReference() )
+        {
+            return getRef().getType();
+        }
+        return type;
+    }
+
+    public void setType( String type )
+    {
+        checkAttributesAllowed();
+        this.type = type;
+    }
+
+    public String getNonProxyHosts()
+    {
+        if ( isReference() )
+        {
+            return getRef().getNonProxyHosts();
+        }
+        return nonProxyHosts;
+    }
+
+    public void setNonProxyHosts( String nonProxyHosts )
+    {
+        checkAttributesAllowed();
+        this.nonProxyHosts = nonProxyHosts;
+    }
+
+    public Authentication getAuthentication()
+    {
+        if ( isReference() )
+        {
+            return getRef().getAuthentication();
+        }
+        return authentication;
+    }
+
+    public void addAuthentication( Authentication authentication )
+    {
+        checkChildrenAllowed();
+        if ( this.authentication != null )
+        {
+            throw new BuildException( "You must not specify multiple 
<authentication> elements" );
+        }
+        this.authentication = authentication;
+    }
+
+    public void setAuthRef( Reference ref )
+    {
+        if ( authentication == null )
+        {
+            authentication = new Authentication();
+            authentication.setProject( getProject() );
+        }
+        authentication.setRefid( ref );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositories.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositories.java 
b/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositories.java
new file mode 100644
index 0000000..17d4cbe
--- /dev/null
+++ 
b/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositories.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+
+/**
+ */
+public class RemoteRepositories
+    extends DataType
+    implements RemoteRepositoryContainer
+{
+
+    private List<RemoteRepositoryContainer> containers = new 
ArrayList<RemoteRepositoryContainer>();
+
+    protected RemoteRepositories getRef()
+    {
+        return (RemoteRepositories) getCheckedRef();
+    }
+
+    public void validate( Task task )
+    {
+        if ( isReference() )
+        {
+            getRef().validate( task );
+        }
+        else
+        {
+            for ( RemoteRepositoryContainer container : containers )
+            {
+                container.validate( task );
+            }
+        }
+    }
+
+    public void setRefid( Reference ref )
+    {
+        if ( !containers.isEmpty() )
+        {
+            throw noChildrenAllowed();
+        }
+        super.setRefid( ref );
+    }
+
+    public void addRemoterepo( RemoteRepository repository )
+    {
+        checkChildrenAllowed();
+        containers.add( repository );
+    }
+
+    public void addRemoterepos( RemoteRepositories repositories )
+    {
+        checkChildrenAllowed();
+        if ( repositories == this )
+        {
+            throw circularReference();
+        }
+        containers.add( repositories );
+    }
+
+    public List<RemoteRepository> getRepositories()
+    {
+        if ( isReference() )
+        {
+            return getRef().getRepositories();
+        }
+        List<RemoteRepository> repos = new ArrayList<RemoteRepository>();
+        for ( RemoteRepositoryContainer container : containers )
+        {
+            repos.addAll( container.getRepositories() );
+        }
+        return repos;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepository.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepository.java 
b/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepository.java
new file mode 100644
index 0000000..b4857a7
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepository.java
@@ -0,0 +1,340 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+import org.eclipse.aether.internal.ant.AntRepoSys;
+import org.eclipse.aether.repository.RepositoryPolicy;
+
+/**
+ */
+public class RemoteRepository
+    extends DataType
+    implements RemoteRepositoryContainer
+{
+
+    private String id;
+
+    private String url;
+
+    private String type;
+
+    private Policy releasePolicy;
+
+    private Policy snapshotPolicy;
+
+    private boolean releases = true;
+
+    private boolean snapshots = false;
+
+    private String checksums;
+
+    private String updates;
+
+    private Authentication authentication;
+
+    @Override
+    public void setProject( Project project )
+    {
+        super.setProject( project );
+
+        // NOTE: Just trigger side-effect of default initialization before 
this type potentially overrides central
+        AntRepoSys.getInstance( project );
+    }
+
+    protected RemoteRepository getRef()
+    {
+        return (RemoteRepository) getCheckedRef();
+    }
+
+    public void validate( Task task )
+    {
+        if ( isReference() )
+        {
+            getRef().validate( task );
+        }
+        else
+        {
+            if ( url == null || url.length() <= 0 )
+            {
+                throw new BuildException( "You must specify the 'url' for a 
remote repository" );
+            }
+            if ( id == null || id.length() <= 0 )
+            {
+                throw new BuildException( "You must specify the 'id' for a 
remote repository" );
+            }
+        }
+    }
+
+    public void setRefid( Reference ref )
+    {
+        if ( id != null || url != null || type != null || checksums != null || 
updates != null )
+        {
+            throw tooManyAttributes();
+        }
+        if ( releasePolicy != null || snapshotPolicy != null || authentication 
!= null )
+        {
+            throw noChildrenAllowed();
+        }
+        super.setRefid( ref );
+    }
+
+    public String getId()
+    {
+        if ( isReference() )
+        {
+            return getRef().getId();
+        }
+        return id;
+    }
+
+    public void setId( String id )
+    {
+        this.id = id;
+    }
+
+    public String getUrl()
+    {
+        if ( isReference() )
+        {
+            return getRef().getUrl();
+        }
+        return url;
+    }
+
+    public void setUrl( String url )
+    {
+        checkAttributesAllowed();
+        this.url = url;
+    }
+
+    public String getType()
+    {
+        if ( isReference() )
+        {
+            return getRef().getType();
+        }
+        return ( type != null ) ? type : "default";
+    }
+
+    public void setType( String type )
+    {
+        checkAttributesAllowed();
+        this.type = type;
+    }
+
+    public Policy getReleasePolicy()
+    {
+        if ( isReference() )
+        {
+            return getRef().getReleasePolicy();
+        }
+        return releasePolicy;
+    }
+
+    public void addReleases( Policy policy )
+    {
+        checkChildrenAllowed();
+        if ( this.releasePolicy != null )
+        {
+            throw new BuildException( "You must not specify multiple 
<releases> elements" );
+        }
+        this.releasePolicy = policy;
+    }
+
+    public Policy getSnapshotPolicy()
+    {
+        if ( isReference() )
+        {
+            return getRef().getSnapshotPolicy();
+        }
+        return snapshotPolicy;
+    }
+
+    public void addSnapshots( Policy policy )
+    {
+        checkChildrenAllowed();
+        if ( this.snapshotPolicy != null )
+        {
+            throw new BuildException( "You must not specify multiple 
<snapshots> elements" );
+        }
+        this.snapshotPolicy = policy;
+    }
+
+    public boolean isReleases()
+    {
+        if ( isReference() )
+        {
+            return getRef().isReleases();
+        }
+        return releases;
+    }
+
+    public void setReleases( boolean releases )
+    {
+        checkAttributesAllowed();
+        this.releases = releases;
+    }
+
+    public boolean isSnapshots()
+    {
+        if ( isReference() )
+        {
+            return getRef().isSnapshots();
+        }
+        return snapshots;
+    }
+
+    public void setSnapshots( boolean snapshots )
+    {
+        checkAttributesAllowed();
+        this.snapshots = snapshots;
+    }
+
+    public String getUpdates()
+    {
+        if ( isReference() )
+        {
+            return getRef().getUpdates();
+        }
+        return ( updates != null ) ? updates : 
RepositoryPolicy.UPDATE_POLICY_DAILY;
+    }
+
+    public void setUpdates( String updates )
+    {
+        checkAttributesAllowed();
+        checkUpdates( updates );
+        this.updates = updates;
+    }
+
+    protected static void checkUpdates( String updates )
+    {
+        if ( !RepositoryPolicy.UPDATE_POLICY_ALWAYS.equals( updates )
+            && !RepositoryPolicy.UPDATE_POLICY_DAILY.equals( updates )
+            && !RepositoryPolicy.UPDATE_POLICY_NEVER.equals( updates )
+            && !updates.startsWith( RepositoryPolicy.UPDATE_POLICY_INTERVAL ) )
+        {
+            throw new BuildException( "'" + updates + "' is not a permitted 
update policy" );
+        }
+    }
+
+    public String getChecksums()
+    {
+        if ( isReference() )
+        {
+            return getRef().getChecksums();
+        }
+        return ( checksums != null ) ? checksums : 
RepositoryPolicy.CHECKSUM_POLICY_WARN;
+    }
+
+    public void setChecksums( String checksums )
+    {
+        checkAttributesAllowed();
+        checkChecksums( checksums );
+        this.checksums = checksums;
+    }
+
+    protected static void checkChecksums( String checksums )
+    {
+        if ( !RepositoryPolicy.CHECKSUM_POLICY_FAIL.equals( checksums )
+            && !RepositoryPolicy.CHECKSUM_POLICY_WARN.equals( checksums )
+            && !RepositoryPolicy.CHECKSUM_POLICY_IGNORE.equals( checksums ) )
+        {
+            throw new BuildException( "'" + checksums + "' is not a permitted 
checksum policy" );
+        }
+    }
+
+    public Authentication getAuthentication()
+    {
+        if ( isReference() )
+        {
+            return getRef().getAuthentication();
+        }
+        return authentication;
+    }
+
+    public void addAuthentication( Authentication authentication )
+    {
+        checkChildrenAllowed();
+        if ( this.authentication != null )
+        {
+            throw new BuildException( "You must not specify multiple 
<authentication> elements" );
+        }
+        this.authentication = authentication;
+    }
+
+    public void setAuthRef( Reference ref )
+    {
+        checkAttributesAllowed();
+        if ( authentication == null )
+        {
+            authentication = new Authentication();
+            authentication.setProject( getProject() );
+        }
+        authentication.setRefid( ref );
+    }
+
+    public List<RemoteRepository> getRepositories()
+    {
+        return Collections.singletonList( this );
+    }
+
+    public static class Policy
+    {
+
+        private boolean enabled = true;
+
+        private String checksumPolicy;
+
+        private String updatePolicy;
+
+        public boolean isEnabled()
+        {
+            return enabled;
+        }
+
+        public void setEnabled( boolean enabled )
+        {
+            this.enabled = enabled;
+        }
+
+        public String getChecksums()
+        {
+            return checksumPolicy;
+        }
+
+        public void setChecksums( String checksumPolicy )
+        {
+            checkChecksums( checksumPolicy );
+            this.checksumPolicy = checksumPolicy;
+        }
+
+        public String getUpdates()
+        {
+            return updatePolicy;
+        }
+
+        public void setUpdates( String updatePolicy )
+        {
+            checkUpdates( updatePolicy );
+            this.updatePolicy = updatePolicy;
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositoryContainer.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositoryContainer.java
 
b/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositoryContainer.java
new file mode 100644
index 0000000..dd958d9
--- /dev/null
+++ 
b/src/main/java/org/eclipse/aether/internal/ant/types/RemoteRepositoryContainer.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import java.util.List;
+
+import org.apache.tools.ant.Task;
+
+/**
+ */
+public interface RemoteRepositoryContainer
+{
+
+    void validate( Task task );
+
+    List<RemoteRepository> getRepositories();
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/types/Settings.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/eclipse/aether/internal/ant/types/Settings.java 
b/src/main/java/org/eclipse/aether/internal/ant/types/Settings.java
new file mode 100644
index 0000000..9723c96
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/types/Settings.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.types;
+
+import java.io.File;
+
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+import org.eclipse.aether.internal.ant.AntRepoSys;
+
+/**
+ */
+public class Settings
+    extends DataType
+{
+
+    private File file;
+
+    private File globalFile;
+
+    protected Settings getRef()
+    {
+        return (Settings) getCheckedRef();
+    }
+
+    public void setRefid( Reference ref )
+    {
+        if ( file != null || globalFile != null )
+        {
+            throw tooManyAttributes();
+        }
+        super.setRefid( ref );
+    }
+
+    public File getFile()
+    {
+        if ( isReference() )
+        {
+            return getRef().getFile();
+        }
+        return file;
+    }
+
+    public void setFile( File file )
+    {
+        checkAttributesAllowed();
+        this.file = file;
+
+        AntRepoSys.getInstance( getProject() ).setUserSettings( file );
+    }
+
+    public File getGlobalFile()
+    {
+        if ( isReference() )
+        {
+            return getRef().getFile();
+        }
+        return globalFile;
+    }
+
+    public void setGlobalFile( File globalFile )
+    {
+        checkAttributesAllowed();
+        this.globalFile = globalFile;
+
+        AntRepoSys.getInstance( getProject() ).setGlobalSettings( globalFile );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/util/AetherUtils.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/util/AetherUtils.java 
b/src/main/java/org/eclipse/aether/internal/ant/util/AetherUtils.java
new file mode 100644
index 0000000..16c4db4
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/util/AetherUtils.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.util;
+
+import java.io.File;
+
+import org.apache.tools.ant.Project;
+import org.eclipse.aether.internal.ant.Names;
+import org.eclipse.aether.internal.ant.types.RemoteRepositories;
+
+public class AetherUtils
+{
+
+    public static File findGlobalSettings( Project project )
+    {
+        File file = new File( new File( project.getProperty( "ant.home" ), 
"etc" ), Names.SETTINGS_XML );
+        if ( file.isFile() )
+        {
+            return file;
+        }
+        else
+        {
+            String mavenHome = getMavenHome( project );
+            if ( mavenHome != null )
+            {
+                return new File( new File( mavenHome, "conf" ), 
Names.SETTINGS_XML );
+            }
+        }
+    
+        return null;
+    }
+
+    public static String getMavenHome( Project project )
+    {
+        String mavenHome = project.getProperty( "maven.home" );
+        if ( mavenHome != null )
+        {
+            return mavenHome;
+        }
+        return System.getenv( "M2_HOME" );
+    }
+
+    public static File findUserSettings( Project project )
+    {
+        File userHome = new File( project.getProperty( "user.home" ) );
+        File file = new File( new File( userHome, ".ant" ), Names.SETTINGS_XML 
);
+        if ( file.isFile() )
+        {
+            return file;
+        }
+        else
+        {
+            return new File( new File( userHome, ".m2" ), Names.SETTINGS_XML );
+        }
+    }
+
+    public static RemoteRepositories getDefaultRepositories( Project project )
+    {
+        Object obj = project.getReference( Names.ID_DEFAULT_REPOS );
+        if ( obj instanceof RemoteRepositories )
+        {
+            return (RemoteRepositories) obj;
+        }
+        return null;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/util/ConverterUtils.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/util/ConverterUtils.java 
b/src/main/java/org/eclipse/aether/internal/ant/util/ConverterUtils.java
new file mode 100644
index 0000000..3c604c4
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/util/ConverterUtils.java
@@ -0,0 +1,218 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.tools.ant.Project;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.ArtifactProperties;
+import org.eclipse.aether.artifact.ArtifactType;
+import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.artifact.DefaultArtifactType;
+import org.eclipse.aether.impl.RemoteRepositoryManager;
+import org.eclipse.aether.internal.ant.types.Authentication;
+import org.eclipse.aether.internal.ant.types.Dependency;
+import org.eclipse.aether.internal.ant.types.Exclusion;
+import org.eclipse.aether.internal.ant.types.Proxy;
+import org.eclipse.aether.internal.ant.types.RemoteRepositories;
+import org.eclipse.aether.internal.ant.types.RemoteRepository;
+import org.eclipse.aether.repository.RepositoryPolicy;
+import org.eclipse.aether.util.repository.AuthenticationBuilder;
+
+/**
+ * Utility methods to convert between Aether and Ant objects.
+ */
+public class ConverterUtils
+{
+
+    private static org.eclipse.aether.artifact.Artifact toArtifact( Dependency 
dependency, ArtifactTypeRegistry types )
+    {
+        ArtifactType type = types.get( dependency.getType() );
+        if ( type == null )
+        {
+            type = new DefaultArtifactType( dependency.getType() );
+        }
+
+        Map<String, String> props = null;
+        if ( "system".equals( dependency.getScope() ) && 
dependency.getSystemPath() != null )
+        {
+            props = Collections.singletonMap( ArtifactProperties.LOCAL_PATH, 
dependency.getSystemPath().getPath() );
+        }
+
+        Artifact artifact =
+            new DefaultArtifact( dependency.getGroupId(), 
dependency.getArtifactId(), dependency.getClassifier(), null,
+                                 dependency.getVersion(), props, type );
+
+        return artifact;
+    }
+
+    public static org.eclipse.aether.repository.Authentication 
toAuthentication( Authentication auth )
+    {
+        if ( auth == null )
+        {
+            return null;
+        }
+        AuthenticationBuilder authBuilder = new AuthenticationBuilder();
+        authBuilder.addUsername( auth.getUsername() ).addPassword( 
auth.getPassword() );
+        authBuilder.addPrivateKey( auth.getPrivateKeyFile(), 
auth.getPassphrase() );
+        return authBuilder.build();
+    }
+
+    public static org.eclipse.aether.graph.Dependency toDependency( Dependency 
dependency, List<Exclusion> exclusions,
+                                                                     
RepositorySystemSession session )
+    {
+        return new org.eclipse.aether.graph.Dependency( toArtifact( 
dependency, session.getArtifactTypeRegistry() ),
+                                                         
dependency.getScope(), false,
+                                                         toExclusions( 
dependency.getExclusions(), exclusions ) );
+    }
+
+    /**
+     * Converts the given ant repository type to an Aether repository instance 
with authentication and proxy filled in
+     * via the sessions' selectors.
+     */
+    public static org.eclipse.aether.repository.RemoteRepository 
toDistRepository( RemoteRepository repo,
+                                                                       
RepositorySystemSession session )
+    {
+        org.eclipse.aether.repository.RemoteRepository result = toRepository( 
repo );
+        org.eclipse.aether.repository.RemoteRepository.Builder builder =
+            new org.eclipse.aether.repository.RemoteRepository.Builder( result 
);
+        builder.setAuthentication( 
session.getAuthenticationSelector().getAuthentication( result ) );
+        builder.setProxy( session.getProxySelector().getProxy( result ) );
+        return builder.build();
+    }
+
+    private static org.eclipse.aether.graph.Exclusion toExclusion( Exclusion 
exclusion )
+    {
+        return new org.eclipse.aether.graph.Exclusion( exclusion.getGroupId(), 
exclusion.getArtifactId(),
+                                                        
exclusion.getClassifier(), exclusion.getExtension() );
+    }
+
+    private static Collection<org.eclipse.aether.graph.Exclusion> 
toExclusions( Collection<Exclusion> exclusions1,
+                                                                               
  Collection<Exclusion> exclusions2 )
+    {
+        Collection<org.eclipse.aether.graph.Exclusion> results =
+            new LinkedHashSet<org.eclipse.aether.graph.Exclusion>();
+        if ( exclusions1 != null )
+        {
+            for ( Exclusion exclusion : exclusions1 )
+            {
+                results.add( toExclusion( exclusion ) );
+            }
+        }
+        if ( exclusions2 != null )
+        {
+            for ( Exclusion exclusion : exclusions2 )
+            {
+                results.add( toExclusion( exclusion ) );
+            }
+        }
+        return results;
+    }
+
+    private static RepositoryPolicy toPolicy( RemoteRepository.Policy policy, 
boolean enabled, String updates,
+                                              String checksums )
+    {
+        if ( policy != null )
+        {
+            enabled = policy.isEnabled();
+            if ( policy.getChecksums() != null )
+            {
+                checksums = policy.getChecksums();
+            }
+            if ( policy.getUpdates() != null )
+            {
+                updates = policy.getUpdates();
+            }
+        }
+        return new RepositoryPolicy( enabled, updates, checksums );
+    }
+
+    /**
+     * Adds every &lt;String, String>-entry in the map as a property to the 
given Properties.
+     */
+    public static Properties addProperties( Properties props, Map<?, ?> map )
+    {
+        if ( props == null )
+        {
+            props = new Properties();
+        }
+        for ( Map.Entry<?, ?> entry : map.entrySet() )
+        {
+            if ( entry.getKey() instanceof String && entry.getValue() 
instanceof String )
+            {
+                props.put( entry.getKey(), entry.getValue() );
+            }
+        }
+        return props;
+    }
+
+    public static org.eclipse.aether.repository.Proxy toProxy( Proxy proxy )
+    {
+        if ( proxy == null )
+        {
+            return null;
+        }
+        return new org.eclipse.aether.repository.Proxy( proxy.getType(), 
proxy.getHost(), proxy.getPort(),
+                                                         toAuthentication( 
proxy.getAuthentication() ) );
+    }
+
+    private static org.eclipse.aether.repository.RemoteRepository 
toRepository( RemoteRepository repo )
+    {
+        org.eclipse.aether.repository.RemoteRepository.Builder builder =
+            new org.eclipse.aether.repository.RemoteRepository.Builder( 
repo.getId(), repo.getType(), repo.getUrl() );
+        builder.setSnapshotPolicy( toPolicy( repo.getSnapshotPolicy(), 
repo.isSnapshots(), repo.getUpdates(),
+                                             repo.getChecksums() ) );
+        builder.setReleasePolicy( toPolicy( repo.getReleasePolicy(), 
repo.isReleases(), repo.getUpdates(),
+                                            repo.getChecksums() ) );
+        builder.setAuthentication( toAuthentication( repo.getAuthentication() 
) );
+        return builder.build();
+    }
+
+    public static List<org.eclipse.aether.repository.RemoteRepository> 
toRepositories( Project project,
+                                                                          
RepositorySystemSession session,
+                                                                          
RemoteRepositories repos, RemoteRepositoryManager remoteRepositoryManager )
+    {
+        List<RemoteRepository> repositories;
+
+        if ( repos != null )
+        {
+            repositories = repos.getRepositories();
+        }
+        else
+        {
+            repositories = new ArrayList<RemoteRepository>();
+        }
+
+        List<org.eclipse.aether.repository.RemoteRepository> results =
+            new ArrayList<org.eclipse.aether.repository.RemoteRepository>();
+        for ( RemoteRepository repo : repositories )
+        {
+            results.add( toRepository( repo ) );
+        }
+
+        results =
+            remoteRepositoryManager.aggregateRepositories( session,
+                                                      
Collections.<org.eclipse.aether.repository.RemoteRepository> emptyList(),
+                                                      results, true );
+
+        return results;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/java/org/eclipse/aether/internal/ant/util/SettingsUtils.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/eclipse/aether/internal/ant/util/SettingsUtils.java 
b/src/main/java/org/eclipse/aether/internal/ant/util/SettingsUtils.java
new file mode 100644
index 0000000..5fe44bf
--- /dev/null
+++ b/src/main/java/org/eclipse/aether/internal/ant/util/SettingsUtils.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Sonatype, Inc. - initial API and implementation
+ 
*******************************************************************************/
+package org.eclipse.aether.internal.ant.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.settings.Activation;
+import org.apache.maven.settings.ActivationFile;
+import org.apache.maven.settings.ActivationOS;
+import org.apache.maven.settings.ActivationProperty;
+import org.apache.maven.settings.Profile;
+import org.apache.maven.settings.Repository;
+import org.apache.maven.settings.RepositoryPolicy;
+
+/**
+ * Utility methods to read settings from Mavens settings.xml.
+ */
+public class SettingsUtils
+{
+
+    public static List<org.apache.maven.model.Profile> convert( List<Profile> 
profiles )
+    {
+        if ( profiles == null )
+        {
+            return null;
+        }
+
+        List<org.apache.maven.model.Profile> results = new 
ArrayList<org.apache.maven.model.Profile>();
+
+        for ( Profile profile : profiles )
+        {
+            results.add( convert( profile ) );
+        }
+
+        return results;
+    }
+
+    static org.apache.maven.model.Profile convert( Profile profile )
+    {
+        if ( profile == null )
+        {
+            return null;
+        }
+
+        org.apache.maven.model.Profile result = new 
org.apache.maven.model.Profile();
+
+        result.setId( profile.getId() );
+        result.setProperties( profile.getProperties() );
+        result.setSource( "settings.xml" );
+        result.setActivation( convert( profile.getActivation() ) );
+
+        for ( Repository repo : profile.getRepositories() )
+        {
+            result.addRepository( convert( repo ) );
+        }
+
+        for ( Repository repo : profile.getPluginRepositories() )
+        {
+            result.addPluginRepository( convert( repo ) );
+        }
+
+        return result;
+    }
+
+    static org.apache.maven.model.Activation convert( Activation activation )
+    {
+        if ( activation == null )
+        {
+            return null;
+        }
+
+        org.apache.maven.model.Activation result = new 
org.apache.maven.model.Activation();
+
+        result.setActiveByDefault( activation.isActiveByDefault() );
+        result.setJdk( activation.getJdk() );
+        result.setFile( convert( activation.getFile() ) );
+        result.setProperty( convert( activation.getProperty() ) );
+        result.setOs( convert( activation.getOs() ) );
+
+        return result;
+    }
+
+    static org.apache.maven.model.ActivationOS convert( ActivationOS 
activation )
+    {
+        if ( activation == null )
+        {
+            return null;
+        }
+
+        org.apache.maven.model.ActivationOS result = new 
org.apache.maven.model.ActivationOS();
+
+        result.setArch( activation.getArch() );
+        result.setFamily( activation.getFamily() );
+        result.setName( activation.getName() );
+        result.setVersion( activation.getVersion() );
+
+        return result;
+    }
+
+    static org.apache.maven.model.ActivationProperty convert( 
ActivationProperty activation )
+    {
+        if ( activation == null )
+        {
+            return null;
+        }
+
+        org.apache.maven.model.ActivationProperty result = new 
org.apache.maven.model.ActivationProperty();
+
+        result.setName( activation.getName() );
+        result.setValue( activation.getValue() );
+
+        return result;
+    }
+
+    static org.apache.maven.model.ActivationFile convert( ActivationFile 
activation )
+    {
+        if ( activation == null )
+        {
+            return null;
+        }
+
+        org.apache.maven.model.ActivationFile result = new 
org.apache.maven.model.ActivationFile();
+
+        result.setExists( activation.getExists() );
+        result.setMissing( activation.getMissing() );
+
+        return result;
+    }
+
+    static org.apache.maven.model.Repository convert( Repository repo )
+    {
+        if ( repo == null )
+        {
+            return null;
+        }
+
+        org.apache.maven.model.Repository result = new 
org.apache.maven.model.Repository();
+
+        result.setId( repo.getId() );
+        result.setUrl( repo.getUrl() );
+        result.setLayout( repo.getLayout() );
+        result.setReleases( convert( repo.getReleases() ) );
+        result.setSnapshots( convert( repo.getSnapshots() ) );
+
+        return result;
+    }
+
+    static org.apache.maven.model.RepositoryPolicy convert( RepositoryPolicy 
policy )
+    {
+        if ( policy == null )
+        {
+            return null;
+        }
+
+        org.apache.maven.model.RepositoryPolicy result = new 
org.apache.maven.model.RepositoryPolicy();
+
+        result.setEnabled( policy.isEnabled() );
+        result.setChecksumPolicy( policy.getChecksumPolicy() );
+        result.setUpdatePolicy( policy.getUpdatePolicy() );
+
+        return result;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/main/resources/org/eclipse/aether/ant/antlib.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/org/eclipse/aether/ant/antlib.xml 
b/src/main/resources/org/eclipse/aether/ant/antlib.xml
index b20a7cb..326c461 100644
--- a/src/main/resources/org/eclipse/aether/ant/antlib.xml
+++ b/src/main/resources/org/eclipse/aether/ant/antlib.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
- ~ Copyright (c) 2010, 2011 Sonatype, Inc.
+ ~ Copyright (c) 2010, 2014 Sonatype, Inc.
  ~ All rights reserved. This program and the accompanying materials
  ~ are made available under the terms of the Eclipse Public License v1.0
  ~ which accompanies this distribution, and is available at
@@ -13,21 +13,21 @@
 
 <antlib>
 
-  <typedef name="authentication"       
classname="org.eclipse.aether.ant.types.Authentication"/>
-  <typedef name="proxy"                
classname="org.eclipse.aether.ant.types.Proxy"/>
-  <typedef name="mirror"               
classname="org.eclipse.aether.ant.types.Mirror"/>
-  <typedef name="localrepo"            
classname="org.eclipse.aether.ant.types.LocalRepository"/>
-  <typedef name="remoterepo"           
classname="org.eclipse.aether.ant.types.RemoteRepository"/>
-  <typedef name="remoterepos"          
classname="org.eclipse.aether.ant.types.RemoteRepositories"/>
-  <typedef name="dependency"           
classname="org.eclipse.aether.ant.types.Dependency"/>
-  <typedef name="dependencies"         
classname="org.eclipse.aether.ant.types.Dependencies"/>
-  <typedef name="artifact"             
classname="org.eclipse.aether.ant.types.Artifact"/>
-  <typedef name="artifacts"            
classname="org.eclipse.aether.ant.types.Artifacts"/>
-  <typedef name="settings"             
classname="org.eclipse.aether.ant.types.Settings"/>
+  <typedef name="authentication"       
classname="org.eclipse.aether.internal.ant.types.Authentication"/>
+  <typedef name="proxy"                
classname="org.eclipse.aether.internal.ant.types.Proxy"/>
+  <typedef name="mirror"               
classname="org.eclipse.aether.internal.ant.types.Mirror"/>
+  <typedef name="localrepo"            
classname="org.eclipse.aether.internal.ant.types.LocalRepository"/>
+  <typedef name="remoterepo"           
classname="org.eclipse.aether.internal.ant.types.RemoteRepository"/>
+  <typedef name="remoterepos"          
classname="org.eclipse.aether.internal.ant.types.RemoteRepositories"/>
+  <typedef name="dependency"           
classname="org.eclipse.aether.internal.ant.types.Dependency"/>
+  <typedef name="dependencies"         
classname="org.eclipse.aether.internal.ant.types.Dependencies"/>
+  <typedef name="artifact"             
classname="org.eclipse.aether.internal.ant.types.Artifact"/>
+  <typedef name="artifacts"            
classname="org.eclipse.aether.internal.ant.types.Artifacts"/>
+  <typedef name="settings"             
classname="org.eclipse.aether.internal.ant.types.Settings"/>
 
-  <taskdef name="resolve"              
classname="org.eclipse.aether.ant.tasks.Resolve"/>
-  <taskdef name="install"              
classname="org.eclipse.aether.ant.tasks.Install"/>
-  <taskdef name="deploy"               
classname="org.eclipse.aether.ant.tasks.Deploy"/>
-  <taskdef name="pom"                  
classname="org.eclipse.aether.ant.types.Pom"/>
+  <taskdef name="resolve"              
classname="org.eclipse.aether.internal.ant.tasks.Resolve"/>
+  <taskdef name="install"              
classname="org.eclipse.aether.internal.ant.tasks.Install"/>
+  <taskdef name="deploy"               
classname="org.eclipse.aether.internal.ant.tasks.Deploy"/>
+  <taskdef name="pom"                  
classname="org.eclipse.aether.internal.ant.types.Pom"/>
 
 </antlib>

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/AntBuildsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/AntBuildsTest.java 
b/src/test/java/org/eclipse/aether/ant/AntBuildsTest.java
deleted file mode 100644
index d7916a9..0000000
--- a/src/test/java/org/eclipse/aether/ant/AntBuildsTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2014 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant;
-
-import java.io.File;
-import java.io.PrintStream;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildFileTest;
-import org.apache.tools.ant.DefaultLogger;
-import org.apache.tools.ant.Project;
-import org.eclipse.aether.internal.test.util.TestFileUtils;
-
-public abstract class AntBuildsTest
-    extends BuildFileTest
-{
-
-    private static final File BASE_DIR;
-
-    protected static final File BUILD_DIR;
-
-    static
-    {
-        BASE_DIR = new File( "" ).getAbsoluteFile();
-        BUILD_DIR = new File( BASE_DIR, "target/ant" );
-    }
-
-    protected File projectDir;
-
-    protected File localRepoDir;
-
-    protected File distRepoDir;
-
-    protected String getProjectDirName()
-    {
-        String name = getClass().getSimpleName();
-        if ( name.endsWith( "Test" ) )
-        {
-            name = name.substring( 0, name.length() - 4 );
-        }
-        return name;
-    }
-
-    protected void setUpProperties()
-        throws Exception
-    {
-        // hook for subclasses to set further system properties for the 
project to pick up
-    }
-
-    @Override
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-
-        TestFileUtils.deleteFile( BUILD_DIR );
-
-        projectDir = new File( new File( BASE_DIR, "src/test/resources/ant" ), 
getProjectDirName() );
-        localRepoDir = new File( BUILD_DIR, "local-repo" );
-        distRepoDir = new File( BUILD_DIR, "dist-repo" );
-
-        System.setProperty( "project.dir", projectDir.getAbsolutePath() );
-        System.setProperty( "build.dir", BUILD_DIR.getAbsolutePath() );
-        System.setProperty( "maven.repo.local", localRepoDir.getAbsolutePath() 
);
-        System.setProperty( "project.distrepo.url", 
distRepoDir.toURI().toString() );
-        setUpProperties();
-
-        configureProject( new File( projectDir, "ant.xml" ).getAbsolutePath(), 
Project.MSG_VERBOSE );
-    }
-
-    @Override
-    protected void tearDown()
-        throws Exception
-    {
-        try
-        {
-            ProjectWorkspaceReader.dropInstance();
-            TestFileUtils.deleteFile( BUILD_DIR );
-        }
-        finally
-        {
-            super.tearDown();
-        }
-    }
-
-    @Override
-    public void configureProject( String filename, int logLevel )
-        throws BuildException
-    {
-        super.configureProject( filename, logLevel );
-        DefaultLogger logger = new DefaultLogger()
-        {
-            @Override
-            protected void printMessage( String message, PrintStream stream, 
int priority )
-            {
-                message = System.currentTimeMillis() + " " + message;
-                super.printMessage( message, stream, priority );
-            }
-        };
-        logger.setMessageOutputLevel( logLevel );
-        logger.setOutputPrintStream( System.out );
-        logger.setErrorPrintStream( System.err );
-        getProject().addBuildListener( logger );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/DeployTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/DeployTest.java 
b/src/test/java/org/eclipse/aether/ant/DeployTest.java
deleted file mode 100644
index f0ce232..0000000
--- a/src/test/java/org/eclipse/aether/ant/DeployTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2014 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant;
-
-import static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.util.Arrays;
-
-/*
- * still missing:
- * - deploy snapshots/releases into correct repos
- */
-public class DeployTest
-    extends AntBuildsTest
-{
-
-    public void testDeployGlobalPom()
-    {
-        long min = System.currentTimeMillis();
-        executeTarget( "testDeployGlobalPom" );
-        long max = System.currentTimeMillis();
-
-        assertLogContaining( "Uploading" );
-        
-        assertUpdatedFile( min, max, distRepoDir, 
"test/dummy/0.1-SNAPSHOT/maven-metadata.xml" );
-    }
-
-    public void testDeployOverrideGlobalPom()
-    {
-        long min = System.currentTimeMillis();
-        executeTarget( "testDeployOverrideGlobalPom" );
-        long max = System.currentTimeMillis();
-
-        assertLogContaining( "Uploading" );
-
-        assertUpdatedFile( min, max, distRepoDir, 
"test/other/0.1-SNAPSHOT/maven-metadata.xml" );
-    }
-
-    public void testDeployOverrideGlobalPomByRef()
-    {
-        long min = System.currentTimeMillis();
-        executeTarget( "testDeployOverrideGlobalPomByRef" );
-        long max = System.currentTimeMillis();
-
-        assertLogContaining( "Uploading" );
-
-        assertUpdatedFile( min, max, distRepoDir, 
"test/dummy/0.1-SNAPSHOT/maven-metadata.xml" );
-        assertUpdatedFile( min, max, distRepoDir, 
"test/other/0.1-SNAPSHOT/maven-metadata.xml" );
-    }
-
-    public void testDeployAttachedArtifact()
-    {
-        executeTarget( "testDeployAttachedArtifact" );
-
-        assertLogContaining( "Uploading" );
-
-        File dir = new File(distRepoDir, "test/dummy/0.1-SNAPSHOT/" );
-        String[] files = dir.list();
-        assertThat( "attached artifact not found: " + Arrays.toString( files 
), files,
-                    hasItemInArray( endsWith( "-ant.xml" ) ) );
-    }
-
-    private void assertUpdatedFile( long min, long max, File repoPath, String 
path )
-    {
-        File file = new File( repoPath, path );
-        min = (min / 1000) * 1000;
-        max = ((max + 999) / 1000) * 1000;
-        assertThat( "File does not exist in default repo: " + 
file.getAbsolutePath(), file.exists() );
-        assertThat( "Files were not updated for 1s before/after timestamp", 
file.lastModified(),
-                    allOf( greaterThanOrEqualTo( min ), lessThanOrEqualTo( max 
) ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/InstallTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/InstallTest.java 
b/src/test/java/org/eclipse/aether/ant/InstallTest.java
deleted file mode 100644
index 33d662d..0000000
--- a/src/test/java/org/eclipse/aether/ant/InstallTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2014 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant;
-
-import static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.io.IOException;
-
-public class InstallTest
-    extends AntBuildsTest
-{
-
-    public void testInstallGlobalPom()
-    {
-        executeTarget( "testInstallGlobalPom" );
-        long tstamp = System.currentTimeMillis();
-
-        assertLogContaining( "Installing" );
-        
-        assertUpdatedFile( tstamp, localRepoDir, 
"test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
-    }
-
-    public void testInstallOverrideGlobalPom()
-    {
-        executeTarget( "testInstallOverrideGlobalPom" );
-        long tstamp = System.currentTimeMillis();
-
-        assertLogContaining( "Installing" );
-
-        assertUpdatedFile( tstamp, localRepoDir, 
"test/other/0.1-SNAPSHOT/other-0.1-SNAPSHOT.pom" );
-    }
-
-    public void testInstallOverrideGlobalPomByRef()
-    {
-        long tstamp = System.currentTimeMillis();
-        executeTarget( "testInstallOverrideGlobalPomByRef" );
-
-        assertLogContaining( "Installing" );
-
-        assertUpdatedFile( tstamp, localRepoDir, 
"test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
-        assertUpdatedFile( tstamp, localRepoDir, 
"test/other/0.1-SNAPSHOT/other-0.1-SNAPSHOT.pom" );
-    }
-
-    public void testDefaultRepo()
-    {
-        executeTarget( "testDefaultRepo" );
-        long tstamp = System.currentTimeMillis();
-
-        assertLogContaining( "Installing" );
-
-        assertUpdatedFile( tstamp, localRepoDir, 
"test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
-        assertUpdatedFile( tstamp, localRepoDir, 
"test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT-ant.xml" );
-    }
-
-    public void testCustomRepo()
-        throws IOException
-    {
-        File repoPath = new File( BUILD_DIR, "local-repo-custom" );
-
-        executeTarget( "testCustomRepo" );
-        long tstamp = System.currentTimeMillis();
-
-        System.out.println( getLog() );
-        assertLogContaining( "Installing" );
-
-        assertUpdatedFile( tstamp, repoPath, 
"test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
-        assertUpdatedFile( tstamp, repoPath, 
"test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT-ant.xml" );
-    }
-
-    private void assertUpdatedFile( long tstamp, File repoPath, String path )
-    {
-        File file = new File( repoPath, path );
-        assertThat( "File does not exist in default repo: " + 
file.getAbsolutePath(), file.exists() );
-        assertThat( "Files were not updated for 1s before/after timestamp",
-                    file.lastModified(),
-                    allOf( greaterThanOrEqualTo( ( ( tstamp - 500 ) / 1000 ) * 
1000 ),
-                           lessThanOrEqualTo( tstamp + 2000 ) ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/ProjectWorkspaceReaderTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/eclipse/aether/ant/ProjectWorkspaceReaderTest.java 
b/src/test/java/org/eclipse/aether/ant/ProjectWorkspaceReaderTest.java
deleted file mode 100644
index 1ad937a..0000000
--- a/src/test/java/org/eclipse/aether/ant/ProjectWorkspaceReaderTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2014 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant;
-
-import static org.hamcrest.Matchers.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import org.apache.tools.ant.Project;
-import org.eclipse.aether.ant.ProjectWorkspaceReader;
-import org.eclipse.aether.ant.types.Pom;
-import org.junit.Before;
-import org.junit.Test;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-
-public class ProjectWorkspaceReaderTest
-{
-
-    private ProjectWorkspaceReader reader;
-
-    private Project project;
-
-    @Before
-    public void setUp()
-        throws Exception
-    {
-        this.reader = new ProjectWorkspaceReader();
-
-        this.project = new Project();
-        project.setProperty( "user.home", System.getProperty( "user.home" ) );
-    }
-
-    private Artifact artifact( String coords )
-    {
-        return new DefaultArtifact( coords );
-    }
-
-    private File getFile( String name )
-    {
-        return new File( "src/test/resources/ProjectWorkspaceReader", name );
-    }
-
-    @Test
-    public void testFindPom()
-    {
-        Pom pom = new Pom();
-        pom.setProject( project );
-        pom.setFile( getFile( "dummy-pom.xml" ) );
-
-        reader.addPom( pom );
-
-        assertEquals( pom.getFile(), reader.findArtifact( artifact( 
"test:dummy:pom:0.1-SNAPSHOT" ) ) );
-        assertNull( reader.findArtifact( artifact( 
"unavailable:test:pom:0.1-SNAPSHOT" ) ) );
-    }
-
-    @Test
-    public void testFindArtifact()
-    {
-        Pom pom = new Pom();
-        pom.setProject( project );
-        pom.setFile( getFile( "dummy-pom.xml" ) );
-
-        reader.addPom( pom );
-
-        org.eclipse.aether.ant.types.Artifact artifact = new 
org.eclipse.aether.ant.types.Artifact();
-        artifact.setProject( project );
-        artifact.addPom( pom );
-        artifact.setFile( getFile( "dummy-file.txt" ) );
-
-        reader.addArtifact( artifact );
-
-        assertEquals( artifact.getFile(), reader.findArtifact( artifact( 
"test:dummy:txt:0.1-SNAPSHOT" ) ) );
-        assertNull( reader.findArtifact( artifact( 
"unavailable:test:jar:0.1-SNAPSHOT" ) ) );
-    }
-
-    @Test
-    public void testFindVersions()
-    {
-        Pom pom1 = new Pom();
-        pom1.setProject( project );
-        pom1.setCoords( "test:dummy:1-SNAPSHOT" );
-
-        org.eclipse.aether.ant.types.Artifact artifact1 = new 
org.eclipse.aether.ant.types.Artifact();
-        artifact1.setProject( project );
-        artifact1.addPom( pom1 );
-        artifact1.setFile( getFile( "dummy-file.txt" ) );
-
-        reader.addArtifact( artifact1 );
-
-        Pom pom2 = new Pom();
-        pom2.setProject( project );
-        pom2.setCoords( "test:dummy:2-SNAPSHOT" );
-
-        org.eclipse.aether.ant.types.Artifact artifact2 = new 
org.eclipse.aether.ant.types.Artifact();
-        artifact2.setProject( project );
-        artifact2.addPom( pom2 );
-        artifact2.setFile( getFile( "dummy-file.txt" ) );
-
-        reader.addArtifact( artifact2 );
-
-        assertThat( reader.findVersions( artifact( "test:dummy:txt:[0,)" ) ),
-                    containsInAnyOrder( "1-SNAPSHOT", "2-SNAPSHOT" ) );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/ReactorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/ReactorTest.java 
b/src/test/java/org/eclipse/aether/ant/ReactorTest.java
deleted file mode 100644
index 12a724d..0000000
--- a/src/test/java/org/eclipse/aether/ant/ReactorTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2014 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.aether.ant.ProjectWorkspaceReader;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-
-public class ReactorTest
-    extends AntBuildsTest
-{
-
-    private Artifact artifact( String coords )
-    {
-        return new DefaultArtifact( coords );
-    }
-
-    public void testPom()
-        throws IOException
-    {
-        executeTarget( "testPom" );
-        ProjectWorkspaceReader reader = ProjectWorkspaceReader.getInstance();
-        File found = reader.findArtifact( artifact( 
"test:test:pom:0.1-SNAPSHOT" ) );
-        assertNotNull( found );
-        assertEquals( new File( projectDir, "pom1.xml" ), 
found.getAbsoluteFile() );
-    }
-
-    public void testArtifact()
-        throws IOException
-    {
-        executeTarget( "testArtifact" );
-        ProjectWorkspaceReader reader = ProjectWorkspaceReader.getInstance();
-        File found = reader.findArtifact( artifact( 
"test:test:pom:0.1-SNAPSHOT" ) );
-        assertNotNull( found );
-        assertEquals( new File( projectDir, "pom1.xml" ), 
found.getAbsoluteFile() );
-
-        found = reader.findArtifact( artifact( "test:test:xml:0.1-SNAPSHOT" ) 
);
-        assertNotNull( found );
-        assertEquals( new File( projectDir, "pom1.xml" ), 
found.getAbsoluteFile() );
-    }
-
-    public void testArtifactInMemoryPom()
-        throws IOException
-    {
-        executeTarget( "testArtifactInMemoryPom" );
-        ProjectWorkspaceReader reader = ProjectWorkspaceReader.getInstance();
-        File found = reader.findArtifact( artifact( 
"test:test:pom:0.1-SNAPSHOT" ) );
-        assertNull( found );
-
-        found = reader.findArtifact( artifact( "test:test:xml:0.1-SNAPSHOT" ) 
);
-        assertNotNull( found );
-        assertEquals( new File( projectDir, "pom1.xml" ), 
found.getAbsoluteFile() );
-    }
-
-    public void testResolveArtifact()
-        throws IOException
-    {
-        executeTarget( "testResolveArtifact" );
-        String prop = project.getProperty( "resolve.test:test:jar" );
-        assertEquals( new File( projectDir, "pom1.xml" ).getAbsolutePath(), 
prop );
-    }
-
-    public void testResolveArtifactInMemoryPom()
-        throws IOException
-    {
-        executeTarget( "testResolveArtifactInMemoryPom" );
-        String prop = project.getProperty( "resolve.test:test:jar" );
-        assertEquals( new File( projectDir, "pom1.xml" ).getAbsolutePath(), 
prop );
-        assertLogContaining( "The POM for test:test:jar:0.1-SNAPSHOT is 
missing, no dependency information available" );
-    }
-
-    public void testResolveVersionRange()
-        throws IOException
-    {
-        executeTarget( "testResolveVersionRange" );
-        String prop = project.getProperty( "resolve.test:test:jar" );
-        assertEquals( new File( projectDir, "pom1.xml" ).getAbsolutePath(), 
prop );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/ResolveTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/ResolveTest.java 
b/src/test/java/org/eclipse/aether/ant/ResolveTest.java
deleted file mode 100644
index cf3d545..0000000
--- a/src/test/java/org/eclipse/aether/ant/ResolveTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2014 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant;
-
-import static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Map;
-
-import org.apache.tools.ant.types.Path;
-
-public class ResolveTest
-    extends AntBuildsTest
-{
-
-    public void testResolveGlobalPom()
-    {
-        executeTarget( "testResolveGlobalPom" );
-
-        String prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-api:jar" );
-        assertThat( "aether-api was not resolved as a property", prop, 
notNullValue() );
-        assertThat( "aether-api was not resolved to default local repository", 
prop,
-                    allOf( containsString( "aether-api" ), endsWith( ".jar" ) 
) );
-    }
-
-    public void testResolveOverrideGlobalPom()
-    {
-        executeTarget( "testResolveOverrideGlobalPom" );
-
-        String prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-api:jar" );
-        assertThat( "aether-api was not resolved as a property", prop, 
notNullValue() );
-        assertThat( "aether-api was not resolved to default local repository", 
prop,
-                    allOf( containsString( "aether-api" ), endsWith( ".jar" ) 
) );
-    }
-
-    public void testResolveGlobalPomIntoOtherLocalRepo()
-    {
-        executeTarget( "testResolveGlobalPomIntoOtherLocalRepo" );
-
-        String prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-api:jar" );
-        assertThat( "aether-api was not resolved as a property", prop, 
notNullValue() );
-        assertThat( "aether-api was not resolved to default local repository", 
prop.replace( '\\', '/' ),
-                    endsWith( 
"local-repo-custom/org/eclipse/aether/aether-api/0.9.0.M3/aether-api-0.9.0.M3.jar"
 ) );
-    }
-
-    public void testResolveCustomFileLayout()
-        throws IOException
-    {
-        File dir = new File( BUILD_DIR, "resolve-custom-layout" );
-        executeTarget( "testResolveCustomFileLayout" );
-
-        assertThat( "aether-api was not saved with custom file layout",
-                    new File( dir, 
"org.eclipse.aether/aether-api/org/eclipse/aether/jar" ).exists() );
-    }
-
-    public void testResolveAttachments()
-        throws IOException
-    {
-        File dir = new File( BUILD_DIR, "resolve-attachments" );
-        executeTarget( "testResolveAttachments" );
-        
-        File jdocDir = new File(dir, "javadoc");
-        
-        assertThat( "aether-api-javadoc was not saved with custom file layout",
-                    new File( jdocDir, 
"org.eclipse.aether-aether-api-javadoc.jar" ).exists() );
-
-        assertThat( "found non-javadoc files", Arrays.asList( jdocDir.list() 
), everyItem( endsWith( "javadoc.jar" ) ) );
-
-        File sourcesDir = new File( dir, "sources" );
-        assertThat( "aether-api-sources was not saved with custom file layout",
-                    new File( sourcesDir, 
"org.eclipse.aether-aether-api-sources.jar" ).exists() );
-        assertThat( "found non-sources files", Arrays.asList( 
sourcesDir.list() ),
-                    everyItem( endsWith( "sources.jar" ) ) );
-    }
-
-    public void testResolvePath()
-    {
-        executeTarget( "testResolvePath" );
-        Map<?, ?> refs = getProject().getReferences();
-        Object obj = refs.get( "out" );
-        assertThat( "ref 'out' is no path", obj, instanceOf( Path.class ) );
-        Path path = (Path) obj;
-        String[] elements = path.list();
-        assertThat( "no aether-api on classpath", elements,
-                    hasItemInArray( allOf( containsString( "aether-api" ), 
endsWith( ".jar" ) ) ) );
-    }
-
-    public void testResolveDepsFromFile()
-    {
-        executeTarget( "testResolveDepsFromFile" );
-
-        String prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-spi:jar" );
-        assertThat( "aether-spi was not resolved as a property", prop, 
notNullValue() );
-        assertThat( "aether-spi was not resolved to default local repository", 
prop,
-                    allOf( containsString( "aether-spi" ), endsWith( ".jar" ) 
) );
-        prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-api:jar" );
-        assertThat( "aether-api was resolved as a property", prop, nullValue() 
);
-    }
-
-    public void testResolveNestedDependencyCollections()
-    {
-        executeTarget( "testResolveNestedDependencyCollections" );
-
-        String prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-spi:jar" );
-        assertThat( "aether-spi was not resolved as a property", prop, 
notNullValue() );
-        prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-util:jar" );
-        assertThat( "aether-util was not resolved as a property", prop, 
notNullValue() );
-        prop = getProject().getProperty( 
"test.resolve.path.org.eclipse.aether:aether-api:jar" );
-        assertThat( "aether-api was resolved as a property", prop, nullValue() 
);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/SettingsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/SettingsTest.java 
b/src/test/java/org/eclipse/aether/ant/SettingsTest.java
deleted file mode 100644
index d292a21..0000000
--- a/src/test/java/org/eclipse/aether/ant/SettingsTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2014 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant;
-
-import static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.io.IOException;
-
-public class SettingsTest
-    extends AntBuildsTest
-{
-
-    public void testUserSettings()
-    {
-        executeTarget( "testUserSettings" );
-        assertThat( "user settings not set", AntRepoSys.getInstance( 
getProject() ).getUserSettings().getName(),
-                    equalTo( "userSettings.xml" ) );
-    }
-
-    public void testGlobalSettings()
-    {
-        executeTarget( "testGlobalSettings" );
-        assertThat( "global settings not set", AntRepoSys.getInstance( 
getProject() ).getGlobalSettings().getName(),
-                    equalTo( "globalSettings.xml" ) );
-    }
-
-    public void testBothSettings()
-    {
-        executeTarget( "testBothSettings" );
-        assertThat( "global settings not set", AntRepoSys.getInstance( 
getProject() ).getGlobalSettings().getName(),
-                    equalTo( "globalSettings.xml" ) );
-        assertThat( "user settings not set", AntRepoSys.getInstance( 
getProject() ).getUserSettings().getName(),
-                    equalTo( "userSettings.xml" ) );
-    }
-
-    public void testFallback()
-        throws IOException
-    {
-        executeTarget("setUp");
-        assertThat( "no fallback to local settings",
-                    AntRepoSys.getInstance( getProject() 
).getUserSettings().getAbsolutePath(), endsWith( ".m2"
-                        + File.separator + "settings.xml" ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/tasks/LayoutTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/tasks/LayoutTest.java 
b/src/test/java/org/eclipse/aether/ant/tasks/LayoutTest.java
deleted file mode 100644
index bc5e476..0000000
--- a/src/test/java/org/eclipse/aether/ant/tasks/LayoutTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2012 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant.tasks;
-
-import static org.junit.Assert.assertEquals;
-
-import org.apache.tools.ant.BuildException;
-import org.eclipse.aether.ant.tasks.Layout;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.junit.Test;
-
-/**
- */
-public class LayoutTest
-{
-
-    @Test( expected = BuildException.class )
-    public void testUnknownVariable()
-    {
-        new Layout( "{unknown}" );
-    }
-
-    @Test
-    public void testGetPath()
-    {
-        Layout layout;
-
-        layout =
-            new Layout( 
"{groupIdDirs}/{artifactId}/{baseVersion}/{artifactId}-{version}-{classifier}.{extension}"
 );
-        assertEquals( 
"org/apache/maven/maven-model/3.0-SNAPSHOT/maven-model-3.0-20100720.132618-1.jar",
-                      layout.getPath( new DefaultArtifact( 
"org.apache.maven:maven-model:3.0-20100720.132618-1" ) ) );
-
-        layout = new Layout( 
"{groupId}/{artifactId}-{version}-{classifier}.{extension}" );
-        assertEquals( "org.apache.maven/maven-model-3.0-sources.jar",
-                      layout.getPath( new DefaultArtifact( 
"org.apache.maven:maven-model:jar:sources:3.0" ) ) );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/1ec78d99/src/test/java/org/eclipse/aether/ant/types/DependencyTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/eclipse/aether/ant/types/DependencyTest.java 
b/src/test/java/org/eclipse/aether/ant/types/DependencyTest.java
deleted file mode 100644
index 82b0020..0000000
--- a/src/test/java/org/eclipse/aether/ant/types/DependencyTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2011 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Sonatype, Inc. - initial API and implementation
- 
*******************************************************************************/
-package org.eclipse.aether.ant.types;
-
-import static org.junit.Assert.*;
-
-import org.eclipse.aether.ant.types.Dependency;
-import org.junit.Test;
-
-/**
- */
-public class DependencyTest
-{
-
-    @Test
-    public void testSetCoordsGidAidVer()
-    {
-        Dependency dep = new Dependency();
-        dep.setCoords( "gid:aid:ver" );
-
-        assertEquals( "gid", dep.getGroupId() );
-        assertEquals( "aid", dep.getArtifactId() );
-        assertEquals( "ver", dep.getVersion() );
-        assertEquals( "jar", dep.getType() );
-        assertEquals( "", dep.getClassifier() );
-        assertEquals( "compile", dep.getScope() );
-    }
-
-    @Test
-    public void testSetCoordsGidAidVerScope()
-    {
-        Dependency dep = new Dependency();
-        dep.setCoords( "gid:aid:ver:scope" );
-
-        assertEquals( "gid", dep.getGroupId() );
-        assertEquals( "aid", dep.getArtifactId() );
-        assertEquals( "ver", dep.getVersion() );
-        assertEquals( "jar", dep.getType() );
-        assertEquals( "", dep.getClassifier() );
-        assertEquals( "scope", dep.getScope() );
-    }
-
-    @Test
-    public void testSetCoordsGidAidVerTypeScope()
-    {
-        Dependency dep = new Dependency();
-        dep.setCoords( "gid:aid:ver:type:scope" );
-
-        assertEquals( "gid", dep.getGroupId() );
-        assertEquals( "aid", dep.getArtifactId() );
-        assertEquals( "ver", dep.getVersion() );
-        assertEquals( "type", dep.getType() );
-        assertEquals( "", dep.getClassifier() );
-        assertEquals( "scope", dep.getScope() );
-    }
-
-    @Test
-    public void testSetCoordsGidAidVerTypeClsScope()
-    {
-        Dependency dep = new Dependency();
-        dep.setCoords( "gid:aid:ver:type:cls:scope" );
-
-        assertEquals( "gid", dep.getGroupId() );
-        assertEquals( "aid", dep.getArtifactId() );
-        assertEquals( "ver", dep.getVersion() );
-        assertEquals( "type", dep.getType() );
-        assertEquals( "cls", dep.getClassifier() );
-        assertEquals( "scope", dep.getScope() );
-    }
-
-}

Reply via email to