提交 ef8beb28 编写于 作者: C Christoph Kutzinski

Maven 2.1.x/2.2.x interceptor jar is indeed needed as an override instead of a replacement

上级 cd0d9dd4
......@@ -304,6 +304,11 @@ public abstract class AbstractMavenProcessFactory
// TCP/IP port to establish the remoting infrastructure
args.add(tcpPort);
String interceptorOverride = getMavenInterceptorOverride(mvn,isMaster,slaveRoot);
if (interceptorOverride!=null) {
args.add(interceptorOverride);
}
return args;
}
......@@ -311,12 +316,17 @@ public abstract class AbstractMavenProcessFactory
/**
* Returns the classpath string for the maven-agent jar including classworlds
*/
protected abstract String getMavenAgentClassPath(MavenInstallation mvn,boolean isMaster,FilePath slaveRoot,BuildListener listener) throws IOException, InterruptedException ;
protected abstract String getMavenAgentClassPath(MavenInstallation mvn,boolean isMaster,FilePath slaveRoot,BuildListener listener) throws IOException, InterruptedException;
/**
* Returns the classpath string for the maven-interceptor jar
*/
protected abstract String getMavenInterceptorClassPath(MavenInstallation mvn,boolean isMaster,FilePath slaveRoot) throws IOException, InterruptedException ;
protected abstract String getMavenInterceptorClassPath(MavenInstallation mvn,boolean isMaster,FilePath slaveRoot) throws IOException, InterruptedException;
/**
* For Maven 2.1.x - 2.2.x we need an additional jar which overrides some classes in the other interceptor jar.
*/
protected abstract String getMavenInterceptorOverride(MavenInstallation mvn,boolean isMaster,FilePath slaveRoot) throws IOException, InterruptedException;
/**
* Returns the name of the Maven main class.
......
......@@ -32,6 +32,7 @@ import hudson.model.TaskListener;
import hudson.remoting.Callable;
import hudson.remoting.Which;
import hudson.tasks.Maven.MavenInstallation;
import hudson.util.ArgumentListBuilder;
import java.io.File;
import java.io.FilenameFilter;
......@@ -71,6 +72,13 @@ public class Maven3ProcessFactory extends AbstractMavenProcessFactory implements
slaveRoot.child("maven3-interceptor.jar").getRemote();
}
@Override
protected String getMavenInterceptorOverride(MavenInstallation mvn,
boolean isMaster, FilePath slaveRoot) throws IOException,
InterruptedException {
return null;
}
/**
* Finds classworlds.jar
*/
......
......@@ -34,6 +34,7 @@ import hudson.model.TaskListener;
import hudson.remoting.Callable;
import hudson.remoting.Which;
import hudson.tasks.Maven.MavenInstallation;
import hudson.util.ArgumentListBuilder;
import java.io.File;
import java.io.FilenameFilter;
......@@ -69,15 +70,21 @@ final class MavenProcessFactory extends AbstractMavenProcessFactory implements P
@Override
protected String getMavenInterceptorClassPath(MavenInstallation mvn,boolean isMaster,FilePath slaveRoot) throws IOException, InterruptedException {
return isMaster?
Which.jarFile(hudson.maven.agent.AbortException.class).getAbsolutePath():
slaveRoot.child("maven-interceptor.jar").getRemote();
}
@Override
protected String getMavenInterceptorOverride(MavenInstallation mvn,
boolean isMaster, FilePath slaveRoot) throws IOException,
InterruptedException {
if(mvn.isMaven2_1(getLauncher())) {
return isMaster?
Which.jarFile(Maven21Interceptor.class).getAbsolutePath():
slaveRoot.child("maven2.1-interceptor.jar").getRemote();
} else {
return isMaster?
Which.jarFile(hudson.maven.agent.AbortException.class).getAbsolutePath():
slaveRoot.child("maven-interceptor.jar").getRemote();
}
return null;
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册