| 
									
										
										
										
											2009-02-07 04:05:24 +08:00
										 |  |  | /* | 
					
						
							|  |  |  |  * The MIT License | 
					
						
							|  |  |  |  *  | 
					
						
							| 
									
										
										
										
											2009-04-02 04:42:50 +08:00
										 |  |  |  * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Yahoo! Inc. | 
					
						
							| 
									
										
										
										
											2009-02-07 04:05:24 +08:00
										 |  |  |  *  | 
					
						
							|  |  |  |  * Permission is hereby granted, free of charge, to any person obtaining a copy | 
					
						
							|  |  |  |  * of this software and associated documentation files (the "Software"), to deal | 
					
						
							|  |  |  |  * in the Software without restriction, including without limitation the rights | 
					
						
							|  |  |  |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | 
					
						
							|  |  |  |  * copies of the Software, and to permit persons to whom the Software is | 
					
						
							|  |  |  |  * furnished to do so, subject to the following conditions: | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * The above copyright notice and this permission notice shall be included in | 
					
						
							|  |  |  |  * all copies or substantial portions of the Software. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
					
						
							|  |  |  |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
					
						
							|  |  |  |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | 
					
						
							|  |  |  |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | 
					
						
							|  |  |  |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | 
					
						
							|  |  |  |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | 
					
						
							|  |  |  |  * THE SOFTWARE. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2008-04-01 08:39:36 +08:00
										 |  |  | //
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  | //
 | 
					
						
							| 
									
										
										
										
											2007-09-04 01:58:19 +08:00
										 |  |  | // JavaScript for Hudson
 | 
					
						
							|  |  |  | //     See http://www.ibm.com/developerworks/web/library/wa-memleak/?ca=dgr-lnxw97JavascriptLeaks
 | 
					
						
							|  |  |  | //     for memory leak patterns and how to prevent them.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  | // create a new object whose prototype is the given object
 | 
					
						
							|  |  |  | function object(o) { | 
					
						
							|  |  |  |     function F() {} | 
					
						
							|  |  |  |     F.prototype = o; | 
					
						
							|  |  |  |     return new F(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-12-31 05:03:57 +08:00
										 |  |  | // id generator
 | 
					
						
							|  |  |  | var iota = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | // Form check code
 | 
					
						
							|  |  |  | //========================================================
 | 
					
						
							| 
									
										
										
										
											2007-03-12 02:19:38 +08:00
										 |  |  | var FormChecker = { | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     // pending requests
 | 
					
						
							|  |  |  |     queue : [], | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 16638,16644,16652,16719-16720,16722 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/rc
........
  r16638 | kohsuke | 2009-03-27 19:13:03 -0700 (Fri, 27 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare release hudson-1_294
........
  r16644 | kohsuke | 2009-03-28 07:32:33 -0700 (Sat, 28 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare for next development iteration
........
  r16652 | kohsuke | 2009-03-28 14:42:44 -0700 (Sat, 28 Mar 2009) | 1 line
  
  updated changelog as a part of the release
........
  r16719 | kohsuke | 2009-03-30 10:46:40 -0700 (Mon, 30 Mar 2009) | 3 lines
  
  [HUDSON-3382] The race condition in the boolean flag prevents form validations from kicking in during unit tests, causing regressions to ship unnoticed.
  
  Switched from a boolean to an integer so that the order of x=true / x=false won't matter.
........
  r16720 | kohsuke | 2009-03-30 10:55:00 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [FIXED HUDSON-3382] NPE in .cvspass form validation. Will be in 1.295.
........
  r16722 | kohsuke | 2009-03-30 13:31:17 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [HUDSON-3382] regression test. Make sure that the form validation failure gets detected.
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@16725 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-03-31 04:54:19 +08:00
										 |  |  |     // conceptually boolean, but doing so create concurrency problem.
 | 
					
						
							|  |  |  |     // that is, during unit tests, the AJAX.send works synchronously, so
 | 
					
						
							|  |  |  |     // the onComplete happens before the send method returns. On a real environment,
 | 
					
						
							|  |  |  |     // more likely it's the other way around. So setting a boolean flag to true or false
 | 
					
						
							|  |  |  |     // won't work.
 | 
					
						
							|  |  |  |     inProgress : 0, | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-30 07:52:11 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Schedules a form field check. Executions are serialized to reduce the bandwidth impact. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param url | 
					
						
							|  |  |  |      *      Remote doXYZ URL that performs the check. Query string should include the field value. | 
					
						
							|  |  |  |      * @param method | 
					
						
							|  |  |  |      *      HTTP method. GET or POST. I haven't confirmed specifics, but some browsers seem to cache GET requests. | 
					
						
							|  |  |  |      * @param target | 
					
						
							|  |  |  |      *      HTML element whose innerHTML will be overwritten when the check is completed. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     delayedCheck : function(url, method, target) { | 
					
						
							| 
									
										
										
										
											2009-01-30 07:52:11 +08:00
										 |  |  |         if(url==null || method==null || target==null) | 
					
						
							|  |  |  |             return; // don't know whether we should throw an exception or ignore this. some broken plugins have illegal parameters
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |         this.queue.push({url:url, method:method, target:target}); | 
					
						
							|  |  |  |         this.schedule(); | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     sendRequest : function(url, params) { | 
					
						
							|  |  |  |         if (params.method == "post") { | 
					
						
							|  |  |  |             var idx = url.indexOf('?'); | 
					
						
							|  |  |  |             params.parameters = url.substring(idx + 1); | 
					
						
							|  |  |  |             url = url.substring(0, idx); | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |         new Ajax.Request(url, params); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     schedule : function() { | 
					
						
							| 
									
										
											  
											
												Merged revisions 16638,16644,16652,16719-16720,16722 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/rc
........
  r16638 | kohsuke | 2009-03-27 19:13:03 -0700 (Fri, 27 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare release hudson-1_294
........
  r16644 | kohsuke | 2009-03-28 07:32:33 -0700 (Sat, 28 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare for next development iteration
........
  r16652 | kohsuke | 2009-03-28 14:42:44 -0700 (Sat, 28 Mar 2009) | 1 line
  
  updated changelog as a part of the release
........
  r16719 | kohsuke | 2009-03-30 10:46:40 -0700 (Mon, 30 Mar 2009) | 3 lines
  
  [HUDSON-3382] The race condition in the boolean flag prevents form validations from kicking in during unit tests, causing regressions to ship unnoticed.
  
  Switched from a boolean to an integer so that the order of x=true / x=false won't matter.
........
  r16720 | kohsuke | 2009-03-30 10:55:00 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [FIXED HUDSON-3382] NPE in .cvspass form validation. Will be in 1.295.
........
  r16722 | kohsuke | 2009-03-30 13:31:17 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [HUDSON-3382] regression test. Make sure that the form validation failure gets detected.
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@16725 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-03-31 04:54:19 +08:00
										 |  |  |         if (this.inProgress>0)  return; | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |         if (this.queue.length == 0) return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var next = this.queue.shift(); | 
					
						
							|  |  |  |         this.sendRequest(next.url, { | 
					
						
							|  |  |  |             method : next.method, | 
					
						
							|  |  |  |             onComplete : function(x) { | 
					
						
							|  |  |  |                 next.target.innerHTML = x.responseText; | 
					
						
							| 
									
										
											  
											
												Merged revisions 16638,16644,16652,16719-16720,16722 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/rc
........
  r16638 | kohsuke | 2009-03-27 19:13:03 -0700 (Fri, 27 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare release hudson-1_294
........
  r16644 | kohsuke | 2009-03-28 07:32:33 -0700 (Sat, 28 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare for next development iteration
........
  r16652 | kohsuke | 2009-03-28 14:42:44 -0700 (Sat, 28 Mar 2009) | 1 line
  
  updated changelog as a part of the release
........
  r16719 | kohsuke | 2009-03-30 10:46:40 -0700 (Mon, 30 Mar 2009) | 3 lines
  
  [HUDSON-3382] The race condition in the boolean flag prevents form validations from kicking in during unit tests, causing regressions to ship unnoticed.
  
  Switched from a boolean to an integer so that the order of x=true / x=false won't matter.
........
  r16720 | kohsuke | 2009-03-30 10:55:00 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [FIXED HUDSON-3382] NPE in .cvspass form validation. Will be in 1.295.
........
  r16722 | kohsuke | 2009-03-30 13:31:17 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [HUDSON-3382] regression test. Make sure that the form validation failure gets detected.
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@16725 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-03-31 04:54:19 +08:00
										 |  |  |                 FormChecker.inProgress--; | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |                 FormChecker.schedule(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
											  
											
												Merged revisions 16638,16644,16652,16719-16720,16722 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/rc
........
  r16638 | kohsuke | 2009-03-27 19:13:03 -0700 (Fri, 27 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare release hudson-1_294
........
  r16644 | kohsuke | 2009-03-28 07:32:33 -0700 (Sat, 28 Mar 2009) | 1 line
  
  [maven-release-plugin] prepare for next development iteration
........
  r16652 | kohsuke | 2009-03-28 14:42:44 -0700 (Sat, 28 Mar 2009) | 1 line
  
  updated changelog as a part of the release
........
  r16719 | kohsuke | 2009-03-30 10:46:40 -0700 (Mon, 30 Mar 2009) | 3 lines
  
  [HUDSON-3382] The race condition in the boolean flag prevents form validations from kicking in during unit tests, causing regressions to ship unnoticed.
  
  Switched from a boolean to an integer so that the order of x=true / x=false won't matter.
........
  r16720 | kohsuke | 2009-03-30 10:55:00 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [FIXED HUDSON-3382] NPE in .cvspass form validation. Will be in 1.295.
........
  r16722 | kohsuke | 2009-03-30 13:31:17 -0700 (Mon, 30 Mar 2009) | 1 line
  
  [HUDSON-3382] regression test. Make sure that the form validation failure gets detected.
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@16725 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-03-31 04:54:19 +08:00
										 |  |  |         this.inProgress++; | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  | function toValue(e) { | 
					
						
							|  |  |  |     // compute the form validation value to be sent to the server
 | 
					
						
							| 
									
										
										
										
											2009-05-13 12:31:09 +08:00
										 |  |  |     var type = e.getAttribute("type"); | 
					
						
							|  |  |  |     if(type!=null && type.toLowerCase()=="checkbox") | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  |         return e.checked; | 
					
						
							|  |  |  |     return encode(e.value); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-25 09:18:30 +08:00
										 |  |  | // find the nearest ancestor node that has the given tag name
 | 
					
						
							|  |  |  | function findAncestor(e, tagName) { | 
					
						
							|  |  |  |     do { | 
					
						
							|  |  |  |         e = e.parentNode; | 
					
						
							| 
									
										
										
										
											2009-05-30 01:14:30 +08:00
										 |  |  |     } while (e != null && e.tagName != tagName); | 
					
						
							| 
									
										
										
										
											2007-12-25 09:18:30 +08:00
										 |  |  |     return e; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  | function findFollowingTR(input, className) { | 
					
						
							|  |  |  |     // identify the parent TR
 | 
					
						
							|  |  |  |     var tr = input; | 
					
						
							|  |  |  |     while (tr.tagName != "TR") | 
					
						
							|  |  |  |         tr = tr.parentNode; | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     // then next TR that matches the CSS
 | 
					
						
							|  |  |  |     do { | 
					
						
							|  |  |  |         tr = tr.nextSibling; | 
					
						
							|  |  |  |     } while (tr.tagName != "TR" || tr.className != className); | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     return tr; | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 11754-11755,11763-11766,11770,11773-11777,11791-11797,11828-11829,11831-11839,11841-11843,11850,11854,11994,12774,12778-12793,12820-12822,12831-12841,12854-12855,12860-12882,12896-12905,12914-12920,12938-12941,12950,13045-13046,13048,13063-13064,13066,13072-13076,13111,13122-13147,13150,13153-13158,13487-13488,13851-13852,13854-13856,13859,13866-13867,13869,13872-13876,13878-13879,13883-13885,13887-13890,13896-13919 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/multiple-computer-per-node
................
  r11754 | kohsuke | 2008-08-25 17:59:14 -0700 (Mon, 25 Aug 2008) | 3 lines
  
  Adding EphemeralNode for non-persisted dynamically-allocated expandable/shrinkable slave pool.
  
  Tweaked the serialization of Hudson.slaves accordingly.
................
  r11755 | kohsuke | 2008-08-25 18:10:42 -0700 (Mon, 25 Aug 2008) | 1 line
  
  making a small improvements
................
  r11763 | kohsuke | 2008-08-26 13:57:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding more convenience methods
................
  r11764 | kohsuke | 2008-08-26 14:24:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  ported mask capability from the TFS plugin to the core.
................
  r11765 | kohsuke | 2008-08-26 14:26:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  making it non-final to allow for subclassing
................
  r11766 | kohsuke | 2008-08-26 14:35:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  test case for NodeList
................
  r11770 | kohsuke | 2008-08-26 15:15:21 -0700 (Tue, 26 Aug 2008) | 3 lines
  
  Wrote a simple tool that monitors a file system change (in a poor way) and triggers a build.
................
  r11773 | kohsuke | 2008-08-26 17:20:30 -0700 (Tue, 26 Aug 2008) | 1 line
  
  made more structured
................
  r11774 | kohsuke | 2008-08-26 17:47:41 -0700 (Tue, 26 Aug 2008) | 1 line
  
  indentation fix
................
  r11775 | kohsuke | 2008-08-26 17:48:22 -0700 (Tue, 26 Aug 2008) | 1 line
  
  remove the use of a deprecated feature.
................
  r11776 | kohsuke | 2008-08-26 17:51:54 -0700 (Tue, 26 Aug 2008) | 1 line
  
  renamed to 'ALL' to be consistent with recent use of DescriptorList
................
  r11777 | kohsuke | 2008-08-26 18:04:17 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding NodeFactory list and its configuration mechanism
................
  r11791 | kohsuke | 2008-08-27 09:43:38 -0700 (Wed, 27 Aug 2008) | 1 line
  
  picked up the latest jelly with Iterable support in <j:forEach>
................
  r11792 | kohsuke | 2008-08-27 09:44:08 -0700 (Wed, 27 Aug 2008) | 1 line
  
  Iterable support added in  commons-jelly 1.1-hudson-20080826
................
  r11793 | kohsuke | 2008-08-27 10:15:14 -0700 (Wed, 27 Aug 2008) | 2 lines
  
  - added name to NodeFactory for binding NodeFactory to URL tree.
  - NodeFactory should be access controlled
................
  r11794 | kohsuke | 2008-08-27 10:41:11 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added a method to add one Node at a time
................
  r11795 | kohsuke | 2008-08-27 10:41:37 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added permission constatnt
................
  r11796 | kohsuke | 2008-08-27 10:42:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  allowing the launch method to throw an exception.
................
  r11797 | kohsuke | 2008-08-27 10:44:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  improving the handling
................
  r11828 | kohsuke | 2008-08-29 11:07:16 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added executor config to the sidebar.
................
  r11829 | kohsuke | 2008-08-29 11:16:11 -0700 (Fri, 29 Aug 2008) | 1 line
  
  "it" should be assigned to NodeFactory
................
  r11831 | kohsuke | 2008-08-29 11:44:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11832 | kohsuke | 2008-08-29 11:59:21 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a script to create a flashing image from any picture
................
  r11833 | kohsuke | 2008-08-29 12:07:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11834 | kohsuke | 2008-08-29 13:37:59 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added new images to indicate that a slave is launching
................
  r11835 | kohsuke | 2008-08-29 13:43:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  indicate a launching slave accordingly.
................
  r11836 | kohsuke | 2008-08-29 14:02:28 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a method to remove a Node.
................
  r11837 | kohsuke | 2008-08-29 14:02:38 -0700 (Fri, 29 Aug 2008) | 1 line
  
  disconnect
................
  r11838 | kohsuke | 2008-08-29 14:03:22 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11839 | kohsuke | 2008-08-29 14:14:04 -0700 (Fri, 29 Aug 2008) | 1 line
  
  allowing subclasses.
................
  r11841 | kohsuke | 2008-08-29 14:28:29 -0700 (Fri, 29 Aug 2008) | 1 line
  
  constructor should be the first in the definition.
................
  r11842 | kohsuke | 2008-08-29 14:31:01 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11843 | kohsuke | 2008-08-29 14:32:48 -0700 (Fri, 29 Aug 2008) | 1 line
  
  fixed a problem of using partially constructed object during launch(), because the setNode() method is called from the Computer constructor.
................
  r11850 | kohsuke | 2008-08-29 14:50:36 -0700 (Fri, 29 Aug 2008) | 1 line
  
  serialize NodeFactory first so that references to them from NodeList will become references in XML.
................
  r11854 | kohsuke | 2008-08-29 14:56:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  cleaning up a bit.
................
  r11994 | kohsuke | 2008-09-03 14:42:11 -0700 (Wed, 03 Sep 2008) | 21 lines
  
  Fixed ArrayIndexOutOfBoundsException during replace(), when the title contains a '$' literal.
  
  The typical stack trace looks like:
  
  Caused by: java.lang.ArrayIndexOutOfBoundsException: 32
          at hudson.MarkupText$SubText.start(MarkupText.java:95)
          at hudson.MarkupText$SubText.group(MarkupText.java:131)
          at hudson.MarkupText$SubText.replace(MarkupText.java:154)
          at hudson.MarkupText$SubText.surroundWith(MarkupText.java:83)
          at 
  hudson.plugins.jira.JiraChangeLogAnnotator.annotate(JiraChangeLogAnnotator.java:37)
          at 
  hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:117)
          ... 148 more
  
  Vijayan Jayaraman and I found this problem while we were looking at the server log of Hudson for OpenJFX.
  
  Adding a unit test to verify this behavior, too.  
................
  r12774 | kohsuke | 2008-10-27 15:03:36 -0700 (Mon, 27 Oct 2008) | 3 lines
  
  preparing for heterogenousness in Node, so that different Node can be configured with different UIs, much like how different Jobs can be configured.
  
  Creating a slave works also like creating a new job.
................
  r12778 | kohsuke | 2008-10-27 15:06:51 -0700 (Mon, 27 Oct 2008) | 1 line
  
  We need to be able to create an emtpy Slave initially, so we have to do with the check in the form field validation.
................
  r12779 | kohsuke | 2008-10-27 15:48:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the new slave page a two-step process
................
  r12780 | kohsuke | 2008-10-27 15:48:24 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a compilation problem
................
  r12781 | kohsuke | 2008-10-27 15:53:30 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12782 | kohsuke | 2008-10-27 15:58:20 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12783 | kohsuke | 2008-10-27 16:08:56 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the configuration page work for slaves
................
  r12784 | kohsuke | 2008-10-27 16:35:17 -0700 (Mon, 27 Oct 2008) | 1 line
  
  added new-computer.svg
................
  r12785 | kohsuke | 2008-10-27 16:37:26 -0700 (Mon, 27 Oct 2008) | 1 line
  
  hooking up the config/create pages to the UI
................
  r12786 | kohsuke | 2008-10-27 16:44:40 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a copy method.
................
  r12787 | kohsuke | 2008-10-27 16:47:33 -0700 (Mon, 27 Oct 2008) | 1 line
  
  code was broken when a slave was renamed
................
  r12788 | kohsuke | 2008-10-27 16:58:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  moving out the commonality into a new tag
................
  r12789 | kohsuke | 2008-10-27 17:01:21 -0700 (Mon, 27 Oct 2008) | 1 line
  
  consistent term usage
................
  r12790 | kohsuke | 2008-10-27 17:03:19 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retiring the configureExecutors. Slave configuration is now moved to individual slave page
................
  r12791 | kohsuke | 2008-10-27 17:10:32 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retired configureExecutors.jelly and completed moved its contents to somewhere else
................
  r12792 | kohsuke | 2008-10-27 17:21:53 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fix. request handling of "/descriptor/FQCN/..." was broken.
................
  r12793 | kohsuke | 2008-10-27 17:27:08 -0700 (Mon, 27 Oct 2008) | 1 line
  
  NodeFactory -> Cloud to encourage consistent term usage between the code and the UI.
................
  r12820 | kohsuke | 2008-10-29 10:58:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  formatting fix
................
  r12821 | kohsuke | 2008-10-29 11:17:49 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added classes for handling a secret and prevent accidental exposure of a secret in the persisted form
................
  r12822 | kohsuke | 2008-10-29 11:32:39 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added a base64 validator
................
  r12831 | kohsuke | 2008-10-29 15:58:45 -0700 (Wed, 29 Oct 2008) | 1 line
  
  secret key needs to be persisted outside config.xml (and it is, already!)
................
  r12832 | kohsuke | 2008-10-29 16:06:28 -0700 (Wed, 29 Oct 2008) | 1 line
  
  started working on Amazon EC2 plugin
................
  r12833 | kohsuke | 2008-10-29 16:09:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  brought the same enhancement as in <textbox />
................
  r12834 | kohsuke | 2008-10-29 16:15:05 -0700 (Wed, 29 Oct 2008) | 1 line
  
  copy over the onclick handler from the original button element
................
  r12835 | kohsuke | 2008-10-29 17:01:04 -0700 (Wed, 29 Oct 2008) | 1 line
  
  allow OK messages to be sent with some mark up.
................
  r12836 | kohsuke | 2008-10-29 17:06:52 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added connection testing. This pattern needs to be generalized since it happens often
................
  r12837 | kohsuke | 2008-10-29 17:13:11 -0700 (Wed, 29 Oct 2008) | 1 line
  
  this is little better
................
  r12838 | kohsuke | 2008-10-29 17:17:44 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added spinner
................
  r12839 | kohsuke | 2008-10-29 17:31:54 -0700 (Wed, 29 Oct 2008) | 1 line
  
  restructuring the validation button support in a form that can be readily moved to the core.
................
  r12840 | kohsuke | 2008-10-29 18:01:41 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added <f:validateButton/> for multi-field server-side validation
................
  r12841 | kohsuke | 2008-10-29 18:03:12 -0700 (Wed, 29 Oct 2008) | 1 line
  
  logic moved to <f:validateButton/> in the core.
................
  r12854 | kohsuke | 2008-10-30 13:32:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  @QueryParameter.value won't be necessary any more
................
  r12855 | kohsuke | 2008-10-30 13:42:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  need a strongly-typed constructor.
................
  r12860 | kohsuke | 2008-10-30 15:24:18 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding more reflection support, which in turn we use in taglibs to raise the level of abstraction.
................
  r12861 | kohsuke | 2008-10-30 15:33:22 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added a tag to create databinding to a<select> element from an enum property
................
  r12862 | kohsuke | 2008-10-30 15:37:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding a smarter bi-directional binding through <f:repeatable field="..."/>
................
  r12863 | kohsuke | 2008-10-30 15:47:48 -0700 (Thu, 30 Oct 2008) | 1 line
  
  making progress with the EC2 support
................
  r12864 | kohsuke | 2008-10-30 16:12:34 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added form field validation for AMI ID
................
  r12865 | kohsuke | 2008-10-30 16:15:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added simpler version
................
  r12866 | kohsuke | 2008-10-30 16:17:15 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12867 | kohsuke | 2008-10-30 16:17:19 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12868 | kohsuke | 2008-10-30 16:40:25 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12869 | kohsuke | 2008-10-30 17:00:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding the provisioning of the new slave
................
  r12870 | kohsuke | 2008-10-30 17:07:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  /** {@inheritDoc} */ is the default behavior for javadoc, so there's no point in making that explicit.
................
  r12871 | kohsuke | 2008-10-30 17:11:04 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc bug fix
................
  r12872 | kohsuke | 2008-10-30 17:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12873 | kohsuke | 2008-10-30 17:19:06 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added RetentionStrategy for EC2 instances
................
  r12874 | kohsuke | 2008-10-30 17:21:17 -0700 (Thu, 30 Oct 2008) | 1 line
  
  allowing subclasses to override the disconnect behavior.
................
  r12875 | kohsuke | 2008-10-30 18:02:35 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added termination
................
  r12876 | kohsuke | 2008-10-30 18:05:30 -0700 (Thu, 30 Oct 2008) | 1 line
  
  forgot to rename when NodeFactory was renamed to Cloud
................
  r12877 | kohsuke | 2008-10-30 18:06:08 -0700 (Thu, 30 Oct 2008) | 1 line
  
  using the console icon
................
  r12878 | kohsuke | 2008-10-30 18:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding UI to remove a slave.
................
  r12879 | kohsuke | 2008-10-30 18:48:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  commons-discovery now needed in stapler
................
  r12880 | kohsuke | 2008-10-30 18:50:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  needs to use a newer version of stapler
................
  r12881 | kohsuke | 2008-10-30 18:51:02 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12882 | kohsuke | 2008-10-30 18:51:43 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12896 | kohsuke | 2008-10-31 14:52:07 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed the ordering between field and the mighty get(String) method.
................
  r12897 | kohsuke | 2008-10-31 15:08:41 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed test compilation problems
................
  r12898 | kohsuke | 2008-10-31 15:11:25 -0700 (Fri, 31 Oct 2008) | 1 line
  
  marking this as a model object since it's always bound to URL.
................
  r12899 | kohsuke | 2008-10-31 15:13:42 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up to manually provision a new node
................
  r12900 | kohsuke | 2008-10-31 15:14:00 -0700 (Fri, 31 Oct 2008) | 1 line
  
  after merging the trunk the version number is different
................
  r12901 | kohsuke | 2008-10-31 15:21:54 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up for provisioning a new slave
................
  r12902 | kohsuke | 2008-10-31 15:45:10 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding a hook to decorate ComputerLauncher.
................
  r12903 | kohsuke | 2008-10-31 15:48:21 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added filtering support
................
  r12904 | kohsuke | 2008-10-31 15:52:45 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added view
................
  r12905 | kohsuke | 2008-10-31 15:53:49 -0700 (Fri, 31 Oct 2008) | 1 line
  
  doc improvement
................
  r12914 | kohsuke | 2008-11-01 17:45:57 -0700 (Sat, 01 Nov 2008) | 1 line
  
  adding code for connecting with SSH
................
  r12915 | kohsuke | 2008-11-01 17:49:28 -0700 (Sat, 01 Nov 2008) | 1 line
  
  working on launchers
................
  r12916 | kohsuke | 2008-11-01 18:33:12 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a method to fully read a stream
................
  r12917 | kohsuke | 2008-11-01 18:33:45 -0700 (Sat, 01 Nov 2008) | 1 line
  
  bumped up stapler
................
  r12918 | kohsuke | 2008-11-01 18:39:41 -0700 (Sat, 01 Nov 2008) | 1 line
  
  doc improvement.
................
  r12919 | kohsuke | 2008-11-01 18:45:24 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a launcher
................
  r12920 | kohsuke | 2008-11-01 18:55:02 -0700 (Sat, 01 Nov 2008) | 1 line
  
  implementing the actual ComputerLauncher
................
  r12938 | kohsuke | 2008-11-02 08:56:05 -0800 (Sun, 02 Nov 2008) | 1 line
  
  support the field notation
................
  r12939 | kohsuke | 2008-11-02 09:20:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  added the mechanism to execute the init script
................
  r12940 | kohsuke | 2008-11-02 09:21:38 -0800 (Sun, 02 Nov 2008) | 1 line
  
  simplification
................
  r12941 | kohsuke | 2008-11-02 09:36:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  adding key handling
................
  r12950 | kohsuke | 2008-11-03 11:00:58 -0800 (Mon, 03 Nov 2008) | 1 line
  
  formatting changes
................
  r13045 | kohsuke | 2008-11-06 15:24:32 -0800 (Thu, 06 Nov 2008) | 1 line
  
  adding time series datatype for retaining load average statistics in memory
................
  r13046 | kohsuke | 2008-11-06 15:59:02 -0800 (Thu, 06 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13048 | kohsuke | 2008-11-06 16:21:54 -0800 (Thu, 06 Nov 2008) | 2 lines
  
  - started monitoring # of executor statistics.
  - exposed label to the remote API
................
  r13063 | kohsuke | 2008-11-07 13:05:15 -0800 (Fri, 07 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13064 | kohsuke | 2008-11-07 13:11:08 -0800 (Fri, 07 Nov 2008) | 1 line
  
  monitor the length of the queue too
................
  r13066 | kohsuke | 2008-11-07 14:15:56 -0800 (Fri, 07 Nov 2008) | 1 line
  
  moved the stats to its own class.
................
  r13072 | kohsuke | 2008-11-07 15:40:29 -0800 (Fri, 07 Nov 2008) | 1 line
  
  adding provisioning logic based on load statistics
................
  r13073 | kohsuke | 2008-11-07 15:46:00 -0800 (Fri, 07 Nov 2008) | 1 line
  
  for effective testing, we need sub-sec precision
................
  r13074 | kohsuke | 2008-11-07 16:24:44 -0800 (Fri, 07 Nov 2008) | 1 line
  
  fixed a lie.
................
  r13075 | kohsuke | 2008-11-07 16:25:12 -0800 (Fri, 07 Nov 2008) | 1 line
  
  bug fix
................
  r13076 | kohsuke | 2008-11-07 16:30:55 -0800 (Fri, 07 Nov 2008) | 1 line
  
  avoid using deprecated methods
................
  r13111 | kohsuke | 2008-11-09 11:54:23 -0800 (Sun, 09 Nov 2008) | 1 line
  
  added the Future<?> return parameter to Computer.launch(). To do this w/o breaking compatibility, renamed launch to connect.
................
  r13122 | kohsuke | 2008-11-10 14:38:03 -0800 (Mon, 10 Nov 2008) | 1 line
  
  allow programmatic update of the assigned label
................
  r13123 | kohsuke | 2008-11-10 14:38:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Iterator not needed because CopyOnWriteArrayList doesn't support removal via iterator.
................
  r13124 | kohsuke | 2008-11-10 14:39:24 -0800 (Mon, 10 Nov 2008) | 1 line
  
  added another Builder for tests
................
  r13125 | kohsuke | 2008-11-10 14:39:48 -0800 (Mon, 10 Nov 2008) | 1 line
  
  simplified a bit. This TestEnvironment stuff needs some clearer story.
................
  r13126 | kohsuke | 2008-11-10 14:46:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  IDEA complains about this.
................
  r13127 | kohsuke | 2008-11-10 14:51:53 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved the error diagnostics by displaying why a provisioned node failed to launch
................
  r13128 | kohsuke | 2008-11-10 14:52:12 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Started a test case for NodeProvisioner
................
  r13129 | kohsuke | 2008-11-10 14:52:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13130 | kohsuke | 2008-11-10 15:16:02 -0800 (Mon, 10 Nov 2008) | 1 line
  
  report the failure as a failure.
................
  r13131 | kohsuke | 2008-11-10 16:34:23 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding a parameter to the connect method to support joining to the pending launch activity.
................
  r13132 | kohsuke | 2008-11-10 16:38:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  making members public so that it can be accessed from other classes (DummyCloudImpl was the first to do this)
................
  r13133 | kohsuke | 2008-11-10 16:38:58 -0800 (Mon, 10 Nov 2008) | 1 line
  
  split the cloud implementation to a separate class to allow reuse.
................
  r13134 | kohsuke | 2008-11-10 16:56:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  assign unique names to support multiple jobs
................
  r13135 | kohsuke | 2008-11-10 17:11:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  avoid unnecessary interruption
................
  r13136 | kohsuke | 2008-11-10 17:11:41 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13137 | kohsuke | 2008-11-10 17:16:28 -0800 (Mon, 10 Nov 2008) | 1 line
  
  cleaned up a test case
................
  r13138 | kohsuke | 2008-11-10 17:36:52 -0800 (Mon, 10 Nov 2008) | 1 line
  
  since the setNode method is called on every Computer just by adding a new node, don't force a new launch attempt.
................
  r13139 | kohsuke | 2008-11-10 17:37:38 -0800 (Mon, 10 Nov 2008) | 1 line
  
  perform orderly shutdown by giving computers enough time to disconnect.
................
  r13140 | kohsuke | 2008-11-10 17:38:08 -0800 (Mon, 10 Nov 2008) | 3 lines
  
  return Future for synchronization.
  
  This breaks binary compatibility, but I checked none of the plugins in Hudson SVN uses this, so I hope this is OK.
................
  r13141 | kohsuke | 2008-11-10 17:38:46 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved diagnostics
................
  r13142 | kohsuke | 2008-11-10 17:39:55 -0800 (Mon, 10 Nov 2008) | 1 line
  
  removed compiler warning
................
  r13143 | kohsuke | 2008-11-10 18:02:56 -0800 (Mon, 10 Nov 2008) | 1 line
  
  hide the rounding related problem from Cloud by passing int instead of float.
................
  r13144 | kohsuke | 2008-11-10 18:10:10 -0800 (Mon, 10 Nov 2008) | 1 line
  
  bug fix
................
  r13145 | kohsuke | 2008-11-10 18:11:51 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13146 | kohsuke | 2008-11-10 18:15:08 -0800 (Mon, 10 Nov 2008) | 1 line
  
  moved the slave launch code to HudsonTestCase for reuse
................
  r13147 | kohsuke | 2008-11-10 18:20:19 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13150 | kohsuke | 2008-11-11 07:28:53 -0800 (Tue, 11 Nov 2008) | 1 line
  
  bug fix
................
  r13153 | kohsuke | 2008-11-11 14:04:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  cutting down the test size to 5 to increase the test speed
................
  r13154 | kohsuke | 2008-11-11 14:04:37 -0800 (Tue, 11 Nov 2008) | 1 line
  
  improved debuggability
................
  r13155 | kohsuke | 2008-11-11 14:10:04 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added another convenience method
................
  r13156 | kohsuke | 2008-11-11 14:10:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  further reduce the test turn around time
................
  r13157 | kohsuke | 2008-11-11 14:22:03 -0800 (Tue, 11 Nov 2008) | 1 line
  
  doc improvement and clean up
................
  r13158 | kohsuke | 2008-11-11 14:22:28 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added a new metho
................
  r13487 | kohsuke | 2008-12-09 17:17:30 -0800 (Tue, 09 Dec 2008) | 1 line
  
  SlaveTemplate needs to be able to computer # of executors.
................
  r13488 | kohsuke | 2008-12-09 17:18:05 -0800 (Tue, 09 Dec 2008) | 1 line
  
  fixed a compilation problem with the latest head of the branch
................
  r13851 | kohsuke | 2008-12-24 13:40:43 -0800 (Wed, 24 Dec 2008) | 82 lines
  
  fixed a dead lock reported by Jesse.
  
  Found one Java-level deadlock:
  =============================
  "Executor #0 for master":
     waiting to lock monitor 0x09409bac (object 0x87474ca0, a hudson.util.CopyOnWriteMap$Hash),
     which is held by "main"
  "main":
     waiting to lock monitor 0x09409b48 (object 0x87474d48, a hudson.model.Hudson$MasterComputer),
     which is held by "Executor #0 for master"
  
  Java stack information for the threads listed above:
  ===================================================
  "Executor #0 for master":
  	at hudson.util.CopyOnWriteMap.remove(CopyOnWriteMap.java:78)
  	- waiting to lock <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.removeComputer(Hudson.java:717)
  	at hudson.model.Computer.removeExecutor(Computer.java:433)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Executor.run(Executor.java:65)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  "main":
  	at hudson.model.Computer.setNumExecutors(Computer.java:338)
  	- waiting to lock <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Computer.setNode(Computer.java:327)
  	at hudson.model.Hudson.updateComputer(Hudson.java:704)
  	at hudson.model.Hudson.updateComputerList(Hudson.java:685)
  	- locked <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.setNodes(Hudson.java:1076)
  	at hudson.model.Hudson.addNode(Hudson.java:1060)
  	- locked <0x87474cb0> (a hudson.model.Hudson)
  	at org.jvnet.hudson.test.HudsonTestCase.createSlave(HudsonTestCase.java:247)
  	at hudson.slaves.NodeProvisionerTest.testBaselineSlaveUsage(NodeProvisionerTest.java:86)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at junit.framework.TestCase.runTest(TestCase.java:154)
  	at org.jvnet.hudson.test.HudsonTestCase.runTest(HudsonTestCase.java:151)
  	at junit.framework.TestCase.runBare(TestCase.java:127)
  	at junit.framework.TestResult$1.protect(TestResult.java:106)
  	at junit.framework.TestResult.runProtected(TestResult.java:124)
  	at junit.framework.TestResult.run(TestResult.java:109)
  	at junit.framework.TestCase.run(TestCase.java:118)
  	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  	at junit.framework.TestSuite.run(TestSuite.java:203)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
  	at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:241)
  	at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:537)
  	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
  	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
  	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
  	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  
  Found 1 deadlock.
................
  r13852 | kohsuke | 2008-12-24 14:32:29 -0800 (Wed, 24 Dec 2008) | 1 line
  
  bug fix in the test case.
................
  r13854 | kohsuke | 2008-12-24 15:20:22 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  Using a new version of Rhino to get a proper exception chaining.
................
  r13855 | kohsuke | 2008-12-24 15:22:13 -0800 (Wed, 24 Dec 2008) | 1 line
  
  typo
................
  r13856 | kohsuke | 2008-12-24 15:37:56 -0800 (Wed, 24 Dec 2008) | 1 line
  
  CR shouldn't be in the repository
................
  r13859 | kohsuke | 2008-12-24 15:50:32 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Fixed svn:eol-style.
................
  r13866 | kohsuke | 2008-12-24 21:26:43 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Copying rev.13860 to retry a merge that now looks suspicious.
................
  r13869 | kohsuke | 2008-12-24 22:03:46 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  The 2nd merge was successful, so adopting the successful merge as the multiple-computer-per-node branch.
................
  r13872 | kohsuke | 2008-12-25 07:28:37 -0800 (Thu, 25 Dec 2008) | 1 line
  
  fixed a test failure
................
  r13873 | kohsuke | 2008-12-25 08:16:49 -0800 (Thu, 25 Dec 2008) | 1 line
  
  expanded NodeProvisioner to work on per-label basis
................
  r13874 | kohsuke | 2008-12-25 08:27:32 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13875 | kohsuke | 2008-12-25 08:33:17 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13876 | kohsuke | 2008-12-25 08:45:03 -0800 (Thu, 25 Dec 2008) | 3 lines
  
  [HUDSON-2605] Strangely, I discovered that on some File, which is new File("./target/hudson-for-test"), file.exists()==false but file.getAbsoluteFile().exists()==true.
  
  It looks like this happens when $PWD of the process at the OS level is different from System.getProperty("user.dir")
................
  r13878 | kohsuke | 2008-12-25 15:52:45 -0800 (Thu, 25 Dec 2008) | 1 line
  
  added a marker file
................
  r13879 | kohsuke | 2008-12-25 15:53:13 -0800 (Thu, 25 Dec 2008) | 1 line
  
  use marker file to find the hudson main workspace.
................
  r13883 | kohsuke | 2008-12-26 07:50:44 -0800 (Fri, 26 Dec 2008) | 1 line
  
  avoid using a deprecated method.
................
  r13884 | kohsuke | 2008-12-26 07:50:59 -0800 (Fri, 26 Dec 2008) | 1 line
  
  adding more probes
................
  r13885 | kohsuke | 2008-12-26 08:15:42 -0800 (Fri, 26 Dec 2008) | 1 line
  
  for analyzing test failures, capturing the output is crucial.
................
  r13887 | kohsuke | 2008-12-26 11:25:12 -0800 (Fri, 26 Dec 2008) | 1 line
  
  allow sub-types to intercept mutation
................
  r13888 | kohsuke | 2008-12-26 11:26:01 -0800 (Fri, 26 Dec 2008) | 1 line
  
  clouds need to be taken into account before marking a label as pointless.
................
  r13889 | kohsuke | 2008-12-26 11:26:40 -0800 (Fri, 26 Dec 2008) | 3 lines
  
  fixing bugs in NodeProvisioner.
  
  Conservative estimate on idle executors have to be max, not min.
................
  r13890 | kohsuke | 2008-12-26 11:42:53 -0800 (Fri, 26 Dec 2008) | 1 line
  
  turns out the problem was that we were adding multiple slaves under the same name, which confused Hudson to no end.
................
  r13896 | kohsuke | 2008-12-27 07:44:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  formatting changes
................
  r13897 | kohsuke | 2008-12-27 07:45:00 -0800 (Sat, 27 Dec 2008) | 1 line
  
  reprot the test name to stdout so that one can easily distinguish different tests in target/surefire-reports/xyz-output.txt
................
  r13898 | kohsuke | 2008-12-27 07:54:53 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13899 | kohsuke | 2008-12-27 09:59:07 -0800 (Sat, 27 Dec 2008) | 1 line
  
  split the functionality into two classes
................
  r13900 | kohsuke | 2008-12-27 10:00:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13901 | kohsuke | 2008-12-27 10:06:24 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added 'tick'
................
  r13902 | kohsuke | 2008-12-27 10:08:04 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding graph rendering of the load statistics
................
  r13903 | kohsuke | 2008-12-27 10:19:41 -0800 (Sat, 27 Dec 2008) | 1 line
  
  improved graph layout
................
  r13904 | kohsuke | 2008-12-27 10:21:05 -0800 (Sat, 27 Dec 2008) | 1 line
  
  Picker -> TimeScale to better reflect what it is.
................
  r13905 | kohsuke | 2008-12-27 10:40:27 -0800 (Sat, 27 Dec 2008) | 1 line
  
  duplicate
................
  r13906 | kohsuke | 2008-12-27 14:39:36 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to a shorter name
................
  r13907 | kohsuke | 2008-12-27 15:03:25 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added icons
................
  r13908 | kohsuke | 2008-12-27 16:20:37 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to make 'loadStatistics' the URL binding.
................
  r13909 | kohsuke | 2008-12-27 16:21:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  exposing loadStatistics for Computer for better URL binding
................
  r13910 | kohsuke | 2008-12-27 16:21:16 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding UI support
................
  r13911 | kohsuke | 2008-12-27 19:31:43 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added some basic visualization
................
  r13912 | kohsuke | 2008-12-27 19:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  if there's no description, don't even show it.
................
  r13913 | kohsuke | 2008-12-27 19:39:26 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added load statistics page for the label as well.
................
  r13914 | kohsuke | 2008-12-27 19:48:55 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added one more convenience method.
................
  r13915 | kohsuke | 2008-12-27 19:54:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  refactored so that a different Dataset can be fed.
................
  r13916 | kohsuke | 2008-12-27 19:59:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added global load statistics lnk to the management screen.
................
  r13917 | kohsuke | 2008-12-27 20:31:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  <dt>s should use the bold font to distinguish them from <dd>s
................
  r13918 | kohsuke | 2008-12-27 20:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
  r13919 | kohsuke | 2008-12-27 20:35:39 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@14215 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-01-07 09:02:56 +08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Traverses a form in the reverse document order starting from the given element (but excluding it), | 
					
						
							|  |  |  |  * until the given filter matches, or run out of an element. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function findPrevious(src,filter) { | 
					
						
							|  |  |  |     function prev(e) { | 
					
						
							|  |  |  |         var p = e.previousSibling; | 
					
						
							|  |  |  |         if(p==null) return e.parentNode; | 
					
						
							|  |  |  |         while(p.lastChild!=null) | 
					
						
							|  |  |  |             p = p.lastChild; | 
					
						
							|  |  |  |         return p; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     while(src!=null) { | 
					
						
							|  |  |  |         src = prev(src); | 
					
						
							| 
									
										
										
										
											2009-05-09 05:12:44 +08:00
										 |  |  |         if(src==null)   break; | 
					
						
							| 
									
										
											  
											
												Merged revisions 11754-11755,11763-11766,11770,11773-11777,11791-11797,11828-11829,11831-11839,11841-11843,11850,11854,11994,12774,12778-12793,12820-12822,12831-12841,12854-12855,12860-12882,12896-12905,12914-12920,12938-12941,12950,13045-13046,13048,13063-13064,13066,13072-13076,13111,13122-13147,13150,13153-13158,13487-13488,13851-13852,13854-13856,13859,13866-13867,13869,13872-13876,13878-13879,13883-13885,13887-13890,13896-13919 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/multiple-computer-per-node
................
  r11754 | kohsuke | 2008-08-25 17:59:14 -0700 (Mon, 25 Aug 2008) | 3 lines
  
  Adding EphemeralNode for non-persisted dynamically-allocated expandable/shrinkable slave pool.
  
  Tweaked the serialization of Hudson.slaves accordingly.
................
  r11755 | kohsuke | 2008-08-25 18:10:42 -0700 (Mon, 25 Aug 2008) | 1 line
  
  making a small improvements
................
  r11763 | kohsuke | 2008-08-26 13:57:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding more convenience methods
................
  r11764 | kohsuke | 2008-08-26 14:24:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  ported mask capability from the TFS plugin to the core.
................
  r11765 | kohsuke | 2008-08-26 14:26:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  making it non-final to allow for subclassing
................
  r11766 | kohsuke | 2008-08-26 14:35:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  test case for NodeList
................
  r11770 | kohsuke | 2008-08-26 15:15:21 -0700 (Tue, 26 Aug 2008) | 3 lines
  
  Wrote a simple tool that monitors a file system change (in a poor way) and triggers a build.
................
  r11773 | kohsuke | 2008-08-26 17:20:30 -0700 (Tue, 26 Aug 2008) | 1 line
  
  made more structured
................
  r11774 | kohsuke | 2008-08-26 17:47:41 -0700 (Tue, 26 Aug 2008) | 1 line
  
  indentation fix
................
  r11775 | kohsuke | 2008-08-26 17:48:22 -0700 (Tue, 26 Aug 2008) | 1 line
  
  remove the use of a deprecated feature.
................
  r11776 | kohsuke | 2008-08-26 17:51:54 -0700 (Tue, 26 Aug 2008) | 1 line
  
  renamed to 'ALL' to be consistent with recent use of DescriptorList
................
  r11777 | kohsuke | 2008-08-26 18:04:17 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding NodeFactory list and its configuration mechanism
................
  r11791 | kohsuke | 2008-08-27 09:43:38 -0700 (Wed, 27 Aug 2008) | 1 line
  
  picked up the latest jelly with Iterable support in <j:forEach>
................
  r11792 | kohsuke | 2008-08-27 09:44:08 -0700 (Wed, 27 Aug 2008) | 1 line
  
  Iterable support added in  commons-jelly 1.1-hudson-20080826
................
  r11793 | kohsuke | 2008-08-27 10:15:14 -0700 (Wed, 27 Aug 2008) | 2 lines
  
  - added name to NodeFactory for binding NodeFactory to URL tree.
  - NodeFactory should be access controlled
................
  r11794 | kohsuke | 2008-08-27 10:41:11 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added a method to add one Node at a time
................
  r11795 | kohsuke | 2008-08-27 10:41:37 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added permission constatnt
................
  r11796 | kohsuke | 2008-08-27 10:42:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  allowing the launch method to throw an exception.
................
  r11797 | kohsuke | 2008-08-27 10:44:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  improving the handling
................
  r11828 | kohsuke | 2008-08-29 11:07:16 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added executor config to the sidebar.
................
  r11829 | kohsuke | 2008-08-29 11:16:11 -0700 (Fri, 29 Aug 2008) | 1 line
  
  "it" should be assigned to NodeFactory
................
  r11831 | kohsuke | 2008-08-29 11:44:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11832 | kohsuke | 2008-08-29 11:59:21 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a script to create a flashing image from any picture
................
  r11833 | kohsuke | 2008-08-29 12:07:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11834 | kohsuke | 2008-08-29 13:37:59 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added new images to indicate that a slave is launching
................
  r11835 | kohsuke | 2008-08-29 13:43:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  indicate a launching slave accordingly.
................
  r11836 | kohsuke | 2008-08-29 14:02:28 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a method to remove a Node.
................
  r11837 | kohsuke | 2008-08-29 14:02:38 -0700 (Fri, 29 Aug 2008) | 1 line
  
  disconnect
................
  r11838 | kohsuke | 2008-08-29 14:03:22 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11839 | kohsuke | 2008-08-29 14:14:04 -0700 (Fri, 29 Aug 2008) | 1 line
  
  allowing subclasses.
................
  r11841 | kohsuke | 2008-08-29 14:28:29 -0700 (Fri, 29 Aug 2008) | 1 line
  
  constructor should be the first in the definition.
................
  r11842 | kohsuke | 2008-08-29 14:31:01 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11843 | kohsuke | 2008-08-29 14:32:48 -0700 (Fri, 29 Aug 2008) | 1 line
  
  fixed a problem of using partially constructed object during launch(), because the setNode() method is called from the Computer constructor.
................
  r11850 | kohsuke | 2008-08-29 14:50:36 -0700 (Fri, 29 Aug 2008) | 1 line
  
  serialize NodeFactory first so that references to them from NodeList will become references in XML.
................
  r11854 | kohsuke | 2008-08-29 14:56:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  cleaning up a bit.
................
  r11994 | kohsuke | 2008-09-03 14:42:11 -0700 (Wed, 03 Sep 2008) | 21 lines
  
  Fixed ArrayIndexOutOfBoundsException during replace(), when the title contains a '$' literal.
  
  The typical stack trace looks like:
  
  Caused by: java.lang.ArrayIndexOutOfBoundsException: 32
          at hudson.MarkupText$SubText.start(MarkupText.java:95)
          at hudson.MarkupText$SubText.group(MarkupText.java:131)
          at hudson.MarkupText$SubText.replace(MarkupText.java:154)
          at hudson.MarkupText$SubText.surroundWith(MarkupText.java:83)
          at 
  hudson.plugins.jira.JiraChangeLogAnnotator.annotate(JiraChangeLogAnnotator.java:37)
          at 
  hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:117)
          ... 148 more
  
  Vijayan Jayaraman and I found this problem while we were looking at the server log of Hudson for OpenJFX.
  
  Adding a unit test to verify this behavior, too.  
................
  r12774 | kohsuke | 2008-10-27 15:03:36 -0700 (Mon, 27 Oct 2008) | 3 lines
  
  preparing for heterogenousness in Node, so that different Node can be configured with different UIs, much like how different Jobs can be configured.
  
  Creating a slave works also like creating a new job.
................
  r12778 | kohsuke | 2008-10-27 15:06:51 -0700 (Mon, 27 Oct 2008) | 1 line
  
  We need to be able to create an emtpy Slave initially, so we have to do with the check in the form field validation.
................
  r12779 | kohsuke | 2008-10-27 15:48:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the new slave page a two-step process
................
  r12780 | kohsuke | 2008-10-27 15:48:24 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a compilation problem
................
  r12781 | kohsuke | 2008-10-27 15:53:30 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12782 | kohsuke | 2008-10-27 15:58:20 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12783 | kohsuke | 2008-10-27 16:08:56 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the configuration page work for slaves
................
  r12784 | kohsuke | 2008-10-27 16:35:17 -0700 (Mon, 27 Oct 2008) | 1 line
  
  added new-computer.svg
................
  r12785 | kohsuke | 2008-10-27 16:37:26 -0700 (Mon, 27 Oct 2008) | 1 line
  
  hooking up the config/create pages to the UI
................
  r12786 | kohsuke | 2008-10-27 16:44:40 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a copy method.
................
  r12787 | kohsuke | 2008-10-27 16:47:33 -0700 (Mon, 27 Oct 2008) | 1 line
  
  code was broken when a slave was renamed
................
  r12788 | kohsuke | 2008-10-27 16:58:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  moving out the commonality into a new tag
................
  r12789 | kohsuke | 2008-10-27 17:01:21 -0700 (Mon, 27 Oct 2008) | 1 line
  
  consistent term usage
................
  r12790 | kohsuke | 2008-10-27 17:03:19 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retiring the configureExecutors. Slave configuration is now moved to individual slave page
................
  r12791 | kohsuke | 2008-10-27 17:10:32 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retired configureExecutors.jelly and completed moved its contents to somewhere else
................
  r12792 | kohsuke | 2008-10-27 17:21:53 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fix. request handling of "/descriptor/FQCN/..." was broken.
................
  r12793 | kohsuke | 2008-10-27 17:27:08 -0700 (Mon, 27 Oct 2008) | 1 line
  
  NodeFactory -> Cloud to encourage consistent term usage between the code and the UI.
................
  r12820 | kohsuke | 2008-10-29 10:58:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  formatting fix
................
  r12821 | kohsuke | 2008-10-29 11:17:49 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added classes for handling a secret and prevent accidental exposure of a secret in the persisted form
................
  r12822 | kohsuke | 2008-10-29 11:32:39 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added a base64 validator
................
  r12831 | kohsuke | 2008-10-29 15:58:45 -0700 (Wed, 29 Oct 2008) | 1 line
  
  secret key needs to be persisted outside config.xml (and it is, already!)
................
  r12832 | kohsuke | 2008-10-29 16:06:28 -0700 (Wed, 29 Oct 2008) | 1 line
  
  started working on Amazon EC2 plugin
................
  r12833 | kohsuke | 2008-10-29 16:09:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  brought the same enhancement as in <textbox />
................
  r12834 | kohsuke | 2008-10-29 16:15:05 -0700 (Wed, 29 Oct 2008) | 1 line
  
  copy over the onclick handler from the original button element
................
  r12835 | kohsuke | 2008-10-29 17:01:04 -0700 (Wed, 29 Oct 2008) | 1 line
  
  allow OK messages to be sent with some mark up.
................
  r12836 | kohsuke | 2008-10-29 17:06:52 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added connection testing. This pattern needs to be generalized since it happens often
................
  r12837 | kohsuke | 2008-10-29 17:13:11 -0700 (Wed, 29 Oct 2008) | 1 line
  
  this is little better
................
  r12838 | kohsuke | 2008-10-29 17:17:44 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added spinner
................
  r12839 | kohsuke | 2008-10-29 17:31:54 -0700 (Wed, 29 Oct 2008) | 1 line
  
  restructuring the validation button support in a form that can be readily moved to the core.
................
  r12840 | kohsuke | 2008-10-29 18:01:41 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added <f:validateButton/> for multi-field server-side validation
................
  r12841 | kohsuke | 2008-10-29 18:03:12 -0700 (Wed, 29 Oct 2008) | 1 line
  
  logic moved to <f:validateButton/> in the core.
................
  r12854 | kohsuke | 2008-10-30 13:32:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  @QueryParameter.value won't be necessary any more
................
  r12855 | kohsuke | 2008-10-30 13:42:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  need a strongly-typed constructor.
................
  r12860 | kohsuke | 2008-10-30 15:24:18 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding more reflection support, which in turn we use in taglibs to raise the level of abstraction.
................
  r12861 | kohsuke | 2008-10-30 15:33:22 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added a tag to create databinding to a<select> element from an enum property
................
  r12862 | kohsuke | 2008-10-30 15:37:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding a smarter bi-directional binding through <f:repeatable field="..."/>
................
  r12863 | kohsuke | 2008-10-30 15:47:48 -0700 (Thu, 30 Oct 2008) | 1 line
  
  making progress with the EC2 support
................
  r12864 | kohsuke | 2008-10-30 16:12:34 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added form field validation for AMI ID
................
  r12865 | kohsuke | 2008-10-30 16:15:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added simpler version
................
  r12866 | kohsuke | 2008-10-30 16:17:15 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12867 | kohsuke | 2008-10-30 16:17:19 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12868 | kohsuke | 2008-10-30 16:40:25 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12869 | kohsuke | 2008-10-30 17:00:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding the provisioning of the new slave
................
  r12870 | kohsuke | 2008-10-30 17:07:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  /** {@inheritDoc} */ is the default behavior for javadoc, so there's no point in making that explicit.
................
  r12871 | kohsuke | 2008-10-30 17:11:04 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc bug fix
................
  r12872 | kohsuke | 2008-10-30 17:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12873 | kohsuke | 2008-10-30 17:19:06 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added RetentionStrategy for EC2 instances
................
  r12874 | kohsuke | 2008-10-30 17:21:17 -0700 (Thu, 30 Oct 2008) | 1 line
  
  allowing subclasses to override the disconnect behavior.
................
  r12875 | kohsuke | 2008-10-30 18:02:35 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added termination
................
  r12876 | kohsuke | 2008-10-30 18:05:30 -0700 (Thu, 30 Oct 2008) | 1 line
  
  forgot to rename when NodeFactory was renamed to Cloud
................
  r12877 | kohsuke | 2008-10-30 18:06:08 -0700 (Thu, 30 Oct 2008) | 1 line
  
  using the console icon
................
  r12878 | kohsuke | 2008-10-30 18:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding UI to remove a slave.
................
  r12879 | kohsuke | 2008-10-30 18:48:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  commons-discovery now needed in stapler
................
  r12880 | kohsuke | 2008-10-30 18:50:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  needs to use a newer version of stapler
................
  r12881 | kohsuke | 2008-10-30 18:51:02 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12882 | kohsuke | 2008-10-30 18:51:43 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12896 | kohsuke | 2008-10-31 14:52:07 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed the ordering between field and the mighty get(String) method.
................
  r12897 | kohsuke | 2008-10-31 15:08:41 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed test compilation problems
................
  r12898 | kohsuke | 2008-10-31 15:11:25 -0700 (Fri, 31 Oct 2008) | 1 line
  
  marking this as a model object since it's always bound to URL.
................
  r12899 | kohsuke | 2008-10-31 15:13:42 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up to manually provision a new node
................
  r12900 | kohsuke | 2008-10-31 15:14:00 -0700 (Fri, 31 Oct 2008) | 1 line
  
  after merging the trunk the version number is different
................
  r12901 | kohsuke | 2008-10-31 15:21:54 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up for provisioning a new slave
................
  r12902 | kohsuke | 2008-10-31 15:45:10 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding a hook to decorate ComputerLauncher.
................
  r12903 | kohsuke | 2008-10-31 15:48:21 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added filtering support
................
  r12904 | kohsuke | 2008-10-31 15:52:45 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added view
................
  r12905 | kohsuke | 2008-10-31 15:53:49 -0700 (Fri, 31 Oct 2008) | 1 line
  
  doc improvement
................
  r12914 | kohsuke | 2008-11-01 17:45:57 -0700 (Sat, 01 Nov 2008) | 1 line
  
  adding code for connecting with SSH
................
  r12915 | kohsuke | 2008-11-01 17:49:28 -0700 (Sat, 01 Nov 2008) | 1 line
  
  working on launchers
................
  r12916 | kohsuke | 2008-11-01 18:33:12 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a method to fully read a stream
................
  r12917 | kohsuke | 2008-11-01 18:33:45 -0700 (Sat, 01 Nov 2008) | 1 line
  
  bumped up stapler
................
  r12918 | kohsuke | 2008-11-01 18:39:41 -0700 (Sat, 01 Nov 2008) | 1 line
  
  doc improvement.
................
  r12919 | kohsuke | 2008-11-01 18:45:24 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a launcher
................
  r12920 | kohsuke | 2008-11-01 18:55:02 -0700 (Sat, 01 Nov 2008) | 1 line
  
  implementing the actual ComputerLauncher
................
  r12938 | kohsuke | 2008-11-02 08:56:05 -0800 (Sun, 02 Nov 2008) | 1 line
  
  support the field notation
................
  r12939 | kohsuke | 2008-11-02 09:20:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  added the mechanism to execute the init script
................
  r12940 | kohsuke | 2008-11-02 09:21:38 -0800 (Sun, 02 Nov 2008) | 1 line
  
  simplification
................
  r12941 | kohsuke | 2008-11-02 09:36:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  adding key handling
................
  r12950 | kohsuke | 2008-11-03 11:00:58 -0800 (Mon, 03 Nov 2008) | 1 line
  
  formatting changes
................
  r13045 | kohsuke | 2008-11-06 15:24:32 -0800 (Thu, 06 Nov 2008) | 1 line
  
  adding time series datatype for retaining load average statistics in memory
................
  r13046 | kohsuke | 2008-11-06 15:59:02 -0800 (Thu, 06 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13048 | kohsuke | 2008-11-06 16:21:54 -0800 (Thu, 06 Nov 2008) | 2 lines
  
  - started monitoring # of executor statistics.
  - exposed label to the remote API
................
  r13063 | kohsuke | 2008-11-07 13:05:15 -0800 (Fri, 07 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13064 | kohsuke | 2008-11-07 13:11:08 -0800 (Fri, 07 Nov 2008) | 1 line
  
  monitor the length of the queue too
................
  r13066 | kohsuke | 2008-11-07 14:15:56 -0800 (Fri, 07 Nov 2008) | 1 line
  
  moved the stats to its own class.
................
  r13072 | kohsuke | 2008-11-07 15:40:29 -0800 (Fri, 07 Nov 2008) | 1 line
  
  adding provisioning logic based on load statistics
................
  r13073 | kohsuke | 2008-11-07 15:46:00 -0800 (Fri, 07 Nov 2008) | 1 line
  
  for effective testing, we need sub-sec precision
................
  r13074 | kohsuke | 2008-11-07 16:24:44 -0800 (Fri, 07 Nov 2008) | 1 line
  
  fixed a lie.
................
  r13075 | kohsuke | 2008-11-07 16:25:12 -0800 (Fri, 07 Nov 2008) | 1 line
  
  bug fix
................
  r13076 | kohsuke | 2008-11-07 16:30:55 -0800 (Fri, 07 Nov 2008) | 1 line
  
  avoid using deprecated methods
................
  r13111 | kohsuke | 2008-11-09 11:54:23 -0800 (Sun, 09 Nov 2008) | 1 line
  
  added the Future<?> return parameter to Computer.launch(). To do this w/o breaking compatibility, renamed launch to connect.
................
  r13122 | kohsuke | 2008-11-10 14:38:03 -0800 (Mon, 10 Nov 2008) | 1 line
  
  allow programmatic update of the assigned label
................
  r13123 | kohsuke | 2008-11-10 14:38:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Iterator not needed because CopyOnWriteArrayList doesn't support removal via iterator.
................
  r13124 | kohsuke | 2008-11-10 14:39:24 -0800 (Mon, 10 Nov 2008) | 1 line
  
  added another Builder for tests
................
  r13125 | kohsuke | 2008-11-10 14:39:48 -0800 (Mon, 10 Nov 2008) | 1 line
  
  simplified a bit. This TestEnvironment stuff needs some clearer story.
................
  r13126 | kohsuke | 2008-11-10 14:46:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  IDEA complains about this.
................
  r13127 | kohsuke | 2008-11-10 14:51:53 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved the error diagnostics by displaying why a provisioned node failed to launch
................
  r13128 | kohsuke | 2008-11-10 14:52:12 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Started a test case for NodeProvisioner
................
  r13129 | kohsuke | 2008-11-10 14:52:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13130 | kohsuke | 2008-11-10 15:16:02 -0800 (Mon, 10 Nov 2008) | 1 line
  
  report the failure as a failure.
................
  r13131 | kohsuke | 2008-11-10 16:34:23 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding a parameter to the connect method to support joining to the pending launch activity.
................
  r13132 | kohsuke | 2008-11-10 16:38:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  making members public so that it can be accessed from other classes (DummyCloudImpl was the first to do this)
................
  r13133 | kohsuke | 2008-11-10 16:38:58 -0800 (Mon, 10 Nov 2008) | 1 line
  
  split the cloud implementation to a separate class to allow reuse.
................
  r13134 | kohsuke | 2008-11-10 16:56:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  assign unique names to support multiple jobs
................
  r13135 | kohsuke | 2008-11-10 17:11:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  avoid unnecessary interruption
................
  r13136 | kohsuke | 2008-11-10 17:11:41 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13137 | kohsuke | 2008-11-10 17:16:28 -0800 (Mon, 10 Nov 2008) | 1 line
  
  cleaned up a test case
................
  r13138 | kohsuke | 2008-11-10 17:36:52 -0800 (Mon, 10 Nov 2008) | 1 line
  
  since the setNode method is called on every Computer just by adding a new node, don't force a new launch attempt.
................
  r13139 | kohsuke | 2008-11-10 17:37:38 -0800 (Mon, 10 Nov 2008) | 1 line
  
  perform orderly shutdown by giving computers enough time to disconnect.
................
  r13140 | kohsuke | 2008-11-10 17:38:08 -0800 (Mon, 10 Nov 2008) | 3 lines
  
  return Future for synchronization.
  
  This breaks binary compatibility, but I checked none of the plugins in Hudson SVN uses this, so I hope this is OK.
................
  r13141 | kohsuke | 2008-11-10 17:38:46 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved diagnostics
................
  r13142 | kohsuke | 2008-11-10 17:39:55 -0800 (Mon, 10 Nov 2008) | 1 line
  
  removed compiler warning
................
  r13143 | kohsuke | 2008-11-10 18:02:56 -0800 (Mon, 10 Nov 2008) | 1 line
  
  hide the rounding related problem from Cloud by passing int instead of float.
................
  r13144 | kohsuke | 2008-11-10 18:10:10 -0800 (Mon, 10 Nov 2008) | 1 line
  
  bug fix
................
  r13145 | kohsuke | 2008-11-10 18:11:51 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13146 | kohsuke | 2008-11-10 18:15:08 -0800 (Mon, 10 Nov 2008) | 1 line
  
  moved the slave launch code to HudsonTestCase for reuse
................
  r13147 | kohsuke | 2008-11-10 18:20:19 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13150 | kohsuke | 2008-11-11 07:28:53 -0800 (Tue, 11 Nov 2008) | 1 line
  
  bug fix
................
  r13153 | kohsuke | 2008-11-11 14:04:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  cutting down the test size to 5 to increase the test speed
................
  r13154 | kohsuke | 2008-11-11 14:04:37 -0800 (Tue, 11 Nov 2008) | 1 line
  
  improved debuggability
................
  r13155 | kohsuke | 2008-11-11 14:10:04 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added another convenience method
................
  r13156 | kohsuke | 2008-11-11 14:10:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  further reduce the test turn around time
................
  r13157 | kohsuke | 2008-11-11 14:22:03 -0800 (Tue, 11 Nov 2008) | 1 line
  
  doc improvement and clean up
................
  r13158 | kohsuke | 2008-11-11 14:22:28 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added a new metho
................
  r13487 | kohsuke | 2008-12-09 17:17:30 -0800 (Tue, 09 Dec 2008) | 1 line
  
  SlaveTemplate needs to be able to computer # of executors.
................
  r13488 | kohsuke | 2008-12-09 17:18:05 -0800 (Tue, 09 Dec 2008) | 1 line
  
  fixed a compilation problem with the latest head of the branch
................
  r13851 | kohsuke | 2008-12-24 13:40:43 -0800 (Wed, 24 Dec 2008) | 82 lines
  
  fixed a dead lock reported by Jesse.
  
  Found one Java-level deadlock:
  =============================
  "Executor #0 for master":
     waiting to lock monitor 0x09409bac (object 0x87474ca0, a hudson.util.CopyOnWriteMap$Hash),
     which is held by "main"
  "main":
     waiting to lock monitor 0x09409b48 (object 0x87474d48, a hudson.model.Hudson$MasterComputer),
     which is held by "Executor #0 for master"
  
  Java stack information for the threads listed above:
  ===================================================
  "Executor #0 for master":
  	at hudson.util.CopyOnWriteMap.remove(CopyOnWriteMap.java:78)
  	- waiting to lock <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.removeComputer(Hudson.java:717)
  	at hudson.model.Computer.removeExecutor(Computer.java:433)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Executor.run(Executor.java:65)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  "main":
  	at hudson.model.Computer.setNumExecutors(Computer.java:338)
  	- waiting to lock <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Computer.setNode(Computer.java:327)
  	at hudson.model.Hudson.updateComputer(Hudson.java:704)
  	at hudson.model.Hudson.updateComputerList(Hudson.java:685)
  	- locked <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.setNodes(Hudson.java:1076)
  	at hudson.model.Hudson.addNode(Hudson.java:1060)
  	- locked <0x87474cb0> (a hudson.model.Hudson)
  	at org.jvnet.hudson.test.HudsonTestCase.createSlave(HudsonTestCase.java:247)
  	at hudson.slaves.NodeProvisionerTest.testBaselineSlaveUsage(NodeProvisionerTest.java:86)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at junit.framework.TestCase.runTest(TestCase.java:154)
  	at org.jvnet.hudson.test.HudsonTestCase.runTest(HudsonTestCase.java:151)
  	at junit.framework.TestCase.runBare(TestCase.java:127)
  	at junit.framework.TestResult$1.protect(TestResult.java:106)
  	at junit.framework.TestResult.runProtected(TestResult.java:124)
  	at junit.framework.TestResult.run(TestResult.java:109)
  	at junit.framework.TestCase.run(TestCase.java:118)
  	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  	at junit.framework.TestSuite.run(TestSuite.java:203)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
  	at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:241)
  	at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:537)
  	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
  	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
  	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
  	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  
  Found 1 deadlock.
................
  r13852 | kohsuke | 2008-12-24 14:32:29 -0800 (Wed, 24 Dec 2008) | 1 line
  
  bug fix in the test case.
................
  r13854 | kohsuke | 2008-12-24 15:20:22 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  Using a new version of Rhino to get a proper exception chaining.
................
  r13855 | kohsuke | 2008-12-24 15:22:13 -0800 (Wed, 24 Dec 2008) | 1 line
  
  typo
................
  r13856 | kohsuke | 2008-12-24 15:37:56 -0800 (Wed, 24 Dec 2008) | 1 line
  
  CR shouldn't be in the repository
................
  r13859 | kohsuke | 2008-12-24 15:50:32 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Fixed svn:eol-style.
................
  r13866 | kohsuke | 2008-12-24 21:26:43 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Copying rev.13860 to retry a merge that now looks suspicious.
................
  r13869 | kohsuke | 2008-12-24 22:03:46 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  The 2nd merge was successful, so adopting the successful merge as the multiple-computer-per-node branch.
................
  r13872 | kohsuke | 2008-12-25 07:28:37 -0800 (Thu, 25 Dec 2008) | 1 line
  
  fixed a test failure
................
  r13873 | kohsuke | 2008-12-25 08:16:49 -0800 (Thu, 25 Dec 2008) | 1 line
  
  expanded NodeProvisioner to work on per-label basis
................
  r13874 | kohsuke | 2008-12-25 08:27:32 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13875 | kohsuke | 2008-12-25 08:33:17 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13876 | kohsuke | 2008-12-25 08:45:03 -0800 (Thu, 25 Dec 2008) | 3 lines
  
  [HUDSON-2605] Strangely, I discovered that on some File, which is new File("./target/hudson-for-test"), file.exists()==false but file.getAbsoluteFile().exists()==true.
  
  It looks like this happens when $PWD of the process at the OS level is different from System.getProperty("user.dir")
................
  r13878 | kohsuke | 2008-12-25 15:52:45 -0800 (Thu, 25 Dec 2008) | 1 line
  
  added a marker file
................
  r13879 | kohsuke | 2008-12-25 15:53:13 -0800 (Thu, 25 Dec 2008) | 1 line
  
  use marker file to find the hudson main workspace.
................
  r13883 | kohsuke | 2008-12-26 07:50:44 -0800 (Fri, 26 Dec 2008) | 1 line
  
  avoid using a deprecated method.
................
  r13884 | kohsuke | 2008-12-26 07:50:59 -0800 (Fri, 26 Dec 2008) | 1 line
  
  adding more probes
................
  r13885 | kohsuke | 2008-12-26 08:15:42 -0800 (Fri, 26 Dec 2008) | 1 line
  
  for analyzing test failures, capturing the output is crucial.
................
  r13887 | kohsuke | 2008-12-26 11:25:12 -0800 (Fri, 26 Dec 2008) | 1 line
  
  allow sub-types to intercept mutation
................
  r13888 | kohsuke | 2008-12-26 11:26:01 -0800 (Fri, 26 Dec 2008) | 1 line
  
  clouds need to be taken into account before marking a label as pointless.
................
  r13889 | kohsuke | 2008-12-26 11:26:40 -0800 (Fri, 26 Dec 2008) | 3 lines
  
  fixing bugs in NodeProvisioner.
  
  Conservative estimate on idle executors have to be max, not min.
................
  r13890 | kohsuke | 2008-12-26 11:42:53 -0800 (Fri, 26 Dec 2008) | 1 line
  
  turns out the problem was that we were adding multiple slaves under the same name, which confused Hudson to no end.
................
  r13896 | kohsuke | 2008-12-27 07:44:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  formatting changes
................
  r13897 | kohsuke | 2008-12-27 07:45:00 -0800 (Sat, 27 Dec 2008) | 1 line
  
  reprot the test name to stdout so that one can easily distinguish different tests in target/surefire-reports/xyz-output.txt
................
  r13898 | kohsuke | 2008-12-27 07:54:53 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13899 | kohsuke | 2008-12-27 09:59:07 -0800 (Sat, 27 Dec 2008) | 1 line
  
  split the functionality into two classes
................
  r13900 | kohsuke | 2008-12-27 10:00:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13901 | kohsuke | 2008-12-27 10:06:24 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added 'tick'
................
  r13902 | kohsuke | 2008-12-27 10:08:04 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding graph rendering of the load statistics
................
  r13903 | kohsuke | 2008-12-27 10:19:41 -0800 (Sat, 27 Dec 2008) | 1 line
  
  improved graph layout
................
  r13904 | kohsuke | 2008-12-27 10:21:05 -0800 (Sat, 27 Dec 2008) | 1 line
  
  Picker -> TimeScale to better reflect what it is.
................
  r13905 | kohsuke | 2008-12-27 10:40:27 -0800 (Sat, 27 Dec 2008) | 1 line
  
  duplicate
................
  r13906 | kohsuke | 2008-12-27 14:39:36 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to a shorter name
................
  r13907 | kohsuke | 2008-12-27 15:03:25 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added icons
................
  r13908 | kohsuke | 2008-12-27 16:20:37 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to make 'loadStatistics' the URL binding.
................
  r13909 | kohsuke | 2008-12-27 16:21:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  exposing loadStatistics for Computer for better URL binding
................
  r13910 | kohsuke | 2008-12-27 16:21:16 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding UI support
................
  r13911 | kohsuke | 2008-12-27 19:31:43 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added some basic visualization
................
  r13912 | kohsuke | 2008-12-27 19:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  if there's no description, don't even show it.
................
  r13913 | kohsuke | 2008-12-27 19:39:26 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added load statistics page for the label as well.
................
  r13914 | kohsuke | 2008-12-27 19:48:55 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added one more convenience method.
................
  r13915 | kohsuke | 2008-12-27 19:54:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  refactored so that a different Dataset can be fed.
................
  r13916 | kohsuke | 2008-12-27 19:59:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added global load statistics lnk to the management screen.
................
  r13917 | kohsuke | 2008-12-27 20:31:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  <dt>s should use the bold font to distinguish them from <dd>s
................
  r13918 | kohsuke | 2008-12-27 20:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
  r13919 | kohsuke | 2008-12-27 20:35:39 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@14215 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-01-07 09:02:56 +08:00
										 |  |  |         if(filter(src)) | 
					
						
							|  |  |  |             return src; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return null; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Traverses a form in the reverse document order and finds an INPUT element that matches the given name. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function findPreviousFormItem(src,name) { | 
					
						
							|  |  |  |     var name2 = "_."+name; // handles <textbox field="..." /> notation silently
 | 
					
						
							| 
									
										
										
										
											2009-05-09 05:12:44 +08:00
										 |  |  |     return findPrevious(src,function(e){ return (e.tagName=="INPUT" || e.tagName=="TEXTAREA") && (e.name==name || e.name==name2); }); | 
					
						
							| 
									
										
											  
											
												Merged revisions 11754-11755,11763-11766,11770,11773-11777,11791-11797,11828-11829,11831-11839,11841-11843,11850,11854,11994,12774,12778-12793,12820-12822,12831-12841,12854-12855,12860-12882,12896-12905,12914-12920,12938-12941,12950,13045-13046,13048,13063-13064,13066,13072-13076,13111,13122-13147,13150,13153-13158,13487-13488,13851-13852,13854-13856,13859,13866-13867,13869,13872-13876,13878-13879,13883-13885,13887-13890,13896-13919 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/multiple-computer-per-node
................
  r11754 | kohsuke | 2008-08-25 17:59:14 -0700 (Mon, 25 Aug 2008) | 3 lines
  
  Adding EphemeralNode for non-persisted dynamically-allocated expandable/shrinkable slave pool.
  
  Tweaked the serialization of Hudson.slaves accordingly.
................
  r11755 | kohsuke | 2008-08-25 18:10:42 -0700 (Mon, 25 Aug 2008) | 1 line
  
  making a small improvements
................
  r11763 | kohsuke | 2008-08-26 13:57:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding more convenience methods
................
  r11764 | kohsuke | 2008-08-26 14:24:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  ported mask capability from the TFS plugin to the core.
................
  r11765 | kohsuke | 2008-08-26 14:26:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  making it non-final to allow for subclassing
................
  r11766 | kohsuke | 2008-08-26 14:35:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  test case for NodeList
................
  r11770 | kohsuke | 2008-08-26 15:15:21 -0700 (Tue, 26 Aug 2008) | 3 lines
  
  Wrote a simple tool that monitors a file system change (in a poor way) and triggers a build.
................
  r11773 | kohsuke | 2008-08-26 17:20:30 -0700 (Tue, 26 Aug 2008) | 1 line
  
  made more structured
................
  r11774 | kohsuke | 2008-08-26 17:47:41 -0700 (Tue, 26 Aug 2008) | 1 line
  
  indentation fix
................
  r11775 | kohsuke | 2008-08-26 17:48:22 -0700 (Tue, 26 Aug 2008) | 1 line
  
  remove the use of a deprecated feature.
................
  r11776 | kohsuke | 2008-08-26 17:51:54 -0700 (Tue, 26 Aug 2008) | 1 line
  
  renamed to 'ALL' to be consistent with recent use of DescriptorList
................
  r11777 | kohsuke | 2008-08-26 18:04:17 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding NodeFactory list and its configuration mechanism
................
  r11791 | kohsuke | 2008-08-27 09:43:38 -0700 (Wed, 27 Aug 2008) | 1 line
  
  picked up the latest jelly with Iterable support in <j:forEach>
................
  r11792 | kohsuke | 2008-08-27 09:44:08 -0700 (Wed, 27 Aug 2008) | 1 line
  
  Iterable support added in  commons-jelly 1.1-hudson-20080826
................
  r11793 | kohsuke | 2008-08-27 10:15:14 -0700 (Wed, 27 Aug 2008) | 2 lines
  
  - added name to NodeFactory for binding NodeFactory to URL tree.
  - NodeFactory should be access controlled
................
  r11794 | kohsuke | 2008-08-27 10:41:11 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added a method to add one Node at a time
................
  r11795 | kohsuke | 2008-08-27 10:41:37 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added permission constatnt
................
  r11796 | kohsuke | 2008-08-27 10:42:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  allowing the launch method to throw an exception.
................
  r11797 | kohsuke | 2008-08-27 10:44:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  improving the handling
................
  r11828 | kohsuke | 2008-08-29 11:07:16 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added executor config to the sidebar.
................
  r11829 | kohsuke | 2008-08-29 11:16:11 -0700 (Fri, 29 Aug 2008) | 1 line
  
  "it" should be assigned to NodeFactory
................
  r11831 | kohsuke | 2008-08-29 11:44:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11832 | kohsuke | 2008-08-29 11:59:21 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a script to create a flashing image from any picture
................
  r11833 | kohsuke | 2008-08-29 12:07:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11834 | kohsuke | 2008-08-29 13:37:59 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added new images to indicate that a slave is launching
................
  r11835 | kohsuke | 2008-08-29 13:43:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  indicate a launching slave accordingly.
................
  r11836 | kohsuke | 2008-08-29 14:02:28 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a method to remove a Node.
................
  r11837 | kohsuke | 2008-08-29 14:02:38 -0700 (Fri, 29 Aug 2008) | 1 line
  
  disconnect
................
  r11838 | kohsuke | 2008-08-29 14:03:22 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11839 | kohsuke | 2008-08-29 14:14:04 -0700 (Fri, 29 Aug 2008) | 1 line
  
  allowing subclasses.
................
  r11841 | kohsuke | 2008-08-29 14:28:29 -0700 (Fri, 29 Aug 2008) | 1 line
  
  constructor should be the first in the definition.
................
  r11842 | kohsuke | 2008-08-29 14:31:01 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11843 | kohsuke | 2008-08-29 14:32:48 -0700 (Fri, 29 Aug 2008) | 1 line
  
  fixed a problem of using partially constructed object during launch(), because the setNode() method is called from the Computer constructor.
................
  r11850 | kohsuke | 2008-08-29 14:50:36 -0700 (Fri, 29 Aug 2008) | 1 line
  
  serialize NodeFactory first so that references to them from NodeList will become references in XML.
................
  r11854 | kohsuke | 2008-08-29 14:56:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  cleaning up a bit.
................
  r11994 | kohsuke | 2008-09-03 14:42:11 -0700 (Wed, 03 Sep 2008) | 21 lines
  
  Fixed ArrayIndexOutOfBoundsException during replace(), when the title contains a '$' literal.
  
  The typical stack trace looks like:
  
  Caused by: java.lang.ArrayIndexOutOfBoundsException: 32
          at hudson.MarkupText$SubText.start(MarkupText.java:95)
          at hudson.MarkupText$SubText.group(MarkupText.java:131)
          at hudson.MarkupText$SubText.replace(MarkupText.java:154)
          at hudson.MarkupText$SubText.surroundWith(MarkupText.java:83)
          at 
  hudson.plugins.jira.JiraChangeLogAnnotator.annotate(JiraChangeLogAnnotator.java:37)
          at 
  hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:117)
          ... 148 more
  
  Vijayan Jayaraman and I found this problem while we were looking at the server log of Hudson for OpenJFX.
  
  Adding a unit test to verify this behavior, too.  
................
  r12774 | kohsuke | 2008-10-27 15:03:36 -0700 (Mon, 27 Oct 2008) | 3 lines
  
  preparing for heterogenousness in Node, so that different Node can be configured with different UIs, much like how different Jobs can be configured.
  
  Creating a slave works also like creating a new job.
................
  r12778 | kohsuke | 2008-10-27 15:06:51 -0700 (Mon, 27 Oct 2008) | 1 line
  
  We need to be able to create an emtpy Slave initially, so we have to do with the check in the form field validation.
................
  r12779 | kohsuke | 2008-10-27 15:48:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the new slave page a two-step process
................
  r12780 | kohsuke | 2008-10-27 15:48:24 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a compilation problem
................
  r12781 | kohsuke | 2008-10-27 15:53:30 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12782 | kohsuke | 2008-10-27 15:58:20 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12783 | kohsuke | 2008-10-27 16:08:56 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the configuration page work for slaves
................
  r12784 | kohsuke | 2008-10-27 16:35:17 -0700 (Mon, 27 Oct 2008) | 1 line
  
  added new-computer.svg
................
  r12785 | kohsuke | 2008-10-27 16:37:26 -0700 (Mon, 27 Oct 2008) | 1 line
  
  hooking up the config/create pages to the UI
................
  r12786 | kohsuke | 2008-10-27 16:44:40 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a copy method.
................
  r12787 | kohsuke | 2008-10-27 16:47:33 -0700 (Mon, 27 Oct 2008) | 1 line
  
  code was broken when a slave was renamed
................
  r12788 | kohsuke | 2008-10-27 16:58:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  moving out the commonality into a new tag
................
  r12789 | kohsuke | 2008-10-27 17:01:21 -0700 (Mon, 27 Oct 2008) | 1 line
  
  consistent term usage
................
  r12790 | kohsuke | 2008-10-27 17:03:19 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retiring the configureExecutors. Slave configuration is now moved to individual slave page
................
  r12791 | kohsuke | 2008-10-27 17:10:32 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retired configureExecutors.jelly and completed moved its contents to somewhere else
................
  r12792 | kohsuke | 2008-10-27 17:21:53 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fix. request handling of "/descriptor/FQCN/..." was broken.
................
  r12793 | kohsuke | 2008-10-27 17:27:08 -0700 (Mon, 27 Oct 2008) | 1 line
  
  NodeFactory -> Cloud to encourage consistent term usage between the code and the UI.
................
  r12820 | kohsuke | 2008-10-29 10:58:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  formatting fix
................
  r12821 | kohsuke | 2008-10-29 11:17:49 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added classes for handling a secret and prevent accidental exposure of a secret in the persisted form
................
  r12822 | kohsuke | 2008-10-29 11:32:39 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added a base64 validator
................
  r12831 | kohsuke | 2008-10-29 15:58:45 -0700 (Wed, 29 Oct 2008) | 1 line
  
  secret key needs to be persisted outside config.xml (and it is, already!)
................
  r12832 | kohsuke | 2008-10-29 16:06:28 -0700 (Wed, 29 Oct 2008) | 1 line
  
  started working on Amazon EC2 plugin
................
  r12833 | kohsuke | 2008-10-29 16:09:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  brought the same enhancement as in <textbox />
................
  r12834 | kohsuke | 2008-10-29 16:15:05 -0700 (Wed, 29 Oct 2008) | 1 line
  
  copy over the onclick handler from the original button element
................
  r12835 | kohsuke | 2008-10-29 17:01:04 -0700 (Wed, 29 Oct 2008) | 1 line
  
  allow OK messages to be sent with some mark up.
................
  r12836 | kohsuke | 2008-10-29 17:06:52 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added connection testing. This pattern needs to be generalized since it happens often
................
  r12837 | kohsuke | 2008-10-29 17:13:11 -0700 (Wed, 29 Oct 2008) | 1 line
  
  this is little better
................
  r12838 | kohsuke | 2008-10-29 17:17:44 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added spinner
................
  r12839 | kohsuke | 2008-10-29 17:31:54 -0700 (Wed, 29 Oct 2008) | 1 line
  
  restructuring the validation button support in a form that can be readily moved to the core.
................
  r12840 | kohsuke | 2008-10-29 18:01:41 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added <f:validateButton/> for multi-field server-side validation
................
  r12841 | kohsuke | 2008-10-29 18:03:12 -0700 (Wed, 29 Oct 2008) | 1 line
  
  logic moved to <f:validateButton/> in the core.
................
  r12854 | kohsuke | 2008-10-30 13:32:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  @QueryParameter.value won't be necessary any more
................
  r12855 | kohsuke | 2008-10-30 13:42:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  need a strongly-typed constructor.
................
  r12860 | kohsuke | 2008-10-30 15:24:18 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding more reflection support, which in turn we use in taglibs to raise the level of abstraction.
................
  r12861 | kohsuke | 2008-10-30 15:33:22 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added a tag to create databinding to a<select> element from an enum property
................
  r12862 | kohsuke | 2008-10-30 15:37:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding a smarter bi-directional binding through <f:repeatable field="..."/>
................
  r12863 | kohsuke | 2008-10-30 15:47:48 -0700 (Thu, 30 Oct 2008) | 1 line
  
  making progress with the EC2 support
................
  r12864 | kohsuke | 2008-10-30 16:12:34 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added form field validation for AMI ID
................
  r12865 | kohsuke | 2008-10-30 16:15:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added simpler version
................
  r12866 | kohsuke | 2008-10-30 16:17:15 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12867 | kohsuke | 2008-10-30 16:17:19 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12868 | kohsuke | 2008-10-30 16:40:25 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12869 | kohsuke | 2008-10-30 17:00:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding the provisioning of the new slave
................
  r12870 | kohsuke | 2008-10-30 17:07:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  /** {@inheritDoc} */ is the default behavior for javadoc, so there's no point in making that explicit.
................
  r12871 | kohsuke | 2008-10-30 17:11:04 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc bug fix
................
  r12872 | kohsuke | 2008-10-30 17:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12873 | kohsuke | 2008-10-30 17:19:06 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added RetentionStrategy for EC2 instances
................
  r12874 | kohsuke | 2008-10-30 17:21:17 -0700 (Thu, 30 Oct 2008) | 1 line
  
  allowing subclasses to override the disconnect behavior.
................
  r12875 | kohsuke | 2008-10-30 18:02:35 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added termination
................
  r12876 | kohsuke | 2008-10-30 18:05:30 -0700 (Thu, 30 Oct 2008) | 1 line
  
  forgot to rename when NodeFactory was renamed to Cloud
................
  r12877 | kohsuke | 2008-10-30 18:06:08 -0700 (Thu, 30 Oct 2008) | 1 line
  
  using the console icon
................
  r12878 | kohsuke | 2008-10-30 18:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding UI to remove a slave.
................
  r12879 | kohsuke | 2008-10-30 18:48:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  commons-discovery now needed in stapler
................
  r12880 | kohsuke | 2008-10-30 18:50:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  needs to use a newer version of stapler
................
  r12881 | kohsuke | 2008-10-30 18:51:02 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12882 | kohsuke | 2008-10-30 18:51:43 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12896 | kohsuke | 2008-10-31 14:52:07 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed the ordering between field and the mighty get(String) method.
................
  r12897 | kohsuke | 2008-10-31 15:08:41 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed test compilation problems
................
  r12898 | kohsuke | 2008-10-31 15:11:25 -0700 (Fri, 31 Oct 2008) | 1 line
  
  marking this as a model object since it's always bound to URL.
................
  r12899 | kohsuke | 2008-10-31 15:13:42 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up to manually provision a new node
................
  r12900 | kohsuke | 2008-10-31 15:14:00 -0700 (Fri, 31 Oct 2008) | 1 line
  
  after merging the trunk the version number is different
................
  r12901 | kohsuke | 2008-10-31 15:21:54 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up for provisioning a new slave
................
  r12902 | kohsuke | 2008-10-31 15:45:10 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding a hook to decorate ComputerLauncher.
................
  r12903 | kohsuke | 2008-10-31 15:48:21 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added filtering support
................
  r12904 | kohsuke | 2008-10-31 15:52:45 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added view
................
  r12905 | kohsuke | 2008-10-31 15:53:49 -0700 (Fri, 31 Oct 2008) | 1 line
  
  doc improvement
................
  r12914 | kohsuke | 2008-11-01 17:45:57 -0700 (Sat, 01 Nov 2008) | 1 line
  
  adding code for connecting with SSH
................
  r12915 | kohsuke | 2008-11-01 17:49:28 -0700 (Sat, 01 Nov 2008) | 1 line
  
  working on launchers
................
  r12916 | kohsuke | 2008-11-01 18:33:12 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a method to fully read a stream
................
  r12917 | kohsuke | 2008-11-01 18:33:45 -0700 (Sat, 01 Nov 2008) | 1 line
  
  bumped up stapler
................
  r12918 | kohsuke | 2008-11-01 18:39:41 -0700 (Sat, 01 Nov 2008) | 1 line
  
  doc improvement.
................
  r12919 | kohsuke | 2008-11-01 18:45:24 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a launcher
................
  r12920 | kohsuke | 2008-11-01 18:55:02 -0700 (Sat, 01 Nov 2008) | 1 line
  
  implementing the actual ComputerLauncher
................
  r12938 | kohsuke | 2008-11-02 08:56:05 -0800 (Sun, 02 Nov 2008) | 1 line
  
  support the field notation
................
  r12939 | kohsuke | 2008-11-02 09:20:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  added the mechanism to execute the init script
................
  r12940 | kohsuke | 2008-11-02 09:21:38 -0800 (Sun, 02 Nov 2008) | 1 line
  
  simplification
................
  r12941 | kohsuke | 2008-11-02 09:36:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  adding key handling
................
  r12950 | kohsuke | 2008-11-03 11:00:58 -0800 (Mon, 03 Nov 2008) | 1 line
  
  formatting changes
................
  r13045 | kohsuke | 2008-11-06 15:24:32 -0800 (Thu, 06 Nov 2008) | 1 line
  
  adding time series datatype for retaining load average statistics in memory
................
  r13046 | kohsuke | 2008-11-06 15:59:02 -0800 (Thu, 06 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13048 | kohsuke | 2008-11-06 16:21:54 -0800 (Thu, 06 Nov 2008) | 2 lines
  
  - started monitoring # of executor statistics.
  - exposed label to the remote API
................
  r13063 | kohsuke | 2008-11-07 13:05:15 -0800 (Fri, 07 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13064 | kohsuke | 2008-11-07 13:11:08 -0800 (Fri, 07 Nov 2008) | 1 line
  
  monitor the length of the queue too
................
  r13066 | kohsuke | 2008-11-07 14:15:56 -0800 (Fri, 07 Nov 2008) | 1 line
  
  moved the stats to its own class.
................
  r13072 | kohsuke | 2008-11-07 15:40:29 -0800 (Fri, 07 Nov 2008) | 1 line
  
  adding provisioning logic based on load statistics
................
  r13073 | kohsuke | 2008-11-07 15:46:00 -0800 (Fri, 07 Nov 2008) | 1 line
  
  for effective testing, we need sub-sec precision
................
  r13074 | kohsuke | 2008-11-07 16:24:44 -0800 (Fri, 07 Nov 2008) | 1 line
  
  fixed a lie.
................
  r13075 | kohsuke | 2008-11-07 16:25:12 -0800 (Fri, 07 Nov 2008) | 1 line
  
  bug fix
................
  r13076 | kohsuke | 2008-11-07 16:30:55 -0800 (Fri, 07 Nov 2008) | 1 line
  
  avoid using deprecated methods
................
  r13111 | kohsuke | 2008-11-09 11:54:23 -0800 (Sun, 09 Nov 2008) | 1 line
  
  added the Future<?> return parameter to Computer.launch(). To do this w/o breaking compatibility, renamed launch to connect.
................
  r13122 | kohsuke | 2008-11-10 14:38:03 -0800 (Mon, 10 Nov 2008) | 1 line
  
  allow programmatic update of the assigned label
................
  r13123 | kohsuke | 2008-11-10 14:38:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Iterator not needed because CopyOnWriteArrayList doesn't support removal via iterator.
................
  r13124 | kohsuke | 2008-11-10 14:39:24 -0800 (Mon, 10 Nov 2008) | 1 line
  
  added another Builder for tests
................
  r13125 | kohsuke | 2008-11-10 14:39:48 -0800 (Mon, 10 Nov 2008) | 1 line
  
  simplified a bit. This TestEnvironment stuff needs some clearer story.
................
  r13126 | kohsuke | 2008-11-10 14:46:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  IDEA complains about this.
................
  r13127 | kohsuke | 2008-11-10 14:51:53 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved the error diagnostics by displaying why a provisioned node failed to launch
................
  r13128 | kohsuke | 2008-11-10 14:52:12 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Started a test case for NodeProvisioner
................
  r13129 | kohsuke | 2008-11-10 14:52:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13130 | kohsuke | 2008-11-10 15:16:02 -0800 (Mon, 10 Nov 2008) | 1 line
  
  report the failure as a failure.
................
  r13131 | kohsuke | 2008-11-10 16:34:23 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding a parameter to the connect method to support joining to the pending launch activity.
................
  r13132 | kohsuke | 2008-11-10 16:38:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  making members public so that it can be accessed from other classes (DummyCloudImpl was the first to do this)
................
  r13133 | kohsuke | 2008-11-10 16:38:58 -0800 (Mon, 10 Nov 2008) | 1 line
  
  split the cloud implementation to a separate class to allow reuse.
................
  r13134 | kohsuke | 2008-11-10 16:56:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  assign unique names to support multiple jobs
................
  r13135 | kohsuke | 2008-11-10 17:11:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  avoid unnecessary interruption
................
  r13136 | kohsuke | 2008-11-10 17:11:41 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13137 | kohsuke | 2008-11-10 17:16:28 -0800 (Mon, 10 Nov 2008) | 1 line
  
  cleaned up a test case
................
  r13138 | kohsuke | 2008-11-10 17:36:52 -0800 (Mon, 10 Nov 2008) | 1 line
  
  since the setNode method is called on every Computer just by adding a new node, don't force a new launch attempt.
................
  r13139 | kohsuke | 2008-11-10 17:37:38 -0800 (Mon, 10 Nov 2008) | 1 line
  
  perform orderly shutdown by giving computers enough time to disconnect.
................
  r13140 | kohsuke | 2008-11-10 17:38:08 -0800 (Mon, 10 Nov 2008) | 3 lines
  
  return Future for synchronization.
  
  This breaks binary compatibility, but I checked none of the plugins in Hudson SVN uses this, so I hope this is OK.
................
  r13141 | kohsuke | 2008-11-10 17:38:46 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved diagnostics
................
  r13142 | kohsuke | 2008-11-10 17:39:55 -0800 (Mon, 10 Nov 2008) | 1 line
  
  removed compiler warning
................
  r13143 | kohsuke | 2008-11-10 18:02:56 -0800 (Mon, 10 Nov 2008) | 1 line
  
  hide the rounding related problem from Cloud by passing int instead of float.
................
  r13144 | kohsuke | 2008-11-10 18:10:10 -0800 (Mon, 10 Nov 2008) | 1 line
  
  bug fix
................
  r13145 | kohsuke | 2008-11-10 18:11:51 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13146 | kohsuke | 2008-11-10 18:15:08 -0800 (Mon, 10 Nov 2008) | 1 line
  
  moved the slave launch code to HudsonTestCase for reuse
................
  r13147 | kohsuke | 2008-11-10 18:20:19 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13150 | kohsuke | 2008-11-11 07:28:53 -0800 (Tue, 11 Nov 2008) | 1 line
  
  bug fix
................
  r13153 | kohsuke | 2008-11-11 14:04:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  cutting down the test size to 5 to increase the test speed
................
  r13154 | kohsuke | 2008-11-11 14:04:37 -0800 (Tue, 11 Nov 2008) | 1 line
  
  improved debuggability
................
  r13155 | kohsuke | 2008-11-11 14:10:04 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added another convenience method
................
  r13156 | kohsuke | 2008-11-11 14:10:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  further reduce the test turn around time
................
  r13157 | kohsuke | 2008-11-11 14:22:03 -0800 (Tue, 11 Nov 2008) | 1 line
  
  doc improvement and clean up
................
  r13158 | kohsuke | 2008-11-11 14:22:28 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added a new metho
................
  r13487 | kohsuke | 2008-12-09 17:17:30 -0800 (Tue, 09 Dec 2008) | 1 line
  
  SlaveTemplate needs to be able to computer # of executors.
................
  r13488 | kohsuke | 2008-12-09 17:18:05 -0800 (Tue, 09 Dec 2008) | 1 line
  
  fixed a compilation problem with the latest head of the branch
................
  r13851 | kohsuke | 2008-12-24 13:40:43 -0800 (Wed, 24 Dec 2008) | 82 lines
  
  fixed a dead lock reported by Jesse.
  
  Found one Java-level deadlock:
  =============================
  "Executor #0 for master":
     waiting to lock monitor 0x09409bac (object 0x87474ca0, a hudson.util.CopyOnWriteMap$Hash),
     which is held by "main"
  "main":
     waiting to lock monitor 0x09409b48 (object 0x87474d48, a hudson.model.Hudson$MasterComputer),
     which is held by "Executor #0 for master"
  
  Java stack information for the threads listed above:
  ===================================================
  "Executor #0 for master":
  	at hudson.util.CopyOnWriteMap.remove(CopyOnWriteMap.java:78)
  	- waiting to lock <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.removeComputer(Hudson.java:717)
  	at hudson.model.Computer.removeExecutor(Computer.java:433)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Executor.run(Executor.java:65)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  "main":
  	at hudson.model.Computer.setNumExecutors(Computer.java:338)
  	- waiting to lock <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Computer.setNode(Computer.java:327)
  	at hudson.model.Hudson.updateComputer(Hudson.java:704)
  	at hudson.model.Hudson.updateComputerList(Hudson.java:685)
  	- locked <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.setNodes(Hudson.java:1076)
  	at hudson.model.Hudson.addNode(Hudson.java:1060)
  	- locked <0x87474cb0> (a hudson.model.Hudson)
  	at org.jvnet.hudson.test.HudsonTestCase.createSlave(HudsonTestCase.java:247)
  	at hudson.slaves.NodeProvisionerTest.testBaselineSlaveUsage(NodeProvisionerTest.java:86)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at junit.framework.TestCase.runTest(TestCase.java:154)
  	at org.jvnet.hudson.test.HudsonTestCase.runTest(HudsonTestCase.java:151)
  	at junit.framework.TestCase.runBare(TestCase.java:127)
  	at junit.framework.TestResult$1.protect(TestResult.java:106)
  	at junit.framework.TestResult.runProtected(TestResult.java:124)
  	at junit.framework.TestResult.run(TestResult.java:109)
  	at junit.framework.TestCase.run(TestCase.java:118)
  	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  	at junit.framework.TestSuite.run(TestSuite.java:203)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
  	at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:241)
  	at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:537)
  	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
  	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
  	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
  	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  
  Found 1 deadlock.
................
  r13852 | kohsuke | 2008-12-24 14:32:29 -0800 (Wed, 24 Dec 2008) | 1 line
  
  bug fix in the test case.
................
  r13854 | kohsuke | 2008-12-24 15:20:22 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  Using a new version of Rhino to get a proper exception chaining.
................
  r13855 | kohsuke | 2008-12-24 15:22:13 -0800 (Wed, 24 Dec 2008) | 1 line
  
  typo
................
  r13856 | kohsuke | 2008-12-24 15:37:56 -0800 (Wed, 24 Dec 2008) | 1 line
  
  CR shouldn't be in the repository
................
  r13859 | kohsuke | 2008-12-24 15:50:32 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Fixed svn:eol-style.
................
  r13866 | kohsuke | 2008-12-24 21:26:43 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Copying rev.13860 to retry a merge that now looks suspicious.
................
  r13869 | kohsuke | 2008-12-24 22:03:46 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  The 2nd merge was successful, so adopting the successful merge as the multiple-computer-per-node branch.
................
  r13872 | kohsuke | 2008-12-25 07:28:37 -0800 (Thu, 25 Dec 2008) | 1 line
  
  fixed a test failure
................
  r13873 | kohsuke | 2008-12-25 08:16:49 -0800 (Thu, 25 Dec 2008) | 1 line
  
  expanded NodeProvisioner to work on per-label basis
................
  r13874 | kohsuke | 2008-12-25 08:27:32 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13875 | kohsuke | 2008-12-25 08:33:17 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13876 | kohsuke | 2008-12-25 08:45:03 -0800 (Thu, 25 Dec 2008) | 3 lines
  
  [HUDSON-2605] Strangely, I discovered that on some File, which is new File("./target/hudson-for-test"), file.exists()==false but file.getAbsoluteFile().exists()==true.
  
  It looks like this happens when $PWD of the process at the OS level is different from System.getProperty("user.dir")
................
  r13878 | kohsuke | 2008-12-25 15:52:45 -0800 (Thu, 25 Dec 2008) | 1 line
  
  added a marker file
................
  r13879 | kohsuke | 2008-12-25 15:53:13 -0800 (Thu, 25 Dec 2008) | 1 line
  
  use marker file to find the hudson main workspace.
................
  r13883 | kohsuke | 2008-12-26 07:50:44 -0800 (Fri, 26 Dec 2008) | 1 line
  
  avoid using a deprecated method.
................
  r13884 | kohsuke | 2008-12-26 07:50:59 -0800 (Fri, 26 Dec 2008) | 1 line
  
  adding more probes
................
  r13885 | kohsuke | 2008-12-26 08:15:42 -0800 (Fri, 26 Dec 2008) | 1 line
  
  for analyzing test failures, capturing the output is crucial.
................
  r13887 | kohsuke | 2008-12-26 11:25:12 -0800 (Fri, 26 Dec 2008) | 1 line
  
  allow sub-types to intercept mutation
................
  r13888 | kohsuke | 2008-12-26 11:26:01 -0800 (Fri, 26 Dec 2008) | 1 line
  
  clouds need to be taken into account before marking a label as pointless.
................
  r13889 | kohsuke | 2008-12-26 11:26:40 -0800 (Fri, 26 Dec 2008) | 3 lines
  
  fixing bugs in NodeProvisioner.
  
  Conservative estimate on idle executors have to be max, not min.
................
  r13890 | kohsuke | 2008-12-26 11:42:53 -0800 (Fri, 26 Dec 2008) | 1 line
  
  turns out the problem was that we were adding multiple slaves under the same name, which confused Hudson to no end.
................
  r13896 | kohsuke | 2008-12-27 07:44:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  formatting changes
................
  r13897 | kohsuke | 2008-12-27 07:45:00 -0800 (Sat, 27 Dec 2008) | 1 line
  
  reprot the test name to stdout so that one can easily distinguish different tests in target/surefire-reports/xyz-output.txt
................
  r13898 | kohsuke | 2008-12-27 07:54:53 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13899 | kohsuke | 2008-12-27 09:59:07 -0800 (Sat, 27 Dec 2008) | 1 line
  
  split the functionality into two classes
................
  r13900 | kohsuke | 2008-12-27 10:00:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13901 | kohsuke | 2008-12-27 10:06:24 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added 'tick'
................
  r13902 | kohsuke | 2008-12-27 10:08:04 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding graph rendering of the load statistics
................
  r13903 | kohsuke | 2008-12-27 10:19:41 -0800 (Sat, 27 Dec 2008) | 1 line
  
  improved graph layout
................
  r13904 | kohsuke | 2008-12-27 10:21:05 -0800 (Sat, 27 Dec 2008) | 1 line
  
  Picker -> TimeScale to better reflect what it is.
................
  r13905 | kohsuke | 2008-12-27 10:40:27 -0800 (Sat, 27 Dec 2008) | 1 line
  
  duplicate
................
  r13906 | kohsuke | 2008-12-27 14:39:36 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to a shorter name
................
  r13907 | kohsuke | 2008-12-27 15:03:25 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added icons
................
  r13908 | kohsuke | 2008-12-27 16:20:37 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to make 'loadStatistics' the URL binding.
................
  r13909 | kohsuke | 2008-12-27 16:21:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  exposing loadStatistics for Computer for better URL binding
................
  r13910 | kohsuke | 2008-12-27 16:21:16 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding UI support
................
  r13911 | kohsuke | 2008-12-27 19:31:43 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added some basic visualization
................
  r13912 | kohsuke | 2008-12-27 19:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  if there's no description, don't even show it.
................
  r13913 | kohsuke | 2008-12-27 19:39:26 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added load statistics page for the label as well.
................
  r13914 | kohsuke | 2008-12-27 19:48:55 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added one more convenience method.
................
  r13915 | kohsuke | 2008-12-27 19:54:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  refactored so that a different Dataset can be fed.
................
  r13916 | kohsuke | 2008-12-27 19:59:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added global load statistics lnk to the management screen.
................
  r13917 | kohsuke | 2008-12-27 20:31:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  <dt>s should use the bold font to distinguish them from <dd>s
................
  r13918 | kohsuke | 2008-12-27 20:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
  r13919 | kohsuke | 2008-12-27 20:35:39 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@14215 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-01-07 09:02:56 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-13 12:31:20 +08:00
										 |  |  | // shared tooltip object
 | 
					
						
							|  |  |  | var tooltip; | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Behavior rules
 | 
					
						
							|  |  |  | //========================================================
 | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:57 +08:00
										 |  |  | // using tag names in CSS selector makes the processing faster
 | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:13 +08:00
										 |  |  | function registerValidator(e) { | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     e.targetElement = findFollowingTR(e, "validation-error-area").firstChild.nextSibling; | 
					
						
							|  |  |  |     e.targetUrl = function() { | 
					
						
							|  |  |  |         return eval(this.getAttribute("checkUrl")); | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:13 +08:00
										 |  |  |     var method = e.getAttribute("checkMethod"); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     if (!method) method = "get"; | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     FormChecker.delayedCheck(e.targetUrl(), method, e.targetElement); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-23 09:47:07 +08:00
										 |  |  |     var checker = function() { | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |         var target = this.targetElement; | 
					
						
							|  |  |  |         FormChecker.sendRequest(this.targetUrl(), { | 
					
						
							|  |  |  |             method : method, | 
					
						
							|  |  |  |             onComplete : function(x) { | 
					
						
							|  |  |  |                 target.innerHTML = x.responseText; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:13 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-10-23 09:47:07 +08:00
										 |  |  |     var oldOnchange = e.onchange; | 
					
						
							|  |  |  |     if(typeof oldOnchange=="function") { | 
					
						
							|  |  |  |         e.onchange = function() { checker.call(this); oldOnchange.call(this); } | 
					
						
							|  |  |  |     } else | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |         e.onchange = checker; | 
					
						
							| 
									
										
										
										
											2007-10-23 09:47:07 +08:00
										 |  |  |     e.onblur = checker; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 01:58:19 +08:00
										 |  |  |     e = null; // avoid memory leak
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Wraps a <button> into YUI button. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @param e | 
					
						
							|  |  |  |  *      button element | 
					
						
							|  |  |  |  * @param onclick | 
					
						
							|  |  |  |  *      onclick handler | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function makeButton(e,onclick) { | 
					
						
							| 
									
										
											  
											
												Merged revisions 11754-11755,11763-11766,11770,11773-11777,11791-11797,11828-11829,11831-11839,11841-11843,11850,11854,11994,12774,12778-12793,12820-12822,12831-12841,12854-12855,12860-12882,12896-12905,12914-12920,12938-12941,12950,13045-13046,13048,13063-13064,13066,13072-13076,13111,13122-13147,13150,13153-13158,13487-13488,13851-13852,13854-13856,13859,13866-13867,13869,13872-13876,13878-13879,13883-13885,13887-13890,13896-13919 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/multiple-computer-per-node
................
  r11754 | kohsuke | 2008-08-25 17:59:14 -0700 (Mon, 25 Aug 2008) | 3 lines
  
  Adding EphemeralNode for non-persisted dynamically-allocated expandable/shrinkable slave pool.
  
  Tweaked the serialization of Hudson.slaves accordingly.
................
  r11755 | kohsuke | 2008-08-25 18:10:42 -0700 (Mon, 25 Aug 2008) | 1 line
  
  making a small improvements
................
  r11763 | kohsuke | 2008-08-26 13:57:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding more convenience methods
................
  r11764 | kohsuke | 2008-08-26 14:24:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  ported mask capability from the TFS plugin to the core.
................
  r11765 | kohsuke | 2008-08-26 14:26:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  making it non-final to allow for subclassing
................
  r11766 | kohsuke | 2008-08-26 14:35:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  test case for NodeList
................
  r11770 | kohsuke | 2008-08-26 15:15:21 -0700 (Tue, 26 Aug 2008) | 3 lines
  
  Wrote a simple tool that monitors a file system change (in a poor way) and triggers a build.
................
  r11773 | kohsuke | 2008-08-26 17:20:30 -0700 (Tue, 26 Aug 2008) | 1 line
  
  made more structured
................
  r11774 | kohsuke | 2008-08-26 17:47:41 -0700 (Tue, 26 Aug 2008) | 1 line
  
  indentation fix
................
  r11775 | kohsuke | 2008-08-26 17:48:22 -0700 (Tue, 26 Aug 2008) | 1 line
  
  remove the use of a deprecated feature.
................
  r11776 | kohsuke | 2008-08-26 17:51:54 -0700 (Tue, 26 Aug 2008) | 1 line
  
  renamed to 'ALL' to be consistent with recent use of DescriptorList
................
  r11777 | kohsuke | 2008-08-26 18:04:17 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding NodeFactory list and its configuration mechanism
................
  r11791 | kohsuke | 2008-08-27 09:43:38 -0700 (Wed, 27 Aug 2008) | 1 line
  
  picked up the latest jelly with Iterable support in <j:forEach>
................
  r11792 | kohsuke | 2008-08-27 09:44:08 -0700 (Wed, 27 Aug 2008) | 1 line
  
  Iterable support added in  commons-jelly 1.1-hudson-20080826
................
  r11793 | kohsuke | 2008-08-27 10:15:14 -0700 (Wed, 27 Aug 2008) | 2 lines
  
  - added name to NodeFactory for binding NodeFactory to URL tree.
  - NodeFactory should be access controlled
................
  r11794 | kohsuke | 2008-08-27 10:41:11 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added a method to add one Node at a time
................
  r11795 | kohsuke | 2008-08-27 10:41:37 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added permission constatnt
................
  r11796 | kohsuke | 2008-08-27 10:42:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  allowing the launch method to throw an exception.
................
  r11797 | kohsuke | 2008-08-27 10:44:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  improving the handling
................
  r11828 | kohsuke | 2008-08-29 11:07:16 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added executor config to the sidebar.
................
  r11829 | kohsuke | 2008-08-29 11:16:11 -0700 (Fri, 29 Aug 2008) | 1 line
  
  "it" should be assigned to NodeFactory
................
  r11831 | kohsuke | 2008-08-29 11:44:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11832 | kohsuke | 2008-08-29 11:59:21 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a script to create a flashing image from any picture
................
  r11833 | kohsuke | 2008-08-29 12:07:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11834 | kohsuke | 2008-08-29 13:37:59 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added new images to indicate that a slave is launching
................
  r11835 | kohsuke | 2008-08-29 13:43:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  indicate a launching slave accordingly.
................
  r11836 | kohsuke | 2008-08-29 14:02:28 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a method to remove a Node.
................
  r11837 | kohsuke | 2008-08-29 14:02:38 -0700 (Fri, 29 Aug 2008) | 1 line
  
  disconnect
................
  r11838 | kohsuke | 2008-08-29 14:03:22 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11839 | kohsuke | 2008-08-29 14:14:04 -0700 (Fri, 29 Aug 2008) | 1 line
  
  allowing subclasses.
................
  r11841 | kohsuke | 2008-08-29 14:28:29 -0700 (Fri, 29 Aug 2008) | 1 line
  
  constructor should be the first in the definition.
................
  r11842 | kohsuke | 2008-08-29 14:31:01 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11843 | kohsuke | 2008-08-29 14:32:48 -0700 (Fri, 29 Aug 2008) | 1 line
  
  fixed a problem of using partially constructed object during launch(), because the setNode() method is called from the Computer constructor.
................
  r11850 | kohsuke | 2008-08-29 14:50:36 -0700 (Fri, 29 Aug 2008) | 1 line
  
  serialize NodeFactory first so that references to them from NodeList will become references in XML.
................
  r11854 | kohsuke | 2008-08-29 14:56:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  cleaning up a bit.
................
  r11994 | kohsuke | 2008-09-03 14:42:11 -0700 (Wed, 03 Sep 2008) | 21 lines
  
  Fixed ArrayIndexOutOfBoundsException during replace(), when the title contains a '$' literal.
  
  The typical stack trace looks like:
  
  Caused by: java.lang.ArrayIndexOutOfBoundsException: 32
          at hudson.MarkupText$SubText.start(MarkupText.java:95)
          at hudson.MarkupText$SubText.group(MarkupText.java:131)
          at hudson.MarkupText$SubText.replace(MarkupText.java:154)
          at hudson.MarkupText$SubText.surroundWith(MarkupText.java:83)
          at 
  hudson.plugins.jira.JiraChangeLogAnnotator.annotate(JiraChangeLogAnnotator.java:37)
          at 
  hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:117)
          ... 148 more
  
  Vijayan Jayaraman and I found this problem while we were looking at the server log of Hudson for OpenJFX.
  
  Adding a unit test to verify this behavior, too.  
................
  r12774 | kohsuke | 2008-10-27 15:03:36 -0700 (Mon, 27 Oct 2008) | 3 lines
  
  preparing for heterogenousness in Node, so that different Node can be configured with different UIs, much like how different Jobs can be configured.
  
  Creating a slave works also like creating a new job.
................
  r12778 | kohsuke | 2008-10-27 15:06:51 -0700 (Mon, 27 Oct 2008) | 1 line
  
  We need to be able to create an emtpy Slave initially, so we have to do with the check in the form field validation.
................
  r12779 | kohsuke | 2008-10-27 15:48:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the new slave page a two-step process
................
  r12780 | kohsuke | 2008-10-27 15:48:24 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a compilation problem
................
  r12781 | kohsuke | 2008-10-27 15:53:30 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12782 | kohsuke | 2008-10-27 15:58:20 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12783 | kohsuke | 2008-10-27 16:08:56 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the configuration page work for slaves
................
  r12784 | kohsuke | 2008-10-27 16:35:17 -0700 (Mon, 27 Oct 2008) | 1 line
  
  added new-computer.svg
................
  r12785 | kohsuke | 2008-10-27 16:37:26 -0700 (Mon, 27 Oct 2008) | 1 line
  
  hooking up the config/create pages to the UI
................
  r12786 | kohsuke | 2008-10-27 16:44:40 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a copy method.
................
  r12787 | kohsuke | 2008-10-27 16:47:33 -0700 (Mon, 27 Oct 2008) | 1 line
  
  code was broken when a slave was renamed
................
  r12788 | kohsuke | 2008-10-27 16:58:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  moving out the commonality into a new tag
................
  r12789 | kohsuke | 2008-10-27 17:01:21 -0700 (Mon, 27 Oct 2008) | 1 line
  
  consistent term usage
................
  r12790 | kohsuke | 2008-10-27 17:03:19 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retiring the configureExecutors. Slave configuration is now moved to individual slave page
................
  r12791 | kohsuke | 2008-10-27 17:10:32 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retired configureExecutors.jelly and completed moved its contents to somewhere else
................
  r12792 | kohsuke | 2008-10-27 17:21:53 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fix. request handling of "/descriptor/FQCN/..." was broken.
................
  r12793 | kohsuke | 2008-10-27 17:27:08 -0700 (Mon, 27 Oct 2008) | 1 line
  
  NodeFactory -> Cloud to encourage consistent term usage between the code and the UI.
................
  r12820 | kohsuke | 2008-10-29 10:58:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  formatting fix
................
  r12821 | kohsuke | 2008-10-29 11:17:49 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added classes for handling a secret and prevent accidental exposure of a secret in the persisted form
................
  r12822 | kohsuke | 2008-10-29 11:32:39 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added a base64 validator
................
  r12831 | kohsuke | 2008-10-29 15:58:45 -0700 (Wed, 29 Oct 2008) | 1 line
  
  secret key needs to be persisted outside config.xml (and it is, already!)
................
  r12832 | kohsuke | 2008-10-29 16:06:28 -0700 (Wed, 29 Oct 2008) | 1 line
  
  started working on Amazon EC2 plugin
................
  r12833 | kohsuke | 2008-10-29 16:09:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  brought the same enhancement as in <textbox />
................
  r12834 | kohsuke | 2008-10-29 16:15:05 -0700 (Wed, 29 Oct 2008) | 1 line
  
  copy over the onclick handler from the original button element
................
  r12835 | kohsuke | 2008-10-29 17:01:04 -0700 (Wed, 29 Oct 2008) | 1 line
  
  allow OK messages to be sent with some mark up.
................
  r12836 | kohsuke | 2008-10-29 17:06:52 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added connection testing. This pattern needs to be generalized since it happens often
................
  r12837 | kohsuke | 2008-10-29 17:13:11 -0700 (Wed, 29 Oct 2008) | 1 line
  
  this is little better
................
  r12838 | kohsuke | 2008-10-29 17:17:44 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added spinner
................
  r12839 | kohsuke | 2008-10-29 17:31:54 -0700 (Wed, 29 Oct 2008) | 1 line
  
  restructuring the validation button support in a form that can be readily moved to the core.
................
  r12840 | kohsuke | 2008-10-29 18:01:41 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added <f:validateButton/> for multi-field server-side validation
................
  r12841 | kohsuke | 2008-10-29 18:03:12 -0700 (Wed, 29 Oct 2008) | 1 line
  
  logic moved to <f:validateButton/> in the core.
................
  r12854 | kohsuke | 2008-10-30 13:32:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  @QueryParameter.value won't be necessary any more
................
  r12855 | kohsuke | 2008-10-30 13:42:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  need a strongly-typed constructor.
................
  r12860 | kohsuke | 2008-10-30 15:24:18 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding more reflection support, which in turn we use in taglibs to raise the level of abstraction.
................
  r12861 | kohsuke | 2008-10-30 15:33:22 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added a tag to create databinding to a<select> element from an enum property
................
  r12862 | kohsuke | 2008-10-30 15:37:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding a smarter bi-directional binding through <f:repeatable field="..."/>
................
  r12863 | kohsuke | 2008-10-30 15:47:48 -0700 (Thu, 30 Oct 2008) | 1 line
  
  making progress with the EC2 support
................
  r12864 | kohsuke | 2008-10-30 16:12:34 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added form field validation for AMI ID
................
  r12865 | kohsuke | 2008-10-30 16:15:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added simpler version
................
  r12866 | kohsuke | 2008-10-30 16:17:15 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12867 | kohsuke | 2008-10-30 16:17:19 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12868 | kohsuke | 2008-10-30 16:40:25 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12869 | kohsuke | 2008-10-30 17:00:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding the provisioning of the new slave
................
  r12870 | kohsuke | 2008-10-30 17:07:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  /** {@inheritDoc} */ is the default behavior for javadoc, so there's no point in making that explicit.
................
  r12871 | kohsuke | 2008-10-30 17:11:04 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc bug fix
................
  r12872 | kohsuke | 2008-10-30 17:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12873 | kohsuke | 2008-10-30 17:19:06 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added RetentionStrategy for EC2 instances
................
  r12874 | kohsuke | 2008-10-30 17:21:17 -0700 (Thu, 30 Oct 2008) | 1 line
  
  allowing subclasses to override the disconnect behavior.
................
  r12875 | kohsuke | 2008-10-30 18:02:35 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added termination
................
  r12876 | kohsuke | 2008-10-30 18:05:30 -0700 (Thu, 30 Oct 2008) | 1 line
  
  forgot to rename when NodeFactory was renamed to Cloud
................
  r12877 | kohsuke | 2008-10-30 18:06:08 -0700 (Thu, 30 Oct 2008) | 1 line
  
  using the console icon
................
  r12878 | kohsuke | 2008-10-30 18:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding UI to remove a slave.
................
  r12879 | kohsuke | 2008-10-30 18:48:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  commons-discovery now needed in stapler
................
  r12880 | kohsuke | 2008-10-30 18:50:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  needs to use a newer version of stapler
................
  r12881 | kohsuke | 2008-10-30 18:51:02 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12882 | kohsuke | 2008-10-30 18:51:43 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12896 | kohsuke | 2008-10-31 14:52:07 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed the ordering between field and the mighty get(String) method.
................
  r12897 | kohsuke | 2008-10-31 15:08:41 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed test compilation problems
................
  r12898 | kohsuke | 2008-10-31 15:11:25 -0700 (Fri, 31 Oct 2008) | 1 line
  
  marking this as a model object since it's always bound to URL.
................
  r12899 | kohsuke | 2008-10-31 15:13:42 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up to manually provision a new node
................
  r12900 | kohsuke | 2008-10-31 15:14:00 -0700 (Fri, 31 Oct 2008) | 1 line
  
  after merging the trunk the version number is different
................
  r12901 | kohsuke | 2008-10-31 15:21:54 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up for provisioning a new slave
................
  r12902 | kohsuke | 2008-10-31 15:45:10 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding a hook to decorate ComputerLauncher.
................
  r12903 | kohsuke | 2008-10-31 15:48:21 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added filtering support
................
  r12904 | kohsuke | 2008-10-31 15:52:45 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added view
................
  r12905 | kohsuke | 2008-10-31 15:53:49 -0700 (Fri, 31 Oct 2008) | 1 line
  
  doc improvement
................
  r12914 | kohsuke | 2008-11-01 17:45:57 -0700 (Sat, 01 Nov 2008) | 1 line
  
  adding code for connecting with SSH
................
  r12915 | kohsuke | 2008-11-01 17:49:28 -0700 (Sat, 01 Nov 2008) | 1 line
  
  working on launchers
................
  r12916 | kohsuke | 2008-11-01 18:33:12 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a method to fully read a stream
................
  r12917 | kohsuke | 2008-11-01 18:33:45 -0700 (Sat, 01 Nov 2008) | 1 line
  
  bumped up stapler
................
  r12918 | kohsuke | 2008-11-01 18:39:41 -0700 (Sat, 01 Nov 2008) | 1 line
  
  doc improvement.
................
  r12919 | kohsuke | 2008-11-01 18:45:24 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a launcher
................
  r12920 | kohsuke | 2008-11-01 18:55:02 -0700 (Sat, 01 Nov 2008) | 1 line
  
  implementing the actual ComputerLauncher
................
  r12938 | kohsuke | 2008-11-02 08:56:05 -0800 (Sun, 02 Nov 2008) | 1 line
  
  support the field notation
................
  r12939 | kohsuke | 2008-11-02 09:20:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  added the mechanism to execute the init script
................
  r12940 | kohsuke | 2008-11-02 09:21:38 -0800 (Sun, 02 Nov 2008) | 1 line
  
  simplification
................
  r12941 | kohsuke | 2008-11-02 09:36:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  adding key handling
................
  r12950 | kohsuke | 2008-11-03 11:00:58 -0800 (Mon, 03 Nov 2008) | 1 line
  
  formatting changes
................
  r13045 | kohsuke | 2008-11-06 15:24:32 -0800 (Thu, 06 Nov 2008) | 1 line
  
  adding time series datatype for retaining load average statistics in memory
................
  r13046 | kohsuke | 2008-11-06 15:59:02 -0800 (Thu, 06 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13048 | kohsuke | 2008-11-06 16:21:54 -0800 (Thu, 06 Nov 2008) | 2 lines
  
  - started monitoring # of executor statistics.
  - exposed label to the remote API
................
  r13063 | kohsuke | 2008-11-07 13:05:15 -0800 (Fri, 07 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13064 | kohsuke | 2008-11-07 13:11:08 -0800 (Fri, 07 Nov 2008) | 1 line
  
  monitor the length of the queue too
................
  r13066 | kohsuke | 2008-11-07 14:15:56 -0800 (Fri, 07 Nov 2008) | 1 line
  
  moved the stats to its own class.
................
  r13072 | kohsuke | 2008-11-07 15:40:29 -0800 (Fri, 07 Nov 2008) | 1 line
  
  adding provisioning logic based on load statistics
................
  r13073 | kohsuke | 2008-11-07 15:46:00 -0800 (Fri, 07 Nov 2008) | 1 line
  
  for effective testing, we need sub-sec precision
................
  r13074 | kohsuke | 2008-11-07 16:24:44 -0800 (Fri, 07 Nov 2008) | 1 line
  
  fixed a lie.
................
  r13075 | kohsuke | 2008-11-07 16:25:12 -0800 (Fri, 07 Nov 2008) | 1 line
  
  bug fix
................
  r13076 | kohsuke | 2008-11-07 16:30:55 -0800 (Fri, 07 Nov 2008) | 1 line
  
  avoid using deprecated methods
................
  r13111 | kohsuke | 2008-11-09 11:54:23 -0800 (Sun, 09 Nov 2008) | 1 line
  
  added the Future<?> return parameter to Computer.launch(). To do this w/o breaking compatibility, renamed launch to connect.
................
  r13122 | kohsuke | 2008-11-10 14:38:03 -0800 (Mon, 10 Nov 2008) | 1 line
  
  allow programmatic update of the assigned label
................
  r13123 | kohsuke | 2008-11-10 14:38:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Iterator not needed because CopyOnWriteArrayList doesn't support removal via iterator.
................
  r13124 | kohsuke | 2008-11-10 14:39:24 -0800 (Mon, 10 Nov 2008) | 1 line
  
  added another Builder for tests
................
  r13125 | kohsuke | 2008-11-10 14:39:48 -0800 (Mon, 10 Nov 2008) | 1 line
  
  simplified a bit. This TestEnvironment stuff needs some clearer story.
................
  r13126 | kohsuke | 2008-11-10 14:46:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  IDEA complains about this.
................
  r13127 | kohsuke | 2008-11-10 14:51:53 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved the error diagnostics by displaying why a provisioned node failed to launch
................
  r13128 | kohsuke | 2008-11-10 14:52:12 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Started a test case for NodeProvisioner
................
  r13129 | kohsuke | 2008-11-10 14:52:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13130 | kohsuke | 2008-11-10 15:16:02 -0800 (Mon, 10 Nov 2008) | 1 line
  
  report the failure as a failure.
................
  r13131 | kohsuke | 2008-11-10 16:34:23 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding a parameter to the connect method to support joining to the pending launch activity.
................
  r13132 | kohsuke | 2008-11-10 16:38:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  making members public so that it can be accessed from other classes (DummyCloudImpl was the first to do this)
................
  r13133 | kohsuke | 2008-11-10 16:38:58 -0800 (Mon, 10 Nov 2008) | 1 line
  
  split the cloud implementation to a separate class to allow reuse.
................
  r13134 | kohsuke | 2008-11-10 16:56:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  assign unique names to support multiple jobs
................
  r13135 | kohsuke | 2008-11-10 17:11:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  avoid unnecessary interruption
................
  r13136 | kohsuke | 2008-11-10 17:11:41 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13137 | kohsuke | 2008-11-10 17:16:28 -0800 (Mon, 10 Nov 2008) | 1 line
  
  cleaned up a test case
................
  r13138 | kohsuke | 2008-11-10 17:36:52 -0800 (Mon, 10 Nov 2008) | 1 line
  
  since the setNode method is called on every Computer just by adding a new node, don't force a new launch attempt.
................
  r13139 | kohsuke | 2008-11-10 17:37:38 -0800 (Mon, 10 Nov 2008) | 1 line
  
  perform orderly shutdown by giving computers enough time to disconnect.
................
  r13140 | kohsuke | 2008-11-10 17:38:08 -0800 (Mon, 10 Nov 2008) | 3 lines
  
  return Future for synchronization.
  
  This breaks binary compatibility, but I checked none of the plugins in Hudson SVN uses this, so I hope this is OK.
................
  r13141 | kohsuke | 2008-11-10 17:38:46 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved diagnostics
................
  r13142 | kohsuke | 2008-11-10 17:39:55 -0800 (Mon, 10 Nov 2008) | 1 line
  
  removed compiler warning
................
  r13143 | kohsuke | 2008-11-10 18:02:56 -0800 (Mon, 10 Nov 2008) | 1 line
  
  hide the rounding related problem from Cloud by passing int instead of float.
................
  r13144 | kohsuke | 2008-11-10 18:10:10 -0800 (Mon, 10 Nov 2008) | 1 line
  
  bug fix
................
  r13145 | kohsuke | 2008-11-10 18:11:51 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13146 | kohsuke | 2008-11-10 18:15:08 -0800 (Mon, 10 Nov 2008) | 1 line
  
  moved the slave launch code to HudsonTestCase for reuse
................
  r13147 | kohsuke | 2008-11-10 18:20:19 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13150 | kohsuke | 2008-11-11 07:28:53 -0800 (Tue, 11 Nov 2008) | 1 line
  
  bug fix
................
  r13153 | kohsuke | 2008-11-11 14:04:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  cutting down the test size to 5 to increase the test speed
................
  r13154 | kohsuke | 2008-11-11 14:04:37 -0800 (Tue, 11 Nov 2008) | 1 line
  
  improved debuggability
................
  r13155 | kohsuke | 2008-11-11 14:10:04 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added another convenience method
................
  r13156 | kohsuke | 2008-11-11 14:10:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  further reduce the test turn around time
................
  r13157 | kohsuke | 2008-11-11 14:22:03 -0800 (Tue, 11 Nov 2008) | 1 line
  
  doc improvement and clean up
................
  r13158 | kohsuke | 2008-11-11 14:22:28 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added a new metho
................
  r13487 | kohsuke | 2008-12-09 17:17:30 -0800 (Tue, 09 Dec 2008) | 1 line
  
  SlaveTemplate needs to be able to computer # of executors.
................
  r13488 | kohsuke | 2008-12-09 17:18:05 -0800 (Tue, 09 Dec 2008) | 1 line
  
  fixed a compilation problem with the latest head of the branch
................
  r13851 | kohsuke | 2008-12-24 13:40:43 -0800 (Wed, 24 Dec 2008) | 82 lines
  
  fixed a dead lock reported by Jesse.
  
  Found one Java-level deadlock:
  =============================
  "Executor #0 for master":
     waiting to lock monitor 0x09409bac (object 0x87474ca0, a hudson.util.CopyOnWriteMap$Hash),
     which is held by "main"
  "main":
     waiting to lock monitor 0x09409b48 (object 0x87474d48, a hudson.model.Hudson$MasterComputer),
     which is held by "Executor #0 for master"
  
  Java stack information for the threads listed above:
  ===================================================
  "Executor #0 for master":
  	at hudson.util.CopyOnWriteMap.remove(CopyOnWriteMap.java:78)
  	- waiting to lock <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.removeComputer(Hudson.java:717)
  	at hudson.model.Computer.removeExecutor(Computer.java:433)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Executor.run(Executor.java:65)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  "main":
  	at hudson.model.Computer.setNumExecutors(Computer.java:338)
  	- waiting to lock <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Computer.setNode(Computer.java:327)
  	at hudson.model.Hudson.updateComputer(Hudson.java:704)
  	at hudson.model.Hudson.updateComputerList(Hudson.java:685)
  	- locked <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.setNodes(Hudson.java:1076)
  	at hudson.model.Hudson.addNode(Hudson.java:1060)
  	- locked <0x87474cb0> (a hudson.model.Hudson)
  	at org.jvnet.hudson.test.HudsonTestCase.createSlave(HudsonTestCase.java:247)
  	at hudson.slaves.NodeProvisionerTest.testBaselineSlaveUsage(NodeProvisionerTest.java:86)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at junit.framework.TestCase.runTest(TestCase.java:154)
  	at org.jvnet.hudson.test.HudsonTestCase.runTest(HudsonTestCase.java:151)
  	at junit.framework.TestCase.runBare(TestCase.java:127)
  	at junit.framework.TestResult$1.protect(TestResult.java:106)
  	at junit.framework.TestResult.runProtected(TestResult.java:124)
  	at junit.framework.TestResult.run(TestResult.java:109)
  	at junit.framework.TestCase.run(TestCase.java:118)
  	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  	at junit.framework.TestSuite.run(TestSuite.java:203)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
  	at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:241)
  	at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:537)
  	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
  	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
  	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
  	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  
  Found 1 deadlock.
................
  r13852 | kohsuke | 2008-12-24 14:32:29 -0800 (Wed, 24 Dec 2008) | 1 line
  
  bug fix in the test case.
................
  r13854 | kohsuke | 2008-12-24 15:20:22 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  Using a new version of Rhino to get a proper exception chaining.
................
  r13855 | kohsuke | 2008-12-24 15:22:13 -0800 (Wed, 24 Dec 2008) | 1 line
  
  typo
................
  r13856 | kohsuke | 2008-12-24 15:37:56 -0800 (Wed, 24 Dec 2008) | 1 line
  
  CR shouldn't be in the repository
................
  r13859 | kohsuke | 2008-12-24 15:50:32 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Fixed svn:eol-style.
................
  r13866 | kohsuke | 2008-12-24 21:26:43 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Copying rev.13860 to retry a merge that now looks suspicious.
................
  r13869 | kohsuke | 2008-12-24 22:03:46 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  The 2nd merge was successful, so adopting the successful merge as the multiple-computer-per-node branch.
................
  r13872 | kohsuke | 2008-12-25 07:28:37 -0800 (Thu, 25 Dec 2008) | 1 line
  
  fixed a test failure
................
  r13873 | kohsuke | 2008-12-25 08:16:49 -0800 (Thu, 25 Dec 2008) | 1 line
  
  expanded NodeProvisioner to work on per-label basis
................
  r13874 | kohsuke | 2008-12-25 08:27:32 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13875 | kohsuke | 2008-12-25 08:33:17 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13876 | kohsuke | 2008-12-25 08:45:03 -0800 (Thu, 25 Dec 2008) | 3 lines
  
  [HUDSON-2605] Strangely, I discovered that on some File, which is new File("./target/hudson-for-test"), file.exists()==false but file.getAbsoluteFile().exists()==true.
  
  It looks like this happens when $PWD of the process at the OS level is different from System.getProperty("user.dir")
................
  r13878 | kohsuke | 2008-12-25 15:52:45 -0800 (Thu, 25 Dec 2008) | 1 line
  
  added a marker file
................
  r13879 | kohsuke | 2008-12-25 15:53:13 -0800 (Thu, 25 Dec 2008) | 1 line
  
  use marker file to find the hudson main workspace.
................
  r13883 | kohsuke | 2008-12-26 07:50:44 -0800 (Fri, 26 Dec 2008) | 1 line
  
  avoid using a deprecated method.
................
  r13884 | kohsuke | 2008-12-26 07:50:59 -0800 (Fri, 26 Dec 2008) | 1 line
  
  adding more probes
................
  r13885 | kohsuke | 2008-12-26 08:15:42 -0800 (Fri, 26 Dec 2008) | 1 line
  
  for analyzing test failures, capturing the output is crucial.
................
  r13887 | kohsuke | 2008-12-26 11:25:12 -0800 (Fri, 26 Dec 2008) | 1 line
  
  allow sub-types to intercept mutation
................
  r13888 | kohsuke | 2008-12-26 11:26:01 -0800 (Fri, 26 Dec 2008) | 1 line
  
  clouds need to be taken into account before marking a label as pointless.
................
  r13889 | kohsuke | 2008-12-26 11:26:40 -0800 (Fri, 26 Dec 2008) | 3 lines
  
  fixing bugs in NodeProvisioner.
  
  Conservative estimate on idle executors have to be max, not min.
................
  r13890 | kohsuke | 2008-12-26 11:42:53 -0800 (Fri, 26 Dec 2008) | 1 line
  
  turns out the problem was that we were adding multiple slaves under the same name, which confused Hudson to no end.
................
  r13896 | kohsuke | 2008-12-27 07:44:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  formatting changes
................
  r13897 | kohsuke | 2008-12-27 07:45:00 -0800 (Sat, 27 Dec 2008) | 1 line
  
  reprot the test name to stdout so that one can easily distinguish different tests in target/surefire-reports/xyz-output.txt
................
  r13898 | kohsuke | 2008-12-27 07:54:53 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13899 | kohsuke | 2008-12-27 09:59:07 -0800 (Sat, 27 Dec 2008) | 1 line
  
  split the functionality into two classes
................
  r13900 | kohsuke | 2008-12-27 10:00:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13901 | kohsuke | 2008-12-27 10:06:24 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added 'tick'
................
  r13902 | kohsuke | 2008-12-27 10:08:04 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding graph rendering of the load statistics
................
  r13903 | kohsuke | 2008-12-27 10:19:41 -0800 (Sat, 27 Dec 2008) | 1 line
  
  improved graph layout
................
  r13904 | kohsuke | 2008-12-27 10:21:05 -0800 (Sat, 27 Dec 2008) | 1 line
  
  Picker -> TimeScale to better reflect what it is.
................
  r13905 | kohsuke | 2008-12-27 10:40:27 -0800 (Sat, 27 Dec 2008) | 1 line
  
  duplicate
................
  r13906 | kohsuke | 2008-12-27 14:39:36 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to a shorter name
................
  r13907 | kohsuke | 2008-12-27 15:03:25 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added icons
................
  r13908 | kohsuke | 2008-12-27 16:20:37 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to make 'loadStatistics' the URL binding.
................
  r13909 | kohsuke | 2008-12-27 16:21:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  exposing loadStatistics for Computer for better URL binding
................
  r13910 | kohsuke | 2008-12-27 16:21:16 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding UI support
................
  r13911 | kohsuke | 2008-12-27 19:31:43 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added some basic visualization
................
  r13912 | kohsuke | 2008-12-27 19:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  if there's no description, don't even show it.
................
  r13913 | kohsuke | 2008-12-27 19:39:26 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added load statistics page for the label as well.
................
  r13914 | kohsuke | 2008-12-27 19:48:55 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added one more convenience method.
................
  r13915 | kohsuke | 2008-12-27 19:54:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  refactored so that a different Dataset can be fed.
................
  r13916 | kohsuke | 2008-12-27 19:59:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added global load statistics lnk to the management screen.
................
  r13917 | kohsuke | 2008-12-27 20:31:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  <dt>s should use the bold font to distinguish them from <dd>s
................
  r13918 | kohsuke | 2008-12-27 20:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
  r13919 | kohsuke | 2008-12-27 20:35:39 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@14215 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-01-07 09:02:56 +08:00
										 |  |  |     var h = e.onclick; | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |     var clsName = e.className; | 
					
						
							| 
									
										
										
										
											2009-03-19 05:47:34 +08:00
										 |  |  |     var n = e.name; | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |     var btn = new YAHOO.widget.Button(e,{}); | 
					
						
							| 
									
										
										
										
											2007-10-27 22:26:11 +08:00
										 |  |  |     if(onclick!=null) | 
					
						
							|  |  |  |         btn.addListener("click",onclick); | 
					
						
							| 
									
										
											  
											
												Merged revisions 11754-11755,11763-11766,11770,11773-11777,11791-11797,11828-11829,11831-11839,11841-11843,11850,11854,11994,12774,12778-12793,12820-12822,12831-12841,12854-12855,12860-12882,12896-12905,12914-12920,12938-12941,12950,13045-13046,13048,13063-13064,13066,13072-13076,13111,13122-13147,13150,13153-13158,13487-13488,13851-13852,13854-13856,13859,13866-13867,13869,13872-13876,13878-13879,13883-13885,13887-13890,13896-13919 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/multiple-computer-per-node
................
  r11754 | kohsuke | 2008-08-25 17:59:14 -0700 (Mon, 25 Aug 2008) | 3 lines
  
  Adding EphemeralNode for non-persisted dynamically-allocated expandable/shrinkable slave pool.
  
  Tweaked the serialization of Hudson.slaves accordingly.
................
  r11755 | kohsuke | 2008-08-25 18:10:42 -0700 (Mon, 25 Aug 2008) | 1 line
  
  making a small improvements
................
  r11763 | kohsuke | 2008-08-26 13:57:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding more convenience methods
................
  r11764 | kohsuke | 2008-08-26 14:24:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  ported mask capability from the TFS plugin to the core.
................
  r11765 | kohsuke | 2008-08-26 14:26:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  making it non-final to allow for subclassing
................
  r11766 | kohsuke | 2008-08-26 14:35:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  test case for NodeList
................
  r11770 | kohsuke | 2008-08-26 15:15:21 -0700 (Tue, 26 Aug 2008) | 3 lines
  
  Wrote a simple tool that monitors a file system change (in a poor way) and triggers a build.
................
  r11773 | kohsuke | 2008-08-26 17:20:30 -0700 (Tue, 26 Aug 2008) | 1 line
  
  made more structured
................
  r11774 | kohsuke | 2008-08-26 17:47:41 -0700 (Tue, 26 Aug 2008) | 1 line
  
  indentation fix
................
  r11775 | kohsuke | 2008-08-26 17:48:22 -0700 (Tue, 26 Aug 2008) | 1 line
  
  remove the use of a deprecated feature.
................
  r11776 | kohsuke | 2008-08-26 17:51:54 -0700 (Tue, 26 Aug 2008) | 1 line
  
  renamed to 'ALL' to be consistent with recent use of DescriptorList
................
  r11777 | kohsuke | 2008-08-26 18:04:17 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding NodeFactory list and its configuration mechanism
................
  r11791 | kohsuke | 2008-08-27 09:43:38 -0700 (Wed, 27 Aug 2008) | 1 line
  
  picked up the latest jelly with Iterable support in <j:forEach>
................
  r11792 | kohsuke | 2008-08-27 09:44:08 -0700 (Wed, 27 Aug 2008) | 1 line
  
  Iterable support added in  commons-jelly 1.1-hudson-20080826
................
  r11793 | kohsuke | 2008-08-27 10:15:14 -0700 (Wed, 27 Aug 2008) | 2 lines
  
  - added name to NodeFactory for binding NodeFactory to URL tree.
  - NodeFactory should be access controlled
................
  r11794 | kohsuke | 2008-08-27 10:41:11 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added a method to add one Node at a time
................
  r11795 | kohsuke | 2008-08-27 10:41:37 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added permission constatnt
................
  r11796 | kohsuke | 2008-08-27 10:42:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  allowing the launch method to throw an exception.
................
  r11797 | kohsuke | 2008-08-27 10:44:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  improving the handling
................
  r11828 | kohsuke | 2008-08-29 11:07:16 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added executor config to the sidebar.
................
  r11829 | kohsuke | 2008-08-29 11:16:11 -0700 (Fri, 29 Aug 2008) | 1 line
  
  "it" should be assigned to NodeFactory
................
  r11831 | kohsuke | 2008-08-29 11:44:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11832 | kohsuke | 2008-08-29 11:59:21 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a script to create a flashing image from any picture
................
  r11833 | kohsuke | 2008-08-29 12:07:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11834 | kohsuke | 2008-08-29 13:37:59 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added new images to indicate that a slave is launching
................
  r11835 | kohsuke | 2008-08-29 13:43:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  indicate a launching slave accordingly.
................
  r11836 | kohsuke | 2008-08-29 14:02:28 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a method to remove a Node.
................
  r11837 | kohsuke | 2008-08-29 14:02:38 -0700 (Fri, 29 Aug 2008) | 1 line
  
  disconnect
................
  r11838 | kohsuke | 2008-08-29 14:03:22 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11839 | kohsuke | 2008-08-29 14:14:04 -0700 (Fri, 29 Aug 2008) | 1 line
  
  allowing subclasses.
................
  r11841 | kohsuke | 2008-08-29 14:28:29 -0700 (Fri, 29 Aug 2008) | 1 line
  
  constructor should be the first in the definition.
................
  r11842 | kohsuke | 2008-08-29 14:31:01 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11843 | kohsuke | 2008-08-29 14:32:48 -0700 (Fri, 29 Aug 2008) | 1 line
  
  fixed a problem of using partially constructed object during launch(), because the setNode() method is called from the Computer constructor.
................
  r11850 | kohsuke | 2008-08-29 14:50:36 -0700 (Fri, 29 Aug 2008) | 1 line
  
  serialize NodeFactory first so that references to them from NodeList will become references in XML.
................
  r11854 | kohsuke | 2008-08-29 14:56:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  cleaning up a bit.
................
  r11994 | kohsuke | 2008-09-03 14:42:11 -0700 (Wed, 03 Sep 2008) | 21 lines
  
  Fixed ArrayIndexOutOfBoundsException during replace(), when the title contains a '$' literal.
  
  The typical stack trace looks like:
  
  Caused by: java.lang.ArrayIndexOutOfBoundsException: 32
          at hudson.MarkupText$SubText.start(MarkupText.java:95)
          at hudson.MarkupText$SubText.group(MarkupText.java:131)
          at hudson.MarkupText$SubText.replace(MarkupText.java:154)
          at hudson.MarkupText$SubText.surroundWith(MarkupText.java:83)
          at 
  hudson.plugins.jira.JiraChangeLogAnnotator.annotate(JiraChangeLogAnnotator.java:37)
          at 
  hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:117)
          ... 148 more
  
  Vijayan Jayaraman and I found this problem while we were looking at the server log of Hudson for OpenJFX.
  
  Adding a unit test to verify this behavior, too.  
................
  r12774 | kohsuke | 2008-10-27 15:03:36 -0700 (Mon, 27 Oct 2008) | 3 lines
  
  preparing for heterogenousness in Node, so that different Node can be configured with different UIs, much like how different Jobs can be configured.
  
  Creating a slave works also like creating a new job.
................
  r12778 | kohsuke | 2008-10-27 15:06:51 -0700 (Mon, 27 Oct 2008) | 1 line
  
  We need to be able to create an emtpy Slave initially, so we have to do with the check in the form field validation.
................
  r12779 | kohsuke | 2008-10-27 15:48:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the new slave page a two-step process
................
  r12780 | kohsuke | 2008-10-27 15:48:24 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a compilation problem
................
  r12781 | kohsuke | 2008-10-27 15:53:30 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12782 | kohsuke | 2008-10-27 15:58:20 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12783 | kohsuke | 2008-10-27 16:08:56 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the configuration page work for slaves
................
  r12784 | kohsuke | 2008-10-27 16:35:17 -0700 (Mon, 27 Oct 2008) | 1 line
  
  added new-computer.svg
................
  r12785 | kohsuke | 2008-10-27 16:37:26 -0700 (Mon, 27 Oct 2008) | 1 line
  
  hooking up the config/create pages to the UI
................
  r12786 | kohsuke | 2008-10-27 16:44:40 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a copy method.
................
  r12787 | kohsuke | 2008-10-27 16:47:33 -0700 (Mon, 27 Oct 2008) | 1 line
  
  code was broken when a slave was renamed
................
  r12788 | kohsuke | 2008-10-27 16:58:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  moving out the commonality into a new tag
................
  r12789 | kohsuke | 2008-10-27 17:01:21 -0700 (Mon, 27 Oct 2008) | 1 line
  
  consistent term usage
................
  r12790 | kohsuke | 2008-10-27 17:03:19 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retiring the configureExecutors. Slave configuration is now moved to individual slave page
................
  r12791 | kohsuke | 2008-10-27 17:10:32 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retired configureExecutors.jelly and completed moved its contents to somewhere else
................
  r12792 | kohsuke | 2008-10-27 17:21:53 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fix. request handling of "/descriptor/FQCN/..." was broken.
................
  r12793 | kohsuke | 2008-10-27 17:27:08 -0700 (Mon, 27 Oct 2008) | 1 line
  
  NodeFactory -> Cloud to encourage consistent term usage between the code and the UI.
................
  r12820 | kohsuke | 2008-10-29 10:58:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  formatting fix
................
  r12821 | kohsuke | 2008-10-29 11:17:49 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added classes for handling a secret and prevent accidental exposure of a secret in the persisted form
................
  r12822 | kohsuke | 2008-10-29 11:32:39 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added a base64 validator
................
  r12831 | kohsuke | 2008-10-29 15:58:45 -0700 (Wed, 29 Oct 2008) | 1 line
  
  secret key needs to be persisted outside config.xml (and it is, already!)
................
  r12832 | kohsuke | 2008-10-29 16:06:28 -0700 (Wed, 29 Oct 2008) | 1 line
  
  started working on Amazon EC2 plugin
................
  r12833 | kohsuke | 2008-10-29 16:09:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  brought the same enhancement as in <textbox />
................
  r12834 | kohsuke | 2008-10-29 16:15:05 -0700 (Wed, 29 Oct 2008) | 1 line
  
  copy over the onclick handler from the original button element
................
  r12835 | kohsuke | 2008-10-29 17:01:04 -0700 (Wed, 29 Oct 2008) | 1 line
  
  allow OK messages to be sent with some mark up.
................
  r12836 | kohsuke | 2008-10-29 17:06:52 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added connection testing. This pattern needs to be generalized since it happens often
................
  r12837 | kohsuke | 2008-10-29 17:13:11 -0700 (Wed, 29 Oct 2008) | 1 line
  
  this is little better
................
  r12838 | kohsuke | 2008-10-29 17:17:44 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added spinner
................
  r12839 | kohsuke | 2008-10-29 17:31:54 -0700 (Wed, 29 Oct 2008) | 1 line
  
  restructuring the validation button support in a form that can be readily moved to the core.
................
  r12840 | kohsuke | 2008-10-29 18:01:41 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added <f:validateButton/> for multi-field server-side validation
................
  r12841 | kohsuke | 2008-10-29 18:03:12 -0700 (Wed, 29 Oct 2008) | 1 line
  
  logic moved to <f:validateButton/> in the core.
................
  r12854 | kohsuke | 2008-10-30 13:32:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  @QueryParameter.value won't be necessary any more
................
  r12855 | kohsuke | 2008-10-30 13:42:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  need a strongly-typed constructor.
................
  r12860 | kohsuke | 2008-10-30 15:24:18 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding more reflection support, which in turn we use in taglibs to raise the level of abstraction.
................
  r12861 | kohsuke | 2008-10-30 15:33:22 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added a tag to create databinding to a<select> element from an enum property
................
  r12862 | kohsuke | 2008-10-30 15:37:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding a smarter bi-directional binding through <f:repeatable field="..."/>
................
  r12863 | kohsuke | 2008-10-30 15:47:48 -0700 (Thu, 30 Oct 2008) | 1 line
  
  making progress with the EC2 support
................
  r12864 | kohsuke | 2008-10-30 16:12:34 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added form field validation for AMI ID
................
  r12865 | kohsuke | 2008-10-30 16:15:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added simpler version
................
  r12866 | kohsuke | 2008-10-30 16:17:15 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12867 | kohsuke | 2008-10-30 16:17:19 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12868 | kohsuke | 2008-10-30 16:40:25 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12869 | kohsuke | 2008-10-30 17:00:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding the provisioning of the new slave
................
  r12870 | kohsuke | 2008-10-30 17:07:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  /** {@inheritDoc} */ is the default behavior for javadoc, so there's no point in making that explicit.
................
  r12871 | kohsuke | 2008-10-30 17:11:04 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc bug fix
................
  r12872 | kohsuke | 2008-10-30 17:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12873 | kohsuke | 2008-10-30 17:19:06 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added RetentionStrategy for EC2 instances
................
  r12874 | kohsuke | 2008-10-30 17:21:17 -0700 (Thu, 30 Oct 2008) | 1 line
  
  allowing subclasses to override the disconnect behavior.
................
  r12875 | kohsuke | 2008-10-30 18:02:35 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added termination
................
  r12876 | kohsuke | 2008-10-30 18:05:30 -0700 (Thu, 30 Oct 2008) | 1 line
  
  forgot to rename when NodeFactory was renamed to Cloud
................
  r12877 | kohsuke | 2008-10-30 18:06:08 -0700 (Thu, 30 Oct 2008) | 1 line
  
  using the console icon
................
  r12878 | kohsuke | 2008-10-30 18:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding UI to remove a slave.
................
  r12879 | kohsuke | 2008-10-30 18:48:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  commons-discovery now needed in stapler
................
  r12880 | kohsuke | 2008-10-30 18:50:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  needs to use a newer version of stapler
................
  r12881 | kohsuke | 2008-10-30 18:51:02 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12882 | kohsuke | 2008-10-30 18:51:43 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12896 | kohsuke | 2008-10-31 14:52:07 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed the ordering between field and the mighty get(String) method.
................
  r12897 | kohsuke | 2008-10-31 15:08:41 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed test compilation problems
................
  r12898 | kohsuke | 2008-10-31 15:11:25 -0700 (Fri, 31 Oct 2008) | 1 line
  
  marking this as a model object since it's always bound to URL.
................
  r12899 | kohsuke | 2008-10-31 15:13:42 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up to manually provision a new node
................
  r12900 | kohsuke | 2008-10-31 15:14:00 -0700 (Fri, 31 Oct 2008) | 1 line
  
  after merging the trunk the version number is different
................
  r12901 | kohsuke | 2008-10-31 15:21:54 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up for provisioning a new slave
................
  r12902 | kohsuke | 2008-10-31 15:45:10 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding a hook to decorate ComputerLauncher.
................
  r12903 | kohsuke | 2008-10-31 15:48:21 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added filtering support
................
  r12904 | kohsuke | 2008-10-31 15:52:45 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added view
................
  r12905 | kohsuke | 2008-10-31 15:53:49 -0700 (Fri, 31 Oct 2008) | 1 line
  
  doc improvement
................
  r12914 | kohsuke | 2008-11-01 17:45:57 -0700 (Sat, 01 Nov 2008) | 1 line
  
  adding code for connecting with SSH
................
  r12915 | kohsuke | 2008-11-01 17:49:28 -0700 (Sat, 01 Nov 2008) | 1 line
  
  working on launchers
................
  r12916 | kohsuke | 2008-11-01 18:33:12 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a method to fully read a stream
................
  r12917 | kohsuke | 2008-11-01 18:33:45 -0700 (Sat, 01 Nov 2008) | 1 line
  
  bumped up stapler
................
  r12918 | kohsuke | 2008-11-01 18:39:41 -0700 (Sat, 01 Nov 2008) | 1 line
  
  doc improvement.
................
  r12919 | kohsuke | 2008-11-01 18:45:24 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a launcher
................
  r12920 | kohsuke | 2008-11-01 18:55:02 -0700 (Sat, 01 Nov 2008) | 1 line
  
  implementing the actual ComputerLauncher
................
  r12938 | kohsuke | 2008-11-02 08:56:05 -0800 (Sun, 02 Nov 2008) | 1 line
  
  support the field notation
................
  r12939 | kohsuke | 2008-11-02 09:20:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  added the mechanism to execute the init script
................
  r12940 | kohsuke | 2008-11-02 09:21:38 -0800 (Sun, 02 Nov 2008) | 1 line
  
  simplification
................
  r12941 | kohsuke | 2008-11-02 09:36:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  adding key handling
................
  r12950 | kohsuke | 2008-11-03 11:00:58 -0800 (Mon, 03 Nov 2008) | 1 line
  
  formatting changes
................
  r13045 | kohsuke | 2008-11-06 15:24:32 -0800 (Thu, 06 Nov 2008) | 1 line
  
  adding time series datatype for retaining load average statistics in memory
................
  r13046 | kohsuke | 2008-11-06 15:59:02 -0800 (Thu, 06 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13048 | kohsuke | 2008-11-06 16:21:54 -0800 (Thu, 06 Nov 2008) | 2 lines
  
  - started monitoring # of executor statistics.
  - exposed label to the remote API
................
  r13063 | kohsuke | 2008-11-07 13:05:15 -0800 (Fri, 07 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13064 | kohsuke | 2008-11-07 13:11:08 -0800 (Fri, 07 Nov 2008) | 1 line
  
  monitor the length of the queue too
................
  r13066 | kohsuke | 2008-11-07 14:15:56 -0800 (Fri, 07 Nov 2008) | 1 line
  
  moved the stats to its own class.
................
  r13072 | kohsuke | 2008-11-07 15:40:29 -0800 (Fri, 07 Nov 2008) | 1 line
  
  adding provisioning logic based on load statistics
................
  r13073 | kohsuke | 2008-11-07 15:46:00 -0800 (Fri, 07 Nov 2008) | 1 line
  
  for effective testing, we need sub-sec precision
................
  r13074 | kohsuke | 2008-11-07 16:24:44 -0800 (Fri, 07 Nov 2008) | 1 line
  
  fixed a lie.
................
  r13075 | kohsuke | 2008-11-07 16:25:12 -0800 (Fri, 07 Nov 2008) | 1 line
  
  bug fix
................
  r13076 | kohsuke | 2008-11-07 16:30:55 -0800 (Fri, 07 Nov 2008) | 1 line
  
  avoid using deprecated methods
................
  r13111 | kohsuke | 2008-11-09 11:54:23 -0800 (Sun, 09 Nov 2008) | 1 line
  
  added the Future<?> return parameter to Computer.launch(). To do this w/o breaking compatibility, renamed launch to connect.
................
  r13122 | kohsuke | 2008-11-10 14:38:03 -0800 (Mon, 10 Nov 2008) | 1 line
  
  allow programmatic update of the assigned label
................
  r13123 | kohsuke | 2008-11-10 14:38:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Iterator not needed because CopyOnWriteArrayList doesn't support removal via iterator.
................
  r13124 | kohsuke | 2008-11-10 14:39:24 -0800 (Mon, 10 Nov 2008) | 1 line
  
  added another Builder for tests
................
  r13125 | kohsuke | 2008-11-10 14:39:48 -0800 (Mon, 10 Nov 2008) | 1 line
  
  simplified a bit. This TestEnvironment stuff needs some clearer story.
................
  r13126 | kohsuke | 2008-11-10 14:46:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  IDEA complains about this.
................
  r13127 | kohsuke | 2008-11-10 14:51:53 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved the error diagnostics by displaying why a provisioned node failed to launch
................
  r13128 | kohsuke | 2008-11-10 14:52:12 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Started a test case for NodeProvisioner
................
  r13129 | kohsuke | 2008-11-10 14:52:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13130 | kohsuke | 2008-11-10 15:16:02 -0800 (Mon, 10 Nov 2008) | 1 line
  
  report the failure as a failure.
................
  r13131 | kohsuke | 2008-11-10 16:34:23 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding a parameter to the connect method to support joining to the pending launch activity.
................
  r13132 | kohsuke | 2008-11-10 16:38:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  making members public so that it can be accessed from other classes (DummyCloudImpl was the first to do this)
................
  r13133 | kohsuke | 2008-11-10 16:38:58 -0800 (Mon, 10 Nov 2008) | 1 line
  
  split the cloud implementation to a separate class to allow reuse.
................
  r13134 | kohsuke | 2008-11-10 16:56:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  assign unique names to support multiple jobs
................
  r13135 | kohsuke | 2008-11-10 17:11:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  avoid unnecessary interruption
................
  r13136 | kohsuke | 2008-11-10 17:11:41 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13137 | kohsuke | 2008-11-10 17:16:28 -0800 (Mon, 10 Nov 2008) | 1 line
  
  cleaned up a test case
................
  r13138 | kohsuke | 2008-11-10 17:36:52 -0800 (Mon, 10 Nov 2008) | 1 line
  
  since the setNode method is called on every Computer just by adding a new node, don't force a new launch attempt.
................
  r13139 | kohsuke | 2008-11-10 17:37:38 -0800 (Mon, 10 Nov 2008) | 1 line
  
  perform orderly shutdown by giving computers enough time to disconnect.
................
  r13140 | kohsuke | 2008-11-10 17:38:08 -0800 (Mon, 10 Nov 2008) | 3 lines
  
  return Future for synchronization.
  
  This breaks binary compatibility, but I checked none of the plugins in Hudson SVN uses this, so I hope this is OK.
................
  r13141 | kohsuke | 2008-11-10 17:38:46 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved diagnostics
................
  r13142 | kohsuke | 2008-11-10 17:39:55 -0800 (Mon, 10 Nov 2008) | 1 line
  
  removed compiler warning
................
  r13143 | kohsuke | 2008-11-10 18:02:56 -0800 (Mon, 10 Nov 2008) | 1 line
  
  hide the rounding related problem from Cloud by passing int instead of float.
................
  r13144 | kohsuke | 2008-11-10 18:10:10 -0800 (Mon, 10 Nov 2008) | 1 line
  
  bug fix
................
  r13145 | kohsuke | 2008-11-10 18:11:51 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13146 | kohsuke | 2008-11-10 18:15:08 -0800 (Mon, 10 Nov 2008) | 1 line
  
  moved the slave launch code to HudsonTestCase for reuse
................
  r13147 | kohsuke | 2008-11-10 18:20:19 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13150 | kohsuke | 2008-11-11 07:28:53 -0800 (Tue, 11 Nov 2008) | 1 line
  
  bug fix
................
  r13153 | kohsuke | 2008-11-11 14:04:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  cutting down the test size to 5 to increase the test speed
................
  r13154 | kohsuke | 2008-11-11 14:04:37 -0800 (Tue, 11 Nov 2008) | 1 line
  
  improved debuggability
................
  r13155 | kohsuke | 2008-11-11 14:10:04 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added another convenience method
................
  r13156 | kohsuke | 2008-11-11 14:10:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  further reduce the test turn around time
................
  r13157 | kohsuke | 2008-11-11 14:22:03 -0800 (Tue, 11 Nov 2008) | 1 line
  
  doc improvement and clean up
................
  r13158 | kohsuke | 2008-11-11 14:22:28 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added a new metho
................
  r13487 | kohsuke | 2008-12-09 17:17:30 -0800 (Tue, 09 Dec 2008) | 1 line
  
  SlaveTemplate needs to be able to computer # of executors.
................
  r13488 | kohsuke | 2008-12-09 17:18:05 -0800 (Tue, 09 Dec 2008) | 1 line
  
  fixed a compilation problem with the latest head of the branch
................
  r13851 | kohsuke | 2008-12-24 13:40:43 -0800 (Wed, 24 Dec 2008) | 82 lines
  
  fixed a dead lock reported by Jesse.
  
  Found one Java-level deadlock:
  =============================
  "Executor #0 for master":
     waiting to lock monitor 0x09409bac (object 0x87474ca0, a hudson.util.CopyOnWriteMap$Hash),
     which is held by "main"
  "main":
     waiting to lock monitor 0x09409b48 (object 0x87474d48, a hudson.model.Hudson$MasterComputer),
     which is held by "Executor #0 for master"
  
  Java stack information for the threads listed above:
  ===================================================
  "Executor #0 for master":
  	at hudson.util.CopyOnWriteMap.remove(CopyOnWriteMap.java:78)
  	- waiting to lock <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.removeComputer(Hudson.java:717)
  	at hudson.model.Computer.removeExecutor(Computer.java:433)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Executor.run(Executor.java:65)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  "main":
  	at hudson.model.Computer.setNumExecutors(Computer.java:338)
  	- waiting to lock <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Computer.setNode(Computer.java:327)
  	at hudson.model.Hudson.updateComputer(Hudson.java:704)
  	at hudson.model.Hudson.updateComputerList(Hudson.java:685)
  	- locked <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.setNodes(Hudson.java:1076)
  	at hudson.model.Hudson.addNode(Hudson.java:1060)
  	- locked <0x87474cb0> (a hudson.model.Hudson)
  	at org.jvnet.hudson.test.HudsonTestCase.createSlave(HudsonTestCase.java:247)
  	at hudson.slaves.NodeProvisionerTest.testBaselineSlaveUsage(NodeProvisionerTest.java:86)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at junit.framework.TestCase.runTest(TestCase.java:154)
  	at org.jvnet.hudson.test.HudsonTestCase.runTest(HudsonTestCase.java:151)
  	at junit.framework.TestCase.runBare(TestCase.java:127)
  	at junit.framework.TestResult$1.protect(TestResult.java:106)
  	at junit.framework.TestResult.runProtected(TestResult.java:124)
  	at junit.framework.TestResult.run(TestResult.java:109)
  	at junit.framework.TestCase.run(TestCase.java:118)
  	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  	at junit.framework.TestSuite.run(TestSuite.java:203)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
  	at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:241)
  	at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:537)
  	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
  	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
  	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
  	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  
  Found 1 deadlock.
................
  r13852 | kohsuke | 2008-12-24 14:32:29 -0800 (Wed, 24 Dec 2008) | 1 line
  
  bug fix in the test case.
................
  r13854 | kohsuke | 2008-12-24 15:20:22 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  Using a new version of Rhino to get a proper exception chaining.
................
  r13855 | kohsuke | 2008-12-24 15:22:13 -0800 (Wed, 24 Dec 2008) | 1 line
  
  typo
................
  r13856 | kohsuke | 2008-12-24 15:37:56 -0800 (Wed, 24 Dec 2008) | 1 line
  
  CR shouldn't be in the repository
................
  r13859 | kohsuke | 2008-12-24 15:50:32 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Fixed svn:eol-style.
................
  r13866 | kohsuke | 2008-12-24 21:26:43 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Copying rev.13860 to retry a merge that now looks suspicious.
................
  r13869 | kohsuke | 2008-12-24 22:03:46 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  The 2nd merge was successful, so adopting the successful merge as the multiple-computer-per-node branch.
................
  r13872 | kohsuke | 2008-12-25 07:28:37 -0800 (Thu, 25 Dec 2008) | 1 line
  
  fixed a test failure
................
  r13873 | kohsuke | 2008-12-25 08:16:49 -0800 (Thu, 25 Dec 2008) | 1 line
  
  expanded NodeProvisioner to work on per-label basis
................
  r13874 | kohsuke | 2008-12-25 08:27:32 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13875 | kohsuke | 2008-12-25 08:33:17 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13876 | kohsuke | 2008-12-25 08:45:03 -0800 (Thu, 25 Dec 2008) | 3 lines
  
  [HUDSON-2605] Strangely, I discovered that on some File, which is new File("./target/hudson-for-test"), file.exists()==false but file.getAbsoluteFile().exists()==true.
  
  It looks like this happens when $PWD of the process at the OS level is different from System.getProperty("user.dir")
................
  r13878 | kohsuke | 2008-12-25 15:52:45 -0800 (Thu, 25 Dec 2008) | 1 line
  
  added a marker file
................
  r13879 | kohsuke | 2008-12-25 15:53:13 -0800 (Thu, 25 Dec 2008) | 1 line
  
  use marker file to find the hudson main workspace.
................
  r13883 | kohsuke | 2008-12-26 07:50:44 -0800 (Fri, 26 Dec 2008) | 1 line
  
  avoid using a deprecated method.
................
  r13884 | kohsuke | 2008-12-26 07:50:59 -0800 (Fri, 26 Dec 2008) | 1 line
  
  adding more probes
................
  r13885 | kohsuke | 2008-12-26 08:15:42 -0800 (Fri, 26 Dec 2008) | 1 line
  
  for analyzing test failures, capturing the output is crucial.
................
  r13887 | kohsuke | 2008-12-26 11:25:12 -0800 (Fri, 26 Dec 2008) | 1 line
  
  allow sub-types to intercept mutation
................
  r13888 | kohsuke | 2008-12-26 11:26:01 -0800 (Fri, 26 Dec 2008) | 1 line
  
  clouds need to be taken into account before marking a label as pointless.
................
  r13889 | kohsuke | 2008-12-26 11:26:40 -0800 (Fri, 26 Dec 2008) | 3 lines
  
  fixing bugs in NodeProvisioner.
  
  Conservative estimate on idle executors have to be max, not min.
................
  r13890 | kohsuke | 2008-12-26 11:42:53 -0800 (Fri, 26 Dec 2008) | 1 line
  
  turns out the problem was that we were adding multiple slaves under the same name, which confused Hudson to no end.
................
  r13896 | kohsuke | 2008-12-27 07:44:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  formatting changes
................
  r13897 | kohsuke | 2008-12-27 07:45:00 -0800 (Sat, 27 Dec 2008) | 1 line
  
  reprot the test name to stdout so that one can easily distinguish different tests in target/surefire-reports/xyz-output.txt
................
  r13898 | kohsuke | 2008-12-27 07:54:53 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13899 | kohsuke | 2008-12-27 09:59:07 -0800 (Sat, 27 Dec 2008) | 1 line
  
  split the functionality into two classes
................
  r13900 | kohsuke | 2008-12-27 10:00:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13901 | kohsuke | 2008-12-27 10:06:24 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added 'tick'
................
  r13902 | kohsuke | 2008-12-27 10:08:04 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding graph rendering of the load statistics
................
  r13903 | kohsuke | 2008-12-27 10:19:41 -0800 (Sat, 27 Dec 2008) | 1 line
  
  improved graph layout
................
  r13904 | kohsuke | 2008-12-27 10:21:05 -0800 (Sat, 27 Dec 2008) | 1 line
  
  Picker -> TimeScale to better reflect what it is.
................
  r13905 | kohsuke | 2008-12-27 10:40:27 -0800 (Sat, 27 Dec 2008) | 1 line
  
  duplicate
................
  r13906 | kohsuke | 2008-12-27 14:39:36 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to a shorter name
................
  r13907 | kohsuke | 2008-12-27 15:03:25 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added icons
................
  r13908 | kohsuke | 2008-12-27 16:20:37 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to make 'loadStatistics' the URL binding.
................
  r13909 | kohsuke | 2008-12-27 16:21:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  exposing loadStatistics for Computer for better URL binding
................
  r13910 | kohsuke | 2008-12-27 16:21:16 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding UI support
................
  r13911 | kohsuke | 2008-12-27 19:31:43 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added some basic visualization
................
  r13912 | kohsuke | 2008-12-27 19:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  if there's no description, don't even show it.
................
  r13913 | kohsuke | 2008-12-27 19:39:26 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added load statistics page for the label as well.
................
  r13914 | kohsuke | 2008-12-27 19:48:55 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added one more convenience method.
................
  r13915 | kohsuke | 2008-12-27 19:54:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  refactored so that a different Dataset can be fed.
................
  r13916 | kohsuke | 2008-12-27 19:59:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added global load statistics lnk to the management screen.
................
  r13917 | kohsuke | 2008-12-27 20:31:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  <dt>s should use the bold font to distinguish them from <dd>s
................
  r13918 | kohsuke | 2008-12-27 20:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
  r13919 | kohsuke | 2008-12-27 20:35:39 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@14215 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-01-07 09:02:56 +08:00
										 |  |  |     if(h!=null) | 
					
						
							|  |  |  |         btn.addListener("click",h); | 
					
						
							| 
									
										
										
										
											2009-03-19 05:47:34 +08:00
										 |  |  |     var be = btn.get("element"); | 
					
						
							|  |  |  |     Element.addClassName(be,clsName); | 
					
						
							|  |  |  |     if(n!=null) // copy the name
 | 
					
						
							|  |  |  |         be.setAttribute("name",n); | 
					
						
							| 
									
										
										
										
											2007-11-20 01:46:08 +08:00
										 |  |  |     return btn; | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  | /* | 
					
						
							|  |  |  |     If we are inside 'to-be-removed' class, some HTML altering behaviors interact badly, because | 
					
						
							|  |  |  |     the behavior re-executes when the removed master copy gets reinserted later. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function isInsideRemovable(e) { | 
					
						
							|  |  |  |     return Element.ancestors(e).find(function(f){return f.hasClassName("to-be-removed");}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | var hudsonRules = { | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     "BODY" : function() { | 
					
						
							| 
									
										
										
										
											2007-10-29 00:28:00 +08:00
										 |  |  |         tooltip = new YAHOO.widget.Tooltip("tt", {context:[], zindex:999}); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     }, | 
					
						
							| 
									
										
										
										
											2007-06-13 12:31:20 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  | // do the ones that extract innerHTML so that they can get their original HTML before
 | 
					
						
							|  |  |  | // other behavior rules change them (like YUI buttons.)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     "DIV.hetero-list-container" : function(e) { | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  |         if(isInsideRemovable(e))    return; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  |         // components for the add button
 | 
					
						
							|  |  |  |         var menu = document.createElement("SELECT"); | 
					
						
							|  |  |  |         var btn = findElementsBySelector(e,"INPUT.hetero-list-add")[0]; | 
					
						
							|  |  |  |         YAHOO.util.Dom.insertAfter(menu,btn); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var prototypes = e.lastChild; | 
					
						
							|  |  |  |         while(!Element.hasClassName(prototypes,"prototypes")) | 
					
						
							|  |  |  |             prototypes = prototypes.previousSibling; | 
					
						
							|  |  |  |         var insertionPoint = prototypes.previousSibling;    // this is where the new item is inserted.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // extract templates
 | 
					
						
							|  |  |  |         var templates = []; var i=0; | 
					
						
							|  |  |  |         for(var n=prototypes.firstChild;n!=null;n=n.nextSibling,i++) { | 
					
						
							|  |  |  |             var name = n.getAttribute("name"); | 
					
						
							| 
									
										
										
										
											2007-11-09 09:27:04 +08:00
										 |  |  |             var tooltip = n.getAttribute("tooltip"); | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  |             menu.options[i] = new Option(n.getAttribute("title"),""+i); | 
					
						
							| 
									
										
										
										
											2007-11-09 09:27:04 +08:00
										 |  |  |             templates.push({html:n.innerHTML, name:name, tooltip:tooltip}); | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |         Element.remove(prototypes); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-24 13:02:31 +08:00
										 |  |  |         // D&D support
 | 
					
						
							|  |  |  |         function prepareDD(e) { | 
					
						
							|  |  |  |             var dd = new DragDrop(e); | 
					
						
							|  |  |  |             var h = e; | 
					
						
							|  |  |  |             // locate a handle
 | 
					
						
							|  |  |  |             while(!Element.hasClassName(h,"dd-handle")) | 
					
						
							|  |  |  |                 h = h.firstChild; | 
					
						
							|  |  |  |             dd.setHandleElId(h); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         var withDragDrop = Element.hasClassName(e,"with-drag-drop"); | 
					
						
							|  |  |  |         if(withDragDrop) { | 
					
						
							|  |  |  |             for(e=e.firstChild; e!=null; e=e.nextSibling) { | 
					
						
							|  |  |  |                 if(Element.hasClassName(e,"repeated-chunk")) | 
					
						
							|  |  |  |                     prepareDD(e); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  |         var menuButton = new YAHOO.widget.Button(btn, { type: "menu", menu: menu }); | 
					
						
							|  |  |  |         menuButton.getMenu().clickEvent.subscribe(function(type,args,value) { | 
					
						
							|  |  |  |             var t = templates[parseInt(args[1].value)]; // where this args[1] comes is a real mystery
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             var nc = document.createElement("div"); | 
					
						
							|  |  |  |             nc.className = "repeated-chunk"; | 
					
						
							|  |  |  |             nc.setAttribute("name",t.name); | 
					
						
							|  |  |  |             nc.innerHTML = t.html; | 
					
						
							|  |  |  |             insertionPoint.parentNode.insertBefore(nc, insertionPoint); | 
					
						
							| 
									
										
										
										
											2008-03-24 13:02:31 +08:00
										 |  |  |             if(withDragDrop)    prepareDD(nc); | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  |             Behaviour.applySubtree(nc); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2007-11-09 09:27:04 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         menuButton.getMenu().renderEvent.subscribe(function(type,args,value) { | 
					
						
							|  |  |  |             // hook up tooltip for menu items
 | 
					
						
							|  |  |  |             var items = menuButton.getMenu().getItems(); | 
					
						
							|  |  |  |             for(i=0; i<items.length; i++) { | 
					
						
							|  |  |  |                 var t = templates[i].tooltip; | 
					
						
							|  |  |  |                 if(t!=null) | 
					
						
							|  |  |  |                     applyTooltip(items[i].element,t); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     "DIV.repeated-container" : function(e) { | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  |         if(isInsideRemovable(e))    return; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-31 08:43:46 +08:00
										 |  |  |         // compute the insertion point
 | 
					
						
							|  |  |  |         var ip = e.lastChild; | 
					
						
							|  |  |  |         while (!Element.hasClassName(ip, "repeatable-insertion-point")) | 
					
						
							|  |  |  |             ip = ip.previousSibling; | 
					
						
							|  |  |  |         // set up the logic
 | 
					
						
							|  |  |  |         object(repeatableSupport).init(e, e.firstChild, ip); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 07:19:56 +08:00
										 |  |  |     "TABLE.sortable" : function(e) {// sortable table
 | 
					
						
							|  |  |  |         ts_makeSortable(e); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-06 14:10:35 +08:00
										 |  |  |     "TABLE.progress-bar" : function(e) {// sortable table
 | 
					
						
							|  |  |  |         e.onclick = function() { | 
					
						
							|  |  |  |             var href = this.getAttribute("href"); | 
					
						
							| 
									
										
										
										
											2007-09-06 14:38:21 +08:00
										 |  |  |             if(href!=null)      window.location = href; | 
					
						
							| 
									
										
										
										
											2007-09-06 14:10:35 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |         e = null; // avoid memory leak
 | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     "INPUT.advancedButton" : function(e) { | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |         makeButton(e,function(e) { | 
					
						
							| 
									
										
										
										
											2007-10-27 22:26:11 +08:00
										 |  |  |             var link = e.target; | 
					
						
							|  |  |  |             while(!Element.hasClassName(link,"advancedLink")) | 
					
						
							|  |  |  |                 link = link.parentNode; | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             link.style.display = "none"; // hide the button
 | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             var container = link.nextSibling.firstChild; // TABLE -> TBODY
 | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             var tr = link; | 
					
						
							|  |  |  |             while (tr.tagName != "TR") | 
					
						
							|  |  |  |                 tr = tr.parentNode; | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             // move the contents of the advanced portion into the main table
 | 
					
						
							| 
									
										
										
										
											2007-11-08 10:27:47 +08:00
										 |  |  |             var nameRef = tr.getAttribute("nameref"); | 
					
						
							|  |  |  |             while (container.lastChild != null) { | 
					
						
							|  |  |  |                 var row = container.lastChild; | 
					
						
							|  |  |  |                 if(nameRef!=null) | 
					
						
							|  |  |  |                     row.setAttribute("nameref",nameRef); | 
					
						
							|  |  |  |                 tr.parentNode.insertBefore(row, tr.nextSibling); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |         }); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |         e = null; // avoid memory leak
 | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-10 12:33:16 +08:00
										 |  |  |     "INPUT.expandButton" : function(e) { | 
					
						
							|  |  |  |         makeButton(e,function(e) { | 
					
						
							|  |  |  |             var link = e.target; | 
					
						
							|  |  |  |             while(!Element.hasClassName(link,"advancedLink")) | 
					
						
							|  |  |  |                 link = link.parentNode; | 
					
						
							|  |  |  |             link.style.display = "none"; | 
					
						
							|  |  |  |             link.nextSibling.style.display="block"; | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |         e = null; // avoid memory leak
 | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  | // scripting for having default value in the input field
 | 
					
						
							|  |  |  |     "INPUT.has-default-text" : function(e) { | 
					
						
							|  |  |  |         var defaultValue = e.value; | 
					
						
							|  |  |  |         Element.addClassName(e, "defaulted"); | 
					
						
							|  |  |  |         e.onfocus = function() { | 
					
						
							|  |  |  |             if (this.value == defaultValue) { | 
					
						
							|  |  |  |                 this.value = ""; | 
					
						
							| 
									
										
										
										
											2007-09-04 07:35:22 +08:00
										 |  |  |                 Element.removeClassName(this, "defaulted"); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         e.onblur = function() { | 
					
						
							|  |  |  |             if (this.value == "") { | 
					
						
							|  |  |  |                 this.value = defaultValue; | 
					
						
							| 
									
										
										
										
											2007-09-04 07:35:22 +08:00
										 |  |  |                 Element.addClassName(this, "defaulted"); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         e = null; // avoid memory leak
 | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-29 09:26:57 +08:00
										 |  |  | // <label> that doesn't use ID, so that it can be copied in <repeatable>
 | 
					
						
							|  |  |  |     "LABEL.attach-previous" : function(e) { | 
					
						
							|  |  |  |         e.onclick = function() { | 
					
						
							|  |  |  |             var e = this; | 
					
						
							|  |  |  |             while(e.tagName!="INPUT") | 
					
						
							|  |  |  |                 e=e.previousSibling; | 
					
						
							|  |  |  |             e.click(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         e = null; | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  | // form fields that are validated via AJAX call to the server
 | 
					
						
							|  |  |  | // elements with this class should have two attributes 'checkUrl' that evaluates to the server URL.
 | 
					
						
							|  |  |  |     "INPUT.validated" : registerValidator, | 
					
						
							|  |  |  |     "SELECT.validated" : registerValidator, | 
					
						
							|  |  |  |     "TEXTAREA.validated" : registerValidator, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // validate form values to be a number
 | 
					
						
							|  |  |  |     "INPUT.number" : function(e) { | 
					
						
							|  |  |  |         e.targetElement = findFollowingTR(e, "validation-error-area").firstChild.nextSibling; | 
					
						
							|  |  |  |         e.onchange = function() { | 
					
						
							|  |  |  |             if (this.value.match(/^(\d+|)$/)) { | 
					
						
							|  |  |  |                 this.targetElement.innerHTML = ""; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 this.targetElement.innerHTML = "<div class=error>Not a number</div>"; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         e = null; // avoid memory leak
 | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     "A.help-button" : function(e) { | 
					
						
							|  |  |  |         e.onclick = function() { | 
					
						
							|  |  |  |             var tr = findFollowingTR(this, "help-area"); | 
					
						
							|  |  |  |             var div = tr.firstChild.nextSibling.firstChild; | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             if (div.style.display != "block") { | 
					
						
							|  |  |  |                 div.style.display = "block"; | 
					
						
							| 
									
										
										
										
											2007-10-30 05:27:50 +08:00
										 |  |  |                 // make it visible
 | 
					
						
							| 
									
										
										
										
											2007-10-30 05:28:16 +08:00
										 |  |  |                 new Ajax.Request(this.getAttribute("helpURL"), { | 
					
						
							|  |  |  |                     method : 'get', | 
					
						
							|  |  |  |                     onComplete : function(x) { | 
					
						
							|  |  |  |                         div.innerHTML = x.responseText; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             } else { | 
					
						
							|  |  |  |                 div.style.display = "none"; | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |             return false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         e = null; // avoid memory leak
 | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // deferred client-side clickable map.
 | 
					
						
							|  |  |  | // this is useful where the generation of <map> element is time consuming
 | 
					
						
							|  |  |  |     "IMG[lazymap]" : function(e) { | 
					
						
							|  |  |  |         new Ajax.Request( | 
					
						
							|  |  |  |             e.getAttribute("lazymap"), | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 method : 'get', | 
					
						
							| 
									
										
										
										
											2008-12-23 03:19:43 +08:00
										 |  |  |                 onSuccess : function(x) { | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |                     var div = document.createElement("div"); | 
					
						
							|  |  |  |                     document.body.appendChild(div); | 
					
						
							|  |  |  |                     div.innerHTML = x.responseText; | 
					
						
							|  |  |  |                     var id = "map" + (iota++); | 
					
						
							|  |  |  |                     div.firstChild.setAttribute("name", id); | 
					
						
							|  |  |  |                     e.setAttribute("usemap", "#" + id); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // button to add a new repeatable block
 | 
					
						
							|  |  |  |     "INPUT.repeatable-add" : function(e) { | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |         makeButton(e,function(e) { | 
					
						
							| 
									
										
										
										
											2007-10-29 00:40:49 +08:00
										 |  |  |             repeatableSupport.onAdd(e.target); | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |         }); | 
					
						
							| 
									
										
										
										
											2007-09-04 01:58:19 +08:00
										 |  |  |         e = null; // avoid memory leak
 | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     "INPUT.repeatable-delete" : function(e) { | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |         makeButton(e,function(e) { | 
					
						
							| 
									
										
										
										
											2007-10-29 00:40:49 +08:00
										 |  |  |             repeatableSupport.onDelete(e.target); | 
					
						
							| 
									
										
										
										
											2007-10-27 22:17:47 +08:00
										 |  |  |         }); | 
					
						
							| 
									
										
										
										
											2007-09-04 01:58:19 +08:00
										 |  |  |         e = null; // avoid memory leak
 | 
					
						
							| 
									
										
										
										
											2007-06-13 09:39:48 +08:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-27 11:42:55 +08:00
										 |  |  |     // resizable text area
 | 
					
						
							|  |  |  |     "TEXTAREA" : function(textarea) { | 
					
						
							| 
									
										
										
										
											2008-04-05 13:57:43 +08:00
										 |  |  |         if(Element.hasClassName(textarea,"rich-editor")) { | 
					
						
							|  |  |  |             // rich HTML editor
 | 
					
						
							|  |  |  |             try { | 
					
						
							|  |  |  |                 var editor = new YAHOO.widget.Editor(textarea, { | 
					
						
							|  |  |  |                     dompath: true, | 
					
						
							|  |  |  |                     animate: true, | 
					
						
							|  |  |  |                     handleSubmit: true | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |                 // probably due to the timing issue, we need to let the editor know
 | 
					
						
							|  |  |  |                 // that DOM is ready
 | 
					
						
							|  |  |  |                 editor.DOMReady=true; | 
					
						
							|  |  |  |                 editor.fireQueue(); | 
					
						
							|  |  |  |                 editor.render(); | 
					
						
							|  |  |  |             } catch(e) { | 
					
						
							|  |  |  |                 alert(e); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             return; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-27 12:30:31 +08:00
										 |  |  |         var handle = textarea.nextSibling; | 
					
						
							|  |  |  |         if(handle==null || handle.className!="textarea-handle") return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var Event = YAHOO.util.Event; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-27 11:42:55 +08:00
										 |  |  |         handle.onmousedown = function(ev) { | 
					
						
							| 
									
										
										
										
											2007-09-27 12:30:31 +08:00
										 |  |  |             ev = Event.getEvent(ev); | 
					
						
							|  |  |  |             var offset = textarea.offsetHeight-Event.getPageY(ev); | 
					
						
							| 
									
										
										
										
											2007-09-27 11:42:55 +08:00
										 |  |  |             textarea.style.opacity = 0.5; | 
					
						
							|  |  |  |             document.onmousemove = function(ev) { | 
					
						
							| 
									
										
										
										
											2007-09-27 12:30:31 +08:00
										 |  |  |                 ev = Event.getEvent(ev); | 
					
						
							| 
									
										
										
										
											2007-09-27 11:42:55 +08:00
										 |  |  |                 function max(a,b) { if(a<b) return b; else return a; } | 
					
						
							| 
									
										
										
										
											2007-09-27 12:30:31 +08:00
										 |  |  |                 textarea.style.height = max(32, offset + Event.getPageY(ev)) + 'px'; | 
					
						
							|  |  |  |                 return false; | 
					
						
							| 
									
										
										
										
											2007-09-27 11:42:55 +08:00
										 |  |  |             }; | 
					
						
							|  |  |  |             document.onmouseup = function() { | 
					
						
							|  |  |  |                 document.onmousemove = null; | 
					
						
							|  |  |  |                 document.onmouseup = null; | 
					
						
							|  |  |  |                 textarea.style.opacity = 1; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2007-09-27 12:30:31 +08:00
										 |  |  |         }; | 
					
						
							|  |  |  |         handle.ondblclick = function() { | 
					
						
							|  |  |  |             textarea.style.height = ""; | 
					
						
							|  |  |  |             textarea.rows = textarea.value.split("\n").length; | 
					
						
							| 
									
										
										
										
											2007-09-27 11:42:55 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-28 12:33:44 +08:00
										 |  |  |     // structured form submission
 | 
					
						
							|  |  |  |     "FORM" : function(form) { | 
					
						
							| 
									
										
										
										
											2008-12-30 23:49:38 +08:00
										 |  |  |         if(Element.hasClassName("no-json")) | 
					
						
							|  |  |  |             return; | 
					
						
							| 
									
										
										
										
											2007-09-28 12:39:06 +08:00
										 |  |  |         // add the hidden 'json' input field, which receives the form structure in JSON
 | 
					
						
							| 
									
										
										
										
											2007-09-28 12:33:44 +08:00
										 |  |  |         var div = document.createElement("div"); | 
					
						
							| 
									
										
										
										
											2008-04-11 12:04:15 +08:00
										 |  |  |         div.innerHTML = "<input type=hidden name=json value=init>"; | 
					
						
							| 
									
										
										
										
											2007-09-28 12:33:44 +08:00
										 |  |  |         form.appendChild(div); | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         form.onsubmit = function() { buildFormTree(this) }; | 
					
						
							|  |  |  |         form = null; // memory leak prevention
 | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-21 12:27:56 +08:00
										 |  |  |     // hook up tooltip.
 | 
					
						
							|  |  |  |     //   add nodismiss="" if you'd like to display the tooltip forever as long as the mouse is on the element.
 | 
					
						
							| 
									
										
										
										
											2007-06-13 12:31:20 +08:00
										 |  |  |     "[tooltip]" : function(e) { | 
					
						
							| 
									
										
										
										
											2007-11-09 09:27:04 +08:00
										 |  |  |         applyTooltip(e,e.getAttribute("tooltip")); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     "INPUT.submit-button" : function(e) { | 
					
						
							|  |  |  |         makeButton(e); | 
					
						
							| 
									
										
										
										
											2008-03-12 02:24:19 +08:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     "INPUT.yui-button" : function(e) { | 
					
						
							|  |  |  |         makeButton(e); | 
					
						
							| 
									
										
										
										
											2009-01-01 03:50:46 +08:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  |     "TR.optional-block-start": function(e) { // see optionalBlock.jelly
 | 
					
						
							|  |  |  |         // set start.ref to checkbox in preparation of row-set-end processing
 | 
					
						
							|  |  |  |         var checkbox = e.firstChild.firstChild; | 
					
						
							|  |  |  |         e.setAttribute("ref", checkbox.id = "cb"+(iota++)); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     "TR.row-set-end": function(e) { // see rowSet.jelly and optionalBlock.jelly
 | 
					
						
							|  |  |  |         // figure out the corresponding start block
 | 
					
						
							|  |  |  |         var end = e; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         for( var depth=0; ; e=e.previousSibling) { | 
					
						
							|  |  |  |             if(Element.hasClassName(e,"row-set-end"))        depth++; | 
					
						
							|  |  |  |             if(Element.hasClassName(e,"row-set-start"))      depth--; | 
					
						
							|  |  |  |             if(depth==0)    break; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         var start = e; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var ref = start.getAttribute("ref"); | 
					
						
							|  |  |  |         if(ref==null) | 
					
						
							|  |  |  |             start.id = ref = "rowSetStart"+(iota++); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         applyNameRef(start,end,ref); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     "BODY TR.optional-block-start": function(e) { // see optionalBlock.jelly
 | 
					
						
							|  |  |  |         // this is prefixed by a pointless BODY so that two processing for optional-block-start
 | 
					
						
							|  |  |  |         // can sandwitch row-set-end
 | 
					
						
							|  |  |  |         // this requires "TR.row-set-end" to mark rows
 | 
					
						
							|  |  |  |         var checkbox = e.firstChild.firstChild; | 
					
						
							|  |  |  |         updateOptionalBlock(checkbox,false); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-01 03:50:46 +08:00
										 |  |  |     // image that shows [+] or [-], with hover effect.
 | 
					
						
							|  |  |  |     // oncollapsed and onexpanded will be called when the button is triggered.
 | 
					
						
							|  |  |  |     "IMG.fold-control" : function(e) { | 
					
						
							|  |  |  |         function changeTo(e,img) { | 
					
						
							|  |  |  |             var src = e.src; | 
					
						
							|  |  |  |             e.src = src.substring(0,src.lastIndexOf('/'))+"/"+e.getAttribute("state")+img; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         e.onmouseover = function() { | 
					
						
							|  |  |  |             changeTo(this,"-hover.png"); | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |         e.onmouseout = function() { | 
					
						
							|  |  |  |             changeTo(this,".png"); | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |         e.parentNode.onclick = function(event) { | 
					
						
							|  |  |  |             var e = this.firstChild; | 
					
						
							|  |  |  |             var s = e.getAttribute("state"); | 
					
						
							|  |  |  |             if(s=="plus") { | 
					
						
							|  |  |  |                 e.setAttribute("state","minus"); | 
					
						
							|  |  |  |                 if(e.onexpanded)    e.onexpanded(); | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 e.setAttribute("state","plus"); | 
					
						
							|  |  |  |                 if(e.oncollapsed)    e.oncollapsed(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             changeTo(e,"-hover.png"); | 
					
						
							|  |  |  |             YAHOO.util.Event.stopEvent(event); | 
					
						
							|  |  |  |             return false; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |         e = null; // memory leak prevention
 | 
					
						
							| 
									
										
										
										
											2007-11-09 09:27:04 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function applyTooltip(e,text) { | 
					
						
							| 
									
										
										
										
											2007-06-13 12:31:20 +08:00
										 |  |  |         // copied from YAHOO.widget.Tooltip.prototype.configContext to efficiently add a new element
 | 
					
						
							| 
									
										
										
										
											2007-09-05 14:50:13 +08:00
										 |  |  |         // event registration via YAHOO.util.Event.addListener leaks memory, so do it by ourselves here
 | 
					
						
							| 
									
										
										
										
											2007-10-21 12:27:56 +08:00
										 |  |  |         e.onmouseover = function(ev) { | 
					
						
							|  |  |  |             var delay = this.getAttribute("nodismiss")!=null ? 99999999 : 5000; | 
					
						
							|  |  |  |             tooltip.cfg.setProperty("autodismissdelay",delay); | 
					
						
							|  |  |  |             return tooltip.onContextMouseOver.call(this,YAHOO.util.Event.getEvent(ev),tooltip); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2007-09-27 23:28:37 +08:00
										 |  |  |         e.onmousemove = function(ev) { return tooltip.onContextMouseMove.call(this,YAHOO.util.Event.getEvent(ev),tooltip); } | 
					
						
							|  |  |  |         e.onmouseout  = function(ev) { return tooltip.onContextMouseOut .call(this,YAHOO.util.Event.getEvent(ev),tooltip); } | 
					
						
							| 
									
										
										
										
											2007-11-09 09:27:04 +08:00
										 |  |  |         e.title = text; | 
					
						
							| 
									
										
										
										
											2007-09-05 14:50:13 +08:00
										 |  |  |         e = null; // avoid memory leak
 | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Behaviour.register(hudsonRules); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-08 03:40:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | function xor(a,b) { | 
					
						
							|  |  |  |     // convert both values to boolean by '!' and then do a!=b
 | 
					
						
							|  |  |  |     return !a != !b; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  | // used by editableDescription.jelly to replace the description field with a form
 | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  | function replaceDescription(crumbName,crumb) { | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  |     var d = document.getElementById("description"); | 
					
						
							|  |  |  |     d.firstChild.nextSibling.innerHTML = "<div class='spinner-right'>loading...</div>"; | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |     var params = new Array(1); | 
					
						
							|  |  |  |     params[crumbName] = crumb; | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  |     new Ajax.Request( | 
					
						
							|  |  |  |         "./descriptionForm", | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2008-01-17 14:39:18 +08:00
										 |  |  |           method : 'post', | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |           parameters : params, | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  |           onComplete : function(x) { | 
					
						
							|  |  |  |             d.innerHTML = x.responseText; | 
					
						
							| 
									
										
										
										
											2007-09-27 11:42:55 +08:00
										 |  |  |             Behaviour.applySubtree(d); | 
					
						
							| 
									
										
										
										
											2007-01-21 23:08:00 +08:00
										 |  |  |             d.getElementsByTagName("TEXTAREA")[0].focus(); | 
					
						
							| 
									
										
										
										
											2006-11-06 05:16:01 +08:00
										 |  |  |           } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     return false; | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  | function applyNameRef(s,e,id) { | 
					
						
							|  |  |  |     $(id).groupingNode = true; | 
					
						
							|  |  |  |     // s contains the node itself
 | 
					
						
							| 
									
										
										
										
											2009-02-16 07:19:19 +08:00
										 |  |  |     for(var x=s.nextSibling; x!=e; x=x.nextSibling) { | 
					
						
							|  |  |  |         // to handle nested <f:rowSet> correctly, don't overwrite the existing value
 | 
					
						
							|  |  |  |         if(x.getAttribute("nameRef")==null) | 
					
						
							|  |  |  |             x.setAttribute("nameRef",id); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  | // used by optionalBlock.jelly to update the form status
 | 
					
						
							| 
									
										
										
										
											2007-09-29 09:26:57 +08:00
										 |  |  | //   @param c     checkbox element
 | 
					
						
							| 
									
										
										
										
											2007-09-30 22:25:33 +08:00
										 |  |  | function updateOptionalBlock(c,scroll) { | 
					
						
							| 
									
										
										
										
											2007-09-29 09:26:57 +08:00
										 |  |  |     // find the start TR
 | 
					
						
							|  |  |  |     var s = c; | 
					
						
							| 
									
										
										
										
											2007-11-29 06:08:48 +08:00
										 |  |  |     while(!Element.hasClassName(s, "optional-block-start")) | 
					
						
							| 
									
										
										
										
											2007-09-29 09:26:57 +08:00
										 |  |  |         s = s.parentNode; | 
					
						
							|  |  |  |     var tbl = s.parentNode; | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  |     var i = false; | 
					
						
							|  |  |  |     var o = false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-08 03:40:48 +08:00
										 |  |  |     var checked = xor(c.checked,Element.hasClassName(c,"negative")); | 
					
						
							| 
									
										
										
										
											2007-10-01 06:29:52 +08:00
										 |  |  |     var lastRow = null; | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     for (var j = 0; tbl.rows[j]; j++) { | 
					
						
							|  |  |  |         var n = tbl.rows[j]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-11-29 06:08:48 +08:00
										 |  |  |         if (i && Element.hasClassName(n, "optional-block-end")) | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  |             o = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (i && !o) { | 
					
						
							| 
									
										
										
										
											2008-04-07 04:29:25 +08:00
										 |  |  |             if (checked) { | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  |                 n.style.display = ""; | 
					
						
							| 
									
										
										
										
											2007-10-01 06:29:52 +08:00
										 |  |  |                 lastRow = n; | 
					
						
							| 
									
										
										
										
											2007-09-30 22:25:33 +08:00
										 |  |  |             } else | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  |                 n.style.display = "none"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-29 09:26:57 +08:00
										 |  |  |         if (n==s) { | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  |             if (n.getAttribute('hasHelp') == 'true') | 
					
						
							|  |  |  |                 j++; | 
					
						
							|  |  |  |             i = true; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-09-30 22:25:33 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-01 06:29:52 +08:00
										 |  |  |     if(checked && scroll) { | 
					
						
							|  |  |  |         var D = YAHOO.util.Dom; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var r = D.getRegion(s); | 
					
						
							|  |  |  |         if(lastRow!=null)   r = r.union(D.getRegion(lastRow)); | 
					
						
							|  |  |  |         scrollIntoView(r); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-05-30 01:14:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (c.name == 'hudson-tools-InstallSourceProperty') { | 
					
						
							|  |  |  |         // Hack to hide tool home when "Install automatically" is checked.
 | 
					
						
							|  |  |  |         var homeField = findPreviousFormItem(c, 'home'); | 
					
						
							|  |  |  |         if (homeField != null && homeField.value == '') { | 
					
						
							|  |  |  |             var tr = findAncestor(homeField, 'TR'); | 
					
						
							|  |  |  |             if (tr != null) { | 
					
						
							|  |  |  |                 tr.style.display = c.checked ? 'none' : ''; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2006-11-17 00:46:18 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2007-01-16 03:20:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Auto-scroll support for progressive log output.
 | 
					
						
							|  |  |  | //   See http://radio.javaranch.com/pascarello/2006/08/17/1155837038219.html
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | function AutoScroller(scrollContainer) { | 
					
						
							|  |  |  |     // get the height of the viewport.
 | 
					
						
							|  |  |  |     // See http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
 | 
					
						
							|  |  |  |     function getViewportHeight() { | 
					
						
							|  |  |  |         if (typeof( window.innerWidth ) == 'number') { | 
					
						
							|  |  |  |             //Non-IE
 | 
					
						
							|  |  |  |             return window.innerHeight; | 
					
						
							|  |  |  |         } else if (document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight )) { | 
					
						
							|  |  |  |             //IE 6+ in 'standards compliant mode'
 | 
					
						
							|  |  |  |             return document.documentElement.clientHeight; | 
					
						
							|  |  |  |         } else if (document.body && ( document.body.clientWidth || document.body.clientHeight )) { | 
					
						
							|  |  |  |             //IE 4 compatible
 | 
					
						
							|  |  |  |             return document.body.clientHeight; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return null; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |         bottomThreshold : 25, | 
					
						
							|  |  |  |         scrollContainer: scrollContainer, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         getCurrentHeight : function() { | 
					
						
							|  |  |  |             var scrollDiv = $(this.scrollContainer); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (scrollDiv.scrollHeight > 0) | 
					
						
							|  |  |  |                 return scrollDiv.scrollHeight; | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |                 if (objDiv.offsetHeight > 0) | 
					
						
							|  |  |  |                     return scrollDiv.offsetHeight; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             return null; // huh?
 | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // return true if we are in the "stick to bottom" mode
 | 
					
						
							|  |  |  |         isSticking : function() { | 
					
						
							|  |  |  |             var scrollDiv = $(this.scrollContainer); | 
					
						
							|  |  |  |             var currentHeight = this.getCurrentHeight(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // when used with the BODY tag, the height needs to be the viewport height, instead of
 | 
					
						
							|  |  |  |             // the element height.
 | 
					
						
							|  |  |  |             //var height = ((scrollDiv.style.pixelHeight) ? scrollDiv.style.pixelHeight : scrollDiv.offsetHeight);
 | 
					
						
							|  |  |  |             var height = getViewportHeight(); | 
					
						
							|  |  |  |             var diff = currentHeight - scrollDiv.scrollTop - height; | 
					
						
							|  |  |  |             // window.alert("currentHeight=" + currentHeight + ",scrollTop=" + scrollDiv.scrollTop + ",height=" + height);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             return diff < this.bottomThreshold; | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         scrollToBottom : function() { | 
					
						
							|  |  |  |             var scrollDiv = $(this.scrollContainer); | 
					
						
							|  |  |  |             scrollDiv.scrollTop = this.getCurrentHeight(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2007-01-25 23:47:33 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-30 22:25:33 +08:00
										 |  |  | // scroll the current window to display the given element or the region.
 | 
					
						
							|  |  |  | function scrollIntoView(e) { | 
					
						
							|  |  |  |     function calcDelta(ex1,ex2,vx1,vw) { | 
					
						
							|  |  |  |         var vx2=vx1+vw; | 
					
						
							|  |  |  |         var a; | 
					
						
							|  |  |  |         a = Math.min(vx1-ex1,vx2-ex2); | 
					
						
							|  |  |  |         if(a>0)     return -a; | 
					
						
							|  |  |  |         a = Math.min(ex1-vx1,ex2-vx2); | 
					
						
							|  |  |  |         if(a>0)     return a; | 
					
						
							|  |  |  |         return 0; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var D = YAHOO.util.Dom; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var r; | 
					
						
							|  |  |  |     if(e.tagName!=null) r = D.getRegion(e); | 
					
						
							|  |  |  |     else                r = e; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var dx = calcDelta(r.left,r.right, document.body.scrollLeft, D.getViewportWidth()); | 
					
						
							|  |  |  |     var dy = calcDelta(r.top, r.bottom,document.body.scrollTop,  D.getViewportHeight()); | 
					
						
							|  |  |  |     window.scrollBy(dx,dy); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2007-01-25 23:47:33 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // used in expandableTextbox.jelly to change a input field into a text area
 | 
					
						
							|  |  |  | function expandTextArea(button,id) { | 
					
						
							|  |  |  |     button.style.display="none"; | 
					
						
							|  |  |  |     var field = document.getElementById(id); | 
					
						
							|  |  |  |     var value = field.value.replace(/ +/g,'\n'); | 
					
						
							| 
									
										
										
										
											2007-02-15 23:44:20 +08:00
										 |  |  |     var n = field; | 
					
						
							|  |  |  |     while(n.tagName!="TABLE") | 
					
						
							|  |  |  |         n = n.parentNode; | 
					
						
							|  |  |  |     n.parentNode.innerHTML = | 
					
						
							| 
									
										
										
										
											2007-01-25 23:47:33 +08:00
										 |  |  |         "<textarea rows=8 class='setting-input' name='"+field.name+"'>"+value+"</textarea>"; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2007-02-04 23:22:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // refresh a part of the HTML specified by the given ID,
 | 
					
						
							|  |  |  | // by using the contents fetched from the given URL.
 | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  | function refreshPart(id,url,crumbName,crumb) { | 
					
						
							| 
									
										
										
										
											2009-01-11 04:08:47 +08:00
										 |  |  |     var f = function() { | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |     	var params = new Array(1); | 
					
						
							|  |  |  |     	params[crumbName] = crumb; | 
					
						
							| 
									
										
										
										
											2007-02-04 23:22:26 +08:00
										 |  |  |         new Ajax.Request(url, { | 
					
						
							| 
									
										
										
										
											2007-02-07 10:13:37 +08:00
										 |  |  |             method: "post", | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |             parameters: params, | 
					
						
							| 
									
										
										
										
											2007-02-07 10:34:48 +08:00
										 |  |  |             onSuccess: function(rsp) { | 
					
						
							| 
									
										
										
										
											2007-02-04 23:22:26 +08:00
										 |  |  |                 var hist = $(id); | 
					
						
							|  |  |  |                 var p = hist.parentNode; | 
					
						
							|  |  |  |                 var next = hist.nextSibling; | 
					
						
							|  |  |  |                 p.removeChild(hist); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 var div = document.createElement('div'); | 
					
						
							|  |  |  |                 div.innerHTML = rsp.responseText; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-13 12:31:20 +08:00
										 |  |  |                 var node = div.firstChild; | 
					
						
							|  |  |  |                 p.insertBefore(node, next); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:35:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-13 12:31:20 +08:00
										 |  |  |                 Behaviour.applySubtree(node); | 
					
						
							| 
									
										
										
										
											2007-09-04 03:35:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-11 04:08:47 +08:00
										 |  |  |                 if(isRunAsTest) return; | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |                 refreshPart(id,url,crumbName,crumb); | 
					
						
							| 
									
										
										
										
											2007-02-04 23:22:26 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2009-01-11 04:08:47 +08:00
										 |  |  |     }; | 
					
						
							|  |  |  |     // if run as test, just do it once and do it now to make sure it's working,
 | 
					
						
							|  |  |  |     // but don't repeat.
 | 
					
						
							|  |  |  |     if(isRunAsTest) f(); | 
					
						
							|  |  |  |     else    window.setTimeout(f, 5000); | 
					
						
							| 
									
										
										
										
											2007-02-14 01:06:10 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |     Perform URL encode. | 
					
						
							|  |  |  |     Taken from http://www.cresc.co.jp/tech/java/URLencoding/JavaScript_URLEncoding.htm
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | function encode(str){ | 
					
						
							|  |  |  |     var s, u; | 
					
						
							|  |  |  |     var s0 = "";                // encoded str
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for (var i = 0; i < str.length; i++){   // scan the source
 | 
					
						
							|  |  |  |         s = str.charAt(i); | 
					
						
							|  |  |  |         u = str.charCodeAt(i);          // get unicode of the char
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (s == " "){s0 += "+";}       // SP should be converted to "+"
 | 
					
						
							|  |  |  |         else { | 
					
						
							|  |  |  |             if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){     // check for escape
 | 
					
						
							|  |  |  |                 s0 = s0 + s;           // don't escape
 | 
					
						
							|  |  |  |             } else {                      // escape
 | 
					
						
							|  |  |  |                 if ((u >= 0x0) && (u <= 0x7f)){     // single byte format
 | 
					
						
							|  |  |  |                     s = "0"+u.toString(16); | 
					
						
							|  |  |  |                     s0 += "%"+ s.substr(s.length-2); | 
					
						
							|  |  |  |                 } else | 
					
						
							|  |  |  |                 if (u > 0x1fffff){     // quaternary byte format (extended)
 | 
					
						
							|  |  |  |                     s0 += "%" + (0xF0 + ((u & 0x1c0000) >> 18)).toString(16); | 
					
						
							|  |  |  |                     s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16); | 
					
						
							|  |  |  |                     s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16); | 
					
						
							|  |  |  |                     s0 += "%" + (0x80 + (u & 0x3f)).toString(16); | 
					
						
							|  |  |  |                 } else | 
					
						
							|  |  |  |                 if (u > 0x7ff){        // triple byte format
 | 
					
						
							|  |  |  |                     s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16); | 
					
						
							|  |  |  |                     s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16); | 
					
						
							|  |  |  |                     s0 += "%" + (0x80 + (u & 0x3f)).toString(16); | 
					
						
							|  |  |  |                 } else {                      // double byte format
 | 
					
						
							|  |  |  |                     s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16); | 
					
						
							|  |  |  |                     s0 += "%" + (0x80 + (u & 0x3f)).toString(16); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return s0; | 
					
						
							| 
									
										
										
										
											2007-03-11 07:51:23 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-12 02:19:38 +08:00
										 |  |  | // when there are multiple form elements of the same name,
 | 
					
						
							|  |  |  | // this method returns the input field of the given name that pairs up
 | 
					
						
							|  |  |  | // with the specified 'base' input element.
 | 
					
						
							|  |  |  | Form.findMatchingInput = function(base, name) { | 
					
						
							|  |  |  |     // find the FORM element that owns us
 | 
					
						
							|  |  |  |     var f = base; | 
					
						
							|  |  |  |     while (f.tagName != "FORM") | 
					
						
							|  |  |  |         f = f.parentNode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var bases = Form.getInputs(f, null, base.name); | 
					
						
							|  |  |  |     var targets = Form.getInputs(f, null, name); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for (var i=0; i<bases.length; i++) { | 
					
						
							|  |  |  |         if (bases[i] == base) | 
					
						
							|  |  |  |             return targets[i]; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return null;        // not found
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-20 14:01:11 +08:00
										 |  |  | // used witih <dropdownList> and <dropdownListBlock> to control visibility
 | 
					
						
							|  |  |  | function updateDropDownList(sel) { | 
					
						
							| 
									
										
										
										
											2007-11-30 14:16:35 +08:00
										 |  |  |     for (var i = 0; i < sel.subForms.length; i++) { | 
					
						
							| 
									
										
										
										
											2007-03-20 14:01:11 +08:00
										 |  |  |         var show = sel.selectedIndex == i; | 
					
						
							| 
									
										
										
										
											2007-11-30 14:16:35 +08:00
										 |  |  |         var f = sel.subForms[i]; | 
					
						
							| 
									
										
										
										
											2007-03-20 14:01:11 +08:00
										 |  |  |         var td = f.start; | 
					
						
							|  |  |  |         while (true) { | 
					
						
							|  |  |  |             td.style.display = (show ? "" : "none"); | 
					
						
							| 
									
										
										
										
											2008-04-08 14:33:05 +08:00
										 |  |  |             if(show) | 
					
						
							| 
									
										
										
										
											2008-04-16 14:13:29 +08:00
										 |  |  |                 td.removeAttribute("field-disabled"); | 
					
						
							| 
									
										
										
										
											2008-04-08 14:33:05 +08:00
										 |  |  |             else    // buildFormData uses this attribute and ignores the contents
 | 
					
						
							| 
									
										
										
										
											2008-04-16 14:13:29 +08:00
										 |  |  |                 td.setAttribute("field-disabled","true"); | 
					
						
							| 
									
										
										
										
											2007-03-20 14:01:11 +08:00
										 |  |  |             if (td == f.end) break; | 
					
						
							|  |  |  |             td = td.nextSibling; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // code for supporting repeatable.jelly
 | 
					
						
							| 
									
										
										
										
											2007-10-29 00:40:49 +08:00
										 |  |  | var repeatableSupport = { | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |     // set by the inherited instance to the insertion point DIV
 | 
					
						
							|  |  |  |     insertionPoint: null, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // HTML text of the repeated chunk
 | 
					
						
							|  |  |  |     blockHTML: null, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // containing <div>.
 | 
					
						
							|  |  |  |     container: null, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-29 11:58:25 +08:00
										 |  |  |     // block name for structured HTML
 | 
					
						
							|  |  |  |     name : null, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |     // do the initialization
 | 
					
						
							|  |  |  |     init : function(container,master,insertionPoint) { | 
					
						
							|  |  |  |         this.container = $(container); | 
					
						
							|  |  |  |         this.container.tag = this; | 
					
						
							|  |  |  |         master = $(master); | 
					
						
							|  |  |  |         this.blockHTML = master.innerHTML; | 
					
						
							|  |  |  |         master.parentNode.removeChild(master); | 
					
						
							|  |  |  |         this.insertionPoint = $(insertionPoint); | 
					
						
							| 
									
										
										
										
											2007-09-29 11:58:25 +08:00
										 |  |  |         this.name = master.getAttribute("name"); | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |         this.update(); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // insert one more block at the insertion position
 | 
					
						
							|  |  |  |     expand : function() { | 
					
						
							|  |  |  |         // importNode isn't supported in IE.
 | 
					
						
							|  |  |  |         // nc = document.importNode(node,true);
 | 
					
						
							|  |  |  |         var nc = document.createElement("div"); | 
					
						
							|  |  |  |         nc.className = "repeated-chunk"; | 
					
						
							| 
									
										
										
										
											2007-10-26 08:16:40 +08:00
										 |  |  |         nc.setAttribute("name",this.name); | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |         nc.innerHTML = this.blockHTML; | 
					
						
							|  |  |  |         this.insertionPoint.parentNode.insertBefore(nc, this.insertionPoint); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Behaviour.applySubtree(nc); | 
					
						
							|  |  |  |         this.update(); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // update CSS classes associated with repeated items.
 | 
					
						
							|  |  |  |     update : function() { | 
					
						
							|  |  |  |         var children = []; | 
					
						
							|  |  |  |         for( var n=this.container.firstChild; n!=null; n=n.nextSibling ) | 
					
						
							|  |  |  |             if(Element.hasClassName(n,"repeated-chunk")) | 
					
						
							|  |  |  |                 children.push(n); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-30 14:25:18 +08:00
										 |  |  |         if(children.length==0) { | 
					
						
							|  |  |  |             // noop
 | 
					
						
							|  |  |  |         } else | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |         if(children.length==1) { | 
					
						
							|  |  |  |             children[0].className = "repeated-chunk first last only"; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             children[0].className = "repeated-chunk first"; | 
					
						
							|  |  |  |             for(var i=1; i<children.length-1; i++) | 
					
						
							|  |  |  |                 children[i].className = "repeated-chunk middle"; | 
					
						
							|  |  |  |             children[children.length-1].className = "repeated-chunk last"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // these are static methods that don't rely on 'this'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // called when 'delete' button is clicked
 | 
					
						
							|  |  |  |     onDelete : function(n) { | 
					
						
							|  |  |  |         while (!Element.hasClassName(n,"repeated-chunk")) | 
					
						
							|  |  |  |             n = n.parentNode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var p = n.parentNode; | 
					
						
							|  |  |  |         p.removeChild(n); | 
					
						
							|  |  |  |         p.tag.update(); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // called when 'add' button is clicked
 | 
					
						
							|  |  |  |     onAdd : function(n) { | 
					
						
							|  |  |  |         while(n.tag==null) | 
					
						
							|  |  |  |             n = n.parentNode; | 
					
						
							|  |  |  |         n.tag.expand(); | 
					
						
							| 
									
										
										
										
											2009-05-30 01:14:30 +08:00
										 |  |  |         // Hack to hide tool home when a new tool has some installers.
 | 
					
						
							|  |  |  |         var inputs = n.getElementsByTagName('INPUT'); | 
					
						
							|  |  |  |         for (var i = 0; i < inputs.length; i++) { | 
					
						
							|  |  |  |             var input = inputs[i]; | 
					
						
							|  |  |  |             if (input.name == 'hudson-tools-InstallSourceProperty') { | 
					
						
							|  |  |  |                 updateOptionalBlock(input, false); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2007-03-26 12:44:40 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-04-06 22:23:09 +08:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-06 12:15:17 +08:00
										 |  |  | // Used by radioBlock.jelly to wire up expandable radio block
 | 
					
						
							|  |  |  | function addRadioBlock(id) { | 
					
						
							|  |  |  |     // prototype object to be duplicated for each radio button group
 | 
					
						
							|  |  |  |     var radioBlockSupport = { | 
					
						
							|  |  |  |         buttons : null, | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-06 12:15:17 +08:00
										 |  |  |         updateButtons : function() { | 
					
						
							|  |  |  |             for( var i=0; i<this.buttons.length; i++ ) | 
					
						
							|  |  |  |                 this.buttons[i](); | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-06 12:15:17 +08:00
										 |  |  |         // update one block based on the status of the given radio button
 | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |         updateSingleButton : function(radio, blockStart, blockEnd) { | 
					
						
							| 
									
										
										
										
											2007-06-06 12:15:17 +08:00
										 |  |  |             var tbl = blockStart.parentNode; | 
					
						
							|  |  |  |             var i = false; | 
					
						
							|  |  |  |             var o = false; | 
					
						
							|  |  |  |             var show = radio.checked; | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |             for (var j = 0; tbl.rows[j]; j++) { | 
					
						
							|  |  |  |                 var n = tbl.rows[j]; | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |                 if (n == blockEnd) | 
					
						
							|  |  |  |                     o = true; | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |                 if (i && !o) { | 
					
						
							|  |  |  |                     if (show) | 
					
						
							|  |  |  |                         n.style.display = ""; | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                         n.style.display = "none"; | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-05 15:25:22 +08:00
										 |  |  |                 if (n == blockStart) { | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |                     i = true; | 
					
						
							| 
									
										
										
										
											2007-12-05 15:25:22 +08:00
										 |  |  |                     if (n.getAttribute('hasHelp') == 'true') | 
					
						
							|  |  |  |                         j++; | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2007-06-06 12:15:17 +08:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2007-06-06 12:15:17 +08:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-06 12:15:17 +08:00
										 |  |  |     // when one radio button is clicked, we need to update foldable block for
 | 
					
						
							|  |  |  |     // other radio buttons with the same name. To do this, group all the
 | 
					
						
							|  |  |  |     // radio buttons with the same name together and hang it under the form object
 | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  |     var r = document.getElementById('Rb' + id); | 
					
						
							|  |  |  |     var f = r.form; | 
					
						
							|  |  |  |     var radios = f.radios; | 
					
						
							|  |  |  |     if (radios == null) | 
					
						
							|  |  |  |         f.radios = radios = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var g = radios[r.name]; | 
					
						
							|  |  |  |     if (g == null) { | 
					
						
							|  |  |  |         radios[r.name] = g = object(radioBlockSupport); | 
					
						
							|  |  |  |         g.buttons = []; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |     var s = document.getElementById("rb_s"+id); | 
					
						
							|  |  |  |     var e = document.getElementById("rb_e"+id); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  |     var u = function() { | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |         g.updateSingleButton(r,s,e); | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |     applyNameRef(s,e,'Rb'+id); | 
					
						
							| 
									
										
										
										
											2007-06-06 12:13:04 +08:00
										 |  |  |     g.buttons.push(u); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // apply the initial visibility
 | 
					
						
							|  |  |  |     u(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // install event handlers to update visibility.
 | 
					
						
							|  |  |  |     // needs to use onclick and onchange for Safari compatibility
 | 
					
						
							|  |  |  |     r.onclick = r.onchange = function() { g.updateButtons(); }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-06 22:23:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  | function updateBuildHistory(ajaxUrl,nBuild,crumbName,crumb) { | 
					
						
							| 
									
										
										
										
											2008-09-03 05:34:47 +08:00
										 |  |  |     if(isRunAsTest) return; | 
					
						
							| 
									
										
										
										
											2007-04-06 22:23:09 +08:00
										 |  |  |     $('buildHistory').headers = ["n",nBuild]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function updateBuilds() { | 
					
						
							|  |  |  |         var bh = $('buildHistory'); | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |     	var params = new Array(1); | 
					
						
							|  |  |  |     	params[crumbName] = crumb; | 
					
						
							| 
									
										
										
										
											2007-10-09 21:45:30 +08:00
										 |  |  |         new Ajax.Request(ajaxUrl, { | 
					
						
							| 
									
										
										
										
											2007-04-06 22:23:09 +08:00
										 |  |  |             requestHeaders: bh.headers, | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |             method: "post", | 
					
						
							|  |  |  |             parameters: params, | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:13 +08:00
										 |  |  |             onSuccess: function(rsp) { | 
					
						
							| 
									
										
										
										
											2007-04-06 22:23:09 +08:00
										 |  |  |                 var rows = bh.rows; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 //delete rows with transitive data
 | 
					
						
							|  |  |  |                 while (rows.length > 2 && Element.hasClassName(rows[1], "transitive")) | 
					
						
							|  |  |  |                     Element.remove(rows[1]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // insert new rows
 | 
					
						
							|  |  |  |                 var div = document.createElement('div'); | 
					
						
							|  |  |  |                 div.innerHTML = rsp.responseText; | 
					
						
							| 
									
										
										
										
											2007-07-30 01:29:45 +08:00
										 |  |  |                 Behaviour.applySubtree(div); | 
					
						
							| 
									
										
										
										
											2007-04-06 22:23:09 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 var pivot = rows[0]; | 
					
						
							|  |  |  |                 var newRows = div.firstChild.rows; | 
					
						
							|  |  |  |                 for (var i = newRows.length - 1; i >= 0; i--) { | 
					
						
							|  |  |  |                     pivot.parentNode.insertBefore(newRows[i], pivot.nextSibling); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // next update
 | 
					
						
							|  |  |  |                 bh.headers = ["n",rsp.getResponseHeader("n")]; | 
					
						
							|  |  |  |                 window.setTimeout(updateBuilds, 5000); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     window.setTimeout(updateBuilds, 5000); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2007-07-28 13:31:33 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // send async request to the given URL (which will send back serialized ListBoxModel object),
 | 
					
						
							|  |  |  | // then use the result to fill the list box.
 | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  | function updateListBox(listBox,url,crumbName,crumb) { | 
					
						
							|  |  |  | 	var params = new Array(1); | 
					
						
							|  |  |  | 	params[crumbName] = crumb; | 
					
						
							| 
									
										
										
										
											2007-07-28 13:31:33 +08:00
										 |  |  |     new Ajax.Request(url, { | 
					
						
							|  |  |  |         method: "post", | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |         parameters: params, | 
					
						
							| 
									
										
										
										
											2007-09-04 00:46:13 +08:00
										 |  |  |         onSuccess: function(rsp) { | 
					
						
							| 
									
										
										
										
											2007-07-28 13:31:33 +08:00
										 |  |  |             var l = $(listBox); | 
					
						
							|  |  |  |             while(l.length>0)   l.options[0] = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             var opts = eval('('+rsp.responseText+')').values; | 
					
						
							|  |  |  |             for( var i=0; i<opts.length; i++ ) { | 
					
						
							|  |  |  |                 l.options[i] = new Option(opts[i].name,opts[i].value); | 
					
						
							|  |  |  |                 if(opts[i].selected) | 
					
						
							|  |  |  |                     l.selectedIndex = i; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2007-10-30 06:21:03 +08:00
										 |  |  |         }, | 
					
						
							|  |  |  |         onFailure: function(rsp) { | 
					
						
							|  |  |  |             var l = $(listBox); | 
					
						
							|  |  |  |             l.options[0] = null; | 
					
						
							| 
									
										
										
										
											2007-07-28 13:31:33 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2007-08-05 09:48:03 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-05 13:43:17 +08:00
										 |  |  | // get the cascaded computed style value. 'a' is the style name like 'backgroundColor'
 | 
					
						
							|  |  |  | function getStyle(e,a){ | 
					
						
							|  |  |  |   if(document.defaultView && document.defaultView.getComputedStyle) | 
					
						
							|  |  |  |     return document.defaultView.getComputedStyle(e,null).getPropertyValue(a.replace(/([A-Z])/g, "-$1")); | 
					
						
							|  |  |  |   if(e.currentStyle) | 
					
						
							| 
									
										
										
										
											2007-08-05 13:44:17 +08:00
										 |  |  |     return e.currentStyle[a]; | 
					
						
							|  |  |  |   return null; | 
					
						
							| 
									
										
										
										
											2007-08-05 13:43:17 +08:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // set up logic behind the search box
 | 
					
						
							| 
									
										
										
										
											2007-08-05 09:48:03 +08:00
										 |  |  | function createSearchBox(searchURL) { | 
					
						
							|  |  |  |     var ds = new YAHOO.widget.DS_XHR(searchURL+"suggest",["suggestions","name"]); | 
					
						
							|  |  |  |     ds.queryMatchCase = false; | 
					
						
							|  |  |  |     var ac = new YAHOO.widget.AutoComplete("search-box","search-box-completion",ds); | 
					
						
							|  |  |  |     ac.typeAhead = false; | 
					
						
							| 
									
										
										
										
											2007-08-05 13:43:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     var box   = $("search-box"); | 
					
						
							|  |  |  |     var sizer = $("search-box-sizer"); | 
					
						
							|  |  |  |     var comp  = $("search-box-completion"); | 
					
						
							|  |  |  |     var minW  = $("search-box-minWidth"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Behaviour.addLoadEvent(function(){ | 
					
						
							|  |  |  |         // make sure all three components have the same font settings
 | 
					
						
							|  |  |  |         function copyFontStyle(s,d) { | 
					
						
							|  |  |  |             var ds = d.style; | 
					
						
							|  |  |  |             ds.fontFamily = getStyle(s,"fontFamily"); | 
					
						
							|  |  |  |             ds.fontSize = getStyle(s,"fontSize"); | 
					
						
							|  |  |  |             ds.fontStyle = getStyle(s,"fontStyle"); | 
					
						
							|  |  |  |             ds.fontWeight = getStyle(s,"fontWeight"); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         copyFontStyle(box,sizer); | 
					
						
							|  |  |  |         copyFontStyle(box,minW); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // update positions and sizes of the components relevant to search
 | 
					
						
							|  |  |  |     function updatePos() { | 
					
						
							|  |  |  |         function max(a,b) { if(a>b) return a; else return b; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         sizer.innerHTML = box.value; | 
					
						
							|  |  |  |         var w = max(sizer.offsetWidth,minW.offsetWidth); | 
					
						
							|  |  |  |         box.style.width = | 
					
						
							|  |  |  |         comp.style.width =  | 
					
						
							|  |  |  |         comp.firstChild.style.width = (w+60)+"px"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var pos = YAHOO.util.Dom.getXY(box); | 
					
						
							|  |  |  |         pos[1] += YAHOO.util.Dom.get(box).offsetHeight + 2; | 
					
						
							|  |  |  |         YAHOO.util.Dom.setXY(comp, pos); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     updatePos(); | 
					
						
							|  |  |  |     box.onkeyup = updatePos; | 
					
						
							| 
									
										
										
										
											2007-09-01 22:21:54 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // structured form submission handling
 | 
					
						
							|  |  |  | //   see http://hudson.gotdns.com/wiki/display/HUDSON/Structured+Form+Submission
 | 
					
						
							|  |  |  | function buildFormTree(form) { | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |     try { | 
					
						
							|  |  |  |         // I initially tried to use an associative array with DOM elemnets as keys
 | 
					
						
							|  |  |  |         // but that doesn't seem to work neither on IE nor Firefox.
 | 
					
						
							|  |  |  |         // so I switch back to adding a dynamic property on DOM.
 | 
					
						
							|  |  |  |         form.formDom = {}; // root object
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var doms = []; // DOMs that we added 'formDom' for.
 | 
					
						
							|  |  |  |         doms.push(form); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-01-18 14:47:26 +08:00
										 |  |  |         function shortenName(name) { | 
					
						
							| 
									
										
										
										
											2008-02-28 00:00:13 +08:00
										 |  |  |             // [abc.def.ghi] -> abc.def.ghi
 | 
					
						
							|  |  |  |             if(name.startsWith('[')) | 
					
						
							|  |  |  |                 return name.substring(1,name.length-1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // abc.def.ghi -> ghi
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |             var idx = name.lastIndexOf('.'); | 
					
						
							|  |  |  |             if(idx>=0)  name = name.substring(idx+1); | 
					
						
							| 
									
										
										
										
											2008-01-18 14:47:26 +08:00
										 |  |  |             return name; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-01-18 14:47:26 +08:00
										 |  |  |         function addProperty(parent,name,value) { | 
					
						
							|  |  |  |             name = shortenName(name); | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |             if(parent[name]!=null) { | 
					
						
							|  |  |  |                 if(parent[name].push==null) // is this array?
 | 
					
						
							|  |  |  |                     parent[name] = [ parent[name] ]; | 
					
						
							|  |  |  |                 parent[name].push(value); | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 parent[name] = value; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2007-09-01 22:21:54 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |         // find the grouping parent node, which will have @name.
 | 
					
						
							|  |  |  |         // then return the corresponding object in the map
 | 
					
						
							|  |  |  |         function findParent(e) { | 
					
						
							|  |  |  |             while(e!=form) { | 
					
						
							|  |  |  |                 e = e.parentNode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // this is used to create a group where no single containing parent node exists,
 | 
					
						
							|  |  |  |                 // like <optionalBlock>
 | 
					
						
							|  |  |  |                 var nameRef = e.getAttribute("nameRef"); | 
					
						
							|  |  |  |                 if(nameRef!=null) | 
					
						
							|  |  |  |                     e = $(nameRef); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-16 14:13:29 +08:00
										 |  |  |                 if(e.getAttribute("field-disabled")!=null) | 
					
						
							| 
									
										
										
										
											2008-04-08 14:33:05 +08:00
										 |  |  |                     return {};  // this field shouldn't contribute to the final result
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |                 var name = e.getAttribute("name"); | 
					
						
							|  |  |  |                 if(name!=null) { | 
					
						
							| 
									
										
										
										
											2008-04-08 03:40:48 +08:00
										 |  |  |                     if(e.tagName=="INPUT" && !xor(e.checked,Element.hasClassName(e,"negative"))) | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |                         return {};  // field is not active
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     var m = e.formDom; | 
					
						
							|  |  |  |                     if(m==null) { | 
					
						
							|  |  |  |                         // this is a new grouping node
 | 
					
						
							|  |  |  |                         doms.push(e); | 
					
						
							|  |  |  |                         e.formDom = m = {}; | 
					
						
							|  |  |  |                         addProperty(findParent(e), name, m); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     return m; | 
					
						
							| 
									
										
										
										
											2007-09-01 22:21:54 +08:00
										 |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |             return form.formDom; // guaranteed non-null
 | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2007-09-01 22:21:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |         var jsonElement = null; | 
					
						
							| 
									
										
										
										
											2007-09-28 12:33:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |         for( var i=0; i<form.elements.length; i++ ) { | 
					
						
							|  |  |  |             var e = form.elements[i]; | 
					
						
							|  |  |  |             if(e.name=="json") { | 
					
						
							|  |  |  |                 jsonElement = e; | 
					
						
							|  |  |  |                 continue; | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2007-10-29 09:07:31 +08:00
										 |  |  |             if(e.tagName=="FIELDSET") | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |                 continue; | 
					
						
							| 
									
										
										
										
											2008-01-18 14:47:26 +08:00
										 |  |  |             if(e.tagName=="SELECT" && e.multiple) { | 
					
						
							|  |  |  |                 var values = []; | 
					
						
							|  |  |  |                 for( var o=0; o<e.options.length; o++ ) { | 
					
						
							|  |  |  |                     var opt = e.options.item(o); | 
					
						
							|  |  |  |                     if(opt.selected) | 
					
						
							|  |  |  |                         values.push(opt.value); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 addProperty(findParent(e),e.name,values); | 
					
						
							|  |  |  |                 continue; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |                  | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |             var p; | 
					
						
							|  |  |  |             var type = e.getAttribute("type"); | 
					
						
							|  |  |  |             if(type==null)  type=""; | 
					
						
							|  |  |  |             switch(type.toLowerCase()) { | 
					
						
							|  |  |  |             case "button": | 
					
						
							|  |  |  |             case "submit": | 
					
						
							|  |  |  |                 break; | 
					
						
							|  |  |  |             case "checkbox": | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |                 p = findParent(e); | 
					
						
							| 
									
										
										
										
											2008-04-08 03:40:48 +08:00
										 |  |  |                 var checked = xor(e.checked,Element.hasClassName(e,"negative")); | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |                 if(!e.groupingNode) | 
					
						
							| 
									
										
										
										
											2008-04-07 04:29:25 +08:00
										 |  |  |                     addProperty(p, e.name, checked); | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |                 else { | 
					
						
							| 
									
										
										
										
											2008-04-07 04:29:25 +08:00
										 |  |  |                     if(checked) | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |                         addProperty(p, e.name, e.formDom = {}); | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  |                 break; | 
					
						
							| 
									
										
										
										
											2008-08-11 13:08:33 +08:00
										 |  |  |             case "file": | 
					
						
							|  |  |  |                 // to support structured form submission with file uploads,
 | 
					
						
							|  |  |  |                 // rename form field names to unique ones, and leave this name mapping information
 | 
					
						
							|  |  |  |                 // in JSON. this behavior is backward incompatible, so only do
 | 
					
						
							|  |  |  |                 // this when
 | 
					
						
							|  |  |  |                 p = findParent(e); | 
					
						
							|  |  |  |                 if(e.getAttribute("jsonAware")!=null) { | 
					
						
							|  |  |  |                     var on = e.getAttribute("originalName"); | 
					
						
							|  |  |  |                     if(on!=null) { | 
					
						
							|  |  |  |                         addProperty(p,on,e.name); | 
					
						
							|  |  |  |                     } else { | 
					
						
							|  |  |  |                         var uniqName = "file"+(iota++); | 
					
						
							|  |  |  |                         addProperty(p,e.name,uniqName); | 
					
						
							|  |  |  |                         e.setAttribute("originalName",e.name); | 
					
						
							|  |  |  |                         e.name = uniqName; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 // switch to multipart/form-data to support file submission
 | 
					
						
							| 
									
										
										
										
											2009-02-07 05:54:48 +08:00
										 |  |  |                 // @enctype is the standard, but IE needs @encoding.
 | 
					
						
							|  |  |  |                 form.enctype = form.encoding = "multipart/form-data"; | 
					
						
							| 
									
										
										
										
											2008-08-11 13:08:33 +08:00
										 |  |  |                 break; | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |             case "radio": | 
					
						
							|  |  |  |                 if(!e.checked)  break; | 
					
						
							|  |  |  |                 if(e.groupingNode) { | 
					
						
							|  |  |  |                     p = findParent(e); | 
					
						
							|  |  |  |                     addProperty(p, e.name, e.formDom = { value: e.value }); | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2007-09-04 11:42:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |                 // otherwise fall through
 | 
					
						
							|  |  |  |             default: | 
					
						
							|  |  |  |                 p = findParent(e); | 
					
						
							|  |  |  |                 addProperty(p, e.name, e.value); | 
					
						
							|  |  |  |                 break; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2007-09-01 22:21:54 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |         jsonElement.value = Object.toJSON(form.formDom); | 
					
						
							| 
									
										
										
										
											2007-09-01 22:21:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  |         // clean up
 | 
					
						
							|  |  |  |         for( i=0; i<doms.length; i++ ) | 
					
						
							|  |  |  |             doms[i].formDom = null; | 
					
						
							| 
									
										
										
										
											2007-09-01 22:21:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 09:05:58 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return jsonElement.value; | 
					
						
							|  |  |  |     } catch(e) { | 
					
						
							|  |  |  |         alert(e); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-09-03 23:28:53 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // this used to be in prototype.js but it must have been removed somewhere between 1.4.0 to 1.5.1
 | 
					
						
							|  |  |  | String.prototype.trim = function() { | 
					
						
							| 
									
										
										
										
											2007-09-04 03:38:52 +08:00
										 |  |  |     var temp = this; | 
					
						
							|  |  |  |     var obj = /^(\s*)([\W\w]*)(\b\s*$)/; | 
					
						
							|  |  |  |     if (obj.test(temp)) | 
					
						
							|  |  |  |         temp = temp.replace(obj, '$2'); | 
					
						
							|  |  |  |     obj = /  /g; | 
					
						
							|  |  |  |     while (temp.match(obj)) | 
					
						
							|  |  |  |         temp = temp.replace(obj, " "); | 
					
						
							|  |  |  |     return temp; | 
					
						
							| 
									
										
										
										
											2007-09-03 23:28:53 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2007-10-26 14:33:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var hoverNotification = (function() { | 
					
						
							|  |  |  |     var msgBox; | 
					
						
							|  |  |  |     var body; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // animation effect that automatically hide the message box
 | 
					
						
							|  |  |  |     var effect = function(overlay, dur) { | 
					
						
							|  |  |  |         var o = YAHOO.widget.ContainerEffect.FADE(overlay, dur); | 
					
						
							|  |  |  |         o.animateInCompleteEvent.subscribe(function() { | 
					
						
							|  |  |  |             window.setTimeout(function() { | 
					
						
							|  |  |  |                 msgBox.hide() | 
					
						
							|  |  |  |             }, 1500); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |         return o; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function init() { | 
					
						
							|  |  |  |         if(msgBox!=null)  return;   // already initialized
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var div = document.createElement("DIV"); | 
					
						
							|  |  |  |         document.body.appendChild(div); | 
					
						
							|  |  |  |         div.innerHTML = "<div id=hoverNotification><div class=bd></div></div>"; | 
					
						
							|  |  |  |         body = $('hoverNotification'); | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         msgBox = new YAHOO.widget.Overlay(body, { | 
					
						
							|  |  |  |           visible:false, | 
					
						
							|  |  |  |           width:"10em", | 
					
						
							|  |  |  |           zIndex:1000, | 
					
						
							|  |  |  |           effect:{ | 
					
						
							|  |  |  |             effect:effect, | 
					
						
							|  |  |  |             duration:0.25 | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |         msgBox.render(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return function(title,anchor) { | 
					
						
							|  |  |  |         init(); | 
					
						
							|  |  |  |         body.innerHTML = title; | 
					
						
							|  |  |  |         var xy = YAHOO.util.Dom.getXY(anchor); | 
					
						
							|  |  |  |         xy[0] += 48; | 
					
						
							|  |  |  |         xy[1] += anchor.offsetHeight; | 
					
						
							|  |  |  |         msgBox.cfg.setProperty("xy",xy); | 
					
						
							|  |  |  |         msgBox.show(); | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | })(); | 
					
						
							| 
									
										
										
										
											2008-03-24 13:02:31 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |     D&D implementation for heterogeneous list. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | var DragDrop = function(id, sGroup, config) { | 
					
						
							|  |  |  |     DragDrop.superclass.constructor.apply(this, arguments); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | (function() { | 
					
						
							|  |  |  |     var Dom = YAHOO.util.Dom; | 
					
						
							|  |  |  |     var Event = YAHOO.util.Event; | 
					
						
							|  |  |  |     var DDM = YAHOO.util.DragDropMgr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     YAHOO.extend(DragDrop, YAHOO.util.DDProxy, { | 
					
						
							|  |  |  |         startDrag: function(x, y) { | 
					
						
							|  |  |  |             var el = this.getEl(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             this.resetConstraints(); | 
					
						
							|  |  |  |             this.setXConstraint(0,0);    // D&D is for Y-axis only
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // set Y constraint to be within the container
 | 
					
						
							|  |  |  |             var totalHeight = el.parentNode.offsetHeight; | 
					
						
							|  |  |  |             var blockHeight = el.offsetHeight; | 
					
						
							|  |  |  |             this.setYConstraint(el.offsetTop, totalHeight-blockHeight-el.offsetTop); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             el.style.visibility = "hidden"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             this.goingUp = false; | 
					
						
							|  |  |  |             this.lastY = 0; | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         endDrag: function(e) { | 
					
						
							|  |  |  |             var srcEl = this.getEl(); | 
					
						
							|  |  |  |             var proxy = this.getDragEl(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Show the proxy element and animate it to the src element's location
 | 
					
						
							|  |  |  |             Dom.setStyle(proxy, "visibility", ""); | 
					
						
							|  |  |  |             var a = new YAHOO.util.Motion( | 
					
						
							|  |  |  |                 proxy, { | 
					
						
							|  |  |  |                     points: { | 
					
						
							|  |  |  |                         to: Dom.getXY(srcEl) | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 0.2, | 
					
						
							|  |  |  |                 YAHOO.util.Easing.easeOut | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |             var proxyid = proxy.id; | 
					
						
							|  |  |  |             var thisid = this.id; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Hide the proxy and show the source element when finished with the animation
 | 
					
						
							|  |  |  |             a.onComplete.subscribe(function() { | 
					
						
							|  |  |  |                     Dom.setStyle(proxyid, "visibility", "hidden"); | 
					
						
							|  |  |  |                     Dom.setStyle(thisid, "visibility", ""); | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |             a.animate(); | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         onDrag: function(e) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Keep track of the direction of the drag for use during onDragOver
 | 
					
						
							|  |  |  |             var y = Event.getPageY(e); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (y < this.lastY) { | 
					
						
							|  |  |  |                 this.goingUp = true; | 
					
						
							|  |  |  |             } else if (y > this.lastY) { | 
					
						
							|  |  |  |                 this.goingUp = false; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             this.lastY = y; | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         onDragOver: function(e, id) { | 
					
						
							|  |  |  |             var srcEl = this.getEl(); | 
					
						
							|  |  |  |             var destEl = Dom.get(id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // We are only concerned with list items, we ignore the dragover
 | 
					
						
							|  |  |  |             // notifications for the list.
 | 
					
						
							|  |  |  |             if (destEl.nodeName == "DIV" && Dom.hasClass(destEl,"repeated-chunk")) { | 
					
						
							|  |  |  |                 var p = destEl.parentNode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // if going up, insert above the target element
 | 
					
						
							|  |  |  |                 p.insertBefore(srcEl, this.goingUp?destEl:destEl.nextSibling); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 DDM.refreshCache(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2008-05-30 07:50:36 +08:00
										 |  |  | })(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-13 02:52:43 +08:00
										 |  |  | function loadScript(href) { | 
					
						
							|  |  |  |     var s = document.createElement("script"); | 
					
						
							|  |  |  |     s.setAttribute("src",href); | 
					
						
							|  |  |  |     document.getElementsByTagName("HEAD")[0].appendChild(s); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  | var downloadService = { | 
					
						
							|  |  |  |     continuations: {}, | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |     crumbName: null, | 
					
						
							|  |  |  |     crumb: null, | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     download : function(id,url,info, postBack,completionHandler) { | 
					
						
							|  |  |  |         this.continuations[id] = {postBack:postBack,completionHandler:completionHandler}; | 
					
						
							|  |  |  |         loadScript(url+"?"+Hash.toQueryString(info)); | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     post : function(id,data) { | 
					
						
							|  |  |  |         var o = this.continuations[id]; | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |         var params = new Array(2); | 
					
						
							|  |  |  |         params["json"] = Object.toJSON(data); | 
					
						
							|  |  |  |         params[downloadService.crumbName] = downloadService.crumb; | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  |         new Ajax.Request(o.postBack, { | 
					
						
							|  |  |  |             method:"post", | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |             parameters:params, | 
					
						
							| 
									
										
											  
											
												Merged revisions 17324-17325,17428,17430,17473-17475,17481-17482,17555-17563,17571,17593-17595,17619-17620,17637-17644,17656-17657,17663-17665,17667-17670,17730,17753,17755-17758,17763-17768,17770-17771,17901,17906,17911-17912,17958,17961-17962,17970-17977 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/tool-autoinstallation
........
  r17324 | jglick | 2009-04-20 18:24:32 -0700 (Mon, 20 Apr 2009) | 2 lines
  
  Defensive cloning and Javadoc corrections.
  (Though it seems no one is using the default impls of these methods yet anyway.)
........
  r17325 | jglick | 2009-04-20 18:29:06 -0700 (Mon, 20 Apr 2009) | 1 line
  
  Deprecation of delegate method is intentional.
........
  r17428 | jglick | 2009-04-23 08:07:14 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Noting ToolLocationTranslator more prominently.
........
  r17430 | jglick | 2009-04-23 09:16:40 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unused imports.
........
  r17473 | jglick | 2009-04-23 19:21:11 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Allow Plugin.configure to see the StaplerRequest, needed for some kinds of calls.
........
  r17474 | jglick | 2009-04-23 19:25:54 -0700 (Thu, 23 Apr 2009) | 3 lines
  
  Initial sketch of plugin to manage tool installations across slaves.
  (Should really be under ../plugins/ but that was not branched, so putting here for the moment.)
........
  r17475 | jglick | 2009-04-23 20:29:36 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Typo in Javadoc.
........
  r17481 | jglick | 2009-04-23 22:46:26 -0700 (Thu, 23 Apr 2009) | 1 line
  
  Unzip of an unbuffered stream is painfully slow.
........
  r17482 | jglick | 2009-04-23 22:48:01 -0700 (Thu, 23 Apr 2009) | 1 line
  
  ZIP-based tool installer now functional.
........
  r17555 | jglick | 2009-04-27 17:50:38 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Build against newest trunk.
........
  r17556 | jglick | 2009-04-27 18:38:28 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Adding help.
........
  r17557 | jglick | 2009-04-27 18:57:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Moving toolName & label config GUI into generic files.
........
  r17558 | jglick | 2009-04-27 19:37:30 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Typo.
........
  r17559 | jglick | 2009-04-27 20:07:47 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Second tool installer type based on a freeform command.
........
  r17560 | jglick | 2009-04-27 20:24:36 -0700 (Mon, 27 Apr 2009) | 1 line
  
  installIfNecessaryFrom will now just return false in case the target dir exists but the URL cannot be opened.
........
  r17561 | jglick | 2009-04-27 20:25:22 -0700 (Mon, 27 Apr 2009) | 2 lines
  
  chmod only if something was actually installed.
  Use a+x, not o+x.
........
  r17562 | jglick | 2009-04-27 20:26:46 -0700 (Mon, 27 Apr 2009) | 1 line
  
  Comment only.
........
  r17563 | jglick | 2009-04-27 20:41:12 -0700 (Mon, 27 Apr 2009) | 1 line
  
  I18N.
........
  r17571 | jglick | 2009-04-28 08:15:31 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Wiki link.
........
  r17593 | jglick | 2009-04-28 15:38:33 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Turn off echo mode, it's just noise.
........
  r17594 | jglick | 2009-04-28 15:39:29 -0700 (Tue, 28 Apr 2009) | 2 lines
  
  Synchronizing access to installers for a given node/tool combo.
  Sending log messages to Hudson log in real time.
........
  r17595 | jglick | 2009-04-28 15:46:29 -0700 (Tue, 28 Apr 2009) | 1 line
  
  Copyrights.
........
  r17619 | jglick | 2009-04-29 06:25:23 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Improved Javadoc.
........
  r17620 | jglick | 2009-04-29 06:51:11 -0700 (Wed, 29 Apr 2009) | 1 line
  
  Demonstraing how to use DLJ to mechanically install official JDK releases on supported operating systems.
........
  r17637 | kohsuke | 2009-04-30 16:15:24 -0700 (Thu, 30 Apr 2009) | 1 line
  
  fixed what appears to be a C&P mistake
........
  r17638 | kohsuke | 2009-04-30 16:16:21 -0700 (Thu, 30 Apr 2009) | 1 line
  
  show YUI logger if YUI debugging mode is set.
........
  r17639 | kohsuke | 2009-04-30 16:52:28 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Fixed a UI script problem when <hetero-list> nests inside <repeatable>.
  
  The cause of the problem was that the behavior for inner <hetero-list> kicks in first, altering HTML (by removing "prototypes"), before behavior for outer <repetable> kicks in and removes the master copy from DOM tree.
  
  So <repeatable> ends up computing a master copy after some elements are removed, and hence when we try to reinsert them later by clicking "Add", it'll get incorrect copy, and re-execution of the <hetero-list> behavior bombs out.
  
  I fixed this by skipping those HTML-altering behaviors if they show up in the part of DOM tree that's supposed to be snapshotted and removed.
........
  r17640 | kohsuke | 2009-04-30 16:57:58 -0700 (Thu, 30 Apr 2009) | 7 lines
  
  Added ToolProperty to ToolInstallation (which acts like NodeProperty to Node --- basically decorates the base object with additional properties.)
  
  The original motivation is to implement ToolInstaller this way, if Jesse is OK. But decorating tools seem to have some other interesting use, such as a plugin for configuring $M2_HOME/conf/settings.xml, or a plugin to insert unlimited cryptography extension to JDK, or a plugin to add a few more jars into $ANT_HOME/lib.
  
  For this to work, ToolInstallations that want properties needs to be modified to use a new constructor. For a starter, I modified the JDK class to do this.
  
  I also took the opportunity to modernize JDK/config.jelly.
........
  r17641 | kohsuke | 2009-04-30 17:02:04 -0700 (Thu, 30 Apr 2009) | 1 line
  
  this appears to be a left-over from early days when we didn't have a means to do form validation
........
  r17642 | kohsuke | 2009-04-30 17:02:35 -0700 (Thu, 30 Apr 2009) | 1 line
  
  we don't need no.such.JDK but we need name. rebranching
........
  r17643 | kohsuke | 2009-04-30 17:03:22 -0700 (Thu, 30 Apr 2009) | 1 line
  
  rebranched from Hudson's configure.properties
........
  r17644 | kohsuke | 2009-04-30 17:05:31 -0700 (Thu, 30 Apr 2009) | 1 line
  
  removed unnecessary translations
........
  r17656 | kohsuke | 2009-05-01 11:27:36 -0700 (Fri, 01 May 2009) | 1 line
  
  Less hack for improved type safety. Asking people to write more code is not necessarily bad as long as what they need to do is obvious to them.
........
  r17657 | kohsuke | 2009-05-01 12:07:20 -0700 (Fri, 01 May 2009) | 5 lines
  
  The toolautoinst part of the change that corresponds to rev.17640.
  
  ToolInstallers are now hooked under ToolInstallation through InstallSourceProperty as a ToolProperty.
  
  This allows the relevant UIs to be shown in one place. Still pending Jesse's feedback. Making it a single commit to simplify a revert if necessary
........
  r17663 | kohsuke | 2009-05-01 13:23:51 -0700 (Fri, 01 May 2009) | 1 line
  
  doc improvement
........
  r17664 | kohsuke | 2009-05-01 13:24:10 -0700 (Fri, 01 May 2009) | 1 line
  
  needs this to allow Stapler to databind hetero-list automatically
........
  r17665 | jglick | 2009-05-01 13:31:27 -0700 (Fri, 01 May 2009) | 1 line
  
  Warnings.
........
  r17667 | kohsuke | 2009-05-01 14:20:53 -0700 (Fri, 01 May 2009) | 1 line
  
  added a method to do chmod
........
  r17668 | kohsuke | 2009-05-01 14:30:35 -0700 (Fri, 01 May 2009) | 1 line
  
  prefer JDK6 version to avoid unnecessary JNA loading
........
  r17669 | kohsuke | 2009-05-01 14:33:09 -0700 (Fri, 01 May 2009) | 1 line
  
  no, I must have confused this.
........
  r17670 | kohsuke | 2009-05-01 15:57:11 -0700 (Fri, 01 May 2009) | 2 lines
  
  - Automated JDK installer and its test.
  - Minor update to the signature of ToolInstaller for supplying the expected default location.
........
  r17730 | kohsuke | 2009-05-04 11:27:34 -0700 (Mon, 04 May 2009) | 1 line
  
  avoid NPE as reported in HUDSON-3608
........
  r17753 | jglick | 2009-05-04 19:34:08 -0700 (Mon, 04 May 2009) | 2 lines
  
  Moved toolautoinst functionality into core.
........
  r17755 | jglick | 2009-05-04 20:28:34 -0700 (Mon, 04 May 2009) | 8 lines
  
  Added TaskListener parameter and IOException and InterruptedException to several methods:
  Run.getEnvironment
  NodeSpecific.forNode
  ToolLocationTranslator.getToolHome
  ToolLocationNodeProperty.getToolHome
  ToolInstallation.translateFor
  ProcessCache.Factory.getMavenInstallation
  ProcessCache.Factory.getJava
........
  r17756 | jglick | 2009-05-04 20:36:56 -0700 (Mon, 04 May 2009) | 1 line
  
  expectedLocation was never strictly necessary, and will soon no longer be used even by JDKInstaller.
........
  r17757 | jglick | 2009-05-04 20:40:41 -0700 (Mon, 04 May 2009) | 1 line
  
  Not sure yet what @since should be.
........
  r17758 | jglick | 2009-05-04 20:41:51 -0700 (Mon, 04 May 2009) | 1 line
  
  getDefaultInstallers method added. Not yet in use.
........
  r17763 | kohsuke | 2009-05-05 10:50:36 -0700 (Tue, 05 May 2009) | 1 line
  
  deprecated redundant getJavaHome method
........
  r17764 | kohsuke | 2009-05-05 12:10:45 -0700 (Tue, 05 May 2009) | 1 line
  
  added general-purpose property defaulting mechanism, and added default tool installer for JDK
........
  r17765 | jglick | 2009-05-05 12:35:56 -0700 (Tue, 05 May 2009) | 1 line
  
  capitalize("") -> ""
........
  r17766 | jglick | 2009-05-05 12:49:52 -0700 (Tue, 05 May 2009) | 1 line
  
  Missing @since.
........
  r17767 | jglick | 2009-05-05 13:01:41 -0700 (Tue, 05 May 2009) | 1 line
  
  Unchecked warning.
........
  r17768 | jglick | 2009-05-05 13:19:49 -0700 (Tue, 05 May 2009) | 2 lines
  
  Two unsuccessful attempts at form validation.
........
  r17770 | jglick | 2009-05-05 13:48:37 -0700 (Tue, 05 May 2009) | 1 line
  
  Better class names.
........
  r17771 | kohsuke | 2009-05-05 14:12:21 -0700 (Tue, 05 May 2009) | 5 lines
  
  brought the form validation check back. The trick is to use the 'value' parameter.
  
  In the end we'd expect this check to go away anyway, as we change input field to drop-down list, but in the mean time, this is why it didn't work.
  
  Maybe we probably need more static code checkers? Like FindBugs rules?
........
  r17901 | kohsuke | 2009-05-09 19:15:40 -0700 (Sat, 09 May 2009) | 1 line
  
  having two toolHome is odd.
........
  r17906 | kohsuke | 2009-05-10 11:09:13 -0700 (Sun, 10 May 2009) | 1 line
  
  adding the generalization of UpdateCenter, but for compatibility reasons, we are leaving UpdateCenter as-is.
........
  r17911 | kohsuke | 2009-05-10 17:02:53 -0700 (Sun, 10 May 2009) | 1 line
  
  integrated json-lib with a bit of bug fix
........
  r17912 | kohsuke | 2009-05-10 17:13:05 -0700 (Sun, 10 May 2009) | 1 line
  
  JDK list is now fetched from hudson.dev.java.net
........
  r17958 | kohsuke | 2009-05-11 13:44:25 -0700 (Mon, 11 May 2009) | 48 lines
  
  Handle AbortException better to avoid error like this:
  
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to delete directory: C:\files\hudson\workspace\hudson\hudson\main\remoting\target. Reason: Unable to delete file C:\files\hudson\workspace\hudson\hudson\main\remoting\target\remoting-1.304-SNAPSHOT.jar
  
  [INFO] ------------------------------------------------------------------------
  [INFO] For more information, run Maven with the -e switch
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 31 seconds
  [INFO] Finished at: Sun May 10 18:15:33 PDT 2009
  [INFO] Final Memory: 25M/48M
  [INFO] ------------------------------------------------------------------------
  Recording fingerprints
  Archiving artifacts
  Recording test results
  ERROR: Failed to archive JUnit reports
  hudson.util.IOException2: remote file operation failed
  	at hudson.FilePath.act(FilePath.java:596)
  	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:82)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:372)
  	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:360)
  	at hudson.model.Build$RunnerImpl.post2(Build.java:183)
  	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:345)
  	at hudson.model.Run.run(Run.java:943)
  	at hudson.model.Build.run(Build.java:112)
  	at hudson.model.ResourceController.execute(ResourceController.java:93)
  	at hudson.model.Executor.run(Executor.java:119)
  Caused by: hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
  For example, \files\hudson\workspace\hudson\hudson\main\core\target\surefire-reports\TEST-hudson.BulkChangeTest.xml is 2 days 23 hr old
  
  	at hudson.tasks.junit.TestResult.parse(TestResult.java:134)
  	at hudson.tasks.junit.TestResult.<init>(TestResult.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:95)
  	at hudson.tasks.junit.JUnitResultArchiver$1.invoke(JUnitResultArchiver.java:82)
  	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1583)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
  	at hudson.remoting.UserRequest.perform(UserRequest.java:46)
  	at hudson.remoting.Request$2.run(Request.java:236)
  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  	at java.lang.Thread.run(Thread.java:619)
........
  r17961 | kohsuke | 2009-05-11 15:16:39 -0700 (Mon, 11 May 2009) | 1 line
  
  adding Windows JDK silent installation
........
  r17962 | kohsuke | 2009-05-11 16:08:13 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing JDK offline installatino for Windows
........
  r17970 | kohsuke | 2009-05-11 19:37:59 -0700 (Mon, 11 May 2009) | 1 line
  
  Fixing a problem that prevents the usage of this tag in <repeatable> block, which reinserts the same fragment over and over. So statically assigning IDs won't work
........
  r17971 | kohsuke | 2009-05-11 22:17:09 -0700 (Mon, 11 May 2009) | 1 line
  
  continuing to remove static ID generation, which breaks the tag when used inside <repetable> tag.
........
  r17972 | kohsuke | 2009-05-11 22:19:11 -0700 (Mon, 11 May 2009) | 1 line
  
  I don't know when this started, but even in the hudson-dev:run mode, the versionis no longer '?', so we need a different way to force reload
........
  r17973 | kohsuke | 2009-05-11 22:26:34 -0700 (Mon, 11 May 2009) | 1 line
  
  adjusted the text a bit since multiple "add" and "delete"s were rather confusing
........
  r17974 | kohsuke | 2009-05-11 22:31:58 -0700 (Mon, 11 May 2009) | 1 line
  
  added help screen
........
  r17975 | kohsuke | 2009-05-11 22:41:39 -0700 (Mon, 11 May 2009) | 1 line
  
  form validation now works against the checkbox, too
........
  r17976 | kohsuke | 2009-05-11 22:43:00 -0700 (Mon, 11 May 2009) | 1 line
  
  with auto installation, we expect users to specify a directory that doesn't exist yet, so don't report it as an error
........
  r17977 | kohsuke | 2009-05-11 22:43:24 -0700 (Mon, 11 May 2009) | 1 line
  
  improving the text
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@17985 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-05-12 21:59:10 +08:00
										 |  |  |             onSuccess: function() { | 
					
						
							|  |  |  |                 if(o.completionHandler!=null) | 
					
						
							|  |  |  |                     o.completionHandler(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // update center service. for historical reasons,
 | 
					
						
							|  |  |  | // this is separate from downloadSerivce
 | 
					
						
							| 
									
										
										
										
											2008-05-30 07:50:36 +08:00
										 |  |  | var updateCenter = { | 
					
						
							|  |  |  |     postBackURL : null, | 
					
						
							| 
									
										
										
										
											2008-12-11 08:26:45 +08:00
										 |  |  |     info: {}, | 
					
						
							| 
									
										
										
										
											2008-06-16 00:30:25 +08:00
										 |  |  |     completionHandler: null, | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |     crumbName: null, | 
					
						
							|  |  |  |     crumb: null, | 
					
						
							| 
									
										
										
										
											2008-12-18 07:57:49 +08:00
										 |  |  |     url: "https://hudson.dev.java.net/", | 
					
						
							| 
									
										
										
										
											2008-05-30 07:50:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     checkUpdates : function() { | 
					
						
							| 
									
										
										
										
											2008-12-18 07:57:49 +08:00
										 |  |  |         loadScript(updateCenter.url+"update-center.json?"+Hash.toQueryString(updateCenter.info)); | 
					
						
							| 
									
										
										
										
											2008-05-30 07:50:36 +08:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     post : function(data) { | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |     	var params = new Array(2); | 
					
						
							|  |  |  |     	params["json"] = Object.toJSON(data); | 
					
						
							|  |  |  |     	params[updateCenter.crumbName] = updateCenter.crumb; | 
					
						
							| 
									
										
										
										
											2008-05-30 07:50:36 +08:00
										 |  |  |         new Ajax.Request(updateCenter.postBackURL, { | 
					
						
							|  |  |  |             method:"post", | 
					
						
							| 
									
										
										
										
											2009-06-09 15:09:02 +08:00
										 |  |  |             parameters:params, | 
					
						
							| 
									
										
										
										
											2008-06-16 00:30:25 +08:00
										 |  |  |             onSuccess: function() { | 
					
						
							|  |  |  |                 if(updateCenter.completionHandler!=null) | 
					
						
							|  |  |  |                     updateCenter.completionHandler(); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2008-05-30 07:50:36 +08:00
										 |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-09-03 05:34:47 +08:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2008-09-27 06:54:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | redirects to a page once the page is ready. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @param url | 
					
						
							|  |  |  |         Specifies the URL to redirect the user. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | function applySafeRedirector(url) { | 
					
						
							|  |  |  |     var i=0; | 
					
						
							|  |  |  |     new PeriodicalExecuter(function() { | 
					
						
							|  |  |  |       i = (i+1)%4; | 
					
						
							|  |  |  |       var s = ""; | 
					
						
							|  |  |  |       for( var j=0; j<i; j++ ) | 
					
						
							|  |  |  |         s+='.'; | 
					
						
							|  |  |  |       $('progress').innerHTML = s; | 
					
						
							|  |  |  |     },1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     window.setTimeout(function() { | 
					
						
							|  |  |  |       var statusChecker = arguments.callee; | 
					
						
							|  |  |  |         new Ajax.Request(url, { | 
					
						
							|  |  |  |             method: "get", | 
					
						
							|  |  |  |             onFailure: function(rsp) { | 
					
						
							|  |  |  |                 if(rsp.status==503) { | 
					
						
							|  |  |  |                   // redirect as long as we are still loading
 | 
					
						
							|  |  |  |                   window.setTimeout(statusChecker,5000); | 
					
						
							|  |  |  |                 } else { | 
					
						
							|  |  |  |                   window.location.replace(url); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             onSuccess: function(rsp) { | 
					
						
							| 
									
										
										
										
											2009-05-07 02:07:42 +08:00
										 |  |  |                 if(rsp.status!=200) { | 
					
						
							|  |  |  |                     // if connection fails, somehow Prototype thinks it's a success
 | 
					
						
							|  |  |  |                     window.setTimeout(statusChecker,5000); | 
					
						
							|  |  |  |                 } else { | 
					
						
							|  |  |  |                     window.location.replace(url); | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2008-09-27 06:54:29 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }, 5000); | 
					
						
							| 
									
										
										
										
											2008-12-18 07:57:49 +08:00
										 |  |  | } | 
					
						
							| 
									
										
											  
											
												Merged revisions 11754-11755,11763-11766,11770,11773-11777,11791-11797,11828-11829,11831-11839,11841-11843,11850,11854,11994,12774,12778-12793,12820-12822,12831-12841,12854-12855,12860-12882,12896-12905,12914-12920,12938-12941,12950,13045-13046,13048,13063-13064,13066,13072-13076,13111,13122-13147,13150,13153-13158,13487-13488,13851-13852,13854-13856,13859,13866-13867,13869,13872-13876,13878-13879,13883-13885,13887-13890,13896-13919 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/multiple-computer-per-node
................
  r11754 | kohsuke | 2008-08-25 17:59:14 -0700 (Mon, 25 Aug 2008) | 3 lines
  
  Adding EphemeralNode for non-persisted dynamically-allocated expandable/shrinkable slave pool.
  
  Tweaked the serialization of Hudson.slaves accordingly.
................
  r11755 | kohsuke | 2008-08-25 18:10:42 -0700 (Mon, 25 Aug 2008) | 1 line
  
  making a small improvements
................
  r11763 | kohsuke | 2008-08-26 13:57:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding more convenience methods
................
  r11764 | kohsuke | 2008-08-26 14:24:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  ported mask capability from the TFS plugin to the core.
................
  r11765 | kohsuke | 2008-08-26 14:26:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  making it non-final to allow for subclassing
................
  r11766 | kohsuke | 2008-08-26 14:35:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  test case for NodeList
................
  r11770 | kohsuke | 2008-08-26 15:15:21 -0700 (Tue, 26 Aug 2008) | 3 lines
  
  Wrote a simple tool that monitors a file system change (in a poor way) and triggers a build.
................
  r11773 | kohsuke | 2008-08-26 17:20:30 -0700 (Tue, 26 Aug 2008) | 1 line
  
  made more structured
................
  r11774 | kohsuke | 2008-08-26 17:47:41 -0700 (Tue, 26 Aug 2008) | 1 line
  
  indentation fix
................
  r11775 | kohsuke | 2008-08-26 17:48:22 -0700 (Tue, 26 Aug 2008) | 1 line
  
  remove the use of a deprecated feature.
................
  r11776 | kohsuke | 2008-08-26 17:51:54 -0700 (Tue, 26 Aug 2008) | 1 line
  
  renamed to 'ALL' to be consistent with recent use of DescriptorList
................
  r11777 | kohsuke | 2008-08-26 18:04:17 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding NodeFactory list and its configuration mechanism
................
  r11791 | kohsuke | 2008-08-27 09:43:38 -0700 (Wed, 27 Aug 2008) | 1 line
  
  picked up the latest jelly with Iterable support in <j:forEach>
................
  r11792 | kohsuke | 2008-08-27 09:44:08 -0700 (Wed, 27 Aug 2008) | 1 line
  
  Iterable support added in  commons-jelly 1.1-hudson-20080826
................
  r11793 | kohsuke | 2008-08-27 10:15:14 -0700 (Wed, 27 Aug 2008) | 2 lines
  
  - added name to NodeFactory for binding NodeFactory to URL tree.
  - NodeFactory should be access controlled
................
  r11794 | kohsuke | 2008-08-27 10:41:11 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added a method to add one Node at a time
................
  r11795 | kohsuke | 2008-08-27 10:41:37 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added permission constatnt
................
  r11796 | kohsuke | 2008-08-27 10:42:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  allowing the launch method to throw an exception.
................
  r11797 | kohsuke | 2008-08-27 10:44:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  improving the handling
................
  r11828 | kohsuke | 2008-08-29 11:07:16 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added executor config to the sidebar.
................
  r11829 | kohsuke | 2008-08-29 11:16:11 -0700 (Fri, 29 Aug 2008) | 1 line
  
  "it" should be assigned to NodeFactory
................
  r11831 | kohsuke | 2008-08-29 11:44:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11832 | kohsuke | 2008-08-29 11:59:21 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a script to create a flashing image from any picture
................
  r11833 | kohsuke | 2008-08-29 12:07:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11834 | kohsuke | 2008-08-29 13:37:59 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added new images to indicate that a slave is launching
................
  r11835 | kohsuke | 2008-08-29 13:43:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  indicate a launching slave accordingly.
................
  r11836 | kohsuke | 2008-08-29 14:02:28 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a method to remove a Node.
................
  r11837 | kohsuke | 2008-08-29 14:02:38 -0700 (Fri, 29 Aug 2008) | 1 line
  
  disconnect
................
  r11838 | kohsuke | 2008-08-29 14:03:22 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11839 | kohsuke | 2008-08-29 14:14:04 -0700 (Fri, 29 Aug 2008) | 1 line
  
  allowing subclasses.
................
  r11841 | kohsuke | 2008-08-29 14:28:29 -0700 (Fri, 29 Aug 2008) | 1 line
  
  constructor should be the first in the definition.
................
  r11842 | kohsuke | 2008-08-29 14:31:01 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11843 | kohsuke | 2008-08-29 14:32:48 -0700 (Fri, 29 Aug 2008) | 1 line
  
  fixed a problem of using partially constructed object during launch(), because the setNode() method is called from the Computer constructor.
................
  r11850 | kohsuke | 2008-08-29 14:50:36 -0700 (Fri, 29 Aug 2008) | 1 line
  
  serialize NodeFactory first so that references to them from NodeList will become references in XML.
................
  r11854 | kohsuke | 2008-08-29 14:56:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  cleaning up a bit.
................
  r11994 | kohsuke | 2008-09-03 14:42:11 -0700 (Wed, 03 Sep 2008) | 21 lines
  
  Fixed ArrayIndexOutOfBoundsException during replace(), when the title contains a '$' literal.
  
  The typical stack trace looks like:
  
  Caused by: java.lang.ArrayIndexOutOfBoundsException: 32
          at hudson.MarkupText$SubText.start(MarkupText.java:95)
          at hudson.MarkupText$SubText.group(MarkupText.java:131)
          at hudson.MarkupText$SubText.replace(MarkupText.java:154)
          at hudson.MarkupText$SubText.surroundWith(MarkupText.java:83)
          at 
  hudson.plugins.jira.JiraChangeLogAnnotator.annotate(JiraChangeLogAnnotator.java:37)
          at 
  hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:117)
          ... 148 more
  
  Vijayan Jayaraman and I found this problem while we were looking at the server log of Hudson for OpenJFX.
  
  Adding a unit test to verify this behavior, too.  
................
  r12774 | kohsuke | 2008-10-27 15:03:36 -0700 (Mon, 27 Oct 2008) | 3 lines
  
  preparing for heterogenousness in Node, so that different Node can be configured with different UIs, much like how different Jobs can be configured.
  
  Creating a slave works also like creating a new job.
................
  r12778 | kohsuke | 2008-10-27 15:06:51 -0700 (Mon, 27 Oct 2008) | 1 line
  
  We need to be able to create an emtpy Slave initially, so we have to do with the check in the form field validation.
................
  r12779 | kohsuke | 2008-10-27 15:48:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the new slave page a two-step process
................
  r12780 | kohsuke | 2008-10-27 15:48:24 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a compilation problem
................
  r12781 | kohsuke | 2008-10-27 15:53:30 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12782 | kohsuke | 2008-10-27 15:58:20 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12783 | kohsuke | 2008-10-27 16:08:56 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the configuration page work for slaves
................
  r12784 | kohsuke | 2008-10-27 16:35:17 -0700 (Mon, 27 Oct 2008) | 1 line
  
  added new-computer.svg
................
  r12785 | kohsuke | 2008-10-27 16:37:26 -0700 (Mon, 27 Oct 2008) | 1 line
  
  hooking up the config/create pages to the UI
................
  r12786 | kohsuke | 2008-10-27 16:44:40 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a copy method.
................
  r12787 | kohsuke | 2008-10-27 16:47:33 -0700 (Mon, 27 Oct 2008) | 1 line
  
  code was broken when a slave was renamed
................
  r12788 | kohsuke | 2008-10-27 16:58:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  moving out the commonality into a new tag
................
  r12789 | kohsuke | 2008-10-27 17:01:21 -0700 (Mon, 27 Oct 2008) | 1 line
  
  consistent term usage
................
  r12790 | kohsuke | 2008-10-27 17:03:19 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retiring the configureExecutors. Slave configuration is now moved to individual slave page
................
  r12791 | kohsuke | 2008-10-27 17:10:32 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retired configureExecutors.jelly and completed moved its contents to somewhere else
................
  r12792 | kohsuke | 2008-10-27 17:21:53 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fix. request handling of "/descriptor/FQCN/..." was broken.
................
  r12793 | kohsuke | 2008-10-27 17:27:08 -0700 (Mon, 27 Oct 2008) | 1 line
  
  NodeFactory -> Cloud to encourage consistent term usage between the code and the UI.
................
  r12820 | kohsuke | 2008-10-29 10:58:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  formatting fix
................
  r12821 | kohsuke | 2008-10-29 11:17:49 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added classes for handling a secret and prevent accidental exposure of a secret in the persisted form
................
  r12822 | kohsuke | 2008-10-29 11:32:39 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added a base64 validator
................
  r12831 | kohsuke | 2008-10-29 15:58:45 -0700 (Wed, 29 Oct 2008) | 1 line
  
  secret key needs to be persisted outside config.xml (and it is, already!)
................
  r12832 | kohsuke | 2008-10-29 16:06:28 -0700 (Wed, 29 Oct 2008) | 1 line
  
  started working on Amazon EC2 plugin
................
  r12833 | kohsuke | 2008-10-29 16:09:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  brought the same enhancement as in <textbox />
................
  r12834 | kohsuke | 2008-10-29 16:15:05 -0700 (Wed, 29 Oct 2008) | 1 line
  
  copy over the onclick handler from the original button element
................
  r12835 | kohsuke | 2008-10-29 17:01:04 -0700 (Wed, 29 Oct 2008) | 1 line
  
  allow OK messages to be sent with some mark up.
................
  r12836 | kohsuke | 2008-10-29 17:06:52 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added connection testing. This pattern needs to be generalized since it happens often
................
  r12837 | kohsuke | 2008-10-29 17:13:11 -0700 (Wed, 29 Oct 2008) | 1 line
  
  this is little better
................
  r12838 | kohsuke | 2008-10-29 17:17:44 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added spinner
................
  r12839 | kohsuke | 2008-10-29 17:31:54 -0700 (Wed, 29 Oct 2008) | 1 line
  
  restructuring the validation button support in a form that can be readily moved to the core.
................
  r12840 | kohsuke | 2008-10-29 18:01:41 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added <f:validateButton/> for multi-field server-side validation
................
  r12841 | kohsuke | 2008-10-29 18:03:12 -0700 (Wed, 29 Oct 2008) | 1 line
  
  logic moved to <f:validateButton/> in the core.
................
  r12854 | kohsuke | 2008-10-30 13:32:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  @QueryParameter.value won't be necessary any more
................
  r12855 | kohsuke | 2008-10-30 13:42:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  need a strongly-typed constructor.
................
  r12860 | kohsuke | 2008-10-30 15:24:18 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding more reflection support, which in turn we use in taglibs to raise the level of abstraction.
................
  r12861 | kohsuke | 2008-10-30 15:33:22 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added a tag to create databinding to a<select> element from an enum property
................
  r12862 | kohsuke | 2008-10-30 15:37:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding a smarter bi-directional binding through <f:repeatable field="..."/>
................
  r12863 | kohsuke | 2008-10-30 15:47:48 -0700 (Thu, 30 Oct 2008) | 1 line
  
  making progress with the EC2 support
................
  r12864 | kohsuke | 2008-10-30 16:12:34 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added form field validation for AMI ID
................
  r12865 | kohsuke | 2008-10-30 16:15:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added simpler version
................
  r12866 | kohsuke | 2008-10-30 16:17:15 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12867 | kohsuke | 2008-10-30 16:17:19 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12868 | kohsuke | 2008-10-30 16:40:25 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12869 | kohsuke | 2008-10-30 17:00:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding the provisioning of the new slave
................
  r12870 | kohsuke | 2008-10-30 17:07:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  /** {@inheritDoc} */ is the default behavior for javadoc, so there's no point in making that explicit.
................
  r12871 | kohsuke | 2008-10-30 17:11:04 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc bug fix
................
  r12872 | kohsuke | 2008-10-30 17:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12873 | kohsuke | 2008-10-30 17:19:06 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added RetentionStrategy for EC2 instances
................
  r12874 | kohsuke | 2008-10-30 17:21:17 -0700 (Thu, 30 Oct 2008) | 1 line
  
  allowing subclasses to override the disconnect behavior.
................
  r12875 | kohsuke | 2008-10-30 18:02:35 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added termination
................
  r12876 | kohsuke | 2008-10-30 18:05:30 -0700 (Thu, 30 Oct 2008) | 1 line
  
  forgot to rename when NodeFactory was renamed to Cloud
................
  r12877 | kohsuke | 2008-10-30 18:06:08 -0700 (Thu, 30 Oct 2008) | 1 line
  
  using the console icon
................
  r12878 | kohsuke | 2008-10-30 18:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding UI to remove a slave.
................
  r12879 | kohsuke | 2008-10-30 18:48:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  commons-discovery now needed in stapler
................
  r12880 | kohsuke | 2008-10-30 18:50:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  needs to use a newer version of stapler
................
  r12881 | kohsuke | 2008-10-30 18:51:02 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12882 | kohsuke | 2008-10-30 18:51:43 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12896 | kohsuke | 2008-10-31 14:52:07 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed the ordering between field and the mighty get(String) method.
................
  r12897 | kohsuke | 2008-10-31 15:08:41 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed test compilation problems
................
  r12898 | kohsuke | 2008-10-31 15:11:25 -0700 (Fri, 31 Oct 2008) | 1 line
  
  marking this as a model object since it's always bound to URL.
................
  r12899 | kohsuke | 2008-10-31 15:13:42 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up to manually provision a new node
................
  r12900 | kohsuke | 2008-10-31 15:14:00 -0700 (Fri, 31 Oct 2008) | 1 line
  
  after merging the trunk the version number is different
................
  r12901 | kohsuke | 2008-10-31 15:21:54 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up for provisioning a new slave
................
  r12902 | kohsuke | 2008-10-31 15:45:10 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding a hook to decorate ComputerLauncher.
................
  r12903 | kohsuke | 2008-10-31 15:48:21 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added filtering support
................
  r12904 | kohsuke | 2008-10-31 15:52:45 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added view
................
  r12905 | kohsuke | 2008-10-31 15:53:49 -0700 (Fri, 31 Oct 2008) | 1 line
  
  doc improvement
................
  r12914 | kohsuke | 2008-11-01 17:45:57 -0700 (Sat, 01 Nov 2008) | 1 line
  
  adding code for connecting with SSH
................
  r12915 | kohsuke | 2008-11-01 17:49:28 -0700 (Sat, 01 Nov 2008) | 1 line
  
  working on launchers
................
  r12916 | kohsuke | 2008-11-01 18:33:12 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a method to fully read a stream
................
  r12917 | kohsuke | 2008-11-01 18:33:45 -0700 (Sat, 01 Nov 2008) | 1 line
  
  bumped up stapler
................
  r12918 | kohsuke | 2008-11-01 18:39:41 -0700 (Sat, 01 Nov 2008) | 1 line
  
  doc improvement.
................
  r12919 | kohsuke | 2008-11-01 18:45:24 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a launcher
................
  r12920 | kohsuke | 2008-11-01 18:55:02 -0700 (Sat, 01 Nov 2008) | 1 line
  
  implementing the actual ComputerLauncher
................
  r12938 | kohsuke | 2008-11-02 08:56:05 -0800 (Sun, 02 Nov 2008) | 1 line
  
  support the field notation
................
  r12939 | kohsuke | 2008-11-02 09:20:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  added the mechanism to execute the init script
................
  r12940 | kohsuke | 2008-11-02 09:21:38 -0800 (Sun, 02 Nov 2008) | 1 line
  
  simplification
................
  r12941 | kohsuke | 2008-11-02 09:36:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  adding key handling
................
  r12950 | kohsuke | 2008-11-03 11:00:58 -0800 (Mon, 03 Nov 2008) | 1 line
  
  formatting changes
................
  r13045 | kohsuke | 2008-11-06 15:24:32 -0800 (Thu, 06 Nov 2008) | 1 line
  
  adding time series datatype for retaining load average statistics in memory
................
  r13046 | kohsuke | 2008-11-06 15:59:02 -0800 (Thu, 06 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13048 | kohsuke | 2008-11-06 16:21:54 -0800 (Thu, 06 Nov 2008) | 2 lines
  
  - started monitoring # of executor statistics.
  - exposed label to the remote API
................
  r13063 | kohsuke | 2008-11-07 13:05:15 -0800 (Fri, 07 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13064 | kohsuke | 2008-11-07 13:11:08 -0800 (Fri, 07 Nov 2008) | 1 line
  
  monitor the length of the queue too
................
  r13066 | kohsuke | 2008-11-07 14:15:56 -0800 (Fri, 07 Nov 2008) | 1 line
  
  moved the stats to its own class.
................
  r13072 | kohsuke | 2008-11-07 15:40:29 -0800 (Fri, 07 Nov 2008) | 1 line
  
  adding provisioning logic based on load statistics
................
  r13073 | kohsuke | 2008-11-07 15:46:00 -0800 (Fri, 07 Nov 2008) | 1 line
  
  for effective testing, we need sub-sec precision
................
  r13074 | kohsuke | 2008-11-07 16:24:44 -0800 (Fri, 07 Nov 2008) | 1 line
  
  fixed a lie.
................
  r13075 | kohsuke | 2008-11-07 16:25:12 -0800 (Fri, 07 Nov 2008) | 1 line
  
  bug fix
................
  r13076 | kohsuke | 2008-11-07 16:30:55 -0800 (Fri, 07 Nov 2008) | 1 line
  
  avoid using deprecated methods
................
  r13111 | kohsuke | 2008-11-09 11:54:23 -0800 (Sun, 09 Nov 2008) | 1 line
  
  added the Future<?> return parameter to Computer.launch(). To do this w/o breaking compatibility, renamed launch to connect.
................
  r13122 | kohsuke | 2008-11-10 14:38:03 -0800 (Mon, 10 Nov 2008) | 1 line
  
  allow programmatic update of the assigned label
................
  r13123 | kohsuke | 2008-11-10 14:38:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Iterator not needed because CopyOnWriteArrayList doesn't support removal via iterator.
................
  r13124 | kohsuke | 2008-11-10 14:39:24 -0800 (Mon, 10 Nov 2008) | 1 line
  
  added another Builder for tests
................
  r13125 | kohsuke | 2008-11-10 14:39:48 -0800 (Mon, 10 Nov 2008) | 1 line
  
  simplified a bit. This TestEnvironment stuff needs some clearer story.
................
  r13126 | kohsuke | 2008-11-10 14:46:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  IDEA complains about this.
................
  r13127 | kohsuke | 2008-11-10 14:51:53 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved the error diagnostics by displaying why a provisioned node failed to launch
................
  r13128 | kohsuke | 2008-11-10 14:52:12 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Started a test case for NodeProvisioner
................
  r13129 | kohsuke | 2008-11-10 14:52:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13130 | kohsuke | 2008-11-10 15:16:02 -0800 (Mon, 10 Nov 2008) | 1 line
  
  report the failure as a failure.
................
  r13131 | kohsuke | 2008-11-10 16:34:23 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding a parameter to the connect method to support joining to the pending launch activity.
................
  r13132 | kohsuke | 2008-11-10 16:38:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  making members public so that it can be accessed from other classes (DummyCloudImpl was the first to do this)
................
  r13133 | kohsuke | 2008-11-10 16:38:58 -0800 (Mon, 10 Nov 2008) | 1 line
  
  split the cloud implementation to a separate class to allow reuse.
................
  r13134 | kohsuke | 2008-11-10 16:56:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  assign unique names to support multiple jobs
................
  r13135 | kohsuke | 2008-11-10 17:11:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  avoid unnecessary interruption
................
  r13136 | kohsuke | 2008-11-10 17:11:41 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13137 | kohsuke | 2008-11-10 17:16:28 -0800 (Mon, 10 Nov 2008) | 1 line
  
  cleaned up a test case
................
  r13138 | kohsuke | 2008-11-10 17:36:52 -0800 (Mon, 10 Nov 2008) | 1 line
  
  since the setNode method is called on every Computer just by adding a new node, don't force a new launch attempt.
................
  r13139 | kohsuke | 2008-11-10 17:37:38 -0800 (Mon, 10 Nov 2008) | 1 line
  
  perform orderly shutdown by giving computers enough time to disconnect.
................
  r13140 | kohsuke | 2008-11-10 17:38:08 -0800 (Mon, 10 Nov 2008) | 3 lines
  
  return Future for synchronization.
  
  This breaks binary compatibility, but I checked none of the plugins in Hudson SVN uses this, so I hope this is OK.
................
  r13141 | kohsuke | 2008-11-10 17:38:46 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved diagnostics
................
  r13142 | kohsuke | 2008-11-10 17:39:55 -0800 (Mon, 10 Nov 2008) | 1 line
  
  removed compiler warning
................
  r13143 | kohsuke | 2008-11-10 18:02:56 -0800 (Mon, 10 Nov 2008) | 1 line
  
  hide the rounding related problem from Cloud by passing int instead of float.
................
  r13144 | kohsuke | 2008-11-10 18:10:10 -0800 (Mon, 10 Nov 2008) | 1 line
  
  bug fix
................
  r13145 | kohsuke | 2008-11-10 18:11:51 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13146 | kohsuke | 2008-11-10 18:15:08 -0800 (Mon, 10 Nov 2008) | 1 line
  
  moved the slave launch code to HudsonTestCase for reuse
................
  r13147 | kohsuke | 2008-11-10 18:20:19 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13150 | kohsuke | 2008-11-11 07:28:53 -0800 (Tue, 11 Nov 2008) | 1 line
  
  bug fix
................
  r13153 | kohsuke | 2008-11-11 14:04:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  cutting down the test size to 5 to increase the test speed
................
  r13154 | kohsuke | 2008-11-11 14:04:37 -0800 (Tue, 11 Nov 2008) | 1 line
  
  improved debuggability
................
  r13155 | kohsuke | 2008-11-11 14:10:04 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added another convenience method
................
  r13156 | kohsuke | 2008-11-11 14:10:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  further reduce the test turn around time
................
  r13157 | kohsuke | 2008-11-11 14:22:03 -0800 (Tue, 11 Nov 2008) | 1 line
  
  doc improvement and clean up
................
  r13158 | kohsuke | 2008-11-11 14:22:28 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added a new metho
................
  r13487 | kohsuke | 2008-12-09 17:17:30 -0800 (Tue, 09 Dec 2008) | 1 line
  
  SlaveTemplate needs to be able to computer # of executors.
................
  r13488 | kohsuke | 2008-12-09 17:18:05 -0800 (Tue, 09 Dec 2008) | 1 line
  
  fixed a compilation problem with the latest head of the branch
................
  r13851 | kohsuke | 2008-12-24 13:40:43 -0800 (Wed, 24 Dec 2008) | 82 lines
  
  fixed a dead lock reported by Jesse.
  
  Found one Java-level deadlock:
  =============================
  "Executor #0 for master":
     waiting to lock monitor 0x09409bac (object 0x87474ca0, a hudson.util.CopyOnWriteMap$Hash),
     which is held by "main"
  "main":
     waiting to lock monitor 0x09409b48 (object 0x87474d48, a hudson.model.Hudson$MasterComputer),
     which is held by "Executor #0 for master"
  
  Java stack information for the threads listed above:
  ===================================================
  "Executor #0 for master":
  	at hudson.util.CopyOnWriteMap.remove(CopyOnWriteMap.java:78)
  	- waiting to lock <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.removeComputer(Hudson.java:717)
  	at hudson.model.Computer.removeExecutor(Computer.java:433)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Executor.run(Executor.java:65)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  "main":
  	at hudson.model.Computer.setNumExecutors(Computer.java:338)
  	- waiting to lock <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Computer.setNode(Computer.java:327)
  	at hudson.model.Hudson.updateComputer(Hudson.java:704)
  	at hudson.model.Hudson.updateComputerList(Hudson.java:685)
  	- locked <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.setNodes(Hudson.java:1076)
  	at hudson.model.Hudson.addNode(Hudson.java:1060)
  	- locked <0x87474cb0> (a hudson.model.Hudson)
  	at org.jvnet.hudson.test.HudsonTestCase.createSlave(HudsonTestCase.java:247)
  	at hudson.slaves.NodeProvisionerTest.testBaselineSlaveUsage(NodeProvisionerTest.java:86)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at junit.framework.TestCase.runTest(TestCase.java:154)
  	at org.jvnet.hudson.test.HudsonTestCase.runTest(HudsonTestCase.java:151)
  	at junit.framework.TestCase.runBare(TestCase.java:127)
  	at junit.framework.TestResult$1.protect(TestResult.java:106)
  	at junit.framework.TestResult.runProtected(TestResult.java:124)
  	at junit.framework.TestResult.run(TestResult.java:109)
  	at junit.framework.TestCase.run(TestCase.java:118)
  	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  	at junit.framework.TestSuite.run(TestSuite.java:203)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
  	at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:241)
  	at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:537)
  	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
  	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
  	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
  	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  
  Found 1 deadlock.
................
  r13852 | kohsuke | 2008-12-24 14:32:29 -0800 (Wed, 24 Dec 2008) | 1 line
  
  bug fix in the test case.
................
  r13854 | kohsuke | 2008-12-24 15:20:22 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  Using a new version of Rhino to get a proper exception chaining.
................
  r13855 | kohsuke | 2008-12-24 15:22:13 -0800 (Wed, 24 Dec 2008) | 1 line
  
  typo
................
  r13856 | kohsuke | 2008-12-24 15:37:56 -0800 (Wed, 24 Dec 2008) | 1 line
  
  CR shouldn't be in the repository
................
  r13859 | kohsuke | 2008-12-24 15:50:32 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Fixed svn:eol-style.
................
  r13866 | kohsuke | 2008-12-24 21:26:43 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Copying rev.13860 to retry a merge that now looks suspicious.
................
  r13869 | kohsuke | 2008-12-24 22:03:46 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  The 2nd merge was successful, so adopting the successful merge as the multiple-computer-per-node branch.
................
  r13872 | kohsuke | 2008-12-25 07:28:37 -0800 (Thu, 25 Dec 2008) | 1 line
  
  fixed a test failure
................
  r13873 | kohsuke | 2008-12-25 08:16:49 -0800 (Thu, 25 Dec 2008) | 1 line
  
  expanded NodeProvisioner to work on per-label basis
................
  r13874 | kohsuke | 2008-12-25 08:27:32 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13875 | kohsuke | 2008-12-25 08:33:17 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13876 | kohsuke | 2008-12-25 08:45:03 -0800 (Thu, 25 Dec 2008) | 3 lines
  
  [HUDSON-2605] Strangely, I discovered that on some File, which is new File("./target/hudson-for-test"), file.exists()==false but file.getAbsoluteFile().exists()==true.
  
  It looks like this happens when $PWD of the process at the OS level is different from System.getProperty("user.dir")
................
  r13878 | kohsuke | 2008-12-25 15:52:45 -0800 (Thu, 25 Dec 2008) | 1 line
  
  added a marker file
................
  r13879 | kohsuke | 2008-12-25 15:53:13 -0800 (Thu, 25 Dec 2008) | 1 line
  
  use marker file to find the hudson main workspace.
................
  r13883 | kohsuke | 2008-12-26 07:50:44 -0800 (Fri, 26 Dec 2008) | 1 line
  
  avoid using a deprecated method.
................
  r13884 | kohsuke | 2008-12-26 07:50:59 -0800 (Fri, 26 Dec 2008) | 1 line
  
  adding more probes
................
  r13885 | kohsuke | 2008-12-26 08:15:42 -0800 (Fri, 26 Dec 2008) | 1 line
  
  for analyzing test failures, capturing the output is crucial.
................
  r13887 | kohsuke | 2008-12-26 11:25:12 -0800 (Fri, 26 Dec 2008) | 1 line
  
  allow sub-types to intercept mutation
................
  r13888 | kohsuke | 2008-12-26 11:26:01 -0800 (Fri, 26 Dec 2008) | 1 line
  
  clouds need to be taken into account before marking a label as pointless.
................
  r13889 | kohsuke | 2008-12-26 11:26:40 -0800 (Fri, 26 Dec 2008) | 3 lines
  
  fixing bugs in NodeProvisioner.
  
  Conservative estimate on idle executors have to be max, not min.
................
  r13890 | kohsuke | 2008-12-26 11:42:53 -0800 (Fri, 26 Dec 2008) | 1 line
  
  turns out the problem was that we were adding multiple slaves under the same name, which confused Hudson to no end.
................
  r13896 | kohsuke | 2008-12-27 07:44:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  formatting changes
................
  r13897 | kohsuke | 2008-12-27 07:45:00 -0800 (Sat, 27 Dec 2008) | 1 line
  
  reprot the test name to stdout so that one can easily distinguish different tests in target/surefire-reports/xyz-output.txt
................
  r13898 | kohsuke | 2008-12-27 07:54:53 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13899 | kohsuke | 2008-12-27 09:59:07 -0800 (Sat, 27 Dec 2008) | 1 line
  
  split the functionality into two classes
................
  r13900 | kohsuke | 2008-12-27 10:00:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13901 | kohsuke | 2008-12-27 10:06:24 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added 'tick'
................
  r13902 | kohsuke | 2008-12-27 10:08:04 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding graph rendering of the load statistics
................
  r13903 | kohsuke | 2008-12-27 10:19:41 -0800 (Sat, 27 Dec 2008) | 1 line
  
  improved graph layout
................
  r13904 | kohsuke | 2008-12-27 10:21:05 -0800 (Sat, 27 Dec 2008) | 1 line
  
  Picker -> TimeScale to better reflect what it is.
................
  r13905 | kohsuke | 2008-12-27 10:40:27 -0800 (Sat, 27 Dec 2008) | 1 line
  
  duplicate
................
  r13906 | kohsuke | 2008-12-27 14:39:36 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to a shorter name
................
  r13907 | kohsuke | 2008-12-27 15:03:25 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added icons
................
  r13908 | kohsuke | 2008-12-27 16:20:37 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to make 'loadStatistics' the URL binding.
................
  r13909 | kohsuke | 2008-12-27 16:21:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  exposing loadStatistics for Computer for better URL binding
................
  r13910 | kohsuke | 2008-12-27 16:21:16 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding UI support
................
  r13911 | kohsuke | 2008-12-27 19:31:43 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added some basic visualization
................
  r13912 | kohsuke | 2008-12-27 19:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  if there's no description, don't even show it.
................
  r13913 | kohsuke | 2008-12-27 19:39:26 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added load statistics page for the label as well.
................
  r13914 | kohsuke | 2008-12-27 19:48:55 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added one more convenience method.
................
  r13915 | kohsuke | 2008-12-27 19:54:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  refactored so that a different Dataset can be fed.
................
  r13916 | kohsuke | 2008-12-27 19:59:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added global load statistics lnk to the management screen.
................
  r13917 | kohsuke | 2008-12-27 20:31:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  <dt>s should use the bold font to distinguish them from <dd>s
................
  r13918 | kohsuke | 2008-12-27 20:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
  r13919 | kohsuke | 2008-12-27 20:35:39 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@14215 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-01-07 09:02:56 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // logic behind <f:validateButton />
 | 
					
						
							|  |  |  | function validateButton(checkUrl,paramList,button) { | 
					
						
							|  |  |  |   button = button._button; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var parameters = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   paramList.split(',').each(function(name) { | 
					
						
							|  |  |  |       var p = findPreviousFormItem(button,name); | 
					
						
							|  |  |  |       if(p!=null) | 
					
						
							|  |  |  |         parameters[name] = p.value; | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var spinner = Element.up(button,"DIV").nextSibling; | 
					
						
							|  |  |  |   var target = spinner.nextSibling; | 
					
						
							|  |  |  |   spinner.style.display="block"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   new Ajax.Request(checkUrl, { | 
					
						
							|  |  |  |       method: "post", | 
					
						
							|  |  |  |       parameters: parameters, | 
					
						
							|  |  |  |       onComplete: function(rsp) { | 
					
						
							|  |  |  |           spinner.style.display="none"; | 
					
						
							|  |  |  |           target.innerHTML = rsp.responseText; | 
					
						
							| 
									
										
										
										
											2009-05-09 05:12:44 +08:00
										 |  |  |           var s = rsp.getResponseHeader("script"); | 
					
						
							|  |  |  |           if(s!=null) | 
					
						
							|  |  |  |             try { | 
					
						
							|  |  |  |               eval(s); | 
					
						
							|  |  |  |             } catch(e) { | 
					
						
							|  |  |  |               window.alert("failed to evaluate "+s+"\n"+e.message); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
											  
											
												Merged revisions 11754-11755,11763-11766,11770,11773-11777,11791-11797,11828-11829,11831-11839,11841-11843,11850,11854,11994,12774,12778-12793,12820-12822,12831-12841,12854-12855,12860-12882,12896-12905,12914-12920,12938-12941,12950,13045-13046,13048,13063-13064,13066,13072-13076,13111,13122-13147,13150,13153-13158,13487-13488,13851-13852,13854-13856,13859,13866-13867,13869,13872-13876,13878-13879,13883-13885,13887-13890,13896-13919 via svnmerge from 
https://www.dev.java.net/svn/hudson/branches/multiple-computer-per-node
................
  r11754 | kohsuke | 2008-08-25 17:59:14 -0700 (Mon, 25 Aug 2008) | 3 lines
  
  Adding EphemeralNode for non-persisted dynamically-allocated expandable/shrinkable slave pool.
  
  Tweaked the serialization of Hudson.slaves accordingly.
................
  r11755 | kohsuke | 2008-08-25 18:10:42 -0700 (Mon, 25 Aug 2008) | 1 line
  
  making a small improvements
................
  r11763 | kohsuke | 2008-08-26 13:57:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding more convenience methods
................
  r11764 | kohsuke | 2008-08-26 14:24:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  ported mask capability from the TFS plugin to the core.
................
  r11765 | kohsuke | 2008-08-26 14:26:25 -0700 (Tue, 26 Aug 2008) | 1 line
  
  making it non-final to allow for subclassing
................
  r11766 | kohsuke | 2008-08-26 14:35:20 -0700 (Tue, 26 Aug 2008) | 1 line
  
  test case for NodeList
................
  r11770 | kohsuke | 2008-08-26 15:15:21 -0700 (Tue, 26 Aug 2008) | 3 lines
  
  Wrote a simple tool that monitors a file system change (in a poor way) and triggers a build.
................
  r11773 | kohsuke | 2008-08-26 17:20:30 -0700 (Tue, 26 Aug 2008) | 1 line
  
  made more structured
................
  r11774 | kohsuke | 2008-08-26 17:47:41 -0700 (Tue, 26 Aug 2008) | 1 line
  
  indentation fix
................
  r11775 | kohsuke | 2008-08-26 17:48:22 -0700 (Tue, 26 Aug 2008) | 1 line
  
  remove the use of a deprecated feature.
................
  r11776 | kohsuke | 2008-08-26 17:51:54 -0700 (Tue, 26 Aug 2008) | 1 line
  
  renamed to 'ALL' to be consistent with recent use of DescriptorList
................
  r11777 | kohsuke | 2008-08-26 18:04:17 -0700 (Tue, 26 Aug 2008) | 1 line
  
  adding NodeFactory list and its configuration mechanism
................
  r11791 | kohsuke | 2008-08-27 09:43:38 -0700 (Wed, 27 Aug 2008) | 1 line
  
  picked up the latest jelly with Iterable support in <j:forEach>
................
  r11792 | kohsuke | 2008-08-27 09:44:08 -0700 (Wed, 27 Aug 2008) | 1 line
  
  Iterable support added in  commons-jelly 1.1-hudson-20080826
................
  r11793 | kohsuke | 2008-08-27 10:15:14 -0700 (Wed, 27 Aug 2008) | 2 lines
  
  - added name to NodeFactory for binding NodeFactory to URL tree.
  - NodeFactory should be access controlled
................
  r11794 | kohsuke | 2008-08-27 10:41:11 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added a method to add one Node at a time
................
  r11795 | kohsuke | 2008-08-27 10:41:37 -0700 (Wed, 27 Aug 2008) | 1 line
  
  added permission constatnt
................
  r11796 | kohsuke | 2008-08-27 10:42:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  allowing the launch method to throw an exception.
................
  r11797 | kohsuke | 2008-08-27 10:44:13 -0700 (Wed, 27 Aug 2008) | 1 line
  
  improving the handling
................
  r11828 | kohsuke | 2008-08-29 11:07:16 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added executor config to the sidebar.
................
  r11829 | kohsuke | 2008-08-29 11:16:11 -0700 (Fri, 29 Aug 2008) | 1 line
  
  "it" should be assigned to NodeFactory
................
  r11831 | kohsuke | 2008-08-29 11:44:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11832 | kohsuke | 2008-08-29 11:59:21 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a script to create a flashing image from any picture
................
  r11833 | kohsuke | 2008-08-29 12:07:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11834 | kohsuke | 2008-08-29 13:37:59 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added new images to indicate that a slave is launching
................
  r11835 | kohsuke | 2008-08-29 13:43:41 -0700 (Fri, 29 Aug 2008) | 1 line
  
  indicate a launching slave accordingly.
................
  r11836 | kohsuke | 2008-08-29 14:02:28 -0700 (Fri, 29 Aug 2008) | 1 line
  
  added a method to remove a Node.
................
  r11837 | kohsuke | 2008-08-29 14:02:38 -0700 (Fri, 29 Aug 2008) | 1 line
  
  disconnect
................
  r11838 | kohsuke | 2008-08-29 14:03:22 -0700 (Fri, 29 Aug 2008) | 1 line
  
  formatting changes
................
  r11839 | kohsuke | 2008-08-29 14:14:04 -0700 (Fri, 29 Aug 2008) | 1 line
  
  allowing subclasses.
................
  r11841 | kohsuke | 2008-08-29 14:28:29 -0700 (Fri, 29 Aug 2008) | 1 line
  
  constructor should be the first in the definition.
................
  r11842 | kohsuke | 2008-08-29 14:31:01 -0700 (Fri, 29 Aug 2008) | 1 line
  
  doc improvement.
................
  r11843 | kohsuke | 2008-08-29 14:32:48 -0700 (Fri, 29 Aug 2008) | 1 line
  
  fixed a problem of using partially constructed object during launch(), because the setNode() method is called from the Computer constructor.
................
  r11850 | kohsuke | 2008-08-29 14:50:36 -0700 (Fri, 29 Aug 2008) | 1 line
  
  serialize NodeFactory first so that references to them from NodeList will become references in XML.
................
  r11854 | kohsuke | 2008-08-29 14:56:56 -0700 (Fri, 29 Aug 2008) | 1 line
  
  cleaning up a bit.
................
  r11994 | kohsuke | 2008-09-03 14:42:11 -0700 (Wed, 03 Sep 2008) | 21 lines
  
  Fixed ArrayIndexOutOfBoundsException during replace(), when the title contains a '$' literal.
  
  The typical stack trace looks like:
  
  Caused by: java.lang.ArrayIndexOutOfBoundsException: 32
          at hudson.MarkupText$SubText.start(MarkupText.java:95)
          at hudson.MarkupText$SubText.group(MarkupText.java:131)
          at hudson.MarkupText$SubText.replace(MarkupText.java:154)
          at hudson.MarkupText$SubText.surroundWith(MarkupText.java:83)
          at 
  hudson.plugins.jira.JiraChangeLogAnnotator.annotate(JiraChangeLogAnnotator.java:37)
          at 
  hudson.scm.ChangeLogSet$Entry.getMsgAnnotated(ChangeLogSet.java:117)
          ... 148 more
  
  Vijayan Jayaraman and I found this problem while we were looking at the server log of Hudson for OpenJFX.
  
  Adding a unit test to verify this behavior, too.  
................
  r12774 | kohsuke | 2008-10-27 15:03:36 -0700 (Mon, 27 Oct 2008) | 3 lines
  
  preparing for heterogenousness in Node, so that different Node can be configured with different UIs, much like how different Jobs can be configured.
  
  Creating a slave works also like creating a new job.
................
  r12778 | kohsuke | 2008-10-27 15:06:51 -0700 (Mon, 27 Oct 2008) | 1 line
  
  We need to be able to create an emtpy Slave initially, so we have to do with the check in the form field validation.
................
  r12779 | kohsuke | 2008-10-27 15:48:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the new slave page a two-step process
................
  r12780 | kohsuke | 2008-10-27 15:48:24 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a compilation problem
................
  r12781 | kohsuke | 2008-10-27 15:53:30 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12782 | kohsuke | 2008-10-27 15:58:20 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fixes
................
  r12783 | kohsuke | 2008-10-27 16:08:56 -0700 (Mon, 27 Oct 2008) | 1 line
  
  making the configuration page work for slaves
................
  r12784 | kohsuke | 2008-10-27 16:35:17 -0700 (Mon, 27 Oct 2008) | 1 line
  
  added new-computer.svg
................
  r12785 | kohsuke | 2008-10-27 16:37:26 -0700 (Mon, 27 Oct 2008) | 1 line
  
  hooking up the config/create pages to the UI
................
  r12786 | kohsuke | 2008-10-27 16:44:40 -0700 (Mon, 27 Oct 2008) | 1 line
  
  fixed a copy method.
................
  r12787 | kohsuke | 2008-10-27 16:47:33 -0700 (Mon, 27 Oct 2008) | 1 line
  
  code was broken when a slave was renamed
................
  r12788 | kohsuke | 2008-10-27 16:58:04 -0700 (Mon, 27 Oct 2008) | 1 line
  
  moving out the commonality into a new tag
................
  r12789 | kohsuke | 2008-10-27 17:01:21 -0700 (Mon, 27 Oct 2008) | 1 line
  
  consistent term usage
................
  r12790 | kohsuke | 2008-10-27 17:03:19 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retiring the configureExecutors. Slave configuration is now moved to individual slave page
................
  r12791 | kohsuke | 2008-10-27 17:10:32 -0700 (Mon, 27 Oct 2008) | 1 line
  
  retired configureExecutors.jelly and completed moved its contents to somewhere else
................
  r12792 | kohsuke | 2008-10-27 17:21:53 -0700 (Mon, 27 Oct 2008) | 1 line
  
  bug fix. request handling of "/descriptor/FQCN/..." was broken.
................
  r12793 | kohsuke | 2008-10-27 17:27:08 -0700 (Mon, 27 Oct 2008) | 1 line
  
  NodeFactory -> Cloud to encourage consistent term usage between the code and the UI.
................
  r12820 | kohsuke | 2008-10-29 10:58:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  formatting fix
................
  r12821 | kohsuke | 2008-10-29 11:17:49 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added classes for handling a secret and prevent accidental exposure of a secret in the persisted form
................
  r12822 | kohsuke | 2008-10-29 11:32:39 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added a base64 validator
................
  r12831 | kohsuke | 2008-10-29 15:58:45 -0700 (Wed, 29 Oct 2008) | 1 line
  
  secret key needs to be persisted outside config.xml (and it is, already!)
................
  r12832 | kohsuke | 2008-10-29 16:06:28 -0700 (Wed, 29 Oct 2008) | 1 line
  
  started working on Amazon EC2 plugin
................
  r12833 | kohsuke | 2008-10-29 16:09:20 -0700 (Wed, 29 Oct 2008) | 1 line
  
  brought the same enhancement as in <textbox />
................
  r12834 | kohsuke | 2008-10-29 16:15:05 -0700 (Wed, 29 Oct 2008) | 1 line
  
  copy over the onclick handler from the original button element
................
  r12835 | kohsuke | 2008-10-29 17:01:04 -0700 (Wed, 29 Oct 2008) | 1 line
  
  allow OK messages to be sent with some mark up.
................
  r12836 | kohsuke | 2008-10-29 17:06:52 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added connection testing. This pattern needs to be generalized since it happens often
................
  r12837 | kohsuke | 2008-10-29 17:13:11 -0700 (Wed, 29 Oct 2008) | 1 line
  
  this is little better
................
  r12838 | kohsuke | 2008-10-29 17:17:44 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added spinner
................
  r12839 | kohsuke | 2008-10-29 17:31:54 -0700 (Wed, 29 Oct 2008) | 1 line
  
  restructuring the validation button support in a form that can be readily moved to the core.
................
  r12840 | kohsuke | 2008-10-29 18:01:41 -0700 (Wed, 29 Oct 2008) | 1 line
  
  added <f:validateButton/> for multi-field server-side validation
................
  r12841 | kohsuke | 2008-10-29 18:03:12 -0700 (Wed, 29 Oct 2008) | 1 line
  
  logic moved to <f:validateButton/> in the core.
................
  r12854 | kohsuke | 2008-10-30 13:32:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  @QueryParameter.value won't be necessary any more
................
  r12855 | kohsuke | 2008-10-30 13:42:58 -0700 (Thu, 30 Oct 2008) | 1 line
  
  need a strongly-typed constructor.
................
  r12860 | kohsuke | 2008-10-30 15:24:18 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding more reflection support, which in turn we use in taglibs to raise the level of abstraction.
................
  r12861 | kohsuke | 2008-10-30 15:33:22 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added a tag to create databinding to a<select> element from an enum property
................
  r12862 | kohsuke | 2008-10-30 15:37:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding a smarter bi-directional binding through <f:repeatable field="..."/>
................
  r12863 | kohsuke | 2008-10-30 15:47:48 -0700 (Thu, 30 Oct 2008) | 1 line
  
  making progress with the EC2 support
................
  r12864 | kohsuke | 2008-10-30 16:12:34 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added form field validation for AMI ID
................
  r12865 | kohsuke | 2008-10-30 16:15:44 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added simpler version
................
  r12866 | kohsuke | 2008-10-30 16:17:15 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12867 | kohsuke | 2008-10-30 16:17:19 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12868 | kohsuke | 2008-10-30 16:40:25 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc improvement
................
  r12869 | kohsuke | 2008-10-30 17:00:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding the provisioning of the new slave
................
  r12870 | kohsuke | 2008-10-30 17:07:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  /** {@inheritDoc} */ is the default behavior for javadoc, so there's no point in making that explicit.
................
  r12871 | kohsuke | 2008-10-30 17:11:04 -0700 (Thu, 30 Oct 2008) | 1 line
  
  doc bug fix
................
  r12872 | kohsuke | 2008-10-30 17:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  simplified a bit
................
  r12873 | kohsuke | 2008-10-30 17:19:06 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added RetentionStrategy for EC2 instances
................
  r12874 | kohsuke | 2008-10-30 17:21:17 -0700 (Thu, 30 Oct 2008) | 1 line
  
  allowing subclasses to override the disconnect behavior.
................
  r12875 | kohsuke | 2008-10-30 18:02:35 -0700 (Thu, 30 Oct 2008) | 1 line
  
  added termination
................
  r12876 | kohsuke | 2008-10-30 18:05:30 -0700 (Thu, 30 Oct 2008) | 1 line
  
  forgot to rename when NodeFactory was renamed to Cloud
................
  r12877 | kohsuke | 2008-10-30 18:06:08 -0700 (Thu, 30 Oct 2008) | 1 line
  
  using the console icon
................
  r12878 | kohsuke | 2008-10-30 18:17:20 -0700 (Thu, 30 Oct 2008) | 1 line
  
  adding UI to remove a slave.
................
  r12879 | kohsuke | 2008-10-30 18:48:57 -0700 (Thu, 30 Oct 2008) | 1 line
  
  commons-discovery now needed in stapler
................
  r12880 | kohsuke | 2008-10-30 18:50:27 -0700 (Thu, 30 Oct 2008) | 1 line
  
  needs to use a newer version of stapler
................
  r12881 | kohsuke | 2008-10-30 18:51:02 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12882 | kohsuke | 2008-10-30 18:51:43 -0700 (Thu, 30 Oct 2008) | 1 line
  
  Bye bye CVS
................
  r12896 | kohsuke | 2008-10-31 14:52:07 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed the ordering between field and the mighty get(String) method.
................
  r12897 | kohsuke | 2008-10-31 15:08:41 -0700 (Fri, 31 Oct 2008) | 1 line
  
  fixed test compilation problems
................
  r12898 | kohsuke | 2008-10-31 15:11:25 -0700 (Fri, 31 Oct 2008) | 1 line
  
  marking this as a model object since it's always bound to URL.
................
  r12899 | kohsuke | 2008-10-31 15:13:42 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up to manually provision a new node
................
  r12900 | kohsuke | 2008-10-31 15:14:00 -0700 (Fri, 31 Oct 2008) | 1 line
  
  after merging the trunk the version number is different
................
  r12901 | kohsuke | 2008-10-31 15:21:54 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding UI hook up for provisioning a new slave
................
  r12902 | kohsuke | 2008-10-31 15:45:10 -0700 (Fri, 31 Oct 2008) | 1 line
  
  adding a hook to decorate ComputerLauncher.
................
  r12903 | kohsuke | 2008-10-31 15:48:21 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added filtering support
................
  r12904 | kohsuke | 2008-10-31 15:52:45 -0700 (Fri, 31 Oct 2008) | 1 line
  
  added view
................
  r12905 | kohsuke | 2008-10-31 15:53:49 -0700 (Fri, 31 Oct 2008) | 1 line
  
  doc improvement
................
  r12914 | kohsuke | 2008-11-01 17:45:57 -0700 (Sat, 01 Nov 2008) | 1 line
  
  adding code for connecting with SSH
................
  r12915 | kohsuke | 2008-11-01 17:49:28 -0700 (Sat, 01 Nov 2008) | 1 line
  
  working on launchers
................
  r12916 | kohsuke | 2008-11-01 18:33:12 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a method to fully read a stream
................
  r12917 | kohsuke | 2008-11-01 18:33:45 -0700 (Sat, 01 Nov 2008) | 1 line
  
  bumped up stapler
................
  r12918 | kohsuke | 2008-11-01 18:39:41 -0700 (Sat, 01 Nov 2008) | 1 line
  
  doc improvement.
................
  r12919 | kohsuke | 2008-11-01 18:45:24 -0700 (Sat, 01 Nov 2008) | 1 line
  
  added a launcher
................
  r12920 | kohsuke | 2008-11-01 18:55:02 -0700 (Sat, 01 Nov 2008) | 1 line
  
  implementing the actual ComputerLauncher
................
  r12938 | kohsuke | 2008-11-02 08:56:05 -0800 (Sun, 02 Nov 2008) | 1 line
  
  support the field notation
................
  r12939 | kohsuke | 2008-11-02 09:20:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  added the mechanism to execute the init script
................
  r12940 | kohsuke | 2008-11-02 09:21:38 -0800 (Sun, 02 Nov 2008) | 1 line
  
  simplification
................
  r12941 | kohsuke | 2008-11-02 09:36:21 -0800 (Sun, 02 Nov 2008) | 1 line
  
  adding key handling
................
  r12950 | kohsuke | 2008-11-03 11:00:58 -0800 (Mon, 03 Nov 2008) | 1 line
  
  formatting changes
................
  r13045 | kohsuke | 2008-11-06 15:24:32 -0800 (Thu, 06 Nov 2008) | 1 line
  
  adding time series datatype for retaining load average statistics in memory
................
  r13046 | kohsuke | 2008-11-06 15:59:02 -0800 (Thu, 06 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13048 | kohsuke | 2008-11-06 16:21:54 -0800 (Thu, 06 Nov 2008) | 2 lines
  
  - started monitoring # of executor statistics.
  - exposed label to the remote API
................
  r13063 | kohsuke | 2008-11-07 13:05:15 -0800 (Fri, 07 Nov 2008) | 1 line
  
  added a convenience method.
................
  r13064 | kohsuke | 2008-11-07 13:11:08 -0800 (Fri, 07 Nov 2008) | 1 line
  
  monitor the length of the queue too
................
  r13066 | kohsuke | 2008-11-07 14:15:56 -0800 (Fri, 07 Nov 2008) | 1 line
  
  moved the stats to its own class.
................
  r13072 | kohsuke | 2008-11-07 15:40:29 -0800 (Fri, 07 Nov 2008) | 1 line
  
  adding provisioning logic based on load statistics
................
  r13073 | kohsuke | 2008-11-07 15:46:00 -0800 (Fri, 07 Nov 2008) | 1 line
  
  for effective testing, we need sub-sec precision
................
  r13074 | kohsuke | 2008-11-07 16:24:44 -0800 (Fri, 07 Nov 2008) | 1 line
  
  fixed a lie.
................
  r13075 | kohsuke | 2008-11-07 16:25:12 -0800 (Fri, 07 Nov 2008) | 1 line
  
  bug fix
................
  r13076 | kohsuke | 2008-11-07 16:30:55 -0800 (Fri, 07 Nov 2008) | 1 line
  
  avoid using deprecated methods
................
  r13111 | kohsuke | 2008-11-09 11:54:23 -0800 (Sun, 09 Nov 2008) | 1 line
  
  added the Future<?> return parameter to Computer.launch(). To do this w/o breaking compatibility, renamed launch to connect.
................
  r13122 | kohsuke | 2008-11-10 14:38:03 -0800 (Mon, 10 Nov 2008) | 1 line
  
  allow programmatic update of the assigned label
................
  r13123 | kohsuke | 2008-11-10 14:38:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Iterator not needed because CopyOnWriteArrayList doesn't support removal via iterator.
................
  r13124 | kohsuke | 2008-11-10 14:39:24 -0800 (Mon, 10 Nov 2008) | 1 line
  
  added another Builder for tests
................
  r13125 | kohsuke | 2008-11-10 14:39:48 -0800 (Mon, 10 Nov 2008) | 1 line
  
  simplified a bit. This TestEnvironment stuff needs some clearer story.
................
  r13126 | kohsuke | 2008-11-10 14:46:40 -0800 (Mon, 10 Nov 2008) | 1 line
  
  IDEA complains about this.
................
  r13127 | kohsuke | 2008-11-10 14:51:53 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved the error diagnostics by displaying why a provisioned node failed to launch
................
  r13128 | kohsuke | 2008-11-10 14:52:12 -0800 (Mon, 10 Nov 2008) | 1 line
  
  Started a test case for NodeProvisioner
................
  r13129 | kohsuke | 2008-11-10 14:52:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13130 | kohsuke | 2008-11-10 15:16:02 -0800 (Mon, 10 Nov 2008) | 1 line
  
  report the failure as a failure.
................
  r13131 | kohsuke | 2008-11-10 16:34:23 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding a parameter to the connect method to support joining to the pending launch activity.
................
  r13132 | kohsuke | 2008-11-10 16:38:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  making members public so that it can be accessed from other classes (DummyCloudImpl was the first to do this)
................
  r13133 | kohsuke | 2008-11-10 16:38:58 -0800 (Mon, 10 Nov 2008) | 1 line
  
  split the cloud implementation to a separate class to allow reuse.
................
  r13134 | kohsuke | 2008-11-10 16:56:27 -0800 (Mon, 10 Nov 2008) | 1 line
  
  assign unique names to support multiple jobs
................
  r13135 | kohsuke | 2008-11-10 17:11:31 -0800 (Mon, 10 Nov 2008) | 1 line
  
  avoid unnecessary interruption
................
  r13136 | kohsuke | 2008-11-10 17:11:41 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13137 | kohsuke | 2008-11-10 17:16:28 -0800 (Mon, 10 Nov 2008) | 1 line
  
  cleaned up a test case
................
  r13138 | kohsuke | 2008-11-10 17:36:52 -0800 (Mon, 10 Nov 2008) | 1 line
  
  since the setNode method is called on every Computer just by adding a new node, don't force a new launch attempt.
................
  r13139 | kohsuke | 2008-11-10 17:37:38 -0800 (Mon, 10 Nov 2008) | 1 line
  
  perform orderly shutdown by giving computers enough time to disconnect.
................
  r13140 | kohsuke | 2008-11-10 17:38:08 -0800 (Mon, 10 Nov 2008) | 3 lines
  
  return Future for synchronization.
  
  This breaks binary compatibility, but I checked none of the plugins in Hudson SVN uses this, so I hope this is OK.
................
  r13141 | kohsuke | 2008-11-10 17:38:46 -0800 (Mon, 10 Nov 2008) | 1 line
  
  improved diagnostics
................
  r13142 | kohsuke | 2008-11-10 17:39:55 -0800 (Mon, 10 Nov 2008) | 1 line
  
  removed compiler warning
................
  r13143 | kohsuke | 2008-11-10 18:02:56 -0800 (Mon, 10 Nov 2008) | 1 line
  
  hide the rounding related problem from Cloud by passing int instead of float.
................
  r13144 | kohsuke | 2008-11-10 18:10:10 -0800 (Mon, 10 Nov 2008) | 1 line
  
  bug fix
................
  r13145 | kohsuke | 2008-11-10 18:11:51 -0800 (Mon, 10 Nov 2008) | 1 line
  
  formatting changes
................
  r13146 | kohsuke | 2008-11-10 18:15:08 -0800 (Mon, 10 Nov 2008) | 1 line
  
  moved the slave launch code to HudsonTestCase for reuse
................
  r13147 | kohsuke | 2008-11-10 18:20:19 -0800 (Mon, 10 Nov 2008) | 1 line
  
  adding another test case
................
  r13150 | kohsuke | 2008-11-11 07:28:53 -0800 (Tue, 11 Nov 2008) | 1 line
  
  bug fix
................
  r13153 | kohsuke | 2008-11-11 14:04:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  cutting down the test size to 5 to increase the test speed
................
  r13154 | kohsuke | 2008-11-11 14:04:37 -0800 (Tue, 11 Nov 2008) | 1 line
  
  improved debuggability
................
  r13155 | kohsuke | 2008-11-11 14:10:04 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added another convenience method
................
  r13156 | kohsuke | 2008-11-11 14:10:21 -0800 (Tue, 11 Nov 2008) | 1 line
  
  further reduce the test turn around time
................
  r13157 | kohsuke | 2008-11-11 14:22:03 -0800 (Tue, 11 Nov 2008) | 1 line
  
  doc improvement and clean up
................
  r13158 | kohsuke | 2008-11-11 14:22:28 -0800 (Tue, 11 Nov 2008) | 1 line
  
  added a new metho
................
  r13487 | kohsuke | 2008-12-09 17:17:30 -0800 (Tue, 09 Dec 2008) | 1 line
  
  SlaveTemplate needs to be able to computer # of executors.
................
  r13488 | kohsuke | 2008-12-09 17:18:05 -0800 (Tue, 09 Dec 2008) | 1 line
  
  fixed a compilation problem with the latest head of the branch
................
  r13851 | kohsuke | 2008-12-24 13:40:43 -0800 (Wed, 24 Dec 2008) | 82 lines
  
  fixed a dead lock reported by Jesse.
  
  Found one Java-level deadlock:
  =============================
  "Executor #0 for master":
     waiting to lock monitor 0x09409bac (object 0x87474ca0, a hudson.util.CopyOnWriteMap$Hash),
     which is held by "main"
  "main":
     waiting to lock monitor 0x09409b48 (object 0x87474d48, a hudson.model.Hudson$MasterComputer),
     which is held by "Executor #0 for master"
  
  Java stack information for the threads listed above:
  ===================================================
  "Executor #0 for master":
  	at hudson.util.CopyOnWriteMap.remove(CopyOnWriteMap.java:78)
  	- waiting to lock <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.removeComputer(Hudson.java:717)
  	at hudson.model.Computer.removeExecutor(Computer.java:433)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Executor.run(Executor.java:65)
  	- locked <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  "main":
  	at hudson.model.Computer.setNumExecutors(Computer.java:338)
  	- waiting to lock <0x87474d48> (a hudson.model.Hudson$MasterComputer)
  	at hudson.model.Computer.setNode(Computer.java:327)
  	at hudson.model.Hudson.updateComputer(Hudson.java:704)
  	at hudson.model.Hudson.updateComputerList(Hudson.java:685)
  	- locked <0x87474ca0> (a hudson.util.CopyOnWriteMap$Hash)
  	at hudson.model.Hudson.setNodes(Hudson.java:1076)
  	at hudson.model.Hudson.addNode(Hudson.java:1060)
  	- locked <0x87474cb0> (a hudson.model.Hudson)
  	at org.jvnet.hudson.test.HudsonTestCase.createSlave(HudsonTestCase.java:247)
  	at hudson.slaves.NodeProvisionerTest.testBaselineSlaveUsage(NodeProvisionerTest.java:86)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at junit.framework.TestCase.runTest(TestCase.java:154)
  	at org.jvnet.hudson.test.HudsonTestCase.runTest(HudsonTestCase.java:151)
  	at junit.framework.TestCase.runBare(TestCase.java:127)
  	at junit.framework.TestResult$1.protect(TestResult.java:106)
  	at junit.framework.TestResult.runProtected(TestResult.java:124)
  	at junit.framework.TestResult.run(TestResult.java:109)
  	at junit.framework.TestCase.run(TestCase.java:118)
  	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  	at junit.framework.TestSuite.run(TestSuite.java:203)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
  	at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:241)
  	at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:537)
  	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
  	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  	at java.lang.reflect.Method.invoke(Method.java:597)
  	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
  	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
  	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
  	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  
  Found 1 deadlock.
................
  r13852 | kohsuke | 2008-12-24 14:32:29 -0800 (Wed, 24 Dec 2008) | 1 line
  
  bug fix in the test case.
................
  r13854 | kohsuke | 2008-12-24 15:20:22 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  Using a new version of Rhino to get a proper exception chaining.
................
  r13855 | kohsuke | 2008-12-24 15:22:13 -0800 (Wed, 24 Dec 2008) | 1 line
  
  typo
................
  r13856 | kohsuke | 2008-12-24 15:37:56 -0800 (Wed, 24 Dec 2008) | 1 line
  
  CR shouldn't be in the repository
................
  r13859 | kohsuke | 2008-12-24 15:50:32 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Fixed svn:eol-style.
................
  r13866 | kohsuke | 2008-12-24 21:26:43 -0800 (Wed, 24 Dec 2008) | 3 lines
  
  Copying rev.13860 to retry a merge that now looks suspicious.
................
  r13869 | kohsuke | 2008-12-24 22:03:46 -0800 (Wed, 24 Dec 2008) | 2 lines
  
  The 2nd merge was successful, so adopting the successful merge as the multiple-computer-per-node branch.
................
  r13872 | kohsuke | 2008-12-25 07:28:37 -0800 (Thu, 25 Dec 2008) | 1 line
  
  fixed a test failure
................
  r13873 | kohsuke | 2008-12-25 08:16:49 -0800 (Thu, 25 Dec 2008) | 1 line
  
  expanded NodeProvisioner to work on per-label basis
................
  r13874 | kohsuke | 2008-12-25 08:27:32 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13875 | kohsuke | 2008-12-25 08:33:17 -0800 (Thu, 25 Dec 2008) | 1 line
  
  bug fix
................
  r13876 | kohsuke | 2008-12-25 08:45:03 -0800 (Thu, 25 Dec 2008) | 3 lines
  
  [HUDSON-2605] Strangely, I discovered that on some File, which is new File("./target/hudson-for-test"), file.exists()==false but file.getAbsoluteFile().exists()==true.
  
  It looks like this happens when $PWD of the process at the OS level is different from System.getProperty("user.dir")
................
  r13878 | kohsuke | 2008-12-25 15:52:45 -0800 (Thu, 25 Dec 2008) | 1 line
  
  added a marker file
................
  r13879 | kohsuke | 2008-12-25 15:53:13 -0800 (Thu, 25 Dec 2008) | 1 line
  
  use marker file to find the hudson main workspace.
................
  r13883 | kohsuke | 2008-12-26 07:50:44 -0800 (Fri, 26 Dec 2008) | 1 line
  
  avoid using a deprecated method.
................
  r13884 | kohsuke | 2008-12-26 07:50:59 -0800 (Fri, 26 Dec 2008) | 1 line
  
  adding more probes
................
  r13885 | kohsuke | 2008-12-26 08:15:42 -0800 (Fri, 26 Dec 2008) | 1 line
  
  for analyzing test failures, capturing the output is crucial.
................
  r13887 | kohsuke | 2008-12-26 11:25:12 -0800 (Fri, 26 Dec 2008) | 1 line
  
  allow sub-types to intercept mutation
................
  r13888 | kohsuke | 2008-12-26 11:26:01 -0800 (Fri, 26 Dec 2008) | 1 line
  
  clouds need to be taken into account before marking a label as pointless.
................
  r13889 | kohsuke | 2008-12-26 11:26:40 -0800 (Fri, 26 Dec 2008) | 3 lines
  
  fixing bugs in NodeProvisioner.
  
  Conservative estimate on idle executors have to be max, not min.
................
  r13890 | kohsuke | 2008-12-26 11:42:53 -0800 (Fri, 26 Dec 2008) | 1 line
  
  turns out the problem was that we were adding multiple slaves under the same name, which confused Hudson to no end.
................
  r13896 | kohsuke | 2008-12-27 07:44:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  formatting changes
................
  r13897 | kohsuke | 2008-12-27 07:45:00 -0800 (Sat, 27 Dec 2008) | 1 line
  
  reprot the test name to stdout so that one can easily distinguish different tests in target/surefire-reports/xyz-output.txt
................
  r13898 | kohsuke | 2008-12-27 07:54:53 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13899 | kohsuke | 2008-12-27 09:59:07 -0800 (Sat, 27 Dec 2008) | 1 line
  
  split the functionality into two classes
................
  r13900 | kohsuke | 2008-12-27 10:00:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  doc improvement
................
  r13901 | kohsuke | 2008-12-27 10:06:24 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added 'tick'
................
  r13902 | kohsuke | 2008-12-27 10:08:04 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding graph rendering of the load statistics
................
  r13903 | kohsuke | 2008-12-27 10:19:41 -0800 (Sat, 27 Dec 2008) | 1 line
  
  improved graph layout
................
  r13904 | kohsuke | 2008-12-27 10:21:05 -0800 (Sat, 27 Dec 2008) | 1 line
  
  Picker -> TimeScale to better reflect what it is.
................
  r13905 | kohsuke | 2008-12-27 10:40:27 -0800 (Sat, 27 Dec 2008) | 1 line
  
  duplicate
................
  r13906 | kohsuke | 2008-12-27 14:39:36 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to a shorter name
................
  r13907 | kohsuke | 2008-12-27 15:03:25 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added icons
................
  r13908 | kohsuke | 2008-12-27 16:20:37 -0800 (Sat, 27 Dec 2008) | 1 line
  
  renamed to make 'loadStatistics' the URL binding.
................
  r13909 | kohsuke | 2008-12-27 16:21:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  exposing loadStatistics for Computer for better URL binding
................
  r13910 | kohsuke | 2008-12-27 16:21:16 -0800 (Sat, 27 Dec 2008) | 1 line
  
  adding UI support
................
  r13911 | kohsuke | 2008-12-27 19:31:43 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added some basic visualization
................
  r13912 | kohsuke | 2008-12-27 19:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  if there's no description, don't even show it.
................
  r13913 | kohsuke | 2008-12-27 19:39:26 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added load statistics page for the label as well.
................
  r13914 | kohsuke | 2008-12-27 19:48:55 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added one more convenience method.
................
  r13915 | kohsuke | 2008-12-27 19:54:29 -0800 (Sat, 27 Dec 2008) | 1 line
  
  refactored so that a different Dataset can be fed.
................
  r13916 | kohsuke | 2008-12-27 19:59:20 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added global load statistics lnk to the management screen.
................
  r13917 | kohsuke | 2008-12-27 20:31:01 -0800 (Sat, 27 Dec 2008) | 1 line
  
  <dt>s should use the bold font to distinguish them from <dd>s
................
  r13918 | kohsuke | 2008-12-27 20:35:10 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
  r13919 | kohsuke | 2008-12-27 20:35:39 -0800 (Sat, 27 Dec 2008) | 1 line
  
  added description of what the graph means.
................
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@14215 71c3de6d-444a-0410-be80-ed276b4c234a
											
										 
											2009-01-07 09:02:56 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-01-12 02:36:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // create a combobox.
 | 
					
						
							|  |  |  | // @param id
 | 
					
						
							|  |  |  | //      ID of the <input type=text> element that becomes a combobox.
 | 
					
						
							|  |  |  | // @param valueFunction
 | 
					
						
							|  |  |  | //      Function that returns all the candidates as an array
 | 
					
						
							|  |  |  | function createComboBox(id,valueFunction) { | 
					
						
							|  |  |  |     var candidates = valueFunction(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Behaviour.addLoadEvent(function() { | 
					
						
							|  |  |  |         var callback = function(value /*, comboBox*/) { | 
					
						
							|  |  |  |           var items = new Array(); | 
					
						
							|  |  |  |           if (value.length > 0) { // if no value, we'll not provide anything
 | 
					
						
							|  |  |  |             value = value.toLowerCase(); | 
					
						
							|  |  |  |             for (var i = 0; i<candidates.length; i++) { | 
					
						
							|  |  |  |               if (candidates[i].toLowerCase().indexOf(value) >= 0) { | 
					
						
							|  |  |  |                 items.push(candidates[i]); | 
					
						
							|  |  |  |                 if(items.length>20) | 
					
						
							|  |  |  |                   break; // 20 items in the list should be enough
 | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |           return items; // equiv to: comboBox.setItems(items);
 | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-02 07:05:43 +08:00
										 |  |  |         if (document.getElementById(id) != null) { | 
					
						
							|  |  |  |           new ComboBox(id,callback); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-01-12 02:36:19 +08:00
										 |  |  |     }); | 
					
						
							|  |  |  | } |