Blame 0002-Add-support-for-XMvn-workspace-reader.patch

df135e4
From a1da8d0bfa8da4121a96aec2b3ff45983f1e9e9e Mon Sep 17 00:00:00 2001
df135e4
From: Mikolaj Izdebski <mizdebsk@redhat.com>
df135e4
Date: Mon, 10 Oct 2016 21:28:25 +0200
df135e4
Subject: [PATCH 2/2] Add support for XMvn workspace reader
df135e4
df135e4
---
df135e4
 pom.xml                                            | 18 +++++++++++
df135e4
 .../eclipse/aether/internal/ant/AntRepoSys.java    |  7 +++++
df135e4
 .../eclipse/aether/internal/ant/XMvnRepoSys.java   | 35 ++++++++++++++++++++++
df135e4
 3 files changed, 60 insertions(+)
df135e4
 create mode 100644 src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java
df135e4
df135e4
diff --git a/pom.xml b/pom.xml
df135e4
index 915ae45..3948cd3 100644
df135e4
--- a/pom.xml
df135e4
+++ b/pom.xml
748f36e
@@ -262,6 +262,18 @@
df135e4
       </exclusions>
df135e4
     </dependency>
df135e4
     <dependency>
df135e4
+      <groupId>org.fedoraproject.xmvn</groupId>
df135e4
+      <artifactId>xmvn-api</artifactId>
df135e4
+      <version>2.5.0</version>
df135e4
+      <scope>provided</scope>
df135e4
+    </dependency>
df135e4
+    <dependency>
df135e4
+      <groupId>org.fedoraproject.xmvn</groupId>
df135e4
+      <artifactId>xmvn-connector-aether</artifactId>
df135e4
+      <version>2.5.0</version>
df135e4
+      <scope>provided</scope>
df135e4
+    </dependency>
df135e4
+    <dependency>
df135e4
       <groupId>junit</groupId>
df135e4
       <artifactId>junit</artifactId>
df135e4
       <version>4.11</version>
df135e4
diff --git a/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java b/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java
df135e4
index 76cc927..bdbd547 100644
df135e4
--- a/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java
df135e4
+++ b/src/main/java/org/eclipse/aether/internal/ant/AntRepoSys.java
df135e4
@@ -109,6 +109,8 @@ public class AntRepoSys
df135e4
 
df135e4
     private static final SettingsDecrypter settingsDecrypter = new AntSettingsDecryptorFactory().newInstance();
df135e4
 
df135e4
+    private static final XMvnRepoSys xmvnRepoSys = new XMvnRepoSys();
df135e4
+
df135e4
     private final Project project;
df135e4
 
df135e4
     private final DefaultServiceLocator locator;
df135e4
@@ -234,6 +236,11 @@ public class AntRepoSys
df135e4
 
df135e4
         session.setWorkspaceReader( ProjectWorkspaceReader.getInstance() );
df135e4
 
df135e4
+        if ( project.getProperty( "xmvn.ant.enable" ) != null || System.getProperty( "xmvn.ant.enable" ) != null )
df135e4
+        {
df135e4
+            xmvnRepoSys.configureRepositorySession( session );
df135e4
+        }
df135e4
+
df135e4
         return session;
df135e4
     }
df135e4
 
df135e4
diff --git a/src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java b/src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java
df135e4
new file mode 100644
df135e4
index 0000000..bdef3e2
df135e4
--- /dev/null
df135e4
+++ b/src/main/java/org/eclipse/aether/internal/ant/XMvnRepoSys.java
df135e4
@@ -0,0 +1,35 @@
df135e4
+package org.eclipse.aether.internal.ant;
df135e4
+
df135e4
+import java.nio.file.Paths;
df135e4
+
df135e4
+import org.eclipse.aether.DefaultRepositorySystemSession;
df135e4
+import org.eclipse.aether.repository.WorkspaceReader;
df135e4
+import org.eclipse.aether.util.repository.ChainedWorkspaceReader;
df135e4
+import org.fedoraproject.xmvn.connector.aether.XMvnWorkspaceReader;
df135e4
+import org.fedoraproject.xmvn.locator.IsolatedXMvnServiceLocator;
df135e4
+import org.fedoraproject.xmvn.locator.XMvnHomeClassLoader;
df135e4
+import org.fedoraproject.xmvn.resolver.Resolver;
df135e4
+
df135e4
+class XMvnRepoSys
df135e4
+{
df135e4
+    private final WorkspaceReader xmvnWorkspaceReader;
df135e4
+
df135e4
+    public XMvnRepoSys()
df135e4
+    {
df135e4
+        ClassLoader antClassLoader = AntRepoSys.class.getClassLoader();
df135e4
+
df135e4
+        XMvnHomeClassLoader xmvnClassLoader = new XMvnHomeClassLoader( antClassLoader );
df135e4
+        xmvnClassLoader.addJar( Paths.get( "/usr/share/java/slf4j/api.jar" ) );
df135e4
+        xmvnClassLoader.addJar( Paths.get( "/usr/share/java/slf4j/simple.jar" ) );
df135e4
+
df135e4
+        IsolatedXMvnServiceLocator serviceLocator = new IsolatedXMvnServiceLocator( xmvnClassLoader );
df135e4
+        Resolver resolver = serviceLocator.getService( Resolver.class );
df135e4
+
df135e4
+        xmvnWorkspaceReader = new XMvnWorkspaceReader( resolver );
df135e4
+    }
df135e4
+
df135e4
+    public void configureRepositorySession( DefaultRepositorySystemSession session )
df135e4
+    {
df135e4
+        session.setWorkspaceReader( new ChainedWorkspaceReader( session.getWorkspaceReader(), xmvnWorkspaceReader ) );
df135e4
+    }
df135e4
+}
df135e4
-- 
df135e4
2.7.4
df135e4