mizdebsk pushed to gradle (master). "Port to Maven 3.3.1"
notifications at fedoraproject.org
notifications at fedoraproject.org
Wed Mar 25 12:41:17 UTC 2015
>From bed465f29c79935a5a18e490a4e10d6a9dda3007 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Wed, 25 Mar 2015 13:36:09 +0100
Subject: Port to Maven 3.3.1
diff --git a/0006-Port-to-Maven-3.1.1-and-Aether-Ant-Tasks.patch b/0006-Port-to-Maven-3.1.1-and-Aether-Ant-Tasks.patch
deleted file mode 100644
index 85e1c21..0000000
--- a/0006-Port-to-Maven-3.1.1-and-Aether-Ant-Tasks.patch
+++ /dev/null
@@ -1,1335 +0,0 @@
-From 3aee4ddfc050d5d28a51ebab40e0cc853a9444ea Mon Sep 17 00:00:00 2001
-From: Mikolaj Izdebski <mizdebsk at redhat.com>
-Date: Fri, 31 Oct 2014 09:23:37 +0100
-Subject: [PATCH 06/14] Port to Maven 3.1.1 and Aether Ant Tasks
-
----
- gradle/dependencies.gradle | 57 +++++++++----
- .../plugins/internal/maven/Maven2Gradle.groovy | 2 +-
- .../internal/maven/MavenProjectXmlWriter.java | 4 +-
- .../internal/maven/MavenProjectsCreator.java | 24 +++---
- .../dependency-management.gradle | 7 +-
- .../internal/artifacts/PlexusLoggerAdapter.java | 8 ++
- .../DefaultLocalMavenRepositoryLocator.java | 4 +-
- .../mvnsettings/DefaultMavenSettingsProvider.java | 4 +-
- .../mvnsettings/MavenSettingsProvider.java | 4 +-
- .../maven/internal/DefaultMavenPom.java | 6 +-
- .../maven/internal/ant/AbstractMavenResolver.java | 71 ++++++++++------
- .../maven/internal/ant/BaseMavenDeployer.java | 98 ++++++++++++++++------
- .../maven/internal/ant/BaseMavenInstaller.java | 12 +--
- .../maven/internal/ant/CustomDeployTask.java | 45 ----------
- .../ant/CustomInstallDeployTaskSupport.java | 27 ------
- .../maven/internal/ant/CustomInstallTask.java | 38 ---------
- .../maven/internal/ant/CustomRemoteRepository.java | 29 +++++++
- .../internal/ant/EmptyMavenSettingsSupplier.java | 9 +-
- .../maven/internal/ant/GradleWagonProvider.java | 38 +++++++++
- .../maven/internal/ant/LoggingHelper.java | 43 ----------
- .../maven/internal/ant/MavenSettingsSupplier.java | 4 +-
- .../ant/MaybeUserMavenSettingsSupplier.java | 11 ++-
- .../ProjectDependencyArtifactIdExtractorHack.java | 3 +-
- .../maven/internal/ant/RepositoryBuilder.java | 24 ++++--
- .../maven/internal/ant/RepositoryFactory.java | 21 +++--
- .../AbstractAntTaskBackedMavenPublisher.java | 38 ++++-----
- .../AntTaskBackedMavenLocalPublisher.java | 41 +++------
- .../publisher/AntTaskBackedMavenPublisher.java | 47 ++++-------
- .../publisher/MavenRemoteRepositoryFactory.java | 6 +-
- .../publisher/ValidatingMavenPublisher.java | 6 +-
- 30 files changed, 363 insertions(+), 368 deletions(-)
- delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java
- delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java
- delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java
- create mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java
- create mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java
- delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java
-
-diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
-index 11a80eb..78e90fe 100755
---- a/gradle/dependencies.gradle
-+++ b/gradle/dependencies.gradle
-@@ -76,8 +76,28 @@ libraries.commons_httpclient = dependencies.module('org.apache.httpcomponents:ht
- dependency "org.samba.jcifs:jcifs:1.3.17 at jar"
- }
-
--libraries.maven_ant_tasks = dependencies.module("org.apache.maven:maven-ant-tasks:2.1.3") {
-- libraries.ant
-+libraries.maven_ant_tasks = dependencies.module("org.eclipse.aether:aether-ant-tasks:1.0.0.v20140518") {
-+ dependency "org.eclipse.aether:aether-api:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-util:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-impl:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-spi:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-connector-basic:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-transport-classpath:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-transport-file:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-transport-http:1.0.0.v20140518 at jar"
-+ dependency "org.apache.maven:maven-aether-provider:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-model:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-model-builder:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-repository-metadata:3.1.1 at jar"
-+ dependency "org.codehaus.plexus:plexus-utils:2.1 at jar"
-+ dependency "org.apache.maven:maven-settings-builder:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-settings:3.1.1 at jar"
-+ dependency "org.sonatype.plexus:plexus-sec-dispatcher:1.3 at jar"
-+ dependency "org.sonatype.plexus:plexus-cipher:1.7 at jar"
-+ dependency "org.codehaus.plexus:plexus-interpolation:1.16 at jar"
-+ dependency "org.eclipse.sisu:org.eclipse.sisu.plexus:0.1.1 at jar"
-+ dependency libraries.ant
-+ dependency libraries.commons_httpclient
- }
-
- libraries += [
-@@ -98,9 +118,9 @@ libraries += [
- jsoup:'org.jsoup:jsoup:1.6.3'
- ]
-
--libraries.maven3 = dependencies.module("org.apache.maven:maven-core:3.0.4") {
-- dependency "org.apache.maven:maven-settings:3.0.4 at jar"
-- dependency "org.apache.maven:maven-settings-builder:3.0.4 at jar"
-+libraries.maven3 = dependencies.module("org.apache.maven:maven-core:3.1.1") {
-+ dependency "org.apache.maven:maven-settings:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-settings-builder:3.1.1 at jar"
-
- //plexus:
- dependency "org.codehaus.plexus:plexus-utils:2.0.6 at jar"
-@@ -114,27 +134,28 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:3.0.4") {
- dependency "org.sonatype.plexus:plexus-sec-dispatcher:1.3 at jar"
-
- //core:
-- dependency "org.apache.maven:maven-core:3.0.4 at jar"
-- dependency "org.apache.maven:maven-model-builder:3.0.4 at jar"
-- dependency "org.apache.maven:maven-model:3.0.4 at jar"
-+ dependency "org.apache.maven:maven-core:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-model-builder:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-model:3.1.1 at jar"
-
- //somewhat core:
-- dependency "org.apache.maven:maven-artifact:3.0.4 at jar"
-- dependency "org.apache.maven:maven-compat:3.0.4 at jar"
-- dependency "org.apache.maven:maven-repository-metadata:3.0.4 at jar"
-- dependency "org.apache.maven:maven-plugin-api:3.0.4 at jar"
-- dependency "org.apache.maven:maven-aether-provider:3.0.4 at jar"
-+ dependency "org.apache.maven:maven-artifact:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-compat:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-repository-metadata:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-plugin-api:3.1.1 at jar"
-+ dependency "org.apache.maven:maven-aether-provider:3.1.1 at jar"
-
- dependency 'org.apache.maven.wagon:wagon-http:2.8 at jar'
- dependency 'org.apache.maven.wagon:wagon-provider-api:2.8 at jar'
- dependency 'org.apache.maven.wagon:wagon-http-shared:2.8 at jar'
-
- //eather:
-- dependency "org.sonatype.aether:aether-api:1.13.1 at jar"
-- dependency "org.sonatype.aether:aether-impl:1.13.1 at jar"
-- dependency "org.sonatype.aether:aether-spi:1.13.1 at jar"
-- dependency "org.sonatype.aether:aether-util:1.13.1 at jar"
-- dependency 'org.sonatype.aether:aether-connector-wagon:1.13.1 at jar'
-+ dependency "org.eclipse.aether:aether-api:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-impl:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-spi:1.0.0.v20140518 at jar"
-+ dependency "org.eclipse.aether:aether-util:1.0.0.v20140518 at jar"
-+ dependency 'org.eclipse.aether:aether-connector-basic:1.0.0.v20140518 at jar'
-+ dependency 'org.eclipse.aether:aether-transport-wagon:1.0.0.v20140518 at jar'
- }
-
- libraries.spock = [
-diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy
-index b16a908..dacb94c 100644
---- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy
-+++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy
-@@ -18,7 +18,7 @@
-
- package org.gradle.buildinit.plugins.internal.maven
-
--import org.gradle.mvn3.org.apache.maven.project.MavenProject
-+import org.apache.maven.project.MavenProject
- import org.gradle.util.GFileUtils
-
- /**
-diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java
-index a304126..b2c9c0b 100644
---- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java
-+++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java
-@@ -16,8 +16,8 @@
-
- package org.gradle.buildinit.plugins.internal.maven;
-
--import org.gradle.mvn3.org.apache.maven.model.io.xpp3.MavenXpp3Writer;
--import org.gradle.mvn3.org.apache.maven.project.MavenProject;
-+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-+import org.apache.maven.project.MavenProject;
-
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
-diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
-index ddd4924..8dfde0d 100644
---- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
-+++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
-@@ -19,18 +19,18 @@ package org.gradle.buildinit.plugins.internal.maven;
- import com.google.common.collect.ImmutableList;
- import org.gradle.api.Transformer;
- import org.gradle.internal.SystemProperties;
--import org.gradle.mvn3.org.apache.maven.execution.*;
--import org.gradle.mvn3.org.apache.maven.project.*;
--import org.gradle.mvn3.org.apache.maven.settings.Settings;
--import org.gradle.mvn3.org.codehaus.plexus.ContainerConfiguration;
--import org.gradle.mvn3.org.codehaus.plexus.DefaultContainerConfiguration;
--import org.gradle.mvn3.org.codehaus.plexus.DefaultPlexusContainer;
--import org.gradle.mvn3.org.codehaus.plexus.PlexusContainerException;
--import org.gradle.mvn3.org.codehaus.plexus.classworlds.ClassWorld;
--import org.gradle.mvn3.org.codehaus.plexus.component.repository.exception.ComponentLookupException;
--import org.gradle.mvn3.org.codehaus.plexus.configuration.PlexusConfigurationException;
--import org.gradle.mvn3.org.sonatype.aether.RepositorySystemSession;
--import org.gradle.mvn3.org.sonatype.aether.util.DefaultRepositorySystemSession;
-+import org.apache.maven.execution.*;
-+import org.apache.maven.project.*;
-+import org.apache.maven.settings.Settings;
-+import org.codehaus.plexus.ContainerConfiguration;
-+import org.codehaus.plexus.DefaultContainerConfiguration;
-+import org.codehaus.plexus.DefaultPlexusContainer;
-+import org.codehaus.plexus.PlexusContainerException;
-+import org.codehaus.plexus.classworlds.ClassWorld;
-+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-+import org.codehaus.plexus.configuration.PlexusConfigurationException;
-+import org.eclipse.aether.RepositorySystemSession;
-+import org.eclipse.aether.DefaultRepositorySystemSession;
- import org.gradle.util.CollectionUtils;
-
- import java.io.File;
-diff --git a/subprojects/dependency-management/dependency-management.gradle b/subprojects/dependency-management/dependency-management.gradle
-index 3ddc4f3..2af3f84 100644
---- a/subprojects/dependency-management/dependency-management.gradle
-+++ b/subprojects/dependency-management/dependency-management.gradle
-@@ -42,9 +42,10 @@ task jarJarMaven3(type: JarJar) {
- //unfortunately, all those need to be jarjarred.
- // Even if some library (like aether) is not included in maven-ant-tasks it has
- // META-INF/plexus/components.xml that to jarjarred components.
-- rule('org.apache.maven.**', 'org.gradle.mvn3.org.apache.maven. at 1')
-- rule('org.codehaus.**', 'org.gradle.mvn3.org.codehaus. at 1')
-- rule('org.sonatype.**', 'org.gradle.mvn3.org.sonatype. at 1')
-+ //rule('org.apache.maven.**', 'org.gradle.mvn3.org.apache.maven. at 1')
-+ //rule('org.codehaus.**', 'org.gradle.mvn3.org.codehaus. at 1')
-+ //rule('org.sonatype.**', 'org.gradle.mvn3.org.sonatype. at 1')
-+ //rule('org.eclipse.aether.**', 'org.gradle.mvn3.org.eclipse.aether. at 1')
-
- avoidConflictingPlexusComponents(it)
- }
-diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java
-index e02ab3b..5f213bd 100644
---- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java
-+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java
-@@ -92,7 +92,15 @@ public class PlexusLoggerAdapter implements Logger {
- throw new UnsupportedOperationException();
- }
-
-+ public void setThreshold(int threshold) {
-+ throw new UnsupportedOperationException();
-+ }
-+
- public String getName() {
- return logger.getName();
- }
-+
-+ public void setName(String name) {
-+ throw new UnsupportedOperationException();
-+ }
- }
-diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java
-index 299544f..c93a9bd 100644
---- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java
-+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java
-@@ -15,8 +15,8 @@
- */
- package org.gradle.api.internal.artifacts.mvnsettings;
-
--import org.gradle.mvn3.org.apache.maven.settings.Settings;
--import org.gradle.mvn3.org.apache.maven.settings.building.SettingsBuildingException;
-+import org.apache.maven.settings.Settings;
-+import org.apache.maven.settings.building.SettingsBuildingException;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-
-diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java
-index cc39a17..01eb522 100644
---- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java
-+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java
-@@ -15,8 +15,8 @@
- */
- package org.gradle.api.internal.artifacts.mvnsettings;
-
--import org.gradle.mvn3.org.apache.maven.settings.Settings;
--import org.gradle.mvn3.org.apache.maven.settings.building.*;
-+import org.apache.maven.settings.Settings;
-+import org.apache.maven.settings.building.*;
-
- public class DefaultMavenSettingsProvider implements MavenSettingsProvider {
-
-diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java
-index dd93102..a7d7030 100644
---- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java
-+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java
-@@ -15,8 +15,8 @@
- */
- package org.gradle.api.internal.artifacts.mvnsettings;
-
--import org.gradle.mvn3.org.apache.maven.settings.Settings;
--import org.gradle.mvn3.org.apache.maven.settings.building.SettingsBuildingException;
-+import org.apache.maven.settings.Settings;
-+import org.apache.maven.settings.building.SettingsBuildingException;
-
- public interface MavenSettingsProvider {
- Settings buildSettings() throws SettingsBuildingException;
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java
-index 482c0a9..80b1ad9 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java
-@@ -160,11 +160,7 @@ public class DefaultMavenPom implements MavenPom {
-
- public DefaultMavenPom getEffectivePom() {
- DefaultMavenPom effectivePom = new DefaultMavenPom(null, this.scopeMappings, pomDependenciesConverter, fileResolver);
-- try {
-- effectivePom.setMavenProject((MavenProject) mavenProject.clone());
-- } catch (CloneNotSupportedException e) {
-- throw new RuntimeException(e);
-- }
-+ effectivePom.setMavenProject((MavenProject) mavenProject.clone());
- effectivePom.getDependencies().addAll(getGeneratedDependencies());
- effectivePom.withXmlActions = withXmlActions;
- whenConfiguredActions.execute(effectivePom);
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java
-index 854202f..6d35082 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java
-@@ -16,12 +16,13 @@
- package org.gradle.api.publication.maven.internal.ant;
-
- import groovy.lang.Closure;
--import org.apache.ivy.core.module.descriptor.Artifact;
--import org.apache.maven.artifact.ant.AttachedArtifact;
--import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
--import org.apache.maven.artifact.ant.Pom;
-+
- import org.apache.maven.settings.Settings;
- import org.apache.tools.ant.Project;
-+import org.eclipse.aether.internal.ant.AntRepoSys;
-+import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
-+import org.eclipse.aether.internal.ant.types.Artifact;
-+import org.eclipse.aether.internal.ant.types.Pom;
- import org.gradle.api.Action;
- import org.gradle.api.artifacts.PublishArtifact;
- import org.gradle.api.artifacts.maven.*;
-@@ -41,6 +42,7 @@ import org.gradle.logging.LoggingManagerInternal;
- import org.gradle.util.AntUtil;
-
- import java.io.File;
-+import java.lang.reflect.Method;
- import java.util.Set;
-
- public abstract class AbstractMavenResolver extends AbstractArtifactRepository implements MavenResolver, ModuleVersionPublisher, ResolutionAwareRepository, PublicationAwareRepository {
-@@ -71,7 +73,7 @@ public abstract class AbstractMavenResolver extends AbstractArtifactRepository i
- return this;
- }
-
-- protected abstract InstallDeployTaskSupport createPreConfiguredTask(Project project);
-+ protected abstract AbstractDistTask createPreConfiguredTask(Project project);
-
- public void publish(IvyModulePublishMetaData moduleVersion) {
- for (IvyModuleArtifactPublishMetaData artifact : moduleVersion.getArtifacts()) {
-@@ -80,32 +82,39 @@ public abstract class AbstractMavenResolver extends AbstractArtifactRepository i
- publish();
- }
-
-- private void collectArtifact(Artifact artifact, File src) {
-+ private void collectArtifact(org.apache.ivy.core.module.descriptor.Artifact artifact, File src) {
- if (isIgnorable(artifact)) {
- return;
- }
- getArtifactPomContainer().addArtifact(artifact, src);
- }
-
-- private boolean isIgnorable(Artifact artifact) {
-+ private boolean isIgnorable(org.apache.ivy.core.module.descriptor.Artifact artifact) {
- return artifact.getType().equals("ivy");
- }
-
- private void publish() {
-- InstallDeployTaskSupport installDeployTaskSupport = createPreConfiguredTask(AntUtil.createProject());
-+ Project project = AntUtil.createProject();
- Set<MavenDeployment> mavenDeployments = getArtifactPomContainer().createDeployableFilesInfos();
-- mavenSettingsSupplier.supply(installDeployTaskSupport);
-+ mavenSettingsSupplier.supply(project);
- for (MavenDeployment mavenDeployment : mavenDeployments) {
-- ((CustomInstallDeployTaskSupport) installDeployTaskSupport).clearAttachedArtifactsList();
-+ AbstractDistTask task = createPreConfiguredTask(project);
- beforeDeploymentActions.execute(mavenDeployment);
-- addPomAndArtifact(installDeployTaskSupport, mavenDeployment);
-- execute(installDeployTaskSupport);
-+ addPomAndArtifact(task, mavenDeployment);
-+ execute(task);
- }
- mavenSettingsSupplier.done();
-- settings = ((CustomInstallDeployTaskSupport) installDeployTaskSupport).getSettings();
-+
-+ try {
-+ Method getter = AntRepoSys.class.getDeclaredMethod("getSettings");
-+ getter.setAccessible(true);
-+ settings = (Settings) getter.invoke(AntRepoSys.getInstance(project));
-+ } catch (ReflectiveOperationException e) {
-+ throw new RuntimeException(e);
-+ }
- }
-
-- private void execute(InstallDeployTaskSupport deployTask) {
-+ private void execute(AbstractDistTask deployTask) {
- loggingManager.captureStandardOutput(LogLevel.INFO).start();
- try {
- deployTask.execute();
-@@ -114,19 +123,33 @@ public abstract class AbstractMavenResolver extends AbstractArtifactRepository i
- }
- }
-
-- private void addPomAndArtifact(InstallDeployTaskSupport installOrDeployTask, MavenDeployment mavenDeployment) {
-+ private void addPomAndArtifact(AbstractDistTask task, MavenDeployment mavenDeployment) {
-+ PublishArtifact pomArtifact = mavenDeployment.getPomArtifact();
- Pom pom = new Pom();
-- pom.setProject(installOrDeployTask.getProject());
-- pom.setFile(mavenDeployment.getPomArtifact().getFile());
-- installOrDeployTask.addPom(pom);
-+ pom.setProject(task.getProject());
-+ pom.setFile(pomArtifact.getFile());
-+ task.addPom(pom);
-+
-+ PublishArtifact mainArtifact = mavenDeployment.getMainArtifact();
- if (mavenDeployment.getMainArtifact() != null) {
-- installOrDeployTask.setFile(mavenDeployment.getMainArtifact().getFile());
-+ Artifact artifact = new Artifact();
-+ artifact.setProject(task.getProject());
-+ artifact.setFile(mainArtifact.getFile());
-+ artifact.setType(mainArtifact.getType());
-+ task.addArtifact(artifact);
- }
-- for (PublishArtifact classifierArtifact : mavenDeployment.getAttachedArtifacts()) {
-- AttachedArtifact attachedArtifact = installOrDeployTask.createAttach();
-- attachedArtifact.setClassifier(classifierArtifact.getClassifier());
-- attachedArtifact.setFile(classifierArtifact.getFile());
-- attachedArtifact.setType(classifierArtifact.getType());
-+
-+ for (PublishArtifact attachedArtifact : mavenDeployment.getAttachedArtifacts()) {
-+ String type = attachedArtifact.getType();
-+ String classifier = attachedArtifact.getClassifier();
-+ if (type != null && type.equals("pom") && (classifier == null || classifier.isEmpty()))
-+ continue;
-+ Artifact artifact = new Artifact();
-+ artifact.setProject(task.getProject());
-+ artifact.setFile(attachedArtifact.getFile());
-+ artifact.setType(type);
-+ artifact.setClassifier(classifier);
-+ task.addArtifact(artifact);
- }
- }
-
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java
-index 35b0e95..dd0a310 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright 2007-2008 the original author or authors.
-+ * Copyright 2007-2014 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
-@@ -15,12 +15,24 @@
- */
- package org.gradle.api.publication.maven.internal.ant;
-
--import org.apache.maven.artifact.ant.DeployTask;
--import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
--import org.apache.maven.artifact.ant.RemoteRepository;
- import org.apache.tools.ant.Project;
-+import org.codehaus.plexus.ContainerConfiguration;
-+import org.codehaus.plexus.DefaultContainerConfiguration;
-+import org.codehaus.plexus.DefaultPlexusContainer;
- import org.codehaus.plexus.PlexusContainer;
- import org.codehaus.plexus.PlexusContainerException;
-+import org.codehaus.plexus.classworlds.ClassWorld;
-+import org.codehaus.plexus.classworlds.realm.ClassRealm;
-+import org.eclipse.aether.impl.DefaultServiceLocator;
-+import org.eclipse.aether.internal.ant.AntRepoSys;
-+import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
-+import org.eclipse.aether.internal.ant.tasks.Deploy;
-+import org.eclipse.aether.internal.ant.types.RemoteRepository;
-+import org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator;
-+import org.eclipse.aether.spi.connector.transport.TransporterFactory;
-+import org.eclipse.aether.transport.wagon.WagonConfigurator;
-+import org.eclipse.aether.transport.wagon.WagonProvider;
-+import org.eclipse.aether.transport.wagon.WagonTransporterFactory;
- import org.gradle.api.artifacts.Configuration;
- import org.gradle.api.artifacts.maven.MavenDeployer;
- import org.gradle.api.artifacts.maven.PomFilterContainer;
-@@ -28,6 +40,8 @@ import org.gradle.api.publication.maven.internal.ArtifactPomContainer;
- import org.gradle.logging.LoggingManagerInternal;
-
- import java.io.File;
-+import java.lang.reflect.Field;
-+import java.net.MalformedURLException;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
-@@ -42,43 +56,77 @@ public class BaseMavenDeployer extends AbstractMavenResolver implements MavenDep
- // todo remove this property once configuration can handle normal file system dependencies
- private List<File> protocolProviderJars = new ArrayList<File>();
-
-- private boolean uniqueVersion = true;
--
- public BaseMavenDeployer(PomFilterContainer pomFilterContainer, ArtifactPomContainer artifactPomContainer, LoggingManagerInternal loggingManager) {
- super(pomFilterContainer, artifactPomContainer, loggingManager);
- }
-
-- protected InstallDeployTaskSupport createPreConfiguredTask(Project project) {
-- CustomDeployTask deployTask = createTask();
-+ protected AbstractDistTask createPreConfiguredTask(Project project) {
-+ configureAetherRepoSys(project);
-+ Deploy deployTask = createTask();
- deployTask.setProject(project);
-- deployTask.setUniqueVersion(isUniqueVersion());
-- addProtocolProvider(deployTask);
- addRemoteRepositories(deployTask);
- return deployTask;
- }
-
-- protected CustomDeployTask createTask() {
-- return new CustomDeployTask();
-+ private void configureAetherRepoSys(Project project) {
-+ PlexusContainer container = createContainer();
-+
-+ try {
-+ AntRepoSys repoSys = AntRepoSys.getInstance(project);
-+ Field field = repoSys.getClass().getDeclaredField("locator");
-+ field.setAccessible(true);
-+ DefaultServiceLocator locator = (DefaultServiceLocator) field.get(repoSys);
-+ locator.addService(TransporterFactory.class, WagonTransporterFactory.class);
-+ locator.addService(WagonProvider.class, GradleWagonProvider.class);
-+ locator.addService(WagonConfigurator.class, PlexusWagonConfigurator.class);
-+
-+ GradleWagonProvider wagonProvider = (GradleWagonProvider) locator.getService(WagonProvider.class);
-+ wagonProvider.initService(container);
-+ } catch (ReflectiveOperationException e) {
-+ throw new RuntimeException(e);
-+ }
- }
-
-- private void addProtocolProvider(CustomDeployTask deployTask) {
-- PlexusContainer plexusContainer = deployTask.getContainer();
-- for (File wagonProviderJar : getJars()) {
-- try {
-- plexusContainer.addJarResource(wagonProviderJar);
-- } catch (PlexusContainerException e) {
-- throw new RuntimeException(e);
-+ private PlexusContainer createContainer() {
-+ try {
-+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-+ ClassWorld world = new ClassWorld("plexus.core", classLoader);
-+ ClassRealm realm = new ClassRealm(world, "plexus.core", classLoader);
-+ for (File wagonProviderJar : getJars()) {
-+ realm.addURL(wagonProviderJar.toURI().toURL());
- }
-+
-+ ContainerConfiguration conf = new DefaultContainerConfiguration();
-+ conf.setClassWorld(world);
-+ conf.setRealm(realm);
-+ conf.setName("plexus.core");
-+
-+ return new DefaultPlexusContainer(conf);
-+ } catch (PlexusContainerException e) {
-+ throw new RuntimeException(e);
-+ } catch (MalformedURLException e) {
-+ throw new RuntimeException(e);
- }
- }
-
-+ protected Deploy createTask() {
-+ return new Deploy();
-+ }
-+
- private List<File> getJars() {
- return configuration != null ? new ArrayList<File>(configuration.resolve()) : protocolProviderJars;
- }
-
-- private void addRemoteRepositories(DeployTask deployTask) {
-- deployTask.addRemoteRepository(remoteRepository);
-- deployTask.addRemoteSnapshotRepository(remoteSnapshotRepository);
-+ private void addRemoteRepositories(Deploy deployTask) {
-+ Project project = deployTask.getProject();
-+ if (remoteRepository != null) {
-+ remoteRepository.setProject(project);
-+ }
-+ if (remoteSnapshotRepository != null) {
-+ remoteSnapshotRepository.setProject(project);
-+ }
-+ deployTask.addRemoteRepo(remoteRepository);
-+ deployTask.addSnapshotRepo(remoteSnapshotRepository);
- }
-
- public RemoteRepository getRepository() {
-@@ -110,10 +158,12 @@ public class BaseMavenDeployer extends AbstractMavenResolver implements MavenDep
- }
-
- public boolean isUniqueVersion() {
-- return uniqueVersion;
-+ return true;
- }
-
- public void setUniqueVersion(boolean uniqueVersion) {
-- this.uniqueVersion = uniqueVersion;
-+ if (!uniqueVersion) {
-+ throw new IllegalArgumentException("Non-unique snapshot versions are not supported by this version of Gradle");
-+ }
- }
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java
-index a901694..19541f0 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java
-@@ -15,9 +15,9 @@
- */
- package org.gradle.api.publication.maven.internal.ant;
-
--import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
--import org.apache.maven.artifact.ant.InstallTask;
- import org.apache.tools.ant.Project;
-+import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
-+import org.eclipse.aether.internal.ant.tasks.Install;
- import org.gradle.api.artifacts.maven.PomFilterContainer;
- import org.gradle.api.publication.maven.internal.ArtifactPomContainer;
- import org.gradle.logging.LoggingManagerInternal;
-@@ -28,13 +28,13 @@ public class BaseMavenInstaller extends AbstractMavenResolver {
- mavenSettingsSupplier = new MaybeUserMavenSettingsSupplier();
- }
-
-- protected InstallDeployTaskSupport createPreConfiguredTask(Project project) {
-- InstallTask installTask = createTask();
-+ protected AbstractDistTask createPreConfiguredTask(Project project) {
-+ Install installTask = createTask();
- installTask.setProject(project);
- return installTask;
- }
-
-- protected CustomInstallTask createTask() {
-- return new CustomInstallTask();
-+ protected Install createTask() {
-+ return new Install();
- }
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java
-deleted file mode 100644
-index 85521bf..0000000
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java
-+++ /dev/null
-@@ -1,45 +0,0 @@
--/*
-- * Copyright 2007-2008 the original author or authors.
-- *
-- * Licensed 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.
-- */
--package org.gradle.api.publication.maven.internal.ant;
--
--import org.apache.maven.artifact.ant.DeployTask;
--import org.apache.maven.settings.Settings;
--import org.codehaus.plexus.PlexusContainer;
--
--/**
-- * We could also use reflection to get hold of the container property. But this would make it harder to use a Mock for this class.
-- */
--public class CustomDeployTask extends DeployTask implements CustomInstallDeployTaskSupport {
-- @Override
-- public synchronized Settings getSettings() {
-- return super.getSettings();
-- }
--
-- @Override
-- public synchronized PlexusContainer getContainer() {
-- return super.getContainer();
-- }
--
-- @Override
-- public void doExecute() {
-- LoggingHelper.injectLogger(getContainer(), getProject());
-- super.doExecute();
-- }
--
-- public void clearAttachedArtifactsList() {
-- attachedArtifacts.clear();
-- }
--}
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java
-deleted file mode 100644
-index 40c3ea9..0000000
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java
-+++ /dev/null
-@@ -1,27 +0,0 @@
--/*
-- * Copyright 2007-2008 the original author or authors.
-- *
-- * Licensed 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.
-- */
--package org.gradle.api.publication.maven.internal.ant;
--
--import org.apache.maven.artifact.ant.AttachedArtifact;
--import org.apache.maven.settings.Settings;
--import org.apache.tools.ant.Project;
--
--public interface CustomInstallDeployTaskSupport {
-- Settings getSettings();
-- Project getProject();
-- AttachedArtifact createAttach();
-- void clearAttachedArtifactsList();
--}
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java
-deleted file mode 100644
-index 15079c4..0000000
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java
-+++ /dev/null
-@@ -1,38 +0,0 @@
--/*
-- * Copyright 2007-2008 the original author or authors.
-- *
-- * Licensed 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.
-- */
--package org.gradle.api.publication.maven.internal.ant;
--
--import org.apache.maven.artifact.ant.InstallTask;
--import org.apache.maven.settings.Settings;
--
--public class CustomInstallTask extends InstallTask implements CustomInstallDeployTaskSupport {
-- @Override
-- public synchronized Settings getSettings() {
-- return super.getSettings();
-- }
--
-- public void clearAttachedArtifactsList() {
-- attachedArtifacts.clear();
-- }
--
-- @Override
-- public void doExecute() {
-- LoggingHelper.injectLogger(getContainer(), getProject());
-- super.doExecute();
-- }
--
--
--}
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java
-new file mode 100644
-index 0000000..df82986
---- /dev/null
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java
-@@ -0,0 +1,29 @@
-+package org.gradle.api.publication.maven.internal.ant;
-+
-+import java.util.ArrayList;
-+import java.util.List;
-+
-+import org.apache.tools.ant.Project;
-+import org.eclipse.aether.internal.ant.AntRepoSys;
-+import org.eclipse.aether.internal.ant.types.Proxy;
-+import org.eclipse.aether.internal.ant.types.RemoteRepository;
-+
-+class CustomRemoteRepository extends RemoteRepository {
-+
-+ private final List<Proxy> proxies = new ArrayList<Proxy>();
-+
-+ @Override
-+ public void setProject(Project project) {
-+ super.setProject(project);
-+
-+ AntRepoSys repoSys = AntRepoSys.getInstance(project);
-+ for (Proxy proxy : proxies) {
-+ repoSys.addProxy(proxy);
-+ }
-+ }
-+
-+ public void addProxy(Proxy proxy) {
-+ proxies.add(proxy);
-+ }
-+
-+}
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java
-index 5549dcb..0119703 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java
-@@ -17,7 +17,8 @@
- package org.gradle.api.publication.maven.internal.ant;
-
- import org.apache.commons.io.FileUtils;
--import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
-+import org.apache.tools.ant.Project;
-+import org.eclipse.aether.internal.ant.AntRepoSys;
- import org.gradle.api.UncheckedIOException;
- import org.gradle.api.internal.file.TemporaryFileProvider;
- import org.gradle.api.internal.file.TmpDirTemporaryFileProvider;
-@@ -30,7 +31,7 @@ public class EmptyMavenSettingsSupplier implements MavenSettingsSupplier {
- private final TemporaryFileProvider temporaryFileProvider = new TmpDirTemporaryFileProvider();
- private File settingsXml;
-
-- public void supply(InstallDeployTaskSupport installDeployTaskSupport) {
-+ public void supply(Project project) {
- try {
- settingsXml = temporaryFileProvider.createTemporaryFile("gradle_empty_settings", ".xml");
- FileUtils.writeStringToFile(settingsXml, "<settings/>");
-@@ -38,7 +39,9 @@ public class EmptyMavenSettingsSupplier implements MavenSettingsSupplier {
- } catch (IOException e) {
- throw new UncheckedIOException(e);
- }
-- installDeployTaskSupport.setSettingsFile(settingsXml);
-+ AntRepoSys repoSys = AntRepoSys.getInstance(project);
-+ repoSys.setGlobalSettings(settingsXml);
-+ repoSys.setUserSettings(settingsXml);
- }
-
- public void done() {
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java
-new file mode 100644
-index 0000000..cfab163
---- /dev/null
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java
-@@ -0,0 +1,38 @@
-+/*
-+ * Copyright 2014 the original author or authors.
-+ *
-+ * Licensed 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.
-+ */
-+package org.gradle.api.publication.maven.internal.ant;
-+
-+import org.apache.maven.wagon.Wagon;
-+import org.codehaus.plexus.PlexusContainer;
-+import org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider;
-+import org.eclipse.aether.transport.wagon.WagonProvider;
-+
-+public class GradleWagonProvider implements WagonProvider {
-+
-+ private WagonProvider delegate;
-+
-+ public void initService(PlexusContainer container) {
-+ delegate = new PlexusWagonProvider(container);
-+ }
-+
-+ public Wagon lookup(String roleHint) throws Exception {
-+ return delegate.lookup(roleHint);
-+ }
-+
-+ public void release(Wagon wagon) {
-+ delegate.release(wagon);
-+ }
-+}
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java
-deleted file mode 100644
-index 248f839..0000000
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java
-+++ /dev/null
-@@ -1,43 +0,0 @@
--/*
-- * Copyright 2007-2008 the original author or authors.
-- *
-- * Licensed 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.
-- */
--package org.gradle.api.publication.maven.internal.ant;
--
--import org.apache.maven.artifact.ant.AntDownloadMonitor;
--import org.apache.maven.artifact.manager.DefaultWagonManager;
--import org.apache.maven.artifact.manager.WagonManager;
--import org.apache.tools.ant.Project;
--import org.codehaus.plexus.PlexusContainer;
--import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
--
--import java.lang.reflect.Field;
--
--public class LoggingHelper {
-- public static void injectLogger(PlexusContainer container, Project project) {
-- try {
-- WagonManager wagonManager = (WagonManager) container.lookup(WagonManager.ROLE);
-- Field field = DefaultWagonManager.class.getDeclaredField("downloadMonitor");
-- field.setAccessible(true);
-- AntDownloadMonitor antDownloadMonitor = (AntDownloadMonitor) field.get(wagonManager);
-- antDownloadMonitor.setProject(project);
-- } catch (ComponentLookupException e) {
-- throw new RuntimeException(e);
-- } catch (IllegalAccessException e) {
-- throw new RuntimeException(e);
-- } catch (NoSuchFieldException e) {
-- throw new RuntimeException(e);
-- }
-- }
--}
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java
-index a8fb1c2..a493ed6 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java
-@@ -16,9 +16,9 @@
-
- package org.gradle.api.publication.maven.internal.ant;
-
--import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
-+import org.apache.tools.ant.Project;
-
- public interface MavenSettingsSupplier {
- void done();
-- void supply(InstallDeployTaskSupport installDeployTaskSupport);
-+ void supply(Project project);
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java
-index af4020b..d3cfc7d 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java
-@@ -16,7 +16,8 @@
-
- package org.gradle.api.publication.maven.internal.ant;
-
--import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
-+import org.apache.tools.ant.Project;
-+import org.eclipse.aether.internal.ant.AntRepoSys;
- import org.gradle.api.internal.artifacts.mvnsettings.DefaultMavenFileLocations;
- import org.gradle.api.internal.artifacts.mvnsettings.MavenFileLocations;
-
-@@ -27,14 +28,16 @@ public class MaybeUserMavenSettingsSupplier implements MavenSettingsSupplier {
- MavenSettingsSupplier emptySettingsSupplier = new EmptyMavenSettingsSupplier();
- MavenFileLocations mavenFileLocations = new DefaultMavenFileLocations();
-
-- public void supply(InstallDeployTaskSupport installDeployTaskSupport) {
-+ public void supply(Project project) {
- File userSettings = mavenFileLocations.getUserSettingsFile();
- if (userSettings.exists()) {
-- installDeployTaskSupport.setSettingsFile(userSettings);
-+ AntRepoSys repoSys = AntRepoSys.getInstance(project);
-+ repoSys.setGlobalSettings(userSettings);
-+ repoSys.setUserSettings(userSettings);
- return;
- }
-
-- emptySettingsSupplier.supply(installDeployTaskSupport);
-+ emptySettingsSupplier.supply(project);
- }
-
- public void done() {
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java
-index 988270d..3fcd73a 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java
-@@ -17,7 +17,7 @@
- package org.gradle.api.publication.maven.internal.ant;
-
- import com.google.common.collect.Lists;
--import org.apache.maven.project.MavenProject;
-+
- import org.gradle.api.Nullable;
- import org.gradle.api.Project;
- import org.gradle.api.artifacts.ProjectDependency;
-@@ -26,6 +26,7 @@ import org.gradle.api.artifacts.maven.MavenResolver;
- import org.gradle.api.artifacts.repositories.ArtifactRepository;
- import org.gradle.api.plugins.BasePluginConvention;
- import org.gradle.api.tasks.Upload;
-+import org.apache.maven.project.MavenProject;
- import org.testng.internal.annotations.Sets;
-
- import java.util.Collection;
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java
-index bff4576..97afd1e 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java
-@@ -15,18 +15,28 @@
- */
- package org.gradle.api.publication.maven.internal.ant;
-
-+import org.eclipse.aether.internal.ant.types.Authentication;
-+import org.eclipse.aether.internal.ant.types.Proxy;
-+import org.eclipse.aether.internal.ant.types.RemoteRepository;
-+
- import groovy.util.FactoryBuilderSupport;
--import org.apache.maven.artifact.ant.Authentication;
--import org.apache.maven.artifact.ant.Proxy;
--import org.apache.maven.artifact.ant.RemoteRepository;
--import org.apache.maven.artifact.ant.RepositoryPolicy;
-
- public class RepositoryBuilder extends FactoryBuilderSupport {
- public RepositoryBuilder() {
- registerFactory("repository", new RepositoryFactory(RemoteRepository.class));
-- registerBeanFactory("authentication", Authentication.class);
-+ registerBeanFactory("authentication", CustomAuthentication.class);
- registerBeanFactory("proxy", Proxy.class);
-- registerBeanFactory("snapshots", RepositoryPolicy.class);
-- registerBeanFactory("releases", RepositoryPolicy.class);
-+ registerBeanFactory("snapshots", RemoteRepository.Policy.class);
-+ registerBeanFactory("releases", RemoteRepository.Policy.class);
-+ }
-+
-+ public static class CustomAuthentication extends Authentication {
-+ public String getUserName() {
-+ return getUsername();
-+ }
-+
-+ public void setUserName(String userName) {
-+ setUsername(userName);
-+ }
- }
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java
-index e3517aa..d4e1424 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java
-@@ -15,12 +15,14 @@
- */
- package org.gradle.api.publication.maven.internal.ant;
-
-+import java.util.UUID;
-+
-+import org.eclipse.aether.internal.ant.types.Authentication;
-+import org.eclipse.aether.internal.ant.types.Proxy;
-+import org.eclipse.aether.internal.ant.types.RemoteRepository;
-+
- import groovy.swing.factory.BeanFactory;
- import groovy.util.FactoryBuilderSupport;
--import org.apache.maven.artifact.ant.Authentication;
--import org.apache.maven.artifact.ant.Proxy;
--import org.apache.maven.artifact.ant.RemoteRepository;
--import org.apache.maven.artifact.ant.RepositoryPolicy;
-
- public class RepositoryFactory extends BeanFactory {
- public RepositoryFactory(Class klass) {
-@@ -32,20 +34,21 @@ public class RepositoryFactory extends BeanFactory {
- }
-
- public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
-+ getRepository(parent).setId(UUID.randomUUID().toString());
- if (child instanceof Authentication) {
- getRepository(parent).addAuthentication((Authentication) child);
- } else if (child instanceof Proxy) {
- getRepository(parent).addProxy((Proxy) child);
-- } else if (child instanceof RepositoryPolicy) {
-+ } else if (child instanceof RemoteRepository.Policy) {
- if (builder.getCurrentName().equals("snapshots")) {
-- getRepository(parent).addSnapshots((RepositoryPolicy) child);
-+ getRepository(parent).addSnapshots((RemoteRepository.Policy) child);
- } else {
-- getRepository(parent).addReleases((RepositoryPolicy) child);
-+ getRepository(parent).addReleases((RemoteRepository.Policy) child);
- }
- }
- }
-
-- private RemoteRepository getRepository(Object parent) {
-- return (RemoteRepository) parent;
-+ private CustomRemoteRepository getRepository(Object parent) {
-+ return (CustomRemoteRepository) parent;
- }
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java
-index 55c6324..4bf3736 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java
-@@ -16,9 +16,10 @@
-
- package org.gradle.api.publish.maven.internal.publisher;
-
--import org.apache.maven.artifact.ant.AttachedArtifact;
--import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
--import org.apache.maven.artifact.ant.Pom;
-+import org.apache.tools.ant.Project;
-+import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
-+import org.eclipse.aether.internal.ant.types.Artifact;
-+import org.eclipse.aether.internal.ant.types.Pom;
- import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
- import org.gradle.api.logging.LogLevel;
- import org.gradle.api.publication.maven.internal.ant.EmptyMavenSettingsSupplier;
-@@ -33,7 +34,7 @@ import org.slf4j.LoggerFactory;
-
- import java.io.File;
-
--abstract public class AbstractAntTaskBackedMavenPublisher<T extends InstallDeployTaskSupport> implements MavenPublisher {
-+abstract public class AbstractAntTaskBackedMavenPublisher<T extends AbstractDistTask> implements MavenPublisher {
- private final Factory<LoggingManagerInternal> loggingManagerFactory;
-
- private static Logger logger = LoggerFactory.getLogger(AbstractAntTaskBackedMavenPublisher.class);
-@@ -46,11 +47,12 @@ abstract public class AbstractAntTaskBackedMavenPublisher<T extends InstallDeplo
-
- public void publish(MavenNormalizedPublication publication, MavenArtifactRepository artifactRepository) {
- logger.info("Publishing to repository {}", artifactRepository);
-+ Project project = AntUtil.createProject();
- T deployTask = createDeployTask();
-- deployTask.setProject(AntUtil.createProject());
-+ deployTask.setProject(project);
-
- MavenSettingsSupplier mavenSettingsSupplier = new EmptyMavenSettingsSupplier();
-- mavenSettingsSupplier.supply(deployTask);
-+ mavenSettingsSupplier.supply(project);
-
- postConfigure(deployTask, artifactRepository);
- addPomAndArtifacts(deployTask, publication);
-@@ -63,27 +65,23 @@ abstract public class AbstractAntTaskBackedMavenPublisher<T extends InstallDeplo
-
- abstract protected T createDeployTask();
-
-- private void addPomAndArtifacts(InstallDeployTaskSupport installOrDeployTask, MavenNormalizedPublication publication) {
-+ private void addPomAndArtifacts(AbstractDistTask task, MavenNormalizedPublication publication) {
- Pom pom = new Pom();
-- pom.setProject(installOrDeployTask.getProject());
-+ pom.setProject(task.getProject());
- pom.setFile(publication.getPomFile());
-- installOrDeployTask.addPom(pom);
--
-- MavenArtifact mainArtifact = publication.getMainArtifact();
-- installOrDeployTask.setFile(mainArtifact == null ? publication.getPomFile() : mainArtifact.getFile());
-+ task.addPom(pom);
-
- for (MavenArtifact mavenArtifact : publication.getArtifacts()) {
-- if (mavenArtifact == mainArtifact) {
-- continue;
-- }
-- AttachedArtifact attachedArtifact = installOrDeployTask.createAttach();
-- attachedArtifact.setClassifier(GUtil.elvis(mavenArtifact.getClassifier(), ""));
-- attachedArtifact.setType(GUtil.elvis(mavenArtifact.getExtension(), ""));
-- attachedArtifact.setFile(mavenArtifact.getFile());
-+ Artifact artifact = new Artifact();
-+ artifact.setProject(task.getProject());
-+ artifact.setClassifier(GUtil.elvis(mavenArtifact.getClassifier(), ""));
-+ artifact.setType(GUtil.elvis(mavenArtifact.getExtension(), ""));
-+ artifact.setFile(mavenArtifact.getFile());
-+ task.addArtifact(artifact);
- }
- }
-
-- private void execute(InstallDeployTaskSupport deployTask) {
-+ private void execute(AbstractDistTask deployTask) {
- LoggingManagerInternal loggingManager = loggingManagerFactory.create();
- loggingManager.captureStandardOutput(LogLevel.INFO).start();
- try {
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java
-index 2be6c47..645444a 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java
-@@ -16,49 +16,30 @@
-
- package org.gradle.api.publish.maven.internal.publisher;
-
--import org.apache.maven.artifact.ant.RemoteRepository;
--import org.apache.maven.artifact.repository.ArtifactRepository;
--import org.apache.maven.artifact.repository.DefaultArtifactRepository;
--import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-+import org.eclipse.aether.internal.ant.AntRepoSys;
-+import org.eclipse.aether.internal.ant.tasks.Install;
-+import org.eclipse.aether.internal.ant.types.LocalRepository;
- import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
--import org.gradle.api.publication.maven.internal.ant.CustomInstallTask;
- import org.gradle.internal.Factory;
- import org.gradle.logging.LoggingManagerInternal;
-
- import java.io.File;
-
--public class AntTaskBackedMavenLocalPublisher extends AbstractAntTaskBackedMavenPublisher<AntTaskBackedMavenLocalPublisher.MavenLocalInstallTask> {
-+public class AntTaskBackedMavenLocalPublisher extends AbstractAntTaskBackedMavenPublisher<Install> {
- public AntTaskBackedMavenLocalPublisher(Factory<LoggingManagerInternal> loggingManagerFactory, Factory<File> temporaryDirFactory) {
- super(loggingManagerFactory, temporaryDirFactory);
- }
-
- @Override
-- protected void postConfigure(MavenLocalInstallTask task, MavenArtifactRepository artifactRepository) {
-- task.setRepoLocation(artifactRepository.getUrl().toString());
-+ protected void postConfigure(Install task, MavenArtifactRepository artifactRepository) {
-+ LocalRepository localRepository = new LocalRepository(task);
-+ localRepository.setDir(new File(artifactRepository.getUrl().getPath()));
-+ AntRepoSys repoSys = AntRepoSys.getInstance(task.getProject());
-+ repoSys.setLocalRepository(localRepository);
- }
-
- @Override
-- protected MavenLocalInstallTask createDeployTask() {
-- return new MavenLocalInstallTask();
-- }
--
-- public static class MavenLocalInstallTask extends CustomInstallTask {
--
-- private String repoLocation;
--
-- private void setRepoLocation(String repoLocation) {
-- this.repoLocation = repoLocation;
-- }
--
-- @Override
-- protected ArtifactRepository createLocalArtifactRepository() {
-- ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) lookup(ArtifactRepositoryLayout.ROLE, getLocalRepository().getLayout());
-- return new DefaultArtifactRepository("local", repoLocation, repositoryLayout);
-- }
--
-- @Override
-- protected void updateRepositoryWithSettings(RemoteRepository repository) {
-- // Do nothing
-- }
-+ protected Install createDeployTask() {
-+ return new Install();
- }
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java
-index a22dbf4..4d5492d 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java
-@@ -16,53 +16,36 @@
-
- package org.gradle.api.publish.maven.internal.publisher;
-
--import org.apache.maven.artifact.ant.RemoteRepository;
--import org.apache.maven.artifact.repository.ArtifactRepository;
--import org.apache.maven.artifact.repository.DefaultArtifactRepository;
--import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-+import org.eclipse.aether.internal.ant.AntRepoSys;
-+import org.eclipse.aether.internal.ant.tasks.Deploy;
-+import org.eclipse.aether.internal.ant.types.LocalRepository;
-+import org.eclipse.aether.internal.ant.types.RemoteRepository;
- import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
--import org.gradle.api.publication.maven.internal.ant.CustomDeployTask;
- import org.gradle.internal.Factory;
- import org.gradle.logging.LoggingManagerInternal;
-
- import java.io.File;
-
--public class AntTaskBackedMavenPublisher extends AbstractAntTaskBackedMavenPublisher<CustomDeployTask> {
-+public class AntTaskBackedMavenPublisher extends AbstractAntTaskBackedMavenPublisher<Deploy> {
- public AntTaskBackedMavenPublisher(Factory<LoggingManagerInternal> loggingManagerFactory, Factory<File> temporaryDirFactory) {
- super(loggingManagerFactory, temporaryDirFactory);
- }
-
-- protected void postConfigure(CustomDeployTask task, MavenArtifactRepository artifactRepository) {
-+ protected void postConfigure(Deploy task, MavenArtifactRepository artifactRepository) {
- addRepository(task, artifactRepository);
- }
-
-- protected CustomDeployTask createDeployTask() {
-- CustomDeployTask deployTask = new DeployTask(temporaryDirFactory);
-- deployTask.setUniqueVersion(true);
-- return deployTask;
-+ protected Deploy createDeployTask() {
-+ Deploy task = new Deploy();
-+ LocalRepository localRepository = new LocalRepository(task);
-+ localRepository.setDir(temporaryDirFactory.create());
-+ AntRepoSys repoSys = AntRepoSys.getInstance(task.getProject());
-+ repoSys.setLocalRepository(localRepository);
-+ return task;
- }
-
-- private void addRepository(CustomDeployTask deployTask, MavenArtifactRepository artifactRepository) {
-+ private void addRepository(Deploy deployTask, MavenArtifactRepository artifactRepository) {
- RemoteRepository mavenRepository = new MavenRemoteRepositoryFactory(artifactRepository).create();
-- deployTask.addRemoteRepository(mavenRepository);
-- }
--
-- private static class DeployTask extends CustomDeployTask {
-- private final Factory<File> tmpDirFactory;
--
-- public DeployTask(Factory<File> tmpDirFactory) {
-- this.tmpDirFactory = tmpDirFactory;
-- }
--
-- @Override
-- protected ArtifactRepository createLocalArtifactRepository() {
-- ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) lookup(ArtifactRepositoryLayout.ROLE, getLocalRepository().getLayout());
-- return new DefaultArtifactRepository("local", tmpDirFactory.create().toURI().toString(), repositoryLayout);
-- }
--
-- @Override
-- protected void updateRepositoryWithSettings(RemoteRepository repository) {
-- // Do nothing
-- }
-+ deployTask.addRemoteRepo(mavenRepository);
- }
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java
-index 1f07241..dda7efa 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java
-@@ -16,8 +16,8 @@
-
- package org.gradle.api.publish.maven.internal.publisher;
-
--import org.apache.maven.artifact.ant.Authentication;
--import org.apache.maven.artifact.ant.RemoteRepository;
-+import org.eclipse.aether.internal.ant.types.Authentication;
-+import org.eclipse.aether.internal.ant.types.RemoteRepository;
- import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
- import org.gradle.api.artifacts.repositories.PasswordCredentials;
- import org.gradle.internal.Factory;
-@@ -40,7 +40,7 @@ class MavenRemoteRepositoryFactory implements Factory<RemoteRepository> {
-
- if (username != null || password != null) {
- Authentication authentication = new Authentication();
-- authentication.setUserName(username);
-+ authentication.setUsername(username);
- authentication.setPassword(password);
- remoteRepository.addAuthentication(authentication);
- }
-diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java
-index 36a60c5..636b6aa 100644
---- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java
-+++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java
-@@ -22,9 +22,9 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
- import org.gradle.api.publish.internal.PublicationFieldValidator;
- import org.gradle.api.publish.maven.InvalidMavenPublicationException;
- import org.gradle.api.publish.maven.MavenArtifact;
--import org.gradle.mvn3.org.apache.maven.model.Model;
--import org.gradle.mvn3.org.apache.maven.model.io.xpp3.MavenXpp3Reader;
--import org.gradle.mvn3.org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-+import org.apache.maven.model.Model;
-+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
- import java.io.File;
- import java.io.FileReader;
---
-2.1.0
-
diff --git a/0006-Port-to-Maven-3.3.1-and-Aether-Ant-Tasks.patch b/0006-Port-to-Maven-3.3.1-and-Aether-Ant-Tasks.patch
new file mode 100644
index 0000000..a290b52
--- /dev/null
+++ b/0006-Port-to-Maven-3.3.1-and-Aether-Ant-Tasks.patch
@@ -0,0 +1,1337 @@
+From 69b7732e7915bb5a0cdb3c36f5879805c8d6c0e2 Mon Sep 17 00:00:00 2001
+From: Mikolaj Izdebski <mizdebsk at redhat.com>
+Date: Fri, 31 Oct 2014 09:23:37 +0100
+Subject: [PATCH 06/14] Port to Maven 3.3.1 and Aether Ant Tasks
+
+---
+ gradle/dependencies.gradle | 59 +++++++++----
+ .../plugins/internal/maven/Maven2Gradle.groovy | 2 +-
+ .../internal/maven/MavenProjectXmlWriter.java | 4 +-
+ .../internal/maven/MavenProjectsCreator.java | 24 +++---
+ .../dependency-management.gradle | 7 +-
+ .../internal/artifacts/PlexusLoggerAdapter.java | 8 ++
+ .../DefaultLocalMavenRepositoryLocator.java | 4 +-
+ .../mvnsettings/DefaultMavenSettingsProvider.java | 4 +-
+ .../mvnsettings/MavenSettingsProvider.java | 4 +-
+ .../maven/internal/DefaultMavenPom.java | 6 +-
+ .../maven/internal/ant/AbstractMavenResolver.java | 71 ++++++++++------
+ .../maven/internal/ant/BaseMavenDeployer.java | 98 ++++++++++++++++------
+ .../maven/internal/ant/BaseMavenInstaller.java | 12 +--
+ .../maven/internal/ant/CustomDeployTask.java | 45 ----------
+ .../ant/CustomInstallDeployTaskSupport.java | 27 ------
+ .../maven/internal/ant/CustomInstallTask.java | 38 ---------
+ .../maven/internal/ant/CustomRemoteRepository.java | 29 +++++++
+ .../internal/ant/EmptyMavenSettingsSupplier.java | 9 +-
+ .../maven/internal/ant/GradleWagonProvider.java | 38 +++++++++
+ .../maven/internal/ant/LoggingHelper.java | 43 ----------
+ .../maven/internal/ant/MavenSettingsSupplier.java | 4 +-
+ .../ant/MaybeUserMavenSettingsSupplier.java | 11 ++-
+ .../ProjectDependencyArtifactIdExtractorHack.java | 3 +-
+ .../maven/internal/ant/RepositoryBuilder.java | 24 ++++--
+ .../maven/internal/ant/RepositoryFactory.java | 21 +++--
+ .../AbstractAntTaskBackedMavenPublisher.java | 38 ++++-----
+ .../AntTaskBackedMavenLocalPublisher.java | 41 +++------
+ .../publisher/AntTaskBackedMavenPublisher.java | 47 ++++-------
+ .../publisher/MavenRemoteRepositoryFactory.java | 6 +-
+ .../publisher/ValidatingMavenPublisher.java | 6 +-
+ 30 files changed, 365 insertions(+), 368 deletions(-)
+ delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java
+ delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java
+ delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java
+ create mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java
+ create mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java
+ delete mode 100644 subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java
+
+diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
+index 11a80eb..e298c96 100755
+--- a/gradle/dependencies.gradle
++++ b/gradle/dependencies.gradle
+@@ -76,8 +76,29 @@ libraries.commons_httpclient = dependencies.module('org.apache.httpcomponents:ht
+ dependency "org.samba.jcifs:jcifs:1.3.17 at jar"
+ }
+
+-libraries.maven_ant_tasks = dependencies.module("org.apache.maven:maven-ant-tasks:2.1.3") {
+- libraries.ant
++libraries.maven_ant_tasks = dependencies.module("org.eclipse.aether:aether-ant-tasks:1.0.0.v20140518") {
++ dependency "org.eclipse.aether:aether-api:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-util:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-impl:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-spi:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-connector-basic:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-transport-classpath:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-transport-file:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-transport-http:1.0.0.v20140518 at jar"
++ dependency "org.apache.maven:maven-aether-provider:3.3.1 at jar"
++ dependency "org.apache.maven:maven-model:3.3.1 at jar"
++ dependency "org.apache.maven:maven-model-builder:3.3.1 at jar"
++ dependency "org.apache.maven:maven-builder-support:3.3.1 at jar"
++ dependency "org.apache.maven:maven-repository-metadata:3.3.1 at jar"
++ dependency "org.codehaus.plexus:plexus-utils:2.1 at jar"
++ dependency "org.apache.maven:maven-settings-builder:3.3.1 at jar"
++ dependency "org.apache.maven:maven-settings:3.3.1 at jar"
++ dependency "org.sonatype.plexus:plexus-sec-dispatcher:1.3 at jar"
++ dependency "org.sonatype.plexus:plexus-cipher:1.7 at jar"
++ dependency "org.codehaus.plexus:plexus-interpolation:1.16 at jar"
++ dependency "org.eclipse.sisu:org.eclipse.sisu.plexus:0.1.1 at jar"
++ dependency libraries.ant
++ dependency libraries.commons_httpclient
+ }
+
+ libraries += [
+@@ -98,9 +119,10 @@ libraries += [
+ jsoup:'org.jsoup:jsoup:1.6.3'
+ ]
+
+-libraries.maven3 = dependencies.module("org.apache.maven:maven-core:3.0.4") {
+- dependency "org.apache.maven:maven-settings:3.0.4 at jar"
+- dependency "org.apache.maven:maven-settings-builder:3.0.4 at jar"
++libraries.maven3 = dependencies.module("org.apache.maven:maven-core:3.3.1") {
++ dependency "org.apache.maven:maven-settings:3.3.1 at jar"
++ dependency "org.apache.maven:maven-settings-builder:3.3.1 at jar"
++ dependency "org.apache.maven:maven-builder-support:3.3.1 at jar"
+
+ //plexus:
+ dependency "org.codehaus.plexus:plexus-utils:2.0.6 at jar"
+@@ -114,27 +136,28 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:3.0.4") {
+ dependency "org.sonatype.plexus:plexus-sec-dispatcher:1.3 at jar"
+
+ //core:
+- dependency "org.apache.maven:maven-core:3.0.4 at jar"
+- dependency "org.apache.maven:maven-model-builder:3.0.4 at jar"
+- dependency "org.apache.maven:maven-model:3.0.4 at jar"
++ dependency "org.apache.maven:maven-core:3.3.1 at jar"
++ dependency "org.apache.maven:maven-model-builder:3.3.1 at jar"
++ dependency "org.apache.maven:maven-model:3.3.1 at jar"
+
+ //somewhat core:
+- dependency "org.apache.maven:maven-artifact:3.0.4 at jar"
+- dependency "org.apache.maven:maven-compat:3.0.4 at jar"
+- dependency "org.apache.maven:maven-repository-metadata:3.0.4 at jar"
+- dependency "org.apache.maven:maven-plugin-api:3.0.4 at jar"
+- dependency "org.apache.maven:maven-aether-provider:3.0.4 at jar"
++ dependency "org.apache.maven:maven-artifact:3.3.1 at jar"
++ dependency "org.apache.maven:maven-compat:3.3.1 at jar"
++ dependency "org.apache.maven:maven-repository-metadata:3.3.1 at jar"
++ dependency "org.apache.maven:maven-plugin-api:3.3.1 at jar"
++ dependency "org.apache.maven:maven-aether-provider:3.3.1 at jar"
+
+ dependency 'org.apache.maven.wagon:wagon-http:2.8 at jar'
+ dependency 'org.apache.maven.wagon:wagon-provider-api:2.8 at jar'
+ dependency 'org.apache.maven.wagon:wagon-http-shared:2.8 at jar'
+
+ //eather:
+- dependency "org.sonatype.aether:aether-api:1.13.1 at jar"
+- dependency "org.sonatype.aether:aether-impl:1.13.1 at jar"
+- dependency "org.sonatype.aether:aether-spi:1.13.1 at jar"
+- dependency "org.sonatype.aether:aether-util:1.13.1 at jar"
+- dependency 'org.sonatype.aether:aether-connector-wagon:1.13.1 at jar'
++ dependency "org.eclipse.aether:aether-api:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-impl:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-spi:1.0.0.v20140518 at jar"
++ dependency "org.eclipse.aether:aether-util:1.0.0.v20140518 at jar"
++ dependency 'org.eclipse.aether:aether-connector-basic:1.0.0.v20140518 at jar'
++ dependency 'org.eclipse.aether:aether-transport-wagon:1.0.0.v20140518 at jar'
+ }
+
+ libraries.spock = [
+diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy
+index b16a908..dacb94c 100644
+--- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy
++++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/Maven2Gradle.groovy
+@@ -18,7 +18,7 @@
+
+ package org.gradle.buildinit.plugins.internal.maven
+
+-import org.gradle.mvn3.org.apache.maven.project.MavenProject
++import org.apache.maven.project.MavenProject
+ import org.gradle.util.GFileUtils
+
+ /**
+diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java
+index a304126..b2c9c0b 100644
+--- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java
++++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectXmlWriter.java
+@@ -16,8 +16,8 @@
+
+ package org.gradle.buildinit.plugins.internal.maven;
+
+-import org.gradle.mvn3.org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+-import org.gradle.mvn3.org.apache.maven.project.MavenProject;
++import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
++import org.apache.maven.project.MavenProject;
+
+ import java.io.ByteArrayOutputStream;
+ import java.io.IOException;
+diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
+index ddd4924..8dfde0d 100644
+--- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
++++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
+@@ -19,18 +19,18 @@ package org.gradle.buildinit.plugins.internal.maven;
+ import com.google.common.collect.ImmutableList;
+ import org.gradle.api.Transformer;
+ import org.gradle.internal.SystemProperties;
+-import org.gradle.mvn3.org.apache.maven.execution.*;
+-import org.gradle.mvn3.org.apache.maven.project.*;
+-import org.gradle.mvn3.org.apache.maven.settings.Settings;
+-import org.gradle.mvn3.org.codehaus.plexus.ContainerConfiguration;
+-import org.gradle.mvn3.org.codehaus.plexus.DefaultContainerConfiguration;
+-import org.gradle.mvn3.org.codehaus.plexus.DefaultPlexusContainer;
+-import org.gradle.mvn3.org.codehaus.plexus.PlexusContainerException;
+-import org.gradle.mvn3.org.codehaus.plexus.classworlds.ClassWorld;
+-import org.gradle.mvn3.org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+-import org.gradle.mvn3.org.codehaus.plexus.configuration.PlexusConfigurationException;
+-import org.gradle.mvn3.org.sonatype.aether.RepositorySystemSession;
+-import org.gradle.mvn3.org.sonatype.aether.util.DefaultRepositorySystemSession;
++import org.apache.maven.execution.*;
++import org.apache.maven.project.*;
++import org.apache.maven.settings.Settings;
++import org.codehaus.plexus.ContainerConfiguration;
++import org.codehaus.plexus.DefaultContainerConfiguration;
++import org.codehaus.plexus.DefaultPlexusContainer;
++import org.codehaus.plexus.PlexusContainerException;
++import org.codehaus.plexus.classworlds.ClassWorld;
++import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
++import org.codehaus.plexus.configuration.PlexusConfigurationException;
++import org.eclipse.aether.RepositorySystemSession;
++import org.eclipse.aether.DefaultRepositorySystemSession;
+ import org.gradle.util.CollectionUtils;
+
+ import java.io.File;
+diff --git a/subprojects/dependency-management/dependency-management.gradle b/subprojects/dependency-management/dependency-management.gradle
+index 3ddc4f3..2af3f84 100644
+--- a/subprojects/dependency-management/dependency-management.gradle
++++ b/subprojects/dependency-management/dependency-management.gradle
+@@ -42,9 +42,10 @@ task jarJarMaven3(type: JarJar) {
+ //unfortunately, all those need to be jarjarred.
+ // Even if some library (like aether) is not included in maven-ant-tasks it has
+ // META-INF/plexus/components.xml that to jarjarred components.
+- rule('org.apache.maven.**', 'org.gradle.mvn3.org.apache.maven. at 1')
+- rule('org.codehaus.**', 'org.gradle.mvn3.org.codehaus. at 1')
+- rule('org.sonatype.**', 'org.gradle.mvn3.org.sonatype. at 1')
++ //rule('org.apache.maven.**', 'org.gradle.mvn3.org.apache.maven. at 1')
++ //rule('org.codehaus.**', 'org.gradle.mvn3.org.codehaus. at 1')
++ //rule('org.sonatype.**', 'org.gradle.mvn3.org.sonatype. at 1')
++ //rule('org.eclipse.aether.**', 'org.gradle.mvn3.org.eclipse.aether. at 1')
+
+ avoidConflictingPlexusComponents(it)
+ }
+diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java
+index e02ab3b..5f213bd 100644
+--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java
++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/PlexusLoggerAdapter.java
+@@ -92,7 +92,15 @@ public class PlexusLoggerAdapter implements Logger {
+ throw new UnsupportedOperationException();
+ }
+
++ public void setThreshold(int threshold) {
++ throw new UnsupportedOperationException();
++ }
++
+ public String getName() {
+ return logger.getName();
+ }
++
++ public void setName(String name) {
++ throw new UnsupportedOperationException();
++ }
+ }
+diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java
+index 299544f..c93a9bd 100644
+--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java
++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java
+@@ -15,8 +15,8 @@
+ */
+ package org.gradle.api.internal.artifacts.mvnsettings;
+
+-import org.gradle.mvn3.org.apache.maven.settings.Settings;
+-import org.gradle.mvn3.org.apache.maven.settings.building.SettingsBuildingException;
++import org.apache.maven.settings.Settings;
++import org.apache.maven.settings.building.SettingsBuildingException;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+
+diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java
+index cc39a17..01eb522 100644
+--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java
++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider.java
+@@ -15,8 +15,8 @@
+ */
+ package org.gradle.api.internal.artifacts.mvnsettings;
+
+-import org.gradle.mvn3.org.apache.maven.settings.Settings;
+-import org.gradle.mvn3.org.apache.maven.settings.building.*;
++import org.apache.maven.settings.Settings;
++import org.apache.maven.settings.building.*;
+
+ public class DefaultMavenSettingsProvider implements MavenSettingsProvider {
+
+diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java
+index dd93102..a7d7030 100644
+--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java
++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider.java
+@@ -15,8 +15,8 @@
+ */
+ package org.gradle.api.internal.artifacts.mvnsettings;
+
+-import org.gradle.mvn3.org.apache.maven.settings.Settings;
+-import org.gradle.mvn3.org.apache.maven.settings.building.SettingsBuildingException;
++import org.apache.maven.settings.Settings;
++import org.apache.maven.settings.building.SettingsBuildingException;
+
+ public interface MavenSettingsProvider {
+ Settings buildSettings() throws SettingsBuildingException;
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java
+index 482c0a9..80b1ad9 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/DefaultMavenPom.java
+@@ -160,11 +160,7 @@ public class DefaultMavenPom implements MavenPom {
+
+ public DefaultMavenPom getEffectivePom() {
+ DefaultMavenPom effectivePom = new DefaultMavenPom(null, this.scopeMappings, pomDependenciesConverter, fileResolver);
+- try {
+- effectivePom.setMavenProject((MavenProject) mavenProject.clone());
+- } catch (CloneNotSupportedException e) {
+- throw new RuntimeException(e);
+- }
++ effectivePom.setMavenProject((MavenProject) mavenProject.clone());
+ effectivePom.getDependencies().addAll(getGeneratedDependencies());
+ effectivePom.withXmlActions = withXmlActions;
+ whenConfiguredActions.execute(effectivePom);
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java
+index 854202f..6d35082 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/AbstractMavenResolver.java
+@@ -16,12 +16,13 @@
+ package org.gradle.api.publication.maven.internal.ant;
+
+ import groovy.lang.Closure;
+-import org.apache.ivy.core.module.descriptor.Artifact;
+-import org.apache.maven.artifact.ant.AttachedArtifact;
+-import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
+-import org.apache.maven.artifact.ant.Pom;
++
+ import org.apache.maven.settings.Settings;
+ import org.apache.tools.ant.Project;
++import org.eclipse.aether.internal.ant.AntRepoSys;
++import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
++import org.eclipse.aether.internal.ant.types.Artifact;
++import org.eclipse.aether.internal.ant.types.Pom;
+ import org.gradle.api.Action;
+ import org.gradle.api.artifacts.PublishArtifact;
+ import org.gradle.api.artifacts.maven.*;
+@@ -41,6 +42,7 @@ import org.gradle.logging.LoggingManagerInternal;
+ import org.gradle.util.AntUtil;
+
+ import java.io.File;
++import java.lang.reflect.Method;
+ import java.util.Set;
+
+ public abstract class AbstractMavenResolver extends AbstractArtifactRepository implements MavenResolver, ModuleVersionPublisher, ResolutionAwareRepository, PublicationAwareRepository {
+@@ -71,7 +73,7 @@ public abstract class AbstractMavenResolver extends AbstractArtifactRepository i
+ return this;
+ }
+
+- protected abstract InstallDeployTaskSupport createPreConfiguredTask(Project project);
++ protected abstract AbstractDistTask createPreConfiguredTask(Project project);
+
+ public void publish(IvyModulePublishMetaData moduleVersion) {
+ for (IvyModuleArtifactPublishMetaData artifact : moduleVersion.getArtifacts()) {
+@@ -80,32 +82,39 @@ public abstract class AbstractMavenResolver extends AbstractArtifactRepository i
+ publish();
+ }
+
+- private void collectArtifact(Artifact artifact, File src) {
++ private void collectArtifact(org.apache.ivy.core.module.descriptor.Artifact artifact, File src) {
+ if (isIgnorable(artifact)) {
+ return;
+ }
+ getArtifactPomContainer().addArtifact(artifact, src);
+ }
+
+- private boolean isIgnorable(Artifact artifact) {
++ private boolean isIgnorable(org.apache.ivy.core.module.descriptor.Artifact artifact) {
+ return artifact.getType().equals("ivy");
+ }
+
+ private void publish() {
+- InstallDeployTaskSupport installDeployTaskSupport = createPreConfiguredTask(AntUtil.createProject());
++ Project project = AntUtil.createProject();
+ Set<MavenDeployment> mavenDeployments = getArtifactPomContainer().createDeployableFilesInfos();
+- mavenSettingsSupplier.supply(installDeployTaskSupport);
++ mavenSettingsSupplier.supply(project);
+ for (MavenDeployment mavenDeployment : mavenDeployments) {
+- ((CustomInstallDeployTaskSupport) installDeployTaskSupport).clearAttachedArtifactsList();
++ AbstractDistTask task = createPreConfiguredTask(project);
+ beforeDeploymentActions.execute(mavenDeployment);
+- addPomAndArtifact(installDeployTaskSupport, mavenDeployment);
+- execute(installDeployTaskSupport);
++ addPomAndArtifact(task, mavenDeployment);
++ execute(task);
+ }
+ mavenSettingsSupplier.done();
+- settings = ((CustomInstallDeployTaskSupport) installDeployTaskSupport).getSettings();
++
++ try {
++ Method getter = AntRepoSys.class.getDeclaredMethod("getSettings");
++ getter.setAccessible(true);
++ settings = (Settings) getter.invoke(AntRepoSys.getInstance(project));
++ } catch (ReflectiveOperationException e) {
++ throw new RuntimeException(e);
++ }
+ }
+
+- private void execute(InstallDeployTaskSupport deployTask) {
++ private void execute(AbstractDistTask deployTask) {
+ loggingManager.captureStandardOutput(LogLevel.INFO).start();
+ try {
+ deployTask.execute();
+@@ -114,19 +123,33 @@ public abstract class AbstractMavenResolver extends AbstractArtifactRepository i
+ }
+ }
+
+- private void addPomAndArtifact(InstallDeployTaskSupport installOrDeployTask, MavenDeployment mavenDeployment) {
++ private void addPomAndArtifact(AbstractDistTask task, MavenDeployment mavenDeployment) {
++ PublishArtifact pomArtifact = mavenDeployment.getPomArtifact();
+ Pom pom = new Pom();
+- pom.setProject(installOrDeployTask.getProject());
+- pom.setFile(mavenDeployment.getPomArtifact().getFile());
+- installOrDeployTask.addPom(pom);
++ pom.setProject(task.getProject());
++ pom.setFile(pomArtifact.getFile());
++ task.addPom(pom);
++
++ PublishArtifact mainArtifact = mavenDeployment.getMainArtifact();
+ if (mavenDeployment.getMainArtifact() != null) {
+- installOrDeployTask.setFile(mavenDeployment.getMainArtifact().getFile());
++ Artifact artifact = new Artifact();
++ artifact.setProject(task.getProject());
++ artifact.setFile(mainArtifact.getFile());
++ artifact.setType(mainArtifact.getType());
++ task.addArtifact(artifact);
+ }
+- for (PublishArtifact classifierArtifact : mavenDeployment.getAttachedArtifacts()) {
+- AttachedArtifact attachedArtifact = installOrDeployTask.createAttach();
+- attachedArtifact.setClassifier(classifierArtifact.getClassifier());
+- attachedArtifact.setFile(classifierArtifact.getFile());
+- attachedArtifact.setType(classifierArtifact.getType());
++
++ for (PublishArtifact attachedArtifact : mavenDeployment.getAttachedArtifacts()) {
++ String type = attachedArtifact.getType();
++ String classifier = attachedArtifact.getClassifier();
++ if (type != null && type.equals("pom") && (classifier == null || classifier.isEmpty()))
++ continue;
++ Artifact artifact = new Artifact();
++ artifact.setProject(task.getProject());
++ artifact.setFile(attachedArtifact.getFile());
++ artifact.setType(type);
++ artifact.setClassifier(classifier);
++ task.addArtifact(artifact);
+ }
+ }
+
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java
+index 35b0e95..dd0a310 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 2007-2008 the original author or authors.
++ * Copyright 2007-2014 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+@@ -15,12 +15,24 @@
+ */
+ package org.gradle.api.publication.maven.internal.ant;
+
+-import org.apache.maven.artifact.ant.DeployTask;
+-import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
+-import org.apache.maven.artifact.ant.RemoteRepository;
+ import org.apache.tools.ant.Project;
++import org.codehaus.plexus.ContainerConfiguration;
++import org.codehaus.plexus.DefaultContainerConfiguration;
++import org.codehaus.plexus.DefaultPlexusContainer;
+ import org.codehaus.plexus.PlexusContainer;
+ import org.codehaus.plexus.PlexusContainerException;
++import org.codehaus.plexus.classworlds.ClassWorld;
++import org.codehaus.plexus.classworlds.realm.ClassRealm;
++import org.eclipse.aether.impl.DefaultServiceLocator;
++import org.eclipse.aether.internal.ant.AntRepoSys;
++import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
++import org.eclipse.aether.internal.ant.tasks.Deploy;
++import org.eclipse.aether.internal.ant.types.RemoteRepository;
++import org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator;
++import org.eclipse.aether.spi.connector.transport.TransporterFactory;
++import org.eclipse.aether.transport.wagon.WagonConfigurator;
++import org.eclipse.aether.transport.wagon.WagonProvider;
++import org.eclipse.aether.transport.wagon.WagonTransporterFactory;
+ import org.gradle.api.artifacts.Configuration;
+ import org.gradle.api.artifacts.maven.MavenDeployer;
+ import org.gradle.api.artifacts.maven.PomFilterContainer;
+@@ -28,6 +40,8 @@ import org.gradle.api.publication.maven.internal.ArtifactPomContainer;
+ import org.gradle.logging.LoggingManagerInternal;
+
+ import java.io.File;
++import java.lang.reflect.Field;
++import java.net.MalformedURLException;
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.List;
+@@ -42,43 +56,77 @@ public class BaseMavenDeployer extends AbstractMavenResolver implements MavenDep
+ // todo remove this property once configuration can handle normal file system dependencies
+ private List<File> protocolProviderJars = new ArrayList<File>();
+
+- private boolean uniqueVersion = true;
+-
+ public BaseMavenDeployer(PomFilterContainer pomFilterContainer, ArtifactPomContainer artifactPomContainer, LoggingManagerInternal loggingManager) {
+ super(pomFilterContainer, artifactPomContainer, loggingManager);
+ }
+
+- protected InstallDeployTaskSupport createPreConfiguredTask(Project project) {
+- CustomDeployTask deployTask = createTask();
++ protected AbstractDistTask createPreConfiguredTask(Project project) {
++ configureAetherRepoSys(project);
++ Deploy deployTask = createTask();
+ deployTask.setProject(project);
+- deployTask.setUniqueVersion(isUniqueVersion());
+- addProtocolProvider(deployTask);
+ addRemoteRepositories(deployTask);
+ return deployTask;
+ }
+
+- protected CustomDeployTask createTask() {
+- return new CustomDeployTask();
++ private void configureAetherRepoSys(Project project) {
++ PlexusContainer container = createContainer();
++
++ try {
++ AntRepoSys repoSys = AntRepoSys.getInstance(project);
++ Field field = repoSys.getClass().getDeclaredField("locator");
++ field.setAccessible(true);
++ DefaultServiceLocator locator = (DefaultServiceLocator) field.get(repoSys);
++ locator.addService(TransporterFactory.class, WagonTransporterFactory.class);
++ locator.addService(WagonProvider.class, GradleWagonProvider.class);
++ locator.addService(WagonConfigurator.class, PlexusWagonConfigurator.class);
++
++ GradleWagonProvider wagonProvider = (GradleWagonProvider) locator.getService(WagonProvider.class);
++ wagonProvider.initService(container);
++ } catch (ReflectiveOperationException e) {
++ throw new RuntimeException(e);
++ }
+ }
+
+- private void addProtocolProvider(CustomDeployTask deployTask) {
+- PlexusContainer plexusContainer = deployTask.getContainer();
+- for (File wagonProviderJar : getJars()) {
+- try {
+- plexusContainer.addJarResource(wagonProviderJar);
+- } catch (PlexusContainerException e) {
+- throw new RuntimeException(e);
++ private PlexusContainer createContainer() {
++ try {
++ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
++ ClassWorld world = new ClassWorld("plexus.core", classLoader);
++ ClassRealm realm = new ClassRealm(world, "plexus.core", classLoader);
++ for (File wagonProviderJar : getJars()) {
++ realm.addURL(wagonProviderJar.toURI().toURL());
+ }
++
++ ContainerConfiguration conf = new DefaultContainerConfiguration();
++ conf.setClassWorld(world);
++ conf.setRealm(realm);
++ conf.setName("plexus.core");
++
++ return new DefaultPlexusContainer(conf);
++ } catch (PlexusContainerException e) {
++ throw new RuntimeException(e);
++ } catch (MalformedURLException e) {
++ throw new RuntimeException(e);
+ }
+ }
+
++ protected Deploy createTask() {
++ return new Deploy();
++ }
++
+ private List<File> getJars() {
+ return configuration != null ? new ArrayList<File>(configuration.resolve()) : protocolProviderJars;
+ }
+
+- private void addRemoteRepositories(DeployTask deployTask) {
+- deployTask.addRemoteRepository(remoteRepository);
+- deployTask.addRemoteSnapshotRepository(remoteSnapshotRepository);
++ private void addRemoteRepositories(Deploy deployTask) {
++ Project project = deployTask.getProject();
++ if (remoteRepository != null) {
++ remoteRepository.setProject(project);
++ }
++ if (remoteSnapshotRepository != null) {
++ remoteSnapshotRepository.setProject(project);
++ }
++ deployTask.addRemoteRepo(remoteRepository);
++ deployTask.addSnapshotRepo(remoteSnapshotRepository);
+ }
+
+ public RemoteRepository getRepository() {
+@@ -110,10 +158,12 @@ public class BaseMavenDeployer extends AbstractMavenResolver implements MavenDep
+ }
+
+ public boolean isUniqueVersion() {
+- return uniqueVersion;
++ return true;
+ }
+
+ public void setUniqueVersion(boolean uniqueVersion) {
+- this.uniqueVersion = uniqueVersion;
++ if (!uniqueVersion) {
++ throw new IllegalArgumentException("Non-unique snapshot versions are not supported by this version of Gradle");
++ }
+ }
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java
+index a901694..19541f0 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenInstaller.java
+@@ -15,9 +15,9 @@
+ */
+ package org.gradle.api.publication.maven.internal.ant;
+
+-import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
+-import org.apache.maven.artifact.ant.InstallTask;
+ import org.apache.tools.ant.Project;
++import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
++import org.eclipse.aether.internal.ant.tasks.Install;
+ import org.gradle.api.artifacts.maven.PomFilterContainer;
+ import org.gradle.api.publication.maven.internal.ArtifactPomContainer;
+ import org.gradle.logging.LoggingManagerInternal;
+@@ -28,13 +28,13 @@ public class BaseMavenInstaller extends AbstractMavenResolver {
+ mavenSettingsSupplier = new MaybeUserMavenSettingsSupplier();
+ }
+
+- protected InstallDeployTaskSupport createPreConfiguredTask(Project project) {
+- InstallTask installTask = createTask();
++ protected AbstractDistTask createPreConfiguredTask(Project project) {
++ Install installTask = createTask();
+ installTask.setProject(project);
+ return installTask;
+ }
+
+- protected CustomInstallTask createTask() {
+- return new CustomInstallTask();
++ protected Install createTask() {
++ return new Install();
+ }
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java
+deleted file mode 100644
+index 85521bf..0000000
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomDeployTask.java
++++ /dev/null
+@@ -1,45 +0,0 @@
+-/*
+- * Copyright 2007-2008 the original author or authors.
+- *
+- * Licensed 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.
+- */
+-package org.gradle.api.publication.maven.internal.ant;
+-
+-import org.apache.maven.artifact.ant.DeployTask;
+-import org.apache.maven.settings.Settings;
+-import org.codehaus.plexus.PlexusContainer;
+-
+-/**
+- * We could also use reflection to get hold of the container property. But this would make it harder to use a Mock for this class.
+- */
+-public class CustomDeployTask extends DeployTask implements CustomInstallDeployTaskSupport {
+- @Override
+- public synchronized Settings getSettings() {
+- return super.getSettings();
+- }
+-
+- @Override
+- public synchronized PlexusContainer getContainer() {
+- return super.getContainer();
+- }
+-
+- @Override
+- public void doExecute() {
+- LoggingHelper.injectLogger(getContainer(), getProject());
+- super.doExecute();
+- }
+-
+- public void clearAttachedArtifactsList() {
+- attachedArtifacts.clear();
+- }
+-}
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java
+deleted file mode 100644
+index 40c3ea9..0000000
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallDeployTaskSupport.java
++++ /dev/null
+@@ -1,27 +0,0 @@
+-/*
+- * Copyright 2007-2008 the original author or authors.
+- *
+- * Licensed 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.
+- */
+-package org.gradle.api.publication.maven.internal.ant;
+-
+-import org.apache.maven.artifact.ant.AttachedArtifact;
+-import org.apache.maven.settings.Settings;
+-import org.apache.tools.ant.Project;
+-
+-public interface CustomInstallDeployTaskSupport {
+- Settings getSettings();
+- Project getProject();
+- AttachedArtifact createAttach();
+- void clearAttachedArtifactsList();
+-}
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java
+deleted file mode 100644
+index 15079c4..0000000
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomInstallTask.java
++++ /dev/null
+@@ -1,38 +0,0 @@
+-/*
+- * Copyright 2007-2008 the original author or authors.
+- *
+- * Licensed 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.
+- */
+-package org.gradle.api.publication.maven.internal.ant;
+-
+-import org.apache.maven.artifact.ant.InstallTask;
+-import org.apache.maven.settings.Settings;
+-
+-public class CustomInstallTask extends InstallTask implements CustomInstallDeployTaskSupport {
+- @Override
+- public synchronized Settings getSettings() {
+- return super.getSettings();
+- }
+-
+- public void clearAttachedArtifactsList() {
+- attachedArtifacts.clear();
+- }
+-
+- @Override
+- public void doExecute() {
+- LoggingHelper.injectLogger(getContainer(), getProject());
+- super.doExecute();
+- }
+-
+-
+-}
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java
+new file mode 100644
+index 0000000..df82986
+--- /dev/null
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/CustomRemoteRepository.java
+@@ -0,0 +1,29 @@
++package org.gradle.api.publication.maven.internal.ant;
++
++import java.util.ArrayList;
++import java.util.List;
++
++import org.apache.tools.ant.Project;
++import org.eclipse.aether.internal.ant.AntRepoSys;
++import org.eclipse.aether.internal.ant.types.Proxy;
++import org.eclipse.aether.internal.ant.types.RemoteRepository;
++
++class CustomRemoteRepository extends RemoteRepository {
++
++ private final List<Proxy> proxies = new ArrayList<Proxy>();
++
++ @Override
++ public void setProject(Project project) {
++ super.setProject(project);
++
++ AntRepoSys repoSys = AntRepoSys.getInstance(project);
++ for (Proxy proxy : proxies) {
++ repoSys.addProxy(proxy);
++ }
++ }
++
++ public void addProxy(Proxy proxy) {
++ proxies.add(proxy);
++ }
++
++}
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java
+index 5549dcb..0119703 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/EmptyMavenSettingsSupplier.java
+@@ -17,7 +17,8 @@
+ package org.gradle.api.publication.maven.internal.ant;
+
+ import org.apache.commons.io.FileUtils;
+-import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
++import org.apache.tools.ant.Project;
++import org.eclipse.aether.internal.ant.AntRepoSys;
+ import org.gradle.api.UncheckedIOException;
+ import org.gradle.api.internal.file.TemporaryFileProvider;
+ import org.gradle.api.internal.file.TmpDirTemporaryFileProvider;
+@@ -30,7 +31,7 @@ public class EmptyMavenSettingsSupplier implements MavenSettingsSupplier {
+ private final TemporaryFileProvider temporaryFileProvider = new TmpDirTemporaryFileProvider();
+ private File settingsXml;
+
+- public void supply(InstallDeployTaskSupport installDeployTaskSupport) {
++ public void supply(Project project) {
+ try {
+ settingsXml = temporaryFileProvider.createTemporaryFile("gradle_empty_settings", ".xml");
+ FileUtils.writeStringToFile(settingsXml, "<settings/>");
+@@ -38,7 +39,9 @@ public class EmptyMavenSettingsSupplier implements MavenSettingsSupplier {
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+- installDeployTaskSupport.setSettingsFile(settingsXml);
++ AntRepoSys repoSys = AntRepoSys.getInstance(project);
++ repoSys.setGlobalSettings(settingsXml);
++ repoSys.setUserSettings(settingsXml);
+ }
+
+ public void done() {
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java
+new file mode 100644
+index 0000000..cfab163
+--- /dev/null
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/GradleWagonProvider.java
+@@ -0,0 +1,38 @@
++/*
++ * Copyright 2014 the original author or authors.
++ *
++ * Licensed 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.
++ */
++package org.gradle.api.publication.maven.internal.ant;
++
++import org.apache.maven.wagon.Wagon;
++import org.codehaus.plexus.PlexusContainer;
++import org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider;
++import org.eclipse.aether.transport.wagon.WagonProvider;
++
++public class GradleWagonProvider implements WagonProvider {
++
++ private WagonProvider delegate;
++
++ public void initService(PlexusContainer container) {
++ delegate = new PlexusWagonProvider(container);
++ }
++
++ public Wagon lookup(String roleHint) throws Exception {
++ return delegate.lookup(roleHint);
++ }
++
++ public void release(Wagon wagon) {
++ delegate.release(wagon);
++ }
++}
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java
+deleted file mode 100644
+index 248f839..0000000
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/*
+- * Copyright 2007-2008 the original author or authors.
+- *
+- * Licensed 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.
+- */
+-package org.gradle.api.publication.maven.internal.ant;
+-
+-import org.apache.maven.artifact.ant.AntDownloadMonitor;
+-import org.apache.maven.artifact.manager.DefaultWagonManager;
+-import org.apache.maven.artifact.manager.WagonManager;
+-import org.apache.tools.ant.Project;
+-import org.codehaus.plexus.PlexusContainer;
+-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+-
+-import java.lang.reflect.Field;
+-
+-public class LoggingHelper {
+- public static void injectLogger(PlexusContainer container, Project project) {
+- try {
+- WagonManager wagonManager = (WagonManager) container.lookup(WagonManager.ROLE);
+- Field field = DefaultWagonManager.class.getDeclaredField("downloadMonitor");
+- field.setAccessible(true);
+- AntDownloadMonitor antDownloadMonitor = (AntDownloadMonitor) field.get(wagonManager);
+- antDownloadMonitor.setProject(project);
+- } catch (ComponentLookupException e) {
+- throw new RuntimeException(e);
+- } catch (IllegalAccessException e) {
+- throw new RuntimeException(e);
+- } catch (NoSuchFieldException e) {
+- throw new RuntimeException(e);
+- }
+- }
+-}
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java
+index a8fb1c2..a493ed6 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MavenSettingsSupplier.java
+@@ -16,9 +16,9 @@
+
+ package org.gradle.api.publication.maven.internal.ant;
+
+-import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
++import org.apache.tools.ant.Project;
+
+ public interface MavenSettingsSupplier {
+ void done();
+- void supply(InstallDeployTaskSupport installDeployTaskSupport);
++ void supply(Project project);
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java
+index af4020b..d3cfc7d 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/MaybeUserMavenSettingsSupplier.java
+@@ -16,7 +16,8 @@
+
+ package org.gradle.api.publication.maven.internal.ant;
+
+-import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
++import org.apache.tools.ant.Project;
++import org.eclipse.aether.internal.ant.AntRepoSys;
+ import org.gradle.api.internal.artifacts.mvnsettings.DefaultMavenFileLocations;
+ import org.gradle.api.internal.artifacts.mvnsettings.MavenFileLocations;
+
+@@ -27,14 +28,16 @@ public class MaybeUserMavenSettingsSupplier implements MavenSettingsSupplier {
+ MavenSettingsSupplier emptySettingsSupplier = new EmptyMavenSettingsSupplier();
+ MavenFileLocations mavenFileLocations = new DefaultMavenFileLocations();
+
+- public void supply(InstallDeployTaskSupport installDeployTaskSupport) {
++ public void supply(Project project) {
+ File userSettings = mavenFileLocations.getUserSettingsFile();
+ if (userSettings.exists()) {
+- installDeployTaskSupport.setSettingsFile(userSettings);
++ AntRepoSys repoSys = AntRepoSys.getInstance(project);
++ repoSys.setGlobalSettings(userSettings);
++ repoSys.setUserSettings(userSettings);
+ return;
+ }
+
+- emptySettingsSupplier.supply(installDeployTaskSupport);
++ emptySettingsSupplier.supply(project);
+ }
+
+ public void done() {
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java
+index 988270d..3fcd73a 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/ProjectDependencyArtifactIdExtractorHack.java
+@@ -17,7 +17,7 @@
+ package org.gradle.api.publication.maven.internal.ant;
+
+ import com.google.common.collect.Lists;
+-import org.apache.maven.project.MavenProject;
++
+ import org.gradle.api.Nullable;
+ import org.gradle.api.Project;
+ import org.gradle.api.artifacts.ProjectDependency;
+@@ -26,6 +26,7 @@ import org.gradle.api.artifacts.maven.MavenResolver;
+ import org.gradle.api.artifacts.repositories.ArtifactRepository;
+ import org.gradle.api.plugins.BasePluginConvention;
+ import org.gradle.api.tasks.Upload;
++import org.apache.maven.project.MavenProject;
+ import org.testng.internal.annotations.Sets;
+
+ import java.util.Collection;
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java
+index bff4576..97afd1e 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryBuilder.java
+@@ -15,18 +15,28 @@
+ */
+ package org.gradle.api.publication.maven.internal.ant;
+
++import org.eclipse.aether.internal.ant.types.Authentication;
++import org.eclipse.aether.internal.ant.types.Proxy;
++import org.eclipse.aether.internal.ant.types.RemoteRepository;
++
+ import groovy.util.FactoryBuilderSupport;
+-import org.apache.maven.artifact.ant.Authentication;
+-import org.apache.maven.artifact.ant.Proxy;
+-import org.apache.maven.artifact.ant.RemoteRepository;
+-import org.apache.maven.artifact.ant.RepositoryPolicy;
+
+ public class RepositoryBuilder extends FactoryBuilderSupport {
+ public RepositoryBuilder() {
+ registerFactory("repository", new RepositoryFactory(RemoteRepository.class));
+- registerBeanFactory("authentication", Authentication.class);
++ registerBeanFactory("authentication", CustomAuthentication.class);
+ registerBeanFactory("proxy", Proxy.class);
+- registerBeanFactory("snapshots", RepositoryPolicy.class);
+- registerBeanFactory("releases", RepositoryPolicy.class);
++ registerBeanFactory("snapshots", RemoteRepository.Policy.class);
++ registerBeanFactory("releases", RemoteRepository.Policy.class);
++ }
++
++ public static class CustomAuthentication extends Authentication {
++ public String getUserName() {
++ return getUsername();
++ }
++
++ public void setUserName(String userName) {
++ setUsername(userName);
++ }
+ }
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java
+index e3517aa..d4e1424 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/RepositoryFactory.java
+@@ -15,12 +15,14 @@
+ */
+ package org.gradle.api.publication.maven.internal.ant;
+
++import java.util.UUID;
++
++import org.eclipse.aether.internal.ant.types.Authentication;
++import org.eclipse.aether.internal.ant.types.Proxy;
++import org.eclipse.aether.internal.ant.types.RemoteRepository;
++
+ import groovy.swing.factory.BeanFactory;
+ import groovy.util.FactoryBuilderSupport;
+-import org.apache.maven.artifact.ant.Authentication;
+-import org.apache.maven.artifact.ant.Proxy;
+-import org.apache.maven.artifact.ant.RemoteRepository;
+-import org.apache.maven.artifact.ant.RepositoryPolicy;
+
+ public class RepositoryFactory extends BeanFactory {
+ public RepositoryFactory(Class klass) {
+@@ -32,20 +34,21 @@ public class RepositoryFactory extends BeanFactory {
+ }
+
+ public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
++ getRepository(parent).setId(UUID.randomUUID().toString());
+ if (child instanceof Authentication) {
+ getRepository(parent).addAuthentication((Authentication) child);
+ } else if (child instanceof Proxy) {
+ getRepository(parent).addProxy((Proxy) child);
+- } else if (child instanceof RepositoryPolicy) {
++ } else if (child instanceof RemoteRepository.Policy) {
+ if (builder.getCurrentName().equals("snapshots")) {
+- getRepository(parent).addSnapshots((RepositoryPolicy) child);
++ getRepository(parent).addSnapshots((RemoteRepository.Policy) child);
+ } else {
+- getRepository(parent).addReleases((RepositoryPolicy) child);
++ getRepository(parent).addReleases((RemoteRepository.Policy) child);
+ }
+ }
+ }
+
+- private RemoteRepository getRepository(Object parent) {
+- return (RemoteRepository) parent;
++ private CustomRemoteRepository getRepository(Object parent) {
++ return (CustomRemoteRepository) parent;
+ }
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java
+index 55c6324..4bf3736 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AbstractAntTaskBackedMavenPublisher.java
+@@ -16,9 +16,10 @@
+
+ package org.gradle.api.publish.maven.internal.publisher;
+
+-import org.apache.maven.artifact.ant.AttachedArtifact;
+-import org.apache.maven.artifact.ant.InstallDeployTaskSupport;
+-import org.apache.maven.artifact.ant.Pom;
++import org.apache.tools.ant.Project;
++import org.eclipse.aether.internal.ant.tasks.AbstractDistTask;
++import org.eclipse.aether.internal.ant.types.Artifact;
++import org.eclipse.aether.internal.ant.types.Pom;
+ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
+ import org.gradle.api.logging.LogLevel;
+ import org.gradle.api.publication.maven.internal.ant.EmptyMavenSettingsSupplier;
+@@ -33,7 +34,7 @@ import org.slf4j.LoggerFactory;
+
+ import java.io.File;
+
+-abstract public class AbstractAntTaskBackedMavenPublisher<T extends InstallDeployTaskSupport> implements MavenPublisher {
++abstract public class AbstractAntTaskBackedMavenPublisher<T extends AbstractDistTask> implements MavenPublisher {
+ private final Factory<LoggingManagerInternal> loggingManagerFactory;
+
+ private static Logger logger = LoggerFactory.getLogger(AbstractAntTaskBackedMavenPublisher.class);
+@@ -46,11 +47,12 @@ abstract public class AbstractAntTaskBackedMavenPublisher<T extends InstallDeplo
+
+ public void publish(MavenNormalizedPublication publication, MavenArtifactRepository artifactRepository) {
+ logger.info("Publishing to repository {}", artifactRepository);
++ Project project = AntUtil.createProject();
+ T deployTask = createDeployTask();
+- deployTask.setProject(AntUtil.createProject());
++ deployTask.setProject(project);
+
+ MavenSettingsSupplier mavenSettingsSupplier = new EmptyMavenSettingsSupplier();
+- mavenSettingsSupplier.supply(deployTask);
++ mavenSettingsSupplier.supply(project);
+
+ postConfigure(deployTask, artifactRepository);
+ addPomAndArtifacts(deployTask, publication);
+@@ -63,27 +65,23 @@ abstract public class AbstractAntTaskBackedMavenPublisher<T extends InstallDeplo
+
+ abstract protected T createDeployTask();
+
+- private void addPomAndArtifacts(InstallDeployTaskSupport installOrDeployTask, MavenNormalizedPublication publication) {
++ private void addPomAndArtifacts(AbstractDistTask task, MavenNormalizedPublication publication) {
+ Pom pom = new Pom();
+- pom.setProject(installOrDeployTask.getProject());
++ pom.setProject(task.getProject());
+ pom.setFile(publication.getPomFile());
+- installOrDeployTask.addPom(pom);
+-
+- MavenArtifact mainArtifact = publication.getMainArtifact();
+- installOrDeployTask.setFile(mainArtifact == null ? publication.getPomFile() : mainArtifact.getFile());
++ task.addPom(pom);
+
+ for (MavenArtifact mavenArtifact : publication.getArtifacts()) {
+- if (mavenArtifact == mainArtifact) {
+- continue;
+- }
+- AttachedArtifact attachedArtifact = installOrDeployTask.createAttach();
+- attachedArtifact.setClassifier(GUtil.elvis(mavenArtifact.getClassifier(), ""));
+- attachedArtifact.setType(GUtil.elvis(mavenArtifact.getExtension(), ""));
+- attachedArtifact.setFile(mavenArtifact.getFile());
++ Artifact artifact = new Artifact();
++ artifact.setProject(task.getProject());
++ artifact.setClassifier(GUtil.elvis(mavenArtifact.getClassifier(), ""));
++ artifact.setType(GUtil.elvis(mavenArtifact.getExtension(), ""));
++ artifact.setFile(mavenArtifact.getFile());
++ task.addArtifact(artifact);
+ }
+ }
+
+- private void execute(InstallDeployTaskSupport deployTask) {
++ private void execute(AbstractDistTask deployTask) {
+ LoggingManagerInternal loggingManager = loggingManagerFactory.create();
+ loggingManager.captureStandardOutput(LogLevel.INFO).start();
+ try {
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java
+index 2be6c47..645444a 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenLocalPublisher.java
+@@ -16,49 +16,30 @@
+
+ package org.gradle.api.publish.maven.internal.publisher;
+
+-import org.apache.maven.artifact.ant.RemoteRepository;
+-import org.apache.maven.artifact.repository.ArtifactRepository;
+-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
++import org.eclipse.aether.internal.ant.AntRepoSys;
++import org.eclipse.aether.internal.ant.tasks.Install;
++import org.eclipse.aether.internal.ant.types.LocalRepository;
+ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
+-import org.gradle.api.publication.maven.internal.ant.CustomInstallTask;
+ import org.gradle.internal.Factory;
+ import org.gradle.logging.LoggingManagerInternal;
+
+ import java.io.File;
+
+-public class AntTaskBackedMavenLocalPublisher extends AbstractAntTaskBackedMavenPublisher<AntTaskBackedMavenLocalPublisher.MavenLocalInstallTask> {
++public class AntTaskBackedMavenLocalPublisher extends AbstractAntTaskBackedMavenPublisher<Install> {
+ public AntTaskBackedMavenLocalPublisher(Factory<LoggingManagerInternal> loggingManagerFactory, Factory<File> temporaryDirFactory) {
+ super(loggingManagerFactory, temporaryDirFactory);
+ }
+
+ @Override
+- protected void postConfigure(MavenLocalInstallTask task, MavenArtifactRepository artifactRepository) {
+- task.setRepoLocation(artifactRepository.getUrl().toString());
++ protected void postConfigure(Install task, MavenArtifactRepository artifactRepository) {
++ LocalRepository localRepository = new LocalRepository(task);
++ localRepository.setDir(new File(artifactRepository.getUrl().getPath()));
++ AntRepoSys repoSys = AntRepoSys.getInstance(task.getProject());
++ repoSys.setLocalRepository(localRepository);
+ }
+
+ @Override
+- protected MavenLocalInstallTask createDeployTask() {
+- return new MavenLocalInstallTask();
+- }
+-
+- public static class MavenLocalInstallTask extends CustomInstallTask {
+-
+- private String repoLocation;
+-
+- private void setRepoLocation(String repoLocation) {
+- this.repoLocation = repoLocation;
+- }
+-
+- @Override
+- protected ArtifactRepository createLocalArtifactRepository() {
+- ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) lookup(ArtifactRepositoryLayout.ROLE, getLocalRepository().getLayout());
+- return new DefaultArtifactRepository("local", repoLocation, repositoryLayout);
+- }
+-
+- @Override
+- protected void updateRepositoryWithSettings(RemoteRepository repository) {
+- // Do nothing
+- }
++ protected Install createDeployTask() {
++ return new Install();
+ }
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java
+index a22dbf4..4d5492d 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/AntTaskBackedMavenPublisher.java
+@@ -16,53 +16,36 @@
+
+ package org.gradle.api.publish.maven.internal.publisher;
+
+-import org.apache.maven.artifact.ant.RemoteRepository;
+-import org.apache.maven.artifact.repository.ArtifactRepository;
+-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
++import org.eclipse.aether.internal.ant.AntRepoSys;
++import org.eclipse.aether.internal.ant.tasks.Deploy;
++import org.eclipse.aether.internal.ant.types.LocalRepository;
++import org.eclipse.aether.internal.ant.types.RemoteRepository;
+ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
+-import org.gradle.api.publication.maven.internal.ant.CustomDeployTask;
+ import org.gradle.internal.Factory;
+ import org.gradle.logging.LoggingManagerInternal;
+
+ import java.io.File;
+
+-public class AntTaskBackedMavenPublisher extends AbstractAntTaskBackedMavenPublisher<CustomDeployTask> {
++public class AntTaskBackedMavenPublisher extends AbstractAntTaskBackedMavenPublisher<Deploy> {
+ public AntTaskBackedMavenPublisher(Factory<LoggingManagerInternal> loggingManagerFactory, Factory<File> temporaryDirFactory) {
+ super(loggingManagerFactory, temporaryDirFactory);
+ }
+
+- protected void postConfigure(CustomDeployTask task, MavenArtifactRepository artifactRepository) {
++ protected void postConfigure(Deploy task, MavenArtifactRepository artifactRepository) {
+ addRepository(task, artifactRepository);
+ }
+
+- protected CustomDeployTask createDeployTask() {
+- CustomDeployTask deployTask = new DeployTask(temporaryDirFactory);
+- deployTask.setUniqueVersion(true);
+- return deployTask;
++ protected Deploy createDeployTask() {
++ Deploy task = new Deploy();
++ LocalRepository localRepository = new LocalRepository(task);
++ localRepository.setDir(temporaryDirFactory.create());
++ AntRepoSys repoSys = AntRepoSys.getInstance(task.getProject());
++ repoSys.setLocalRepository(localRepository);
++ return task;
+ }
+
+- private void addRepository(CustomDeployTask deployTask, MavenArtifactRepository artifactRepository) {
++ private void addRepository(Deploy deployTask, MavenArtifactRepository artifactRepository) {
+ RemoteRepository mavenRepository = new MavenRemoteRepositoryFactory(artifactRepository).create();
+- deployTask.addRemoteRepository(mavenRepository);
+- }
+-
+- private static class DeployTask extends CustomDeployTask {
+- private final Factory<File> tmpDirFactory;
+-
+- public DeployTask(Factory<File> tmpDirFactory) {
+- this.tmpDirFactory = tmpDirFactory;
+- }
+-
+- @Override
+- protected ArtifactRepository createLocalArtifactRepository() {
+- ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) lookup(ArtifactRepositoryLayout.ROLE, getLocalRepository().getLayout());
+- return new DefaultArtifactRepository("local", tmpDirFactory.create().toURI().toString(), repositoryLayout);
+- }
+-
+- @Override
+- protected void updateRepositoryWithSettings(RemoteRepository repository) {
+- // Do nothing
+- }
++ deployTask.addRemoteRepo(mavenRepository);
+ }
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java
+index 1f07241..dda7efa 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/MavenRemoteRepositoryFactory.java
+@@ -16,8 +16,8 @@
+
+ package org.gradle.api.publish.maven.internal.publisher;
+
+-import org.apache.maven.artifact.ant.Authentication;
+-import org.apache.maven.artifact.ant.RemoteRepository;
++import org.eclipse.aether.internal.ant.types.Authentication;
++import org.eclipse.aether.internal.ant.types.RemoteRepository;
+ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
+ import org.gradle.api.artifacts.repositories.PasswordCredentials;
+ import org.gradle.internal.Factory;
+@@ -40,7 +40,7 @@ class MavenRemoteRepositoryFactory implements Factory<RemoteRepository> {
+
+ if (username != null || password != null) {
+ Authentication authentication = new Authentication();
+- authentication.setUserName(username);
++ authentication.setUsername(username);
+ authentication.setPassword(password);
+ remoteRepository.addAuthentication(authentication);
+ }
+diff --git a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java
+index 36a60c5..636b6aa 100644
+--- a/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java
++++ b/subprojects/maven/src/main/groovy/org/gradle/api/publish/maven/internal/publisher/ValidatingMavenPublisher.java
+@@ -22,9 +22,9 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
+ import org.gradle.api.publish.internal.PublicationFieldValidator;
+ import org.gradle.api.publish.maven.InvalidMavenPublicationException;
+ import org.gradle.api.publish.maven.MavenArtifact;
+-import org.gradle.mvn3.org.apache.maven.model.Model;
+-import org.gradle.mvn3.org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+-import org.gradle.mvn3.org.codehaus.plexus.util.xml.pull.XmlPullParserException;
++import org.apache.maven.model.Model;
++import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
++import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+ import java.io.File;
+ import java.io.FileReader;
+--
+2.1.0
+
diff --git a/0007-Remove-Class-Path-from-manifest.patch b/0007-Remove-Class-Path-from-manifest.patch
index 2db016a..299b61b 100644
--- a/0007-Remove-Class-Path-from-manifest.patch
+++ b/0007-Remove-Class-Path-from-manifest.patch
@@ -1,4 +1,4 @@
-From b885097fd9a3d755c6a105da73e3e77184df2cb9 Mon Sep 17 00:00:00 2001
+From b72aa17cf0bbaa00183162176fca2b9f8639dde0 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Sun, 9 Nov 2014 17:52:30 +0100
Subject: [PATCH 07/14] Remove Class-Path from manifest
diff --git a/0008-Implement-XMvn-repository-factory-method.patch b/0008-Implement-XMvn-repository-factory-method.patch
index 1e02410..b8cf5bc 100644
--- a/0008-Implement-XMvn-repository-factory-method.patch
+++ b/0008-Implement-XMvn-repository-factory-method.patch
@@ -1,4 +1,4 @@
-From 8fb498a5b9b68e670f08bf2ac5d2a40120120fae Mon Sep 17 00:00:00 2001
+From 7185d3f0d1617afa0125c85ef44a78e3ab832a08 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Sun, 9 Nov 2014 21:37:37 +0100
Subject: [PATCH 08/14] Implement XMvn repository factory method
diff --git a/0009-Use-hostname-command-as-fallback-way-of-getting-buil.patch b/0009-Use-hostname-command-as-fallback-way-of-getting-buil.patch
index a37a764..3166eb2 100644
--- a/0009-Use-hostname-command-as-fallback-way-of-getting-buil.patch
+++ b/0009-Use-hostname-command-as-fallback-way-of-getting-buil.patch
@@ -1,4 +1,4 @@
-From 94cf7b9b3bd68047da09d999c7677c49d01c1192 Mon Sep 17 00:00:00 2001
+From df7b9f6a8b77168de72f9643f486de79ace9f356 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Thu, 20 Nov 2014 11:04:23 +0100
Subject: [PATCH 09/14] Use hostname command as fallback way of getting build
diff --git a/0010-Compatibility-with-Guava-18.0.patch b/0010-Compatibility-with-Guava-18.0.patch
index 8ab99a4..1284040 100644
--- a/0010-Compatibility-with-Guava-18.0.patch
+++ b/0010-Compatibility-with-Guava-18.0.patch
@@ -1,4 +1,4 @@
-From 8efafeacff2de5613f967cb0472f0112cec09826 Mon Sep 17 00:00:00 2001
+From bb7fb45da9e908b1a1a7dac4ec3dd8ad7d430ce6 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Tue, 20 Jan 2015 11:59:22 +0100
Subject: [PATCH 10/14] Compatibility with Guava 18.0
diff --git a/0011-Add-build-dependency-on-ASM-5.0.3.patch b/0011-Add-build-dependency-on-ASM-5.0.3.patch
index a670d28..ecf986f 100644
--- a/0011-Add-build-dependency-on-ASM-5.0.3.patch
+++ b/0011-Add-build-dependency-on-ASM-5.0.3.patch
@@ -1,4 +1,4 @@
-From 01cb9e4aa5439b50f5fd3da01ca143a3b6a0b828 Mon Sep 17 00:00:00 2001
+From 3fc163543954342052c5d1ae26735b708ee36df9 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Tue, 20 Jan 2015 12:30:09 +0100
Subject: [PATCH 11/14] Add build dependency on ASM 5.0.3
diff --git a/0012-Port-from-Simple-4-to-Jetty-9.patch b/0012-Port-from-Simple-4-to-Jetty-9.patch
index c3a62f5..1875373 100644
--- a/0012-Port-from-Simple-4-to-Jetty-9.patch
+++ b/0012-Port-from-Simple-4-to-Jetty-9.patch
@@ -1,4 +1,4 @@
-From 4377774a692e14d8b3bc8c6375c45e68d25fed23 Mon Sep 17 00:00:00 2001
+From 0f832b0bd6306d69882bb955c75f7662ce87184f Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Fri, 30 Jan 2015 13:16:40 +0100
Subject: [PATCH 12/14] Port from Simple 4 to Jetty 9
diff --git a/0013-Use-unversioned-dependency-JAR-names.patch b/0013-Use-unversioned-dependency-JAR-names.patch
index a8e03e5..7063f76 100644
--- a/0013-Use-unversioned-dependency-JAR-names.patch
+++ b/0013-Use-unversioned-dependency-JAR-names.patch
@@ -1,4 +1,4 @@
-From c1910e2dcbb3349f58b55670600415d5d033cb95 Mon Sep 17 00:00:00 2001
+From 17405a52f097c063bda4e4aef2522524987ac0c4 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek at redhat.com>
Date: Sat, 7 Feb 2015 15:28:03 +0100
Subject: [PATCH 13/14] Use unversioned dependency JAR names
diff --git a/0014-Don-t-declare-dependency-on-jarjars.patch b/0014-Don-t-declare-dependency-on-jarjars.patch
index c99c716..c34144f 100644
--- a/0014-Don-t-declare-dependency-on-jarjars.patch
+++ b/0014-Don-t-declare-dependency-on-jarjars.patch
@@ -1,4 +1,4 @@
-From 72f8490fa4b1670aff5f1c68133b7f39dd81abed Mon Sep 17 00:00:00 2001
+From c978f91b03a3a916f4638e8a836fb77d7859fc8a Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek at redhat.com>
Date: Sat, 7 Feb 2015 17:43:40 +0100
Subject: [PATCH 14/14] Don't declare dependency on jarjars
diff --git a/gradle.spec b/gradle.spec
index e26334d..4bb107f 100644
--- a/gradle.spec
+++ b/gradle.spec
@@ -13,7 +13,7 @@
Name: gradle
Version: 2.3
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Build automation tool
# Some examples and integration tests are under GNU LGPL and Boost
# Software License, but are not used to create binary package.
@@ -46,7 +46,7 @@ Patch1: 0002-Use-Maven-Wagon-2.8.patch
Patch2: 0003-Use-bndlib-1.50.0.patch
Patch3: 0004-Port-to-Jetty-9.patch
Patch4: 0005-Use-jansi-1.11.patch
-Patch5: 0006-Port-to-Maven-3.1.1-and-Aether-Ant-Tasks.patch
+Patch5: 0006-Port-to-Maven-3.3.1-and-Aether-Ant-Tasks.patch
Patch6: 0007-Remove-Class-Path-from-manifest.patch
Patch7: 0008-Implement-XMvn-repository-factory-method.patch
# Accepted upstream: https://github.com/gradle/gradle/pull/354
@@ -546,6 +546,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%doc LICENSE NOTICE
%changelog
+* Wed Mar 25 2015 Mikolaj Izdebski <mizdebsk at redhat.com> - 2.3-2
+- Port to Maven 3.3.1
+
* Wed Mar 25 2015 Mikolaj Izdebski <mizdebsk at redhat.com> - 2.3-1
- Update to upstream version 2.3
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/gradle.git/commit/?h=master&id=bed465f29c79935a5a18e490a4e10d6a9dda3007
--
You received this message due to your preference settings at
https://apps.fedoraproject.org/notifications//fmnscmcommits.id.fedoraproject.org/email/29390
More information about the scm-commits
mailing list