https://www.dev.java.net/svn/hudson/branches/concurrent-build
........
r19592 | kohsuke | 2009-07-10 14:02:22 -0700 (Fri, 10 Jul 2009) | 1 line
introduced getWorkspace() and getModuleRoot() on AbstractBuild.
........
r19593 | kohsuke | 2009-07-10 15:06:08 -0700 (Fri, 10 Jul 2009) | 1 line
introduced a flag to control the behavior, so that we can expose the feature much later after we merge the branch into the trunk.
........
r19651 | kohsuke | 2009-07-13 08:48:31 -0700 (Mon, 13 Jul 2009) | 1 line
modified to work with multiple concurrent builds
........
r19669 | kohsuke | 2009-07-13 14:25:58 -0700 (Mon, 13 Jul 2009) | 1 line
updating TODOs
........
r19671 | kohsuke | 2009-07-13 16:50:42 -0700 (Mon, 13 Jul 2009) | 1 line
committing my changes before I push this up to the Run class.
........
r19672 | kohsuke | 2009-07-13 17:14:41 -0700 (Mon, 13 Jul 2009) | 1 line
pushed the change up to the Run class, which simplifies things a bit, and avoids a race condition in the final "notifyAll" when the build is completed.
........
r19709 | kohsuke | 2009-07-14 17:56:24 -0700 (Tue, 14 Jul 2009) | 1 line
added checkpoint methods to the base type of where it's commonly used, to simplify invocations.
........
r19712 | kohsuke | 2009-07-14 18:16:50 -0700 (Tue, 14 Jul 2009) | 1 line
revisited the CheckPoint abstraction. I think this is more OO now
........
r19713 | kohsuke | 2009-07-14 18:17:18 -0700 (Tue, 14 Jul 2009) | 1 line
doc fix
........
r19714 | kohsuke | 2009-07-14 18:23:32 -0700 (Tue, 14 Jul 2009) | 1 line
replaced AbstractProject.getWorkspace() by AbstractBuild.getWorkspace(). The easy ones are done, but the harder ones remain.
........
r19715 | kohsuke | 2009-07-14 18:32:56 -0700 (Tue, 14 Jul 2009) | 1 line
more getWorkspace() changes
........
r19728 | kohsuke | 2009-07-15 11:17:25 -0700 (Wed, 15 Jul 2009) | 1 line
removed more getWorkspace() usage by getSomeWorkspace()
........
r19729 | kohsuke | 2009-07-15 11:17:43 -0700 (Wed, 15 Jul 2009) | 1 line
this is done
........
r19825 | kohsuke | 2009-07-17 15:35:21 -0700 (Fri, 17 Jul 2009) | 4 lines
- refactored SCM triggering code to avoid queueing up too many threads.
- workspace locking only happens if the SCM declares that the polling requires a workspace.
TODO: given the face of concurrent builds, a single workspace lock won't work.
........
r19826 | kohsuke | 2009-07-17 16:21:15 -0700 (Fri, 17 Jul 2009) | 5 lines
implemented the handling of polling/build mutual exclusion when polling requires a workspace.
The SCMs that require a workspace for polling, such as CVS, do so by comparing the state of the workspace
vs that of the remote. So it needs to use the workspace of the last build. Polling needs to wait for this workspace
if it's currently in use by a build, so a wait/notify scheme was needed, and hence WorkspaceList.
........
r19827 | kohsuke | 2009-07-17 16:32:54 -0700 (Fri, 17 Jul 2009) | 1 line
removed the workspace resource lock.
........
r19828 | kohsuke | 2009-07-17 16:40:09 -0700 (Fri, 17 Jul 2009) | 1 line
got rid of the lock. A build will always allocate an available workspace, so this is no longer necessary.
........
r19859 | kohsuke | 2009-07-18 12:45:03 -0700 (Sat, 18 Jul 2009) | 2 lines
Fixing a test failure. This might be signaling a depper abstraction problem, but let's see...
........
r19860 | kohsuke | 2009-07-18 13:10:32 -0700 (Sat, 18 Jul 2009) | 1 line
bug fix
........
r19861 | kohsuke | 2009-07-18 13:12:18 -0700 (Sat, 18 Jul 2009) | 1 line
typo
........
r19863 | kohsuke | 2009-07-18 13:25:20 -0700 (Sat, 18 Jul 2009) | 1 line
pass in common parameters for convenience.
........
r19864 | kohsuke | 2009-07-18 13:36:34 -0700 (Sat, 18 Jul 2009) | 1 line
doc fix
........
r19865 | kohsuke | 2009-07-18 13:57:55 -0700 (Sat, 18 Jul 2009) | 1 line
bug fix.
........
r19869 | kohsuke | 2009-07-18 14:07:18 -0700 (Sat, 18 Jul 2009) | 2 lines
This fixes the elusive NPE in com.gargoylesoftware.htmlunit.javascript.host.Event.<init>(Event.java:164)
........
r19874 | kohsuke | 2009-07-18 14:44:39 -0700 (Sat, 18 Jul 2009) | 1 line
forgot to update this.
........
r19875 | kohsuke | 2009-07-18 14:44:48 -0700 (Sat, 18 Jul 2009) | 1 line
forgot to update this.
........
r19889 | kohsuke | 2009-07-18 16:12:04 -0700 (Sat, 18 Jul 2009) | 1 line
fixed the license header.
........
r19896 | kohsuke | 2009-07-18 16:16:44 -0700 (Sat, 18 Jul 2009) | 1 line
adding a note.
........
r19908 | kohsuke | 2009-07-18 17:13:03 -0700 (Sat, 18 Jul 2009) | 1 line
fixed a bug. The parent build will likely run on a different node, so we can't just inherit its workspace.
........
r19909 | kohsuke | 2009-07-18 17:16:54 -0700 (Sat, 18 Jul 2009) | 1 line
reorgznied imports.
........
r19979 | kohsuke | 2009-07-20 14:22:50 -0700 (Mon, 20 Jul 2009) | 1 line
[HUDSON-4060] fixed a reported ClassCastException, but I don't think that's related to the hang problem.
........
r19982 | kohsuke | 2009-07-20 14:51:11 -0700 (Mon, 20 Jul 2009) | 31 lines
increasing the error margin in response to the flaky test that causes this error:
unexpected build status; build log was: ------ Legacy code started this job. No cause information is available Recording test results Test reports were found but none of them are new. Did tests run? For example, /tmp/hudson3604989730528561398test/jobs/test0/workspace/junit.xml is 1 sec old Finished: FAILURE ------ expected:<UNSTABLE> but was:<FAILURE>
Stacktrace
junit.framework.AssertionFailedError: unexpected build status; build log was:
------
Legacy code started this job. No cause information is available
Recording test results
Test reports were found but none of them are new. Did tests run?
For example, /tmp/hudson3604989730528561398test/jobs/test0/workspace/junit.xml is 1 sec old
Finished: FAILURE
------
expected:<UNSTABLE> but was:<FAILURE>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:282)
at junit.framework.Assert.assertEquals(Assert.java:64)
at org.jvnet.hudson.test.HudsonTestCase.assertBuildStatus(HudsonTestCase.java:520)
at hudson.tasks.junit.CaseResultTest.testIssue20090516(CaseResultTest.java:74)
Standard Output
=== Starting testIssue20090516
Standard Error
2009-07-20 07:20:23.430::INFO: jetty-6.1.11
2009-07-20 07:20:23.434::INFO: NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
2009-07-20 07:20:23.436::INFO: Started SocketConnector@0.0.0.0:45218
........
r20106 | kohsuke | 2009-07-24 10:27:30 -0700 (Fri, 24 Jul 2009) | 1 line
adding a few well-known check points to expose them to plugins.
........
r20115 | kohsuke | 2009-07-24 14:42:58 -0700 (Fri, 24 Jul 2009) | 3 lines
Added a mechanism to handle the compatibility with earlier plugins. Have plugins declare the synchronization service it expects Hudson to provide.
This being binary compatible change allows Hudson to use existing plugins correctly, but it's source incompatibility allows us to advertize the new semantics to plugin developers, new or old.
........
r20141 | kohsuke | 2009-07-24 19:03:07 -0700 (Fri, 24 Jul 2009) | 1 line
better type safety
........
r20142 | kohsuke | 2009-07-24 19:13:43 -0700 (Fri, 24 Jul 2009) | 1 line
update the thread name to make the thread dump more understandable.
........
r20143 | kohsuke | 2009-07-24 19:22:12 -0700 (Fri, 24 Jul 2009) | 1 line
fixed a compilation problem.
........
r20144 | kohsuke | 2009-07-24 19:30:22 -0700 (Fri, 24 Jul 2009) | 1 line
fixed a test failure. Runner needs to be a stack.
........
r20184 | kohsuke | 2009-07-27 10:51:20 -0700 (Mon, 27 Jul 2009) | 3 lines
When remote JVM (in this case Maven) calls back to the proxy object, the executing thread needs to be able to behave as if it's the executor thread. So added the necessary abstractions for doing that.
It might have been better to do this in the remoting, by using the blocking caller thread to serve requests. That would be harder, but it gets rid of this ugly ThreadLocal book keeping.
........
r20196 | kohsuke | 2009-07-27 13:22:33 -0700 (Mon, 27 Jul 2009) | 1 line
Fixed a test failure. The proxy interface needs to be public for the interceptor to be able to invoke it.
........
r20207 | kohsuke | 2009-07-27 17:27:35 -0700 (Mon, 27 Jul 2009) | 1 line
[HUDSON-4060] this class-level synchronization has a devastating effect as it effectively creates a single giant lock for the entire Hudson and can cause a dead lock.
........
r20208 | kohsuke | 2009-07-27 17:28:58 -0700 (Mon, 27 Jul 2009) | 1 line
improved the thread name.
........
r20215 | kohsuke | 2009-07-28 10:58:15 -0700 (Tue, 28 Jul 2009) | 1 line
added form databinding support for <f:optionalBlock>
........
r20216 | kohsuke | 2009-07-28 11:00:35 -0700 (Tue, 28 Jul 2009) | 1 line
concurrent build is now a switch activated for each project separately.
........
r20222 | kohsuke | 2009-07-28 15:30:18 -0700 (Tue, 28 Jul 2009) | 3 lines
bug fix in the rendering of the build history when you have some builds finished earlier than their earlier builds that are still in progress.
This also fixes a race condition in a non concurrent build case, which can result in some build #s showing up more than once after AJAX update if the status of the build changes between the computation of 'nn' and that of the rendering.
........
r20286 | kohsuke | 2009-07-29 11:05:00 -0700 (Wed, 29 Jul 2009) | 1 line
still fixing more build list update issues. The original fix only kicked in for the list produced by AJAX, and didn't work for the initial list.
........
r20293 | kohsuke | 2009-07-29 17:03:20 -0700 (Wed, 29 Jul 2009) | 1 line
simplified a bit
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@20296 71c3de6d-444a-0410-be80-ed276b4c234a
- extensions are now stored in ExtensionList.
- discovery is extensible, but by default we use Sezpoz for annotation-based injection. This requires JDK6 for build.
- a care has been taken to preserve backward compatibility. DescriptorList and manually adding to it continues to work.
- AdministrativeMonitor is converted to use the new approach entirely, as a guinea pig of this feature.
- Descriptors for View is partially switched to this new approach, where some classes register automatically while others do manually. This tests the compatibility aspect of this feature.
A pluggable discovery is an attempt to embrace Plexus integration work, although for that to really work we need more coding.
Next stop, more tests.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@15601 71c3de6d-444a-0410-be80-ed276b4c234a
The primary use case of this for now is the promoted build plugin.
I then intend to use this in the ZFS plugin so that I can control what snapshots to leave and what to dispose of, based on the permalinks.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@12185 71c3de6d-444a-0410-be80-ed276b4c234a