From df135e446e29f2d981588289756c800881b46165 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Oct 12 2016 08:25:49 +0000 Subject: Fix integration with XMvn --- diff --git a/0001-Add-support-for-XMvn-workspace-reader.patch b/0001-Add-support-for-XMvn-workspace-reader.patch deleted file mode 100644 index bc71a10..0000000 --- a/0001-Add-support-for-XMvn-workspace-reader.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 5b975bc4bb0d61c686fb3f0fbdbf4a8f6d23e26c Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Wed, 11 Sep 2013 18:31:04 +0200 -Subject: [PATCH 1/2] Add support for XMvn workspace reader - ---- - .../org/eclipse/aether/internal/ant/AntRepoSys.java | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java b/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java -index 76cc927..ee1d444 100644 ---- a/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java -+++ b/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java -@@ -15,6 +15,7 @@ import java.io.File; - import java.io.FileInputStream; - import java.io.IOException; - import java.io.InputStreamReader; -+import java.lang.reflect.Method; - import java.util.ArrayList; - import java.util.Collection; - import java.util.Collections; -@@ -84,6 +85,7 @@ import org.eclipse.aether.repository.AuthenticationSelector; - import org.eclipse.aether.repository.LocalRepositoryManager; - import org.eclipse.aether.repository.MirrorSelector; - import org.eclipse.aether.repository.ProxySelector; -+import org.eclipse.aether.repository.WorkspaceReader; - import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; - import org.eclipse.aether.spi.connector.transport.TransporterFactory; - import org.eclipse.aether.spi.log.Logger; -@@ -91,6 +93,7 @@ import org.eclipse.aether.transport.classpath.ClasspathTransporterFactory; - import org.eclipse.aether.transport.file.FileTransporterFactory; - import org.eclipse.aether.transport.http.HttpTransporterFactory; - import org.eclipse.aether.util.repository.AuthenticationBuilder; -+import org.eclipse.aether.util.repository.ChainedWorkspaceReader; - import org.eclipse.aether.util.repository.ConservativeAuthenticationSelector; - import org.eclipse.aether.util.repository.DefaultAuthenticationSelector; - import org.eclipse.aether.util.repository.DefaultMirrorSelector; -@@ -234,6 +237,24 @@ public class AntRepoSys - - session.setWorkspaceReader( ProjectWorkspaceReader.getInstance() ); - -+ if ( project.getProperty( "xmvn.ant.enable" ) != null ) -+ { -+ try -+ { -+ Class containerClass = Class.forName( "org.codehaus.plexus.DefaultPlexusContainer" ); -+ Object container = containerClass.newInstance(); -+ Method lookupMethod = containerClass.getMethod( "lookup", Class.class, String.class ); -+ Object xmvnReader = lookupMethod.invoke( container, WorkspaceReader.class, "ide" ); -+ WorkspaceReader chainReader = new ChainedWorkspaceReader( session.getWorkspaceReader(), (WorkspaceReader) xmvnReader); -+ session.setWorkspaceReader( chainReader ); -+ } -+ catch ( Exception e ) -+ { -+ project.log( "Failed to launch XMvn: " + e.getMessage(), e, Project.MSG_WARN ); -+ e.printStackTrace(); -+ } -+ } -+ - return session; - } - --- -2.1.0 - diff --git a/0001-Compatibility-with-Maven-3.4.0.patch b/0001-Compatibility-with-Maven-3.4.0.patch new file mode 100644 index 0000000..979531b --- /dev/null +++ b/0001-Compatibility-with-Maven-3.4.0.patch @@ -0,0 +1,61 @@ +From 15873d368898c7f4f7d7673464ad59135024ea3b Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Fri, 7 Nov 2014 14:48:21 +0100 +Subject: [PATCH 1/2] Compatibility with Maven 3.4.0 + +This adds compatibility with latest Maven APIs by implementing new +interface methods introduced in Maven 3.4.0 (MNG-5663 and others). + +Signed-off-by: Mikolaj Izdebski +--- + .../aether/internal/ant/AntModelResolver.java | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java b/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java +index dc7ef72..a177b17 100644 +--- a/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java ++++ b/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java +@@ -16,6 +16,8 @@ import java.util.HashSet; + import java.util.List; + import java.util.Set; + ++import org.apache.maven.model.Dependency; ++import org.apache.maven.model.Parent; + import org.apache.maven.model.Repository; + import org.apache.maven.model.building.FileModelSource; + import org.apache.maven.model.building.ModelSource; +@@ -77,7 +79,13 @@ class AntModelResolver + public void addRepository( Repository repository ) + throws InvalidRepositoryException + { +- if ( !repositoryIds.add( repository.getId() ) ) ++ addRepository( repository, false ); ++ } ++ ++ public void addRepository( Repository repository, boolean replace ) ++ throws InvalidRepositoryException ++ { ++ if ( !repositoryIds.add( repository.getId() ) && !replace ) + { + return; + } +@@ -145,4 +153,16 @@ class AntModelResolver + return new FileModelSource( pomFile ); + } + ++ public ModelSource resolveModel( Parent parent ) ++ throws UnresolvableModelException ++ { ++ return resolveModel( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() ); ++ } ++ ++ public ModelSource resolveModel( Dependency dependency ) ++ throws UnresolvableModelException ++ { ++ return resolveModel( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() ); ++ } ++ + } +-- +2.7.4 + diff --git a/0002-Add-support-for-XMvn-workspace-reader.patch b/0002-Add-support-for-XMvn-workspace-reader.patch new file mode 100644 index 0000000..f0e4fba --- /dev/null +++ b/0002-Add-support-for-XMvn-workspace-reader.patch @@ -0,0 +1,110 @@ +From a1da8d0bfa8da4121a96aec2b3ff45983f1e9e9e Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 10 Oct 2016 21:28:25 +0200 +Subject: [PATCH 2/2] Add support for XMvn workspace reader + +--- + pom.xml | 18 +++++++++++ + .../eclipse/aether/internal/ant/AntRepoSys.java | 7 +++++ + .../eclipse/aether/internal/ant/XMvnRepoSys.java | 35 ++++++++++++++++++++++ + 3 files changed, 60 insertions(+) + create mode 100644 src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java + +diff --git a/pom.xml b/pom.xml +index 915ae45..3948cd3 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -262,6 +262,24 @@ + + + ++ org.fedoraproject.xmvn ++ xmvn-api ++ 2.5.0 ++ provided ++ ++ ++ org.fedoraproject.xmvn ++ xmvn-launcher ++ 2.5.0 ++ provided ++ ++ ++ org.fedoraproject.xmvn ++ xmvn-connector-aether ++ 2.5.0 ++ provided ++ ++ + junit + junit + 4.11 +diff --git a/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java b/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java +index 76cc927..bdbd547 100644 +--- a/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java ++++ b/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java +@@ -109,6 +109,8 @@ public class AntRepoSys + + private static final SettingsDecrypter settingsDecrypter = new AntSettingsDecryptorFactory().newInstance(); + ++ private static final XMvnRepoSys xmvnRepoSys = new XMvnRepoSys(); ++ + private final Project project; + + private final DefaultServiceLocator locator; +@@ -234,6 +236,11 @@ public class AntRepoSys + + session.setWorkspaceReader( ProjectWorkspaceReader.getInstance() ); + ++ if ( project.getProperty( "xmvn.ant.enable" ) != null || System.getProperty( "xmvn.ant.enable" ) != null ) ++ { ++ xmvnRepoSys.configureRepositorySession( session ); ++ } ++ + return session; + } + +diff --git a/src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java b/src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java +new file mode 100644 +index 0000000..bdef3e2 +--- /dev/null ++++ b/src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java +@@ -0,0 +1,35 @@ ++package org.eclipse.aether.internal.ant; ++ ++import java.nio.file.Paths; ++ ++import org.eclipse.aether.DefaultRepositorySystemSession; ++import org.eclipse.aether.repository.WorkspaceReader; ++import org.eclipse.aether.util.repository.ChainedWorkspaceReader; ++import org.fedoraproject.xmvn.connector.aether.XMvnWorkspaceReader; ++import org.fedoraproject.xmvn.locator.IsolatedXMvnServiceLocator; ++import org.fedoraproject.xmvn.locator.XMvnHomeClassLoader; ++import org.fedoraproject.xmvn.resolver.Resolver; ++ ++class XMvnRepoSys ++{ ++ private final WorkspaceReader xmvnWorkspaceReader; ++ ++ public XMvnRepoSys() ++ { ++ ClassLoader antClassLoader = AntRepoSys.class.getClassLoader(); ++ ++ XMvnHomeClassLoader xmvnClassLoader = new XMvnHomeClassLoader( antClassLoader ); ++ xmvnClassLoader.addJar( Paths.get( "/usr/share/java/slf4j/api.jar" ) ); ++ xmvnClassLoader.addJar( Paths.get( "/usr/share/java/slf4j/simple.jar" ) ); ++ ++ IsolatedXMvnServiceLocator serviceLocator = new IsolatedXMvnServiceLocator( xmvnClassLoader ); ++ Resolver resolver = serviceLocator.getService( Resolver.class ); ++ ++ xmvnWorkspaceReader = new XMvnWorkspaceReader( resolver ); ++ } ++ ++ public void configureRepositorySession( DefaultRepositorySystemSession session ) ++ { ++ session.setWorkspaceReader( new ChainedWorkspaceReader( session.getWorkspaceReader(), xmvnWorkspaceReader ) ); ++ } ++} +-- +2.7.4 + diff --git a/0002-Update-to-Maven-3.2.3.patch b/0002-Update-to-Maven-3.2.3.patch deleted file mode 100644 index fb2d49c..0000000 --- a/0002-Update-to-Maven-3.2.3.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 240b4be7a73fb83f14065cca917615a06a3b4fb0 Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Fri, 7 Nov 2014 14:48:21 +0100 -Subject: [PATCH 2/2] Update to Maven 3.2.3 - ---- - pom.xml | 2 +- - .../org/eclipse/aether/internal/ant/AntModelResolver.java | 15 ++++++++++++++- - 2 files changed, 15 insertions(+), 2 deletions(-) - -diff --git a/pom.xml b/pom.xml -index 7d22ca6..18ce0d3 100644 ---- a/pom.xml -+++ b/pom.xml -@@ -117,7 +117,7 @@ - true - sonatype-nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ -- 3.1.0 -+ 3.2.3 - 1.0.1.v20141111 - - -diff --git a/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java b/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java -index dc7ef72..e0d40c5 100644 ---- a/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java -+++ b/src/main/java/org/eclipse/aether/internal/ant/AntModelResolver.java -@@ -16,6 +16,7 @@ import java.util.HashSet; - import java.util.List; - import java.util.Set; - -+import org.apache.maven.model.Parent; - import org.apache.maven.model.Repository; - import org.apache.maven.model.building.FileModelSource; - import org.apache.maven.model.building.ModelSource; -@@ -77,7 +78,13 @@ class AntModelResolver - public void addRepository( Repository repository ) - throws InvalidRepositoryException - { -- if ( !repositoryIds.add( repository.getId() ) ) -+ addRepository( repository, false ); -+ } -+ -+ public void addRepository( Repository repository, boolean replace ) -+ throws InvalidRepositoryException -+ { -+ if ( !repositoryIds.add( repository.getId() ) && !replace ) - { - return; - } -@@ -145,4 +152,10 @@ class AntModelResolver - return new FileModelSource( pomFile ); - } - -+ public ModelSource resolveModel( Parent parent ) -+ throws UnresolvableModelException -+ { -+ return resolveModel( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() ); -+ } -+ - } --- -2.1.0 - diff --git a/aether-ant-tasks.spec b/aether-ant-tasks.spec index 5892b81..ff7ff4e 100644 --- a/aether-ant-tasks.spec +++ b/aether-ant-tasks.spec @@ -3,7 +3,7 @@ Name: aether-ant-tasks Epoch: 1 Version: 1.0.1 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Ant tasks using Aether to resolve, install and deploy artifacts Group: Development/Libraries BuildArch: noarch @@ -13,9 +13,9 @@ URL: http://www.eclipse.org/aether Source0: http://git.eclipse.org/c/aether/aether-ant.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 Source5: ant-classpath -Patch0001: 0001-Add-support-for-XMvn-workspace-reader.patch -# Forwarded upstream: http://bugs.eclipse.org/470696 -Patch0002: 0002-Update-to-Maven-3.2.3.patch +# Partially forwarded upstream: http://bugs.eclipse.org/470696 +Patch0001: 0001-Compatibility-with-Maven-3.4.0.patch +Patch0002: 0002-Add-support-for-XMvn-workspace-reader.patch BuildRequires: maven-local BuildRequires: mvn(junit:junit) @@ -37,8 +37,15 @@ BuildRequires: mvn(org.eclipse.aether:aether-util) BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) BuildRequires: mvn(org.hamcrest:hamcrest-core) BuildRequires: mvn(org.hamcrest:hamcrest-library) +BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-api) +BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-launcher) +BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-connector-aether) Requires: ant +Requires: xmvn-api +Requires: xmvn-core +Requires: xmvn-launcher +Requires: xmvn-connector-aether %description The Aether Ant Tasks enable build scripts for Apache Ant 1.7+ to use Eclipse @@ -81,6 +88,9 @@ install -p -m 644 %{SOURCE5} %{buildroot}/%{_sysconfdir}/ant.d/%{name} %doc epl-v10.html notice.html %changelog +* Mon Oct 10 2016 Mikolaj Izdebski - 1:1.0.1-5 +- Fix integration with XMvn + * Wed Feb 03 2016 Fedora Release Engineering - 1:1.0.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild diff --git a/ant-classpath b/ant-classpath index 11bee86..788427e 100644 --- a/ant-classpath +++ b/ant-classpath @@ -3,12 +3,14 @@ aether-ant-tasks aopalliance atinject cglib +commons-lang3 commons-logging -google-guice +google-guice-no_aop guava httpcomponents/httpclient httpcomponents/httpcore maven/maven-aether-provider +maven/maven-artifact maven/maven-model maven/maven-model-builder maven/maven-settings @@ -23,5 +25,6 @@ plexus/interpolation plexus/plexus-cipher plexus/plexus-sec-dispatcher plexus/utils -xmvn/xmvn-connector -xmvn/xmvn-core +xmvn/xmvn-connector-aether +xmvn/xmvn-api +xmvn/xmvn-launcher