提交 b16b2032 编写于 作者: S sghill

Merge remote-tracking branch 'upstream/master' into JENKINS-19803

...@@ -54,6 +54,14 @@ Upcoming changes</a> ...@@ -54,6 +54,14 @@ Upcoming changes</a>
<!-- Record your changes in the trunk here. --> <!-- Record your changes in the trunk here. -->
<div id="trunk" style="display:none"><!--=TRUNK-BEGIN=--> <div id="trunk" style="display:none"><!--=TRUNK-BEGIN=-->
<ul class=image>
<li class=>
</ul>
</div><!--=TRUNK-END=-->
<!-- these changes are controlled by the release process. DO NOT MODIFY -->
<div id="rc" style="display:none;"><!--=BEGIN=-->
<h3><a name=v1.534>What's new in 1.534</a> <!--=DATE=--></h3>
<ul class=image> <ul class=image>
<li class='major bug'> <li class='major bug'>
Default crumb issuer configurations saved in older releases did not load as of Jenkins 1.531. Default crumb issuer configurations saved in older releases did not load as of Jenkins 1.531.
...@@ -61,6 +69,9 @@ Upcoming changes</a> ...@@ -61,6 +69,9 @@ Upcoming changes</a>
<li class='major bug'> <li class='major bug'>
As of 1.532 download of artifact ZIPs was broken. As of 1.532 download of artifact ZIPs was broken.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-19752">issue 19752</a>) (<a href="https://issues.jenkins-ci.org/browse/JENKINS-19752">issue 19752</a>)
<li class='major bug'>
Old copies of <code>maven3-agent.jar</code> on slaves were not being reliably updated, leading to errors.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-19251">issue 19251</a>)
<li class='rfe'> <li class='rfe'>
Add option to disable "Remember me on this computer" checkbox in login screen. Add option to disable "Remember me on this computer" checkbox in login screen.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-15757">issue 15757</a>) (<a href="https://issues.jenkins-ci.org/browse/JENKINS-15757">issue 15757</a>)
...@@ -68,17 +79,13 @@ Upcoming changes</a> ...@@ -68,17 +79,13 @@ Upcoming changes</a>
Added postCheckout method for SCMs Added postCheckout method for SCMs
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-19740">issue 19740</a>) (<a href="https://issues.jenkins-ci.org/browse/JENKINS-19740">issue 19740</a>)
</ul> </ul>
</div><!--=TRUNK-END=--> </div><!--=END=-->
<h3><a name=v1.533>What's new in 1.533</a> (2013/09/29)</h3>
<!-- these changes are controlled by the release process. DO NOT MODIFY -->
<div id="rc" style="display:none;"><!--=BEGIN=-->
<h3><a name=v1.533>What's new in 1.533</a> <!--=DATE=--></h3>
<ul class=image> <ul class=image>
<li class=rfe> <li class=rfe>
Offer alternate error message for pattern-based project naming strategy. Offer alternate error message for pattern-based project naming strategy.
(<a href="https://github.com/jenkinsci/jenkins/pull/914">pull request 914</a>) (<a href="https://github.com/jenkinsci/jenkins/pull/914">pull request 914</a>)
</ul> </ul>
</div><!--=END=-->
<h3><a name=v1.532>What's new in 1.532</a> (2013/09/23)</h3> <h3><a name=v1.532>What's new in 1.532</a> (2013/09/23)</h3>
<ul class=image> <ul class=image>
<li class='major bug'> <li class='major bug'>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>pom</artifactId> <artifactId>pom</artifactId>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
</parent> </parent>
<artifactId>cli</artifactId> <artifactId>cli</artifactId>
......
...@@ -29,7 +29,7 @@ THE SOFTWARE. ...@@ -29,7 +29,7 @@ THE SOFTWARE.
<parent> <parent>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>pom</artifactId> <artifactId>pom</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
......
jenkins (1.533) unstable; urgency=low
* See http://jenkins-ci.org/changelog for more details.
-- Kohsuke Kawaguchi <kk@kohsuke.org> Sun, 29 Sep 2013 15:20:28 -0700
jenkins (1.532) unstable; urgency=low jenkins (1.532) unstable; urgency=low
* See http://jenkins-ci.org/changelog for more details. * See http://jenkins-ci.org/changelog for more details.
......
...@@ -29,7 +29,7 @@ THE SOFTWARE. ...@@ -29,7 +29,7 @@ THE SOFTWARE.
<parent> <parent>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>pom</artifactId> <artifactId>pom</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
</parent> </parent>
<artifactId>maven-plugin</artifactId> <artifactId>maven-plugin</artifactId>
......
...@@ -8,6 +8,7 @@ import hudson.FilePath; ...@@ -8,6 +8,7 @@ import hudson.FilePath;
import hudson.Launcher; import hudson.Launcher;
import hudson.Platform; import hudson.Platform;
import hudson.Proc; import hudson.Proc;
import hudson.Util;
import hudson.maven.ProcessCache.NewProcess; import hudson.maven.ProcessCache.NewProcess;
import hudson.model.BuildListener; import hudson.model.BuildListener;
import hudson.model.Computer; import hudson.model.Computer;
...@@ -534,7 +535,7 @@ public abstract class AbstractMavenProcessFactory ...@@ -534,7 +535,7 @@ public abstract class AbstractMavenProcessFactory
zip.setProject(new Project()); zip.setProject(new Project());
zip.execute(); zip.execute();
jar = t; jar = t;
} else if (copiedJar.lastModified() > jar.lastModified()) { } else if (copiedJar.exists() && copiedJar.digest().equals(Util.getDigestOf(jar))) {
log.println(seedName + ".jar already up to date"); log.println(seedName + ".jar already up to date");
return copiedJar; return copiedJar;
} }
......
...@@ -26,6 +26,7 @@ package hudson.maven; ...@@ -26,6 +26,7 @@ package hudson.maven;
import hudson.FilePath; import hudson.FilePath;
import hudson.Launcher; import hudson.Launcher;
import hudson.EnvVars; import hudson.EnvVars;
import hudson.Util;
import hudson.maven.agent.Main; import hudson.maven.agent.Main;
import hudson.maven.agent.Maven21Interceptor; import hudson.maven.agent.Maven21Interceptor;
import hudson.model.BuildListener; import hudson.model.BuildListener;
...@@ -40,7 +41,6 @@ import java.io.FilenameFilter; ...@@ -40,7 +41,6 @@ import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URL; import java.net.URL;
import java.net.URLConnection;
/** /**
...@@ -69,11 +69,10 @@ final class MavenProcessFactory extends AbstractMavenProcessFactory implements P ...@@ -69,11 +69,10 @@ final class MavenProcessFactory extends AbstractMavenProcessFactory implements P
// TODO why would we not pick it up using GetClassWorldsJar like we do for M2 on master or M3 anywhere? // TODO why would we not pick it up using GetClassWorldsJar like we do for M2 on master or M3 anywhere?
FilePath jar = slaveRoot.child("classworlds.jar"); FilePath jar = slaveRoot.child("classworlds.jar");
// copied to root of this JAR using dependency:generate-resources: // copied to root of this JAR using dependency:generate-resources:
URLConnection conn = MavenProcessFactory.class.getClassLoader().getResource("classworlds.jar").openConnection(); if (jar.exists() && jar.digest().equals(Util.getDigestOf(MavenProcessFactory.class.getClassLoader().getResourceAsStream("classworlds.jar")))) {
if (jar.lastModified() > conn.getLastModified()) {
listener.getLogger().println("classworlds.jar already up to date"); listener.getLogger().println("classworlds.jar already up to date");
} else { } else {
InputStream in = conn.getInputStream(); InputStream in = MavenProcessFactory.class.getClassLoader().getResourceAsStream("classworlds.jar");
try { try {
jar.copyFrom(in); jar.copyFrom(in);
} finally { } finally {
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<groupId>org.jenkins-ci.plugins</groupId> <groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId> <artifactId>plugin</artifactId>
<name>Jenkins plugin POM</name> <name>Jenkins plugin POM</name>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<!-- <!--
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<dependency><!-- if a plugin wants to depend on the maven plugin, choose the right version automatically --> <dependency><!-- if a plugin wants to depend on the maven plugin, choose the right version automatically -->
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>maven-plugin</artifactId> <artifactId>maven-plugin</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
...@@ -48,25 +48,25 @@ ...@@ -48,25 +48,25 @@
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-war</artifactId> <artifactId>jenkins-war</artifactId>
<type>war</type> <type>war</type>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-core</artifactId> <artifactId>jenkins-core</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-test-harness</artifactId> <artifactId>jenkins-test-harness</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>ui-samples-plugin</artifactId> <artifactId>ui-samples-plugin</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- <!--
......
...@@ -33,7 +33,7 @@ THE SOFTWARE. ...@@ -33,7 +33,7 @@ THE SOFTWARE.
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>pom</artifactId> <artifactId>pom</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Jenkins main module</name> <name>Jenkins main module</name>
......
...@@ -29,7 +29,7 @@ THE SOFTWARE. ...@@ -29,7 +29,7 @@ THE SOFTWARE.
<parent> <parent>
<artifactId>pom</artifactId> <artifactId>pom</artifactId>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
</parent> </parent>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-test-harness</artifactId> <artifactId>jenkins-test-harness</artifactId>
......
...@@ -28,6 +28,7 @@ import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; ...@@ -28,6 +28,7 @@ import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebAssert; import com.gargoylesoftware.htmlunit.WebAssert;
import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlPage;
import hudson.model.Cause.UserIdCause;
import hudson.security.AccessDeniedException2; import hudson.security.AccessDeniedException2;
import hudson.security.GlobalMatrixAuthorizationStrategy; import hudson.security.GlobalMatrixAuthorizationStrategy;
import hudson.security.HudsonPrivateSecurityRealm; import hudson.security.HudsonPrivateSecurityRealm;
...@@ -224,7 +225,7 @@ public class UserTest { ...@@ -224,7 +225,7 @@ public class UserTest {
} }
@Test @Test
public void testGetBuildsAndGetProjects() throws IOException, InterruptedException { public void testGetBuildsAndGetProjects() throws Exception {
User user = User.get("John Smith", true, Collections.emptyMap()); User user = User.get("John Smith", true, Collections.emptyMap());
FreeStyleProject project = j.createFreeStyleProject("free"); FreeStyleProject project = j.createFreeStyleProject("free");
FreeStyleProject project2 = j.createFreeStyleProject("free2"); FreeStyleProject project2 = j.createFreeStyleProject("free2");
...@@ -232,24 +233,20 @@ public class UserTest { ...@@ -232,24 +233,20 @@ public class UserTest {
FakeChangeLogSCM scm = new FakeChangeLogSCM(); FakeChangeLogSCM scm = new FakeChangeLogSCM();
scm.addChange().withAuthor(user.getId()); scm.addChange().withAuthor(user.getId());
project.setScm(scm); project.setScm(scm);
Queue.getInstance().schedule(project,0); j.buildAndAssertSuccess(project);
j.buildAndAssertSuccess(project2);
Build build = project.getLastBuild(); Build build = project.getLastBuild();
while(build==null){
Thread.sleep(100);
build = project.getLastBuild();
}
Queue.getInstance().schedule(project2,0);
Build build2 = project2.getLastBuild(); Build build2 = project2.getLastBuild();
while(build2==null){
Thread.sleep(100);
build2 = project2.getLastBuild();
}
assertTrue("User should participate in the last build of project free.", user.getBuilds().contains(build)); assertTrue("User should participate in the last build of project free.", user.getBuilds().contains(build));
assertFalse("User should not participate in the last build of project free2.", user.getBuilds().contains(build2)); assertFalse("User should not participate in the last build of project free2.", user.getBuilds().contains(build2));
assertTrue("User should participate in the project free.", user.getProjects().contains(project)); assertTrue("User should participate in the project free.", user.getProjects().contains(project));
assertFalse("User should not participate in the project free2.", user.getProjects().contains(project2)); assertFalse("User should not participate in the project free2.", user.getProjects().contains(project2));
//JENKINS-16178: build should include also builds scheduled by user //JENKINS-16178: build should include also builds scheduled by user
CauseAction action = build2.getAction(CauseAction.class); //remove existing cause action
if(action!=null)
build2.getActions().remove(action);
build2.addAction(new CauseAction(new Cause.UserIdCause())); build2.addAction(new CauseAction(new Cause.UserIdCause()));
assertFalse("User should not participate in the last build of project free2.", user.getBuilds().contains(build2)); assertFalse("User should not participate in the last build of project free2.", user.getBuilds().contains(build2));
assertFalse("Current user should not participate in the last build of project free.", User.current().getBuilds().contains(build)); assertFalse("Current user should not participate in the last build of project free.", User.current().getBuilds().contains(build));
......
...@@ -29,7 +29,7 @@ THE SOFTWARE. ...@@ -29,7 +29,7 @@ THE SOFTWARE.
<parent> <parent>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>pom</artifactId> <artifactId>pom</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
</parent> </parent>
<artifactId>ui-samples-plugin</artifactId> <artifactId>ui-samples-plugin</artifactId>
......
...@@ -28,7 +28,7 @@ THE SOFTWARE. ...@@ -28,7 +28,7 @@ THE SOFTWARE.
<parent> <parent>
<groupId>org.jenkins-ci.main</groupId> <groupId>org.jenkins-ci.main</groupId>
<artifactId>pom</artifactId> <artifactId>pom</artifactId>
<version>1.534-SNAPSHOT</version> <version>1.535-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册