From 5b975bc4bb0d61c686fb3f0fbdbf4a8f6d23e26c Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
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