提交 9e2adce7 编写于 作者: O Olivier Lamy

various MavenReporter will know maven version used during the build.

上级 086cf9a0
......@@ -26,6 +26,7 @@ package hudson.maven;
import hudson.Launcher;
import hudson.maven.MavenBuild.ProxyImpl2;
import hudson.model.BuildListener;
import hudson.model.FreeStyleProject;
import hudson.model.Hudson;
import hudson.model.Result;
import hudson.remoting.Channel;
......@@ -86,12 +87,15 @@ public class Maven3Builder extends AbstractMavenBuilder implements DelegatingCal
private final Map<ModuleName,ProxyImpl2> sourceProxies;
private final Map<ModuleName,List<MavenReporter>> reporters = new HashMap<ModuleName,List<MavenReporter>>();
protected Maven3Builder(BuildListener listener,Map<ModuleName,ProxyImpl2> proxies, Map<ModuleName,List<MavenReporter>> reporters, List<String> goals, Map<String, String> systemProps) {
private final MavenBuildInformation mavenBuildInformation;
protected Maven3Builder(BuildListener listener,Map<ModuleName,ProxyImpl2> proxies, Map<ModuleName,List<MavenReporter>> reporters, List<String> goals, Map<String, String> systemProps, MavenBuildInformation mavenBuildInformation) {
super( listener, goals, systemProps );
this.mavenBuildInformation = mavenBuildInformation;
sourceProxies = new HashMap<ModuleName, ProxyImpl2>(proxies);
this.proxies = new HashMap<ModuleName, MavenBuildProxy2>(proxies);
for (Entry<ModuleName,MavenBuildProxy2> e : this.proxies.entrySet())
e.setValue(new FilterImpl(e.getValue()));
e.setValue(new FilterImpl(e.getValue(), this.mavenBuildInformation));
this.reporters.putAll( reporters );
}
......@@ -208,8 +212,12 @@ public class Maven3Builder extends AbstractMavenBuilder implements DelegatingCal
}
private class FilterImpl extends MavenBuildProxy2.Filter<MavenBuildProxy2> implements Serializable {
public FilterImpl(MavenBuildProxy2 core) {
private MavenBuildInformation mavenBuildInformation;
public FilterImpl(MavenBuildProxy2 core, MavenBuildInformation mavenBuildInformation) {
super(core);
this.mavenBuildInformation = mavenBuildInformation;
}
@Override
......@@ -218,6 +226,11 @@ public class Maven3Builder extends AbstractMavenBuilder implements DelegatingCal
}
private static final long serialVersionUID = 1L;
public MavenBuildInformation getMavenBuildInformation()
{
return mavenBuildInformation;
}
}
......@@ -244,7 +257,7 @@ public class Maven3Builder extends AbstractMavenBuilder implements DelegatingCal
this.proxies = new HashMap<ModuleName, MavenBuildProxy2>(maven3Builder.proxies);
for (Entry<ModuleName,MavenBuildProxy2> e : this.proxies.entrySet())
{
e.setValue(maven3Builder.new FilterImpl(e.getValue()));
e.setValue(maven3Builder.new FilterImpl(e.getValue(), maven3Builder.mavenBuildInformation));
executedMojosPerModule.put( e.getKey(), new CopyOnWriteArrayList<ExecutedMojo>() );
}
this.reporters.putAll( new HashMap<ModuleName, List<MavenReporter>>(maven3Builder.reporters) );
......
......@@ -278,7 +278,13 @@ public class MavenBuild extends AbstractMavenBuild<MavenModule,MavenBuild> {
futures.add(Channel.current().callAsync(new AsyncInvoker(core,program)));
}
public MavenBuildInformation getMavenBuildInformation()
{
return super.core.getMavenBuildInformation();
}
private static final long serialVersionUID = 1L;
}
@Override
......@@ -408,6 +414,11 @@ public class MavenBuild extends AbstractMavenBuild<MavenModule,MavenBuild> {
private Object writeReplace() {
return Channel.current().export(MavenBuildProxy.class,this);
}
public MavenBuildInformation getMavenBuildInformation()
{
return new MavenBuildInformation( MavenBuild.this.getModuleSetBuild().getProject().getMavenVersionUsed());
}
}
public class ProxyImpl2 extends ProxyImpl implements MavenBuildProxy2 {
......
......@@ -170,6 +170,8 @@ public interface MavenBuildProxy {
V call(MavenBuild build) throws T, IOException, InterruptedException;
}
MavenBuildInformation getMavenBuildInformation();
/**
* Filter for {@link MavenBuildProxy}.
*
......
......@@ -473,6 +473,8 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
String mavenVersion = mavenInformation.getVersion();
MavenBuildInformation mavenBuildInformation = new MavenBuildInformation( mavenVersion );
project.setMavenVersionUsed( mavenVersion );
listener.getLogger().println("Found mavenVersion " + mavenVersion + " from file " + mavenInformation.getVersionResourcePath());
......@@ -595,7 +597,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
{
reporters.put( mavenModule.getModuleName(), mavenModule.createReporters() );
}
Maven3Builder maven3Builder = new Maven3Builder( slistener, proxies, reporters, margs.toList(), envVars );
Maven3Builder maven3Builder = new Maven3Builder( slistener, proxies, reporters, margs.toList(), envVars, mavenBuildInformation );
MavenProbeAction mpa=null;
try {
mpa = new MavenProbeAction(project,process.channel);
......@@ -610,7 +612,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
} else {
Builder builder = new Builder(slistener, proxies, project.sortedActiveModules, margs.toList(), envVars);
Builder builder = new Builder(slistener, proxies, project.sortedActiveModules, margs.toList(), envVars, mavenBuildInformation);
MavenProbeAction mpa=null;
try {
mpa = new MavenProbeAction(project,process.channel);
......@@ -781,19 +783,22 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
*/
private final transient Map<ModuleName,ProxyImpl2> sourceProxies;
public Builder(BuildListener listener,Map<ModuleName,ProxyImpl2> proxies, Collection<MavenModule> modules, List<String> goals, Map<String,String> systemProps) {
public Builder(BuildListener listener,Map<ModuleName,ProxyImpl2> proxies, Collection<MavenModule> modules, List<String> goals, Map<String,String> systemProps, MavenBuildInformation mavenBuildInformation) {
super(listener,goals,systemProps);
this.sourceProxies = proxies;
this.proxies = new HashMap<ModuleName, MavenBuildProxy2>(proxies);
for (Entry<ModuleName,MavenBuildProxy2> e : this.proxies.entrySet())
e.setValue(new FilterImpl(e.getValue()));
e.setValue(new FilterImpl(e.getValue(), mavenBuildInformation));
for (MavenModule m : modules)
reporters.put(m.getModuleName(),m.createReporters());
}
private class FilterImpl extends MavenBuildProxy2.Filter<MavenBuildProxy2> implements Serializable {
public FilterImpl(MavenBuildProxy2 core) {
private MavenBuildInformation mavenBuildInformation;
public FilterImpl(MavenBuildProxy2 core, MavenBuildInformation mavenBuildInformation) {
super(core);
}
......@@ -802,7 +807,13 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
futures.add(Channel.current().callAsync(new AsyncInvoker(core,program)));
}
public MavenBuildInformation getMavenBuildInformation() {
return mavenBuildInformation;
}
private static final long serialVersionUID = 1L;
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册