提交 43898c4f 编写于 作者: O Olav Reinert

Merge remote branch 'origin'

......@@ -60,6 +60,9 @@ Upcoming changes</a>
<!-- Record your changes in the trunk here. -->
<div id="trunk" style="display:none"><!--=TRUNK-BEGIN=-->
<ul class=image>
<li class=bug>
Replacement of some maven properties is not working
(<a href="http://issues.jenkins-ci.org/browse/JENKINS-8573">issue 8573</a>)
<li class=bug>
Fixed JDK1.6 dependency that has crept into the core in 1.400
(<a href="http://issues.jenkins-ci.org/browse/JENKINS-8914">issue 8914</a>)
......
......@@ -39,7 +39,7 @@ THE SOFTWARE.
<url>http://wiki.jenkins-ci.org/display/JENKINS/Maven+2+Project+Plugin</url>
<properties>
<mavenInterceptorsVersion>1.0</mavenInterceptorsVersion>
<mavenInterceptorsVersion>1.1</mavenInterceptorsVersion>
<mavenVersion>3.0.3</mavenVersion>
<maven.version>${mavenVersion}</maven.version>
<aetherVersion>1.11</aetherVersion>
......
/*
* The MIT License
*
* Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi
* Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Olivier Lamy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
......@@ -27,6 +27,7 @@ import hudson.EnvVars;
import hudson.FilePath;
import hudson.maven.agent.AbortException;
import hudson.maven.reporters.SurefireArchiver;
import hudson.model.AbstractBuild;
import hudson.model.BuildListener;
import hudson.model.Computer;
import hudson.model.Environment;
......@@ -45,6 +46,7 @@ import hudson.tasks.BuildWrapper;
import hudson.tasks.Maven.MavenInstallation;
import hudson.util.ArgumentListBuilder;
import hudson.util.IOUtils;
import hudson.util.ReflectionUtils;
import java.io.File;
import java.io.FileNotFoundException;
......@@ -52,6 +54,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
......@@ -66,8 +69,6 @@ import org.apache.maven.execution.ReactorManager;
import org.apache.maven.lifecycle.LifecycleExecutionException;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.project.MavenProject;
import org.jenkinsci.plugins.tokenmacro.MacroEvaluationException;
import org.jenkinsci.plugins.tokenmacro.TokenMacro;
import org.kohsuke.stapler.Ancestor;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;
......@@ -682,9 +683,13 @@ public class MavenBuild extends AbstractMavenBuild<MavenModule,MavenBuild> {
String opts = mms.getMavenOpts();
if (opts == null ) return null;
try {
opts = TokenMacro.expand(this, listener, opts);
} catch (MacroEvaluationException e) {
listener.error( "Ignore MacroEvaluationException " + e.getMessage() );
Class<?> clazz = Class.forName( "org.jenkinsci.plugins.tokenmacro.TokenMacro" );
Method expandMethod =
ReflectionUtils.findMethod(clazz, "expand", new Class[]{ AbstractBuild.class, TaskListener.class, String.class} );
opts = (String) expandMethod.invoke( null, this, listener, opts );
//opts = TokenMacro.expand(this, listener, opts);
//} catch (MacroEvaluationException e) {
// listener.error( "Ignore MacroEvaluationException " + e.getMessage() );
}
catch(Exception tokenException) {
listener.error("Ignore Problem expanding maven opts macros " + tokenException.getMessage());
......
......@@ -35,6 +35,7 @@ import hudson.Util;
import hudson.maven.MavenBuild.ProxyImpl2;
import hudson.maven.reporters.MavenFingerprinter;
import hudson.maven.reporters.MavenMailer;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.Build;
......@@ -60,6 +61,7 @@ import hudson.tasks.Maven.MavenInstallation;
import hudson.util.ArgumentListBuilder;
import hudson.util.IOUtils;
import hudson.util.MaskingClassLoader;
import hudson.util.ReflectionUtils;
import hudson.util.StreamTaskListener;
import java.io.File;
......@@ -67,6 +69,7 @@ import java.io.IOException;
import java.io.InterruptedIOException;
import java.io.PrintStream;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
......@@ -92,11 +95,7 @@ import org.apache.maven.model.building.ModelBuildingRequest;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingException;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.configuration.DefaultPlexusConfiguration;
import org.codehaus.plexus.util.PathTool;
import org.jenkinsci.plugins.tokenmacro.MacroEvaluationException;
import org.jenkinsci.plugins.tokenmacro.TokenMacro;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.sonatype.aether.transfer.TransferCancelledException;
......@@ -528,9 +527,13 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
String opts = project.getMavenOpts();
if (opts == null ) return null;
try {
opts = TokenMacro.expand(this, listener, opts);
} catch (MacroEvaluationException e) {
listener.error( "Ignore MacroEvaluationException " + e.getMessage() );
Class<?> clazz = Class.forName( "org.jenkinsci.plugins.tokenmacro.TokenMacro" );
Method expandMethod =
ReflectionUtils.findMethod(clazz, "expand", new Class[]{ AbstractBuild.class, TaskListener.class, String.class} );
opts = (String) expandMethod.invoke( null, this, listener, opts );
//opts = TokenMacro.expand(this, listener, opts);
//} catch (MacroEvaluationException e) {
// listener.error( "Ignore MacroEvaluationException " + e.getMessage() );
}
catch(Exception tokenException) {
listener.error("Ignore Problem expanding maven opts macros " + tokenException.getMessage());
......
/*
* The MIT License
*
* Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe
* Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe, Olivier Lamy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
......
/*
* The MIT License
*
* Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Yahoo! Inc., Tom Huybrechts
* Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt,
* Yahoo! Inc., Tom Huybrechts, Olivier Lamy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
......
package hudson.maven;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import hudson.Launcher;
import hudson.model.BuildListener;
import hudson.model.ParametersDefinitionProperty;
......@@ -146,6 +165,20 @@ public class Maven3BuildTest extends HudsonTestCase {
assertEquals("not only one module", 1, m.getModules().size());
}
@Bug(8573)
public void testBuildTimeStampProperty() throws Exception {
MavenInstallation mavenInstallation = configureMaven3();
MavenModuleSet m = createMavenProject();
m.setMaven( mavenInstallation.getName() );
m.getReporters().add(new TestReporter());
m.setScm(new ExtractResourceSCM(getClass().getResource("JENKINS-8573.zip")));
m.setGoals( "process-resources" );
buildAndAssertSuccess(m);
String content = m.getLastBuild().getWorkspace().child( "target/classes/test.txt" ).readToString();
assertFalse( content.contains( "${maven.build.timestamp}") );
assertFalse( content.contains( "${maven.build.timestamp}") );
}
private static class TestReporter extends MavenReporter {
@Override
public boolean end(MavenBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
......
......@@ -5,19 +5,15 @@ import hudson.model.BuildListener;
import hudson.model.ParametersDefinitionProperty;
import hudson.model.Result;
import hudson.model.StringParameterDefinition;
import hudson.scm.SubversionSCM;
import hudson.tasks.Maven.MavenInstallation;
import hudson.util.NullStream;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import org.jvnet.hudson.test.Bug;
import org.jvnet.hudson.test.Email;
import org.jvnet.hudson.test.ExtractResourceSCM;
import org.jvnet.hudson.test.HudsonTestCase;
import org.tmatesoft.svn.core.SVNException;
/**
* @author Kohsuke Kawaguchi
......@@ -135,6 +131,22 @@ public class MavenBuildTest extends HudsonTestCase {
assertFalse( mmsb.getProject().getModules().isEmpty());
}
@Bug(8573)
public void testBuildTimeStampProperty() throws Exception {
MavenInstallation mavenInstallation = configureDefaultMaven();
MavenModuleSet m = createMavenProject();
m.setMaven( mavenInstallation.getName() );
m.getReporters().add(new TestReporter());
m.setScm(new ExtractResourceSCM(getClass().getResource("JENKINS-8573.zip")));
m.setGoals( "process-resources" );
buildAndAssertSuccess(m);
String content = m.getLastBuild().getWorkspace().child( "target/classes/test.txt" ).readToString();
assertFalse( content.contains( "${maven.build.timestamp}") );
assertFalse( content.contains( "${maven.build.timestamp}") );
System.out.println( "content " + content );
}
private static class TestReporter extends MavenReporter {
@Override
public boolean end(MavenBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册