You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(142) |
Jun
(27) |
Jul
(122) |
Aug
(36) |
Sep
(59) |
Oct
(86) |
Nov
(140) |
Dec
(80) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(52) |
Feb
(153) |
Mar
(118) |
Apr
(143) |
May
(123) |
Jun
(64) |
Jul
(282) |
Aug
(469) |
Sep
(56) |
Oct
(201) |
Nov
(182) |
Dec
(31) |
| 2005 |
Jan
(229) |
Feb
(316) |
Mar
(187) |
Apr
(130) |
May
(190) |
Jun
(154) |
Jul
(148) |
Aug
(133) |
Sep
(209) |
Oct
(234) |
Nov
(100) |
Dec
(40) |
| 2006 |
Jan
(1) |
Feb
(87) |
Mar
(73) |
Apr
(126) |
May
(58) |
Jun
(8) |
Jul
(12) |
Aug
(14) |
Sep
(22) |
Oct
(33) |
Nov
(4) |
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(4) |
2
|
3
(2) |
4
|
|
5
(22) |
6
(8) |
7
|
8
|
9
|
10
|
11
|
|
12
(4) |
13
|
14
|
15
(5) |
16
|
17
|
18
|
|
19
|
20
|
21
(2) |
22
|
23
(13) |
24
(14) |
25
|
|
26
(13) |
27
|
28
|
|
|
|
|
|
From: Owen R. <exo...@us...> - 2006-02-26 04:46:29
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21550/project/WebDashboard/Dashboard Modified Files: ProjectGrid.cs ProjectGridRow.cs VelocityProjectGridAction.cs Log Message: CCNET-510 : force build and stop/start are now configurable in the dashboard.config file on the server level Index: VelocityProjectGridAction.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard/VelocityProjectGridAction.cs,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** VelocityProjectGridAction.cs 26 Feb 2006 04:03:39 -0000 1.11 --- VelocityProjectGridAction.cs 26 Feb 2006 04:46:24 -0000 1.12 *************** *** 41,46 **** Hashtable velocityContext = new Hashtable(); velocityContext["forceBuildMessage"] = ForceBuildIfNecessary(request); - velocityContext["allowForceBuild"] = true; - velocityContext["allowStartStopBuild"] = false; ProjectGridSortColumn sortColumn = GetSortColumn(request); --- 41,44 ---- Index: ProjectGridRow.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard/ProjectGridRow.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ProjectGridRow.cs 26 Feb 2006 04:03:39 -0000 1.5 --- ProjectGridRow.cs 26 Feb 2006 04:46:24 -0000 1.6 *************** *** 1,3 **** ! using System; using ThoughtWorks.CruiseControl.Core.Util; using ThoughtWorks.CruiseControl.Remote; --- 1,4 ---- ! using System.Drawing; ! using ThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation; using ThoughtWorks.CruiseControl.Core.Util; using ThoughtWorks.CruiseControl.Remote; *************** *** 7,76 **** public class ProjectGridRow { ! private readonly string name; ! private readonly string serverName; ! private readonly string buildStatus; ! private readonly string buildStatusHtmlColor; ! private readonly DateTime lastBuildDate; ! private readonly string lastBuildLabel; ! private readonly string status; ! private readonly string activity; private readonly string url; - private readonly string startStopButtonValue; - private readonly string startStopButtonName; ! public ProjectGridRow(string name, string serverName, string buildStatus, string buildStatusHtmlColor, DateTime lastBuildDate, ! string lastBuildLabel, string status, string activity, string url, ProjectIntegratorState integratorState) { - this.name = name; - this.serverName = serverName; - this.buildStatus = buildStatus; - this.buildStatusHtmlColor = buildStatusHtmlColor; - this.lastBuildDate = lastBuildDate; - this.lastBuildLabel = lastBuildLabel; this.status = status; ! this.activity = activity; this.url = url; - this.startStopButtonName = (integratorState == ProjectIntegratorState.Running) ? "StopBuild" : "StartBuild"; - this.startStopButtonValue = (integratorState == ProjectIntegratorState.Running) ? "Stop" : "Start"; } public string Name { ! get { return name; } } public string ServerName { ! get { return serverName; } } public string BuildStatus { ! get { return buildStatus; } } public string BuildStatusHtmlColor { ! get { return buildStatusHtmlColor; } } public string LastBuildDate { ! get { return DateUtil.FormatDate(lastBuildDate); } } public string LastBuildLabel { ! get { return lastBuildLabel; } } public string Status { ! get { return status; } } public string Activity { ! get { return activity; } } --- 8,60 ---- public class ProjectGridRow { ! private readonly ProjectStatus status; ! private readonly IServerSpecifier serverSpecifier; private readonly string url; ! public ProjectGridRow(ProjectStatus status, IServerSpecifier serverSpecifier, string url) { this.status = status; ! this.serverSpecifier = serverSpecifier; this.url = url; } public string Name { ! get { return status.Name; } } public string ServerName { ! get { return serverSpecifier.ServerName; } } public string BuildStatus { ! get { return status.BuildStatus.ToString(); } } public string BuildStatusHtmlColor { ! get { return CalculateHtmlColor(status.BuildStatus); } } public string LastBuildDate { ! get { return DateUtil.FormatDate(status.LastBuildDate); } } public string LastBuildLabel { ! get { return (status.LastBuildLabel != null ? status.LastBuildLabel : "no build available"); } } public string Status { ! get { return status.Status.ToString(); } } public string Activity { ! get { return status.Activity.ToString(); } } *************** *** 82,91 **** public string StartStopButtonName { ! get { return startStopButtonName; } } public string StartStopButtonValue { ! get { return startStopButtonValue; } } } --- 66,101 ---- public string StartStopButtonName { ! get { return (status.Status == ProjectIntegratorState.Running) ? "StopBuild" : "StartBuild"; } } public string StartStopButtonValue { ! get { return (status.Status == ProjectIntegratorState.Running) ? "Stop" : "Start"; } ! } ! ! public bool AllowForceBuild ! { ! get { return this.serverSpecifier.AllowForceBuild; } ! } ! ! public bool AllowStartStopBuild ! { ! get { return this.serverSpecifier.AllowStartStopBuild; } ! } ! ! private string CalculateHtmlColor(IntegrationStatus status) ! { ! if (status == IntegrationStatus.Success) ! { ! return Color.Green.Name; ! } ! else if (status == IntegrationStatus.Unknown) ! { ! return Color.Yellow.Name; ! } ! else ! { ! return Color.Red.Name; ! } } } Index: ProjectGrid.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard/ProjectGrid.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ProjectGrid.cs 26 Feb 2006 04:03:39 -0000 1.8 --- ProjectGrid.cs 26 Feb 2006 04:46:24 -0000 1.9 *************** *** 25,40 **** ProjectStatus status = statusOnServer.ProjectStatus; IServerSpecifier serverSpecifier = statusOnServer.ServerSpecifier; ! string projectName = status.Name; rows.Add( ! new ProjectGridRow( ! projectName, statusOnServer.ServerSpecifier.ServerName, status.BuildStatus.ToString(), ! CalculateHtmlColor(status.BuildStatus), ! status.LastBuildDate, ! (status.LastBuildLabel != null ? status.LastBuildLabel : "no build available") , ! status.Status.ToString(), ! status.Activity.ToString(), ! linkFactory.CreateProjectLink(new DefaultProjectSpecifier(serverSpecifier, projectName), ProjectReportProjectPlugin.ACTION_NAME).Url, ! status.Status ! )); } --- 25,33 ---- ProjectStatus status = statusOnServer.ProjectStatus; IServerSpecifier serverSpecifier = statusOnServer.ServerSpecifier; ! DefaultProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, status.Name); rows.Add( ! new ProjectGridRow(status, ! serverSpecifier, ! linkFactory.CreateProjectLink(projectSpecifier, ProjectReportProjectPlugin.ACTION_NAME).Url)); } *************** *** 44,63 **** } - private string CalculateHtmlColor(IntegrationStatus status) - { - if (status == IntegrationStatus.Success) - { - return Color.Green.Name; - } - else if (status == IntegrationStatus.Unknown) - { - return Color.Yellow.Name; - } - else - { - return Color.Red.Name; - } - } - private IComparer GetComparer(ProjectGridSortColumn column, bool ascending) { --- 37,40 ---- |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:46:28
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/ServerConnection In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21550/project/WebDashboard/ServerConnection Modified Files: ProjectStatusOnServer.cs ServerAggregatingCruiseManagerWrapper.cs Log Message: CCNET-510 : force build and stop/start are now configurable in the dashboard.config file on the server level Index: ServerAggregatingCruiseManagerWrapper.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/ServerConnection/ServerAggregatingCruiseManagerWrapper.cs,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** ServerAggregatingCruiseManagerWrapper.cs 24 Feb 2006 16:55:45 -0000 1.24 --- ServerAggregatingCruiseManagerWrapper.cs 26 Feb 2006 04:46:24 -0000 1.25 *************** *** 135,139 **** foreach (ServerLocation serverLocation in ServerLocations) { ! serverSpecifiers.Add(new DefaultServerSpecifier(serverLocation.Name)); } return (IServerSpecifier[]) serverSpecifiers.ToArray(typeof (IServerSpecifier)); --- 135,139 ---- foreach (ServerLocation serverLocation in ServerLocations) { ! serverSpecifiers.Add(new DefaultServerSpecifier(serverLocation.Name, serverLocation.AllowForceBuild, serverLocation.AllowStartStopBuild)); } return (IServerSpecifier[]) serverSpecifiers.ToArray(typeof (IServerSpecifier)); Index: ProjectStatusOnServer.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/ServerConnection/ProjectStatusOnServer.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ProjectStatusOnServer.cs 29 May 2005 17:31:09 -0000 1.2 --- ProjectStatusOnServer.cs 26 Feb 2006 04:46:24 -0000 1.3 *************** *** 25,27 **** } } ! } --- 25,27 ---- } } ! } \ No newline at end of file |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:46:27
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/templates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21550/project/WebDashboard/templates Modified Files: ProjectGrid.vm Log Message: CCNET-510 : force build and stop/start are now configurable in the dashboard.config file on the server level Index: ProjectGrid.vm =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/templates/ProjectGrid.vm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ProjectGrid.vm 26 Feb 2006 04:03:39 -0000 1.11 --- ProjectGrid.vm 26 Feb 2006 04:46:24 -0000 1.12 *************** *** 67,74 **** <td align="Center"> <font color="Black"> ! #if ($allowForceBuild) <input type="submit" name="ForceBuild" value="Force"/> #end ! #if ($allowStartStopBuild) <input type="submit" name="$projectGridRow.StartStopButtonName" value="$projectGridRow.StartStopButtonValue"/> #end --- 67,74 ---- <td align="Center"> <font color="Black"> ! #if ($projectGridRow.allowForceBuild) <input type="submit" name="ForceBuild" value="Force"/> #end ! #if ($projectGridRow.AllowStartStopBuild) <input type="submit" name="$projectGridRow.StartStopButtonName" value="$projectGridRow.StartStopButtonValue"/> #end |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:46:27
|
Update of /cvsroot/ccnet/ccnet/project/core/Reporting/Dashboard/Navigation In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21550/project/core/Reporting/Dashboard/Navigation Modified Files: DefaultServerSpecifier.cs IServerSpecifier.cs Log Message: CCNET-510 : force build and stop/start are now configurable in the dashboard.config file on the server level Index: IServerSpecifier.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/Reporting/Dashboard/Navigation/IServerSpecifier.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IServerSpecifier.cs 5 Oct 2005 10:04:54 -0000 1.2 --- IServerSpecifier.cs 26 Feb 2006 04:46:24 -0000 1.3 *************** *** 1,3 **** - namespace ThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation { --- 1,2 ---- *************** *** 5,8 **** { string ServerName { get; } } ! } --- 4,9 ---- { string ServerName { get; } + bool AllowForceBuild { get; } + bool AllowStartStopBuild { get; } } ! } \ No newline at end of file Index: DefaultServerSpecifier.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/Reporting/Dashboard/Navigation/DefaultServerSpecifier.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DefaultServerSpecifier.cs 5 Oct 2005 10:04:54 -0000 1.2 --- DefaultServerSpecifier.cs 26 Feb 2006 04:46:24 -0000 1.3 *************** *** 4,12 **** { private readonly string serverName; ! ! public string ServerName ! { ! get { return serverName; } ! } public DefaultServerSpecifier(string serverName) --- 4,9 ---- { private readonly string serverName; ! private readonly bool allowForceBuild; ! private readonly bool allowStartStopBuild; public DefaultServerSpecifier(string serverName) *************** *** 23,26 **** --- 20,45 ---- } + public DefaultServerSpecifier(string serverName, bool allowForceBuild, bool allowStartStopBuild) + { + this.serverName = serverName; + this.allowForceBuild = allowForceBuild; + this.allowStartStopBuild = allowStartStopBuild; + } + + public string ServerName + { + get { return serverName; } + } + + public bool AllowForceBuild + { + get { return allowForceBuild; } + } + + public bool AllowStartStopBuild + { + get { return allowStartStopBuild; } + } + public override bool Equals(object obj) { |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:46
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/templates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/WebDashboard/templates Modified Files: ProjectGrid.vm Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: ProjectGrid.vm =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/templates/ProjectGrid.vm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ProjectGrid.vm 24 Feb 2006 16:55:45 -0000 1.10 --- ProjectGrid.vm 26 Feb 2006 04:03:39 -0000 1.11 *************** *** 67,72 **** <td align="Center"> <font color="Black"> <input type="submit" name="ForceBuild" value="Force"/> ! <input type="submit" name="StopBuild" value="Stop"/> </font> </td> --- 67,76 ---- <td align="Center"> <font color="Black"> + #if ($allowForceBuild) <input type="submit" name="ForceBuild" value="Force"/> ! #end ! #if ($allowStartStopBuild) ! <input type="submit" name="$projectGridRow.StartStopButtonName" value="$projectGridRow.StartStopButtonValue"/> ! #end </font> </td> |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/Plugins/FarmReport In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/WebDashboard/Plugins/FarmReport Modified Files: FarmReportFarmPlugin.cs Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: FarmReportFarmPlugin.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Plugins/FarmReport/FarmReportFarmPlugin.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** FarmReportFarmPlugin.cs 5 Feb 2006 15:05:51 -0000 1.10 --- FarmReportFarmPlugin.cs 26 Feb 2006 04:03:39 -0000 1.11 *************** *** 1,3 **** - using System; using Exortech.NetReflector; using ThoughtWorks.CruiseControl.WebDashboard.Dashboard; --- 1,2 ---- *************** *** 5,9 **** using ThoughtWorks.CruiseControl.WebDashboard.MVC; using ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise; - using ThoughtWorks.CruiseControl.WebDashboard.ServerConnection; namespace ThoughtWorks.CruiseControl.WebDashboard.Plugins.FarmReport --- 4,7 ---- |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/WebDashboard/Dashboard Modified Files: ProjectGrid.cs ProjectGridRow.cs VelocityProjectGridAction.cs Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: VelocityProjectGridAction.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard/VelocityProjectGridAction.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** VelocityProjectGridAction.cs 24 Feb 2006 16:55:45 -0000 1.10 --- VelocityProjectGridAction.cs 26 Feb 2006 04:03:39 -0000 1.11 *************** *** 29,46 **** public IResponse Execute(string actionName, IRequest request) { ! Hashtable velocityContext = new Hashtable(); ! velocityContext["forceBuildMessage"] = ForceBuildIfNecessary(request); ! return GenerateView(farmService.GetProjectStatusListAndCaptureExceptions(), velocityContext, actionName, request, null); } public IResponse Execute(string actionName, IServerSpecifier serverSpecifier, IRequest request) { ! Hashtable velocityContext = new Hashtable(); ! velocityContext["forceBuildMessage"] = ForceBuildIfNecessary(request); ! return GenerateView(farmService.GetProjectStatusListAndCaptureExceptions(serverSpecifier), velocityContext, actionName, request, serverSpecifier); } ! private HtmlFragmentResponse GenerateView(ProjectStatusListAndExceptions projectStatusListAndExceptions, Hashtable velocityContext, string actionName, IRequest request, IServerSpecifier serverSpecifier) { ProjectGridSortColumn sortColumn = GetSortColumn(request); bool sortReverse = SortAscending(request); --- 29,47 ---- public IResponse Execute(string actionName, IRequest request) { ! return GenerateView(farmService.GetProjectStatusListAndCaptureExceptions(), actionName, request, null); } public IResponse Execute(string actionName, IServerSpecifier serverSpecifier, IRequest request) { ! return GenerateView(farmService.GetProjectStatusListAndCaptureExceptions(serverSpecifier), actionName, request, serverSpecifier); } ! private HtmlFragmentResponse GenerateView(ProjectStatusListAndExceptions projectStatusListAndExceptions, string actionName, IRequest request, IServerSpecifier serverSpecifier) { + Hashtable velocityContext = new Hashtable(); + velocityContext["forceBuildMessage"] = ForceBuildIfNecessary(request); + velocityContext["allowForceBuild"] = true; + velocityContext["allowStartStopBuild"] = false; + ProjectGridSortColumn sortColumn = GetSortColumn(request); bool sortReverse = SortAscending(request); Index: ProjectGridRow.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard/ProjectGridRow.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ProjectGridRow.cs 6 Oct 2005 09:14:54 -0000 1.4 --- ProjectGridRow.cs 26 Feb 2006 04:03:39 -0000 1.5 *************** *** 1,4 **** --- 1,5 ---- using System; using ThoughtWorks.CruiseControl.Core.Util; + using ThoughtWorks.CruiseControl.Remote; namespace ThoughtWorks.CruiseControl.WebDashboard.Dashboard *************** *** 15,20 **** private readonly string activity; private readonly string url; ! public ProjectGridRow(string name, string serverName, string buildStatus, string buildStatusHtmlColor, DateTime lastBuildDate, string lastBuildLabel, string status, string activity, string url) { this.name = name; --- 16,24 ---- private readonly string activity; private readonly string url; + private readonly string startStopButtonValue; + private readonly string startStopButtonName; ! public ProjectGridRow(string name, string serverName, string buildStatus, string buildStatusHtmlColor, DateTime lastBuildDate, ! string lastBuildLabel, string status, string activity, string url, ProjectIntegratorState integratorState) { this.name = name; *************** *** 27,30 **** --- 31,36 ---- this.activity = activity; this.url = url; + this.startStopButtonName = (integratorState == ProjectIntegratorState.Running) ? "StopBuild" : "StartBuild"; + this.startStopButtonValue = (integratorState == ProjectIntegratorState.Running) ? "Stop" : "Start"; } *************** *** 73,76 **** --- 79,92 ---- get { return url; } } + + public string StartStopButtonName + { + get { return startStopButtonName; } + } + + public string StartStopButtonValue + { + get { return startStopButtonValue; } + } } } Index: ProjectGrid.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard/ProjectGrid.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ProjectGrid.cs 6 Oct 2005 09:14:54 -0000 1.7 --- ProjectGrid.cs 26 Feb 2006 04:03:39 -0000 1.8 *************** *** 10,19 **** public class ProjectGrid : IProjectGrid { - private readonly IUrlBuilder urlBuilder; private readonly ILinkFactory linkFactory; ! public ProjectGrid(IUrlBuilder urlBuilder, ILinkFactory linkFactory) { - this.urlBuilder = urlBuilder; this.linkFactory = linkFactory; } --- 10,17 ---- public class ProjectGrid : IProjectGrid { private readonly ILinkFactory linkFactory; ! public ProjectGrid(ILinkFactory linkFactory) { this.linkFactory = linkFactory; } *************** *** 36,40 **** status.Status.ToString(), status.Activity.ToString(), ! linkFactory.CreateProjectLink(new DefaultProjectSpecifier(serverSpecifier, projectName), ProjectReportProjectPlugin.ACTION_NAME).Url )); } --- 34,39 ---- status.Status.ToString(), status.Activity.ToString(), ! linkFactory.CreateProjectLink(new DefaultProjectSpecifier(serverSpecifier, projectName), ProjectReportProjectPlugin.ACTION_NAME).Url, ! status.Status )); } |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/WebDashboard/ServerConnection In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/UnitTests/WebDashboard/ServerConnection Modified Files: ServerAggregatingCruiseManagerWrapperTest.cs Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: ServerAggregatingCruiseManagerWrapperTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/WebDashboard/ServerConnection/ServerAggregatingCruiseManagerWrapperTest.cs,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** ServerAggregatingCruiseManagerWrapperTest.cs 5 Oct 2005 10:18:47 -0000 1.19 --- ServerAggregatingCruiseManagerWrapperTest.cs 26 Feb 2006 04:03:39 -0000 1.20 *************** *** 4,8 **** using ThoughtWorks.CruiseControl.Remote; using ThoughtWorks.CruiseControl.WebDashboard.Configuration; - using ThoughtWorks.CruiseControl.WebDashboard.Dashboard; using ThoughtWorks.CruiseControl.WebDashboard.ServerConnection; --- 4,7 ---- *************** *** 26,32 **** public void Setup() { ! configurationMock = new DynamicMock(typeof(IRemoteServicesConfiguration)); ! cruiseManagerFactoryMock = new DynamicMock(typeof(ICruiseManagerFactory)); ! cruiseManagerMock = new DynamicMock(typeof(ICruiseManager)); serverSpecifier = new DefaultServerSpecifier("myserver"); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, "myproject"); --- 25,31 ---- public void Setup() { ! configurationMock = new DynamicMock(typeof (IRemoteServicesConfiguration)); ! cruiseManagerFactoryMock = new DynamicMock(typeof (ICruiseManagerFactory)); ! cruiseManagerMock = new DynamicMock(typeof (ICruiseManager)); serverSpecifier = new DefaultServerSpecifier("myserver"); projectSpecifier = new DefaultProjectSpecifier(serverSpecifier, "myproject"); *************** *** 35,40 **** managerWrapper = new ServerAggregatingCruiseManagerWrapper( ! (IRemoteServicesConfiguration) configurationMock.MockInstance, ! (ICruiseManagerFactory)cruiseManagerFactoryMock.MockInstance ); --- 34,39 ---- managerWrapper = new ServerAggregatingCruiseManagerWrapper( ! (IRemoteServicesConfiguration) configurationMock.MockInstance, ! (ICruiseManagerFactory) cruiseManagerFactoryMock.MockInstance ); *************** *** 58,62 **** public void ThrowsCorrectExceptionIfServerNotKnown() { ! configurationMock.ExpectAndReturn("Servers", new ServerLocation[] { serverLocation }); try { --- 57,61 ---- public void ThrowsCorrectExceptionIfServerNotKnown() { ! configurationMock.ExpectAndReturn("Servers", new ServerLocation[] {serverLocation}); try { *************** *** 69,73 **** } ! configurationMock.ExpectAndReturn("Servers", new ServerLocation[] { serverLocation }); try { --- 68,72 ---- } ! configurationMock.ExpectAndReturn("Servers", new ServerLocation[] {serverLocation}); try { *************** *** 86,90 **** public void ThrowsCorrectExceptionIfProjectNotRunningOnServer() { ! configurationMock.ExpectAndReturn("Servers", new ServerLocation[] { serverLocation }); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.ExpectAndThrow("GetLatestBuildName", new NoSuchProjectException("myproject"), "myproject"); --- 85,89 ---- public void ThrowsCorrectExceptionIfProjectNotRunningOnServer() { ! configurationMock.ExpectAndReturn("Servers", new ServerLocation[] {serverLocation}); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.ExpectAndThrow("GetLatestBuildName", new NoSuchProjectException("myproject"), "myproject"); *************** *** 106,115 **** public void ReturnsLatestLogNameFromCorrectProjectOnCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; ! DefaultProjectSpecifier myProjectMyServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myserver"),"myproject"); ! DefaultProjectSpecifier myOtherProjectMyServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myserver"),"myotherproject"); ! DefaultProjectSpecifier myProjectMyOtherServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myotherserver"),"myproject"); ! DefaultProjectSpecifier myOtherProjectMyOtherServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myotherserver"),"myotherproject"); configurationMock.ExpectAndReturn("Servers", servers); --- 105,114 ---- public void ReturnsLatestLogNameFromCorrectProjectOnCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; ! DefaultProjectSpecifier myProjectMyServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myserver"), "myproject"); ! DefaultProjectSpecifier myOtherProjectMyServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myserver"), "myotherproject"); ! DefaultProjectSpecifier myProjectMyOtherServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myotherserver"), "myproject"); ! DefaultProjectSpecifier myOtherProjectMyOtherServer = new DefaultProjectSpecifier(new DefaultServerSpecifier("myotherserver"), "myotherproject"); configurationMock.ExpectAndReturn("Servers", servers); *************** *** 122,126 **** cruiseManagerMock.ExpectAndReturn("GetLatestBuildName", "mylogformyserverformyotherproject", "myotherproject"); Assert.AreEqual(new DefaultBuildSpecifier(myOtherProjectMyServer, "mylogformyserverformyotherproject"), managerWrapper.GetLatestBuildSpecifier(myOtherProjectMyServer)); ! configurationMock.ExpectAndReturn("Servers", servers); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myotherurl"); --- 121,125 ---- cruiseManagerMock.ExpectAndReturn("GetLatestBuildName", "mylogformyserverformyotherproject", "myotherproject"); Assert.AreEqual(new DefaultBuildSpecifier(myOtherProjectMyServer, "mylogformyserverformyotherproject"), managerWrapper.GetLatestBuildSpecifier(myOtherProjectMyServer)); ! configurationMock.ExpectAndReturn("Servers", servers); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myotherurl"); *************** *** 132,136 **** cruiseManagerMock.ExpectAndReturn("GetLatestBuildName", "mylogformyotherserverformyotherproject", "myotherproject"); Assert.AreEqual(new DefaultBuildSpecifier(myOtherProjectMyOtherServer, "mylogformyotherserverformyotherproject"), managerWrapper.GetLatestBuildSpecifier(myOtherProjectMyOtherServer)); ! VerifyAll(); } --- 131,135 ---- cruiseManagerMock.ExpectAndReturn("GetLatestBuildName", "mylogformyotherserverformyotherproject", "myotherproject"); Assert.AreEqual(new DefaultBuildSpecifier(myOtherProjectMyOtherServer, "mylogformyotherserverformyotherproject"), managerWrapper.GetLatestBuildSpecifier(myOtherProjectMyOtherServer)); ! VerifyAll(); } *************** *** 139,143 **** public void ReturnsCorrectLogFromCorrectProjectOnCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); --- 138,142 ---- public void ReturnsCorrectLogFromCorrectProjectOnCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); *************** *** 145,149 **** cruiseManagerMock.ExpectAndReturn("GetLog", "log\r\ncontents", "myproject", "mybuild"); Assert.AreEqual("log\r\ncontents", managerWrapper.GetLog(buildSpecifier)); ! VerifyAll(); } --- 144,148 ---- cruiseManagerMock.ExpectAndReturn("GetLog", "log\r\ncontents", "myproject", "mybuild"); Assert.AreEqual("log\r\ncontents", managerWrapper.GetLog(buildSpecifier)); ! VerifyAll(); } *************** *** 152,162 **** public void ReturnsCorrectLogNamesFromCorrectProjectOnCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.ExpectAndReturn("GetBuildNames", new string[] {"log1", "log2"}, "myproject"); ! Assert.AreEqual(new DefaultBuildSpecifier(projectSpecifier, "log1"), managerWrapper.GetBuildSpecifiers(projectSpecifier)[0]); ! VerifyAll(); } --- 151,161 ---- public void ReturnsCorrectLogNamesFromCorrectProjectOnCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.ExpectAndReturn("GetBuildNames", new string[] {"log1", "log2"}, "myproject"); ! Assert.AreEqual(new DefaultBuildSpecifier(projectSpecifier, "log1"), managerWrapper.GetBuildSpecifiers(projectSpecifier)[0]); ! VerifyAll(); } *************** *** 166,170 **** { // Setup ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); --- 165,169 ---- { // Setup ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); *************** *** 179,183 **** Assert.AreEqual(projectSpecifier, returnedBuildSpecifiers[0].ProjectSpecifier); Assert.AreEqual(2, returnedBuildSpecifiers.Length); ! VerifyAll(); } --- 178,182 ---- Assert.AreEqual(projectSpecifier, returnedBuildSpecifiers[0].ProjectSpecifier); Assert.AreEqual(2, returnedBuildSpecifiers.Length); ! VerifyAll(); } *************** *** 187,191 **** { /// Setup ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; string serializedProject = "myproject---"; --- 186,190 ---- { /// Setup ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; string serializedProject = "myproject---"; *************** *** 193,200 **** cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.Expect("AddProject", serializedProject); ! /// Execute managerWrapper.AddProject(serverSpecifier, serializedProject); ! /// Verify VerifyAll(); --- 192,199 ---- cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.Expect("AddProject", serializedProject); ! /// Execute managerWrapper.AddProject(serverSpecifier, serializedProject); ! /// Verify VerifyAll(); *************** *** 205,209 **** { // Setup ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); --- 204,208 ---- { // Setup ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); *************** *** 222,226 **** { // Setup ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; string serializedProject = "a serialized project"; --- 221,225 ---- { // Setup ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; string serializedProject = "a serialized project"; *************** *** 241,245 **** { /// Setup ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; string serializedProject = "myproject---"; --- 240,244 ---- { /// Setup ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; string serializedProject = "myproject---"; *************** *** 247,254 **** cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.Expect("UpdateProject", "myproject", serializedProject); ! /// Execute managerWrapper.UpdateProject(projectSpecifier, serializedProject); ! /// Verify VerifyAll(); --- 246,253 ---- cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); cruiseManagerMock.Expect("UpdateProject", "myproject", serializedProject); ! /// Execute managerWrapper.UpdateProject(projectSpecifier, serializedProject); ! /// Verify VerifyAll(); *************** *** 258,262 **** public void ReturnsServerLogFromCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); --- 257,261 ---- public void ReturnsServerLogFromCorrectServer() { ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); *************** *** 264,268 **** cruiseManagerMock.ExpectAndReturn("GetServerLog", "a server log"); Assert.AreEqual("a server log", managerWrapper.GetServerLog(serverSpecifier)); ! VerifyAll(); } --- 263,267 ---- cruiseManagerMock.ExpectAndReturn("GetServerLog", "a server log"); Assert.AreEqual("a server log", managerWrapper.GetServerLog(serverSpecifier)); ! VerifyAll(); } *************** *** 271,275 **** public void ReturnsServerNames() { ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); --- 270,274 ---- public void ReturnsServerNames() { ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); *************** *** 278,282 **** Assert.AreEqual("myserver", serverSpecifiers[0].ServerName); Assert.AreEqual("myotherserver", serverSpecifiers[1].ServerName); ! VerifyAll(); } --- 277,281 ---- Assert.AreEqual("myserver", serverSpecifiers[0].ServerName); Assert.AreEqual("myotherserver", serverSpecifiers[1].ServerName); ! VerifyAll(); } *************** *** 285,289 **** public void ForcesBuild() { ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); --- 284,288 ---- public void ForcesBuild() { ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); *************** *** 292,296 **** managerWrapper.ForceBuild(projectSpecifier); ! VerifyAll(); } --- 291,295 ---- managerWrapper.ForceBuild(projectSpecifier); ! VerifyAll(); } *************** *** 299,313 **** public void GetsExternalLinks() { ! ServerLocation[] servers = new ServerLocation[] { serverLocation, otherServerLocation }; configurationMock.ExpectAndReturn("Servers", servers); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); ! ExternalLink[] links = new ExternalLink[] { new ExternalLink("1", "2"), new ExternalLink("3", "4") }; cruiseManagerMock.ExpectAndReturn("GetExternalLinks", links, "myproject"); Assert.AreEqual(links, managerWrapper.GetExternalLinks(projectSpecifier)); ! VerifyAll(); } } ! } --- 298,312 ---- public void GetsExternalLinks() { ! ServerLocation[] servers = new ServerLocation[] {serverLocation, otherServerLocation}; configurationMock.ExpectAndReturn("Servers", servers); cruiseManagerFactoryMock.ExpectAndReturn("GetCruiseManager", (ICruiseManager) cruiseManagerMock.MockInstance, "http://myurl"); ! ExternalLink[] links = new ExternalLink[] {new ExternalLink("1", "2"), new ExternalLink("3", "4")}; cruiseManagerMock.ExpectAndReturn("GetExternalLinks", links, "myproject"); Assert.AreEqual(links, managerWrapper.GetExternalLinks(projectSpecifier)); ! VerifyAll(); } } ! } \ No newline at end of file |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/core/tasks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/core/tasks Modified Files: DevenvTaskResult.cs Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: DevenvTaskResult.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/tasks/DevenvTaskResult.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DevenvTaskResult.cs 10 May 2005 10:50:25 -0000 1.2 --- DevenvTaskResult.cs 26 Feb 2006 04:03:40 -0000 1.3 *************** *** 1,3 **** - using System; using System.IO; using System.Xml; --- 1,2 ---- |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/core Modified Files: ProjectIntegrator.cs Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: ProjectIntegrator.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/ProjectIntegrator.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** ProjectIntegrator.cs 4 Feb 2005 11:48:23 -0000 1.20 --- ProjectIntegrator.cs 26 Feb 2006 04:03:39 -0000 1.21 *************** *** 77,81 **** if (_thread.ThreadState != ThreadState.Running) { - Log.Info("Starting integrator for project: " + _project.Name); _thread.Start(); } --- 77,80 ---- |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/WebDashboard/Dashboard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/UnitTests/WebDashboard/Dashboard Modified Files: ProjectGridTest.cs Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: ProjectGridTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/WebDashboard/Dashboard/ProjectGridTest.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ProjectGridTest.cs 6 Oct 2005 09:14:53 -0000 1.10 --- ProjectGridTest.cs 26 Feb 2006 04:03:39 -0000 1.11 *************** *** 27,32 **** urlBuilderMock = new DynamicMock(typeof(IUrlBuilder)); linkFactoryMock = new DynamicMock(typeof(ILinkFactory)); ! projectGrid = new ProjectGrid((IUrlBuilder) urlBuilderMock.MockInstance, ! (ILinkFactory) linkFactoryMock.MockInstance); serverSpecifier = new DefaultServerSpecifier("server"); --- 27,31 ---- urlBuilderMock = new DynamicMock(typeof(IUrlBuilder)); linkFactoryMock = new DynamicMock(typeof(ILinkFactory)); ! projectGrid = new ProjectGrid((ILinkFactory) linkFactoryMock.MockInstance); serverSpecifier = new DefaultServerSpecifier("server"); |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/Configuration In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/WebDashboard/Configuration Modified Files: NetReflectorRemoteServicesConfiguration.cs ServerLocation.cs Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: NetReflectorRemoteServicesConfiguration.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Configuration/NetReflectorRemoteServicesConfiguration.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NetReflectorRemoteServicesConfiguration.cs 8 Mar 2005 03:14:37 -0000 1.1 --- NetReflectorRemoteServicesConfiguration.cs 26 Feb 2006 04:03:39 -0000 1.2 *************** *** 11,23 **** public ServerLocation[] Servers { ! get ! { ! return servers; ! } ! set ! { ! servers = value; ! } } } ! } --- 11,17 ---- public ServerLocation[] Servers { ! get { return servers; } ! set { servers = value; } } } ! } \ No newline at end of file Index: ServerLocation.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Configuration/ServerLocation.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ServerLocation.cs 8 Mar 2005 03:14:37 -0000 1.1 --- ServerLocation.cs 26 Feb 2006 04:03:39 -0000 1.2 *************** *** 6,25 **** public class ServerLocation { - private string name = ""; - private string url = ""; - [ReflectorProperty("name")] ! public string Name ! { ! get { return name; } ! set { name = value; } ! } [ReflectorProperty("url")] ! public string Url ! { ! get { return url; } ! set { url = value; } ! } } ! } --- 6,20 ---- public class ServerLocation { [ReflectorProperty("name")] ! public string Name = string.Empty; [ReflectorProperty("url")] ! public string Url = string.Empty; ! ! [ReflectorProperty("allowForceBuild", Required=false)] ! public bool AllowForceBuild = true; ! ! [ReflectorProperty("allowStartStopBuild", Required=false)] ! public bool AllowStartStopBuild = true; } ! } \ No newline at end of file |
|
From: Owen R. <exo...@us...> - 2006-02-26 04:03:45
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3538/project/WebDashboard Modified Files: dashboard.config Log Message: CCNET-510 : can now stop and start project -- next step is making it configurable Index: dashboard.config =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/dashboard.config,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** dashboard.config 21 Feb 2006 10:34:55 -0000 1.15 --- dashboard.config 26 Feb 2006 04:03:39 -0000 1.16 *************** *** 4,8 **** <servers> <!-- Update this list to include all the servers you want to connect to. NB - each server name must be unique --> ! <server name="local" url="tcp://localhost:21234/CruiseManager.rem" /> </servers> </remoteServices> --- 4,8 ---- <servers> <!-- Update this list to include all the servers you want to connect to. NB - each server name must be unique --> ! <server name="local" url="tcp://localhost:21234/CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" /> </servers> </remoteServices> |
|
From: Owen R. <exo...@us...> - 2006-02-24 16:56:03
|
Update of /cvsroot/ccnet/ccnet/project/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5793/project/core Modified Files: CruiseManager.cs CruiseServer.cs RemoteCruiseServer.cs Log Message: CCNET-510 : adding ability to stop projects Index: RemoteCruiseServer.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/RemoteCruiseServer.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** RemoteCruiseServer.cs 18 Oct 2005 15:44:17 -0000 1.20 --- RemoteCruiseServer.cs 24 Feb 2006 16:55:46 -0000 1.21 *************** *** 42,45 **** --- 42,55 ---- } + public void Start(string project) + { + _server.Start(project); + } + + public void Stop(string project) + { + throw new NotImplementedException(); + } + public ICruiseManager CruiseManager { Index: CruiseManager.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/CruiseManager.cs,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** CruiseManager.cs 11 Jul 2005 11:45:03 -0000 1.35 --- CruiseManager.cs 24 Feb 2006 16:55:46 -0000 1.36 *************** *** 28,31 **** --- 28,41 ---- } + public void Start(string project) + { + cruiseServer.Start(project); + } + + public void Stop(string project) + { + cruiseServer.Stop(project); + } + public void WaitForExit(string project) { Index: CruiseServer.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/CruiseServer.cs,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** CruiseServer.cs 27 Sep 2005 18:37:45 -0000 1.36 --- CruiseServer.cs 24 Feb 2006 16:55:46 -0000 1.37 *************** *** 46,49 **** --- 46,58 ---- /// <summary> + /// Start integrator for specified project. + /// </summary> + public void Start(string project) + { + IProjectIntegrator integrator = GetIntegrator(project); + integrator.Start(); + } + + /// <summary> /// Stop all integrators, waiting until each integrator has completely stopped, before releasing any threads blocked by WaitForExit. /// </summary> *************** *** 56,59 **** --- 65,78 ---- /// <summary> + /// Stop integrator for specified project. + /// </summary> + public void Stop(string project) + { + IProjectIntegrator integrator = projectIntegrators[project]; + if (integrator == null) throw new NoSuchProjectException(project); + integrator.Stop(); + } + + /// <summary> /// Abort all integrators, waiting until each integrator has completely stopped, before releasing any threads blocked by WaitForExit. /// </summary> *************** *** 344,351 **** { IProjectIntegrator integrator = projectIntegrators[projectName]; ! if (integrator == null) ! { ! throw new CruiseControlException("Specified project does not exist: " + projectName); ! } return integrator; } --- 363,367 ---- { IProjectIntegrator integrator = projectIntegrators[projectName]; ! if (integrator == null) throw new NoSuchProjectException(projectName); return integrator; } |
|
From: Owen R. <exo...@us...> - 2006-02-24 16:55:49
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5793/project/UnitTests/Core Modified Files: CruiseServerTest.cs Log Message: CCNET-510 : adding ability to stop projects Index: CruiseServerTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/CruiseServerTest.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CruiseServerTest.cs 11 Jul 2005 11:45:07 -0000 1.3 --- CruiseServerTest.cs 24 Feb 2006 16:55:45 -0000 1.4 *************** *** 5,8 **** --- 5,9 ---- using ThoughtWorks.CruiseControl.Core; using ThoughtWorks.CruiseControl.Core.Config; + using ThoughtWorks.CruiseControl.Remote; namespace ThoughtWorks.CruiseControl.UnitTests.Core *************** *** 31,38 **** protected void SetUp() { ! projectSerializerMock = new DynamicMock(typeof(IProjectSerializer)); ! integratorMock1 = new DynamicMock(typeof(IProjectIntegrator)); ! integratorMock2 = new DynamicMock(typeof(IProjectIntegrator)); integrator1 = (IProjectIntegrator) integratorMock1.MockInstance; integrator2 = (IProjectIntegrator) integratorMock2.MockInstance; --- 32,39 ---- protected void SetUp() { ! projectSerializerMock = new DynamicMock(typeof (IProjectSerializer)); ! integratorMock1 = new DynamicMock(typeof (IProjectIntegrator)); ! integratorMock2 = new DynamicMock(typeof (IProjectIntegrator)); integrator1 = (IProjectIntegrator) integratorMock1.MockInstance; integrator2 = (IProjectIntegrator) integratorMock2.MockInstance; *************** *** 52,64 **** integratorList.Add(integrator2); ! configServiceMock = new DynamicMock(typeof(IConfigurationService)); configServiceMock.ExpectAndReturn("Load", configuration); ! projectIntegratorListFactoryMock = new DynamicMock(typeof(IProjectIntegratorListFactory)); projectIntegratorListFactoryMock.ExpectAndReturn("CreateProjectIntegrators", integratorList, configuration.Projects); ! server = new CruiseServer((IConfigurationService) configServiceMock.MockInstance, ! (IProjectIntegratorListFactory) projectIntegratorListFactoryMock.MockInstance, ! (IProjectSerializer) projectSerializerMock.MockInstance); } --- 53,65 ---- integratorList.Add(integrator2); ! configServiceMock = new DynamicMock(typeof (IConfigurationService)); configServiceMock.ExpectAndReturn("Load", configuration); ! projectIntegratorListFactoryMock = new DynamicMock(typeof (IProjectIntegratorListFactory)); projectIntegratorListFactoryMock.ExpectAndReturn("CreateProjectIntegrators", integratorList, configuration.Projects); ! server = new CruiseServer((IConfigurationService) configServiceMock.MockInstance, ! (IProjectIntegratorListFactory) projectIntegratorListFactoryMock.MockInstance, ! (IProjectSerializer) projectSerializerMock.MockInstance); } *************** *** 215,219 **** } ! [Test, ExpectedException(typeof(CruiseControlException))] public void AttemptToForceBuildOnProjectThatDoesNotExist() { --- 216,220 ---- } ! [Test, ExpectedException(typeof (NoSuchProjectException))] public void AttemptToForceBuildOnProjectThatDoesNotExist() { *************** *** 241,249 **** integratorMock1.Expect("Abort"); integratorMock2.Expect("Abort"); ! ((IDisposable)server).Dispose(); integratorMock1.ExpectNoCall("Abort"); integratorMock2.ExpectNoCall("Abort"); ! ((IDisposable)server).Dispose(); integratorMock1.Verify(); --- 242,250 ---- integratorMock1.Expect("Abort"); integratorMock2.Expect("Abort"); ! ((IDisposable) server).Dispose(); integratorMock1.ExpectNoCall("Abort"); integratorMock2.ExpectNoCall("Abort"); ! ((IDisposable) server).Dispose(); integratorMock1.Verify(); *************** *** 253,261 **** [Test] public void DetectVersionMethod() ! {string ServerVersion; ! ServerVersion = server.GetVersion(); ! Assert.IsFalse(ServerVersion.Length==0,"Version not retrieved"); } } ! } --- 254,283 ---- [Test] public void DetectVersionMethod() ! { ! string ServerVersion = server.GetVersion(); ! Assert.IsFalse(ServerVersion.Length == 0, "Version not retrieved"); ! } ! [Test] ! public void StopSpecificProject() ! { ! integratorMock1.Expect("Stop"); ! server.Stop("Project 1"); ! integratorMock1.Verify(); ! } ! ! [Test, ExpectedException(typeof(NoSuchProjectException))] ! public void ThrowExceptionIfProjectNotFound() ! { ! server.Stop("Project unknown"); ! } ! ! [Test] ! public void StartSpecificProject() ! { ! integratorMock2.Expect("Start"); ! server.Start("Project 2"); ! integratorMock2.Verify(); } } ! } \ No newline at end of file |
|
From: Owen R. <exo...@us...> - 2006-02-24 16:55:48
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/ServerConnection In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5793/project/WebDashboard/ServerConnection Modified Files: IFarmService.cs ServerAggregatingCruiseManagerWrapper.cs Log Message: CCNET-510 : adding ability to stop projects Index: ServerAggregatingCruiseManagerWrapper.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/ServerConnection/ServerAggregatingCruiseManagerWrapper.cs,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** ServerAggregatingCruiseManagerWrapper.cs 9 Oct 2005 18:34:02 -0000 1.23 --- ServerAggregatingCruiseManagerWrapper.cs 24 Feb 2006 16:55:45 -0000 1.24 *************** *** 115,118 **** --- 115,128 ---- } + public void Start(IProjectSpecifier projectSpecifier) + { + GetCruiseManager(projectSpecifier.ServerSpecifier).Start(projectSpecifier.ProjectName); + } + + public void Stop(IProjectSpecifier projectSpecifier) + { + GetCruiseManager(projectSpecifier.ServerSpecifier).Stop(projectSpecifier.ProjectName); + } + public string GetServerVersion(IServerSpecifier serverSpecifier) { Index: IFarmService.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/ServerConnection/IFarmService.cs,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** IFarmService.cs 5 Oct 2005 11:55:06 -0000 1.14 --- IFarmService.cs 24 Feb 2006 16:55:45 -0000 1.15 *************** *** 11,14 **** --- 11,16 ---- void DeleteProject(IProjectSpecifier projectSpecifier, bool purgeWorkingDirectory, bool purgeArtifactDirectory, bool purgeSourceControlEnvironment); string GetServerLog(IServerSpecifier serverSpecifier); + void Start(IProjectSpecifier projectSpecifier); + void Stop(IProjectSpecifier projectSpecifier); void ForceBuild(IProjectSpecifier projectSpecifier); ProjectStatusListAndExceptions GetProjectStatusListAndCaptureExceptions(); |
|
From: Owen R. <exo...@us...> - 2006-02-24 16:55:48
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/templates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5793/project/WebDashboard/templates Modified Files: ProjectGrid.vm Log Message: CCNET-510 : adding ability to stop projects Index: ProjectGrid.vm =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/templates/ProjectGrid.vm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ProjectGrid.vm 6 Oct 2005 09:14:54 -0000 1.9 --- ProjectGrid.vm 24 Feb 2006 16:55:45 -0000 1.10 *************** *** 33,37 **** </td> <td align="Center"> ! <b>Force Build</b> </td> </tr> --- 33,37 ---- </td> <td align="Center"> ! <b>Admin</b> </td> </tr> *************** *** 68,71 **** --- 68,72 ---- <font color="Black"> <input type="submit" name="ForceBuild" value="Force"/> + <input type="submit" name="StopBuild" value="Stop"/> </font> </td> |
|
From: Owen R. <exo...@us...> - 2006-02-24 16:55:48
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/MVC In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5793/project/WebDashboard/MVC Modified Files: NameValueCollectionRequest.cs Log Message: CCNET-510 : adding ability to stop projects Index: NameValueCollectionRequest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/MVC/NameValueCollectionRequest.cs,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** NameValueCollectionRequest.cs 16 Nov 2005 19:55:22 -0000 1.11 --- NameValueCollectionRequest.cs 24 Feb 2006 16:55:45 -0000 1.12 *************** *** 48,52 **** { string value = GetText(id); ! return (value != null && value =="on"); } --- 48,52 ---- { string value = GetText(id); ! return (value != null && value == "on"); } *************** *** 59,63 **** try { ! return int.Parse(text); } catch (FormatException) --- 59,63 ---- try { ! return int.Parse(text); } catch (FormatException) *************** *** 88,92 **** { int lastSlashIndex = path.LastIndexOf('/'); ! if (lastSlashIndex == -1) lastSlashIndex = 0; --- 88,92 ---- { int lastSlashIndex = path.LastIndexOf('/'); ! if (lastSlashIndex == -1) lastSlashIndex = 0; |
|
From: Owen R. <exo...@us...> - 2006-02-24 16:55:48
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5793/project/WebDashboard/Dashboard Modified Files: VelocityProjectGridAction.cs Log Message: CCNET-510 : adding ability to stop projects Index: VelocityProjectGridAction.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/Dashboard/VelocityProjectGridAction.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** VelocityProjectGridAction.cs 6 Oct 2005 09:14:54 -0000 1.9 --- VelocityProjectGridAction.cs 24 Feb 2006 16:55:45 -0000 1.10 *************** *** 97,108 **** private string ForceBuildIfNecessary(IRequest request) { ! if (request.FindParameterStartingWith("forcebuild") != string.Empty) { ! string forceBuildProject = request.GetText("forceBuildProject"); ! farmService.ForceBuild( ! new DefaultProjectSpecifier( ! new DefaultServerSpecifier(request.GetText("forceBuildServer")), ! forceBuildProject)); ! return string.Format("Build successfully forced for {0}", forceBuildProject); } else --- 97,109 ---- private string ForceBuildIfNecessary(IRequest request) { ! if (request.FindParameterStartingWith("StopBuild") != string.Empty) { ! farmService.Stop(ProjectSpecifier(request)); ! return string.Format("Stopping project {0}", SelectedProject(request)); ! } ! else if (request.FindParameterStartingWith("forcebuild") != string.Empty) ! { ! farmService.ForceBuild(ProjectSpecifier(request)); ! return string.Format("Build successfully forced for {0}", SelectedProject(request)); } else *************** *** 111,114 **** --- 112,126 ---- } } + + private DefaultProjectSpecifier ProjectSpecifier(IRequest request) + { + return new DefaultProjectSpecifier( + new DefaultServerSpecifier(request.GetText("forceBuildServer")), SelectedProject(request)); + } + + private static string SelectedProject(IRequest request) + { + return request.GetText("forceBuildProject"); + } } } |
|
From: Owen R. <exo...@us...> - 2006-02-24 16:55:48
|
Update of /cvsroot/ccnet/ccnet/project/Remote In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5793/project/Remote Modified Files: ICruiseManager.cs ICruiseServer.cs Log Message: CCNET-510 : adding ability to stop projects Index: ICruiseServer.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/Remote/ICruiseServer.cs,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ICruiseServer.cs 11 Jul 2005 11:45:03 -0000 1.12 --- ICruiseServer.cs 24 Feb 2006 16:55:45 -0000 1.13 *************** *** 25,28 **** --- 25,31 ---- void WaitForExit(); + void Start(string project); + void Stop(string project); + /// <summary> /// Retrieve CruiseManager interface for the server Index: ICruiseManager.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/Remote/ICruiseManager.cs,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ICruiseManager.cs 11 Jul 2005 11:45:03 -0000 1.14 --- ICruiseManager.cs 24 Feb 2006 16:55:45 -0000 1.15 *************** *** 18,21 **** --- 18,23 ---- /// <param name="projectName"></param> void ForceBuild(string projectName); + void Start(string project); + void Stop(string project); void WaitForExit(string projectName); |
|
From: Ashish <ash...@us...> - 2006-02-24 09:11:54
|
Update of /cvsroot/ccnet/ccnet/project/xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27997/project/xsl Modified Files: fitnesse.xsl Log Message: Updating fitnesse.xsl to export the fitnesse detailed report to a new window Index: fitnesse.xsl =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/xsl/fitnesse.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** fitnesse.xsl 21 Feb 2006 10:34:55 -0000 1.1 --- fitnesse.xsl 24 Feb 2006 09:11:44 -0000 1.2 *************** *** 1,114 **** <?xml version="1.0"?> ! ! <xsl:stylesheet ! ! xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> ! <xsl:output method="html"/> - <xsl:variable name="fit.result.list" select="//testResults/result"/> - <xsl:variable name="fit.wrongpagecount" select="count($fit.result.list/counts/wrong[text() > 0])" /> - <xsl:variable name="fit.ignorespagecount" select="count($fit.result.list/counts/ignores[text() > 0])" /> - <xsl:variable name="fit.exceptionspagecount" select="count($fit.result.list/counts/exceptions[text() > 0])" /> - <xsl:variable name="fit.correctpagecount" select="count($fit.result.list/counts[wrong/text() = 0 and exceptions/text() = 0 and ignores/text() = 0])" /> - <xsl:variable name="fit.correctcount" select="//testResults/finalCounts/right"/> - <xsl:variable name="fit.failures" select="//testResults/finalCounts/wrong"/> - <xsl:variable name="fit.notrun" select="//testResults/finalCounts/ignores"/> - <xsl:variable name="fit.exceptions" select="//testResults/finalCounts/exceptions"/> - <xsl:variable name="fit.case.list" select="$fit.result.list//test-case"/> - <xsl:variable name="fit.suite.list" select="$fit.result.list//test-suite"/> - <xsl:variable name="fit.failure.list" select="$fit.case.list//failure"/> - <xsl:variable name="fit.notrun.list" select="$fit.case.list//reason"/> - <xsl:variable name="colorClass"> ! ! <xsl:choose> ! ! <xsl:when test="$fit.exceptionspagecount > 0">fiterror</xsl:when> ! ! <xsl:when test="$fit.ignorespagecount > 0">fitignore</xsl:when> ! ! <xsl:when test="$fit.wrongpagecount > 0" >fail</xsl:when> ! ! <xsl:otherwise>pass</xsl:otherwise> ! ! </xsl:choose> ! </xsl:variable> - <xsl:variable name="fit.tests.present" select="count(//testResults/result) > 0 or count(/cruisecontrol/build/buildresults//testsuite) > 0" /> - <xsl:template match="/"> - <xsl:choose> - <xsl:when test="$fit.tests.present"> - <style> - *.pass{ - background-color: #AAFFAA; - } ! ! *.fail{ ! background-color: #FFAAAA; - } ! ! *.fit_label{ ! ! foreground-color: #AAAAAA; ! } ! ! *.fiterror ! ! { ! ! background-color: #FFFFAA; ! } ! ! *.fitignore ! ! { ! ! background-color: #CCCCCC; ! } ! ! *.fitheader{ ! border: solid 1px black; - margin: 1px; - padding: 2px; - } ! ! *.line{ ! margin: 5px; - } - </style> - <script> function toggleDiv( imgId, divId ) --- 1,55 ---- <?xml version="1.0"?> ! <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:variable name="fit.result.list" select="//testResults/result"/> <xsl:variable name="fit.wrongpagecount" select="count($fit.result.list/counts/wrong[text() > 0])" /> <xsl:variable name="fit.ignorespagecount" select="count($fit.result.list/counts/ignores[text() > 0])" /> <xsl:variable name="fit.exceptionspagecount" select="count($fit.result.list/counts/exceptions[text() > 0])" /> <xsl:variable name="fit.correctpagecount" select="count($fit.result.list/counts[wrong/text() = 0 and exceptions/text() = 0 and ignores/text() = 0])" /> <xsl:variable name="fit.correctcount" select="//testResults/finalCounts/right"/> <xsl:variable name="fit.failures" select="//testResults/finalCounts/wrong"/> <xsl:variable name="fit.notrun" select="//testResults/finalCounts/ignores"/> <xsl:variable name="fit.exceptions" select="//testResults/finalCounts/exceptions"/> <xsl:variable name="fit.case.list" select="$fit.result.list//test-case"/> <xsl:variable name="fit.suite.list" select="$fit.result.list//test-suite"/> <xsl:variable name="fit.failure.list" select="$fit.case.list//failure"/> <xsl:variable name="fit.notrun.list" select="$fit.case.list//reason"/> <xsl:variable name="colorClass"> ! <xsl:choose> ! <xsl:when test="$fit.exceptionspagecount > 0">fiterror</xsl:when> ! <xsl:when test="$fit.ignorespagecount > 0">fitignore</xsl:when> ! <xsl:when test="$fit.wrongpagecount > 0" >fail</xsl:when> ! <xsl:otherwise>pass</xsl:otherwise> ! </xsl:choose> </xsl:variable> <xsl:variable name="fit.tests.present" select="count(//testResults/result) > 0 or count(/cruisecontrol/build/buildresults//testsuite) > 0" /> <xsl:template match="/"> <xsl:choose> <xsl:when test="$fit.tests.present"> <style> *.pass{ background-color: #AAFFAA; } ! *.fail{ background-color: #FFAAAA; } ! *.fit_label{ ! color: #AAAAAA; } ! *.fiterror{ ! background-color: #FFFFAA; } ! *.fitignore{ ! background-color: #CCCCCC; } ! *.fitheader{ border: solid 1px black; margin: 1px; padding: 2px; } ! *.line{ margin: 5px; } </style> <script> function toggleDiv( imgId, divId ) *************** *** 128,226 **** } } </script> - <div> - <div class="{$colorClass} fitheader"> - <strong>FitNesse Summary -- Test Pages:</strong> ! ! <xsl:value-of select="$fit.correctpagecount"/> right, ! ! <xsl:value-of select="$fit.wrongpagecount"/> wrong, ! ! <xsl:value-of select="$fit.ignorespagecount"/> ignored, ! ! <xsl:value-of select="$fit.exceptionspagecount"/> exceptions ! <strong>Assertions:</strong> - <xsl:value-of select="$fit.correctcount"/> right, - <xsl:value-of select="$fit.failures"/> wrong, - <xsl:value-of select="$fit.notrun"/> ignored, - <xsl:value-of select="$fit.exceptions"/> exceptions - </div> - <xsl:for-each select="$fit.result.list"> - <xsl:variable name="test.id" select="generate-id()" /> - <xsl:variable name="test.name" select="relativePageName" /> - <xsl:variable name="colorClass"> - <xsl:choose> - <xsl:when test="counts/exceptions > 0">fiterror</xsl:when> - <xsl:when test="counts/ignores > 0">fitignore</xsl:when> - <xsl:when test="counts/wrong > 0" >fail</xsl:when> - <xsl:otherwise>pass</xsl:otherwise> - </xsl:choose> - </xsl:variable> - <div class="line"> - <span class="{$colorClass}" style="padding:2px;" > - - <xsl:attribute name="id">img<xsl:value-of select="$test.id"/></xsl:attribute> - - <xsl:attribute name="onclick">javascript:toggleDiv('img<xsl:value-of select="$test.id"/>', 'fitDetails<xsl:value-of select="$test.id"/>');</xsl:attribute> - <xsl:value-of select="counts/right"/> right, <xsl:value-of select="counts/wrong"/> wrong, - <xsl:value-of select="counts/ignores"/> ignored, <xsl:value-of select="counts/exceptions"/> exceptions - </span> - <input type="image" src="images/arrow_minus_small.gif"> - <xsl:attribute name="id">img<xsl:value-of select="$test.id"/></xsl:attribute> - <xsl:attribute name="onclick">javascript:toggleDiv('img<xsl:value-of select="$test.id"/>', 'fitDetails<xsl:value-of select="$test.id"/>');</xsl:attribute> ! ! </input> <xsl:value-of select="$test.name"/> ! </div> ! ! <span> ! <xsl:attribute name="id">fitDetails<xsl:value-of select="$test.id"/></xsl:attribute> - <blockquote> - <xsl:value-of select="content" disable-output-escaping="yes"/> - </blockquote> - </span> - </xsl:for-each> - </div> - </xsl:when> - </xsl:choose> - </xsl:template> - </xsl:stylesheet> \ No newline at end of file --- 69,129 ---- } } + + function exportDivToNewWindow( divId ) + { + eDiv = document.getElementById( divId ); + newWin = window.open("", "_new"); + newWin.document.write("<link href='fitnesse.css' type='text/css' rel='stylesheet'>"); + newWin.document.write(eDiv.innerHTML); + newWin.document.close(); + } </script> <div> <div class="{$colorClass} fitheader"> <strong>FitNesse Summary -- Test Pages:</strong> ! <xsl:value-of select="$fit.correctpagecount"/> right, <xsl:value-of select="$fit.wrongpagecount"/> wrong, ! <xsl:value-of select="$fit.ignorespagecount"/> ignored, <xsl:value-of select="$fit.exceptionspagecount"/> exceptions <strong>Assertions:</strong> <xsl:value-of select="$fit.correctcount"/> right, <xsl:value-of select="$fit.failures"/> wrong, <xsl:value-of select="$fit.notrun"/> ignored, <xsl:value-of select="$fit.exceptions"/> exceptions </div> <xsl:for-each select="$fit.result.list"> <xsl:variable name="test.id" select="generate-id()" /> <xsl:variable name="test.name" select="relativePageName" /> <xsl:variable name="colorClass"> <xsl:choose> <xsl:when test="counts/exceptions > 0">fiterror</xsl:when> <xsl:when test="counts/ignores > 0">fitignore</xsl:when> <xsl:when test="counts/wrong > 0" >fail</xsl:when> <xsl:otherwise>pass</xsl:otherwise> </xsl:choose> </xsl:variable> <div class="line"> <span class="{$colorClass}" style="padding:2px;" > <xsl:value-of select="counts/right"/> right, <xsl:value-of select="counts/wrong"/> wrong, <xsl:value-of select="counts/ignores"/> ignored, <xsl:value-of select="counts/exceptions"/> exceptions </span> <input type="image" src="images/arrow_minus_small.gif"> <xsl:attribute name="id">img<xsl:value-of select="$test.id"/></xsl:attribute> <xsl:attribute name="onclick">javascript:toggleDiv('img<xsl:value-of select="$test.id"/>', 'fitDetails<xsl:value-of select="$test.id"/>');</xsl:attribute> ! </input>  ! <input type="button"> ! <xsl:attribute name="value">Export Details</xsl:attribute> ! <xsl:attribute name="onclick">javascript:exportDivToNewWindow('fitDetails<xsl:value-of select="$test.id"/>');</xsl:attribute> ! </input>  ! <xsl:value-of select="$test.name"/> </div> ! <span style="display:none"> <xsl:attribute name="id">fitDetails<xsl:value-of select="$test.id"/></xsl:attribute> <blockquote> <xsl:value-of select="content" disable-output-escaping="yes"/> </blockquote> </span> </xsl:for-each> </div> </xsl:when> </xsl:choose> </xsl:template> </xsl:stylesheet> \ No newline at end of file |
|
From: Ashish <ash...@us...> - 2006-02-24 09:11:54
|
Update of /cvsroot/ccnet/ccnet/project/WebDashboard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27997/project/WebDashboard Modified Files: WebDashboard.csproj Added Files: fitnesse.css Log Message: Updating fitnesse.xsl to export the fitnesse detailed report to a new window Index: WebDashboard.csproj =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/WebDashboard/WebDashboard.csproj,v retrieving revision 1.120 retrieving revision 1.121 diff -C2 -d -r1.120 -r1.121 *** WebDashboard.csproj 21 Feb 2006 10:34:55 -0000 1.120 --- WebDashboard.csproj 24 Feb 2006 09:11:43 -0000 1.121 *************** *** 183,186 **** --- 183,190 ---- /> <File + RelPath = "fitnesse.css" + BuildAction = "Content" + /> + <File RelPath = "Web.config" BuildAction = "None" --- NEW FILE: fitnesse.css --- *.pass{ background-color: #AAFFAA; } *.fail{ background-color: #FFAAAA; } *.fit_label{ color: #AAAAAA; } *.fiterror{ background-color: #FFFFAA; } *.fitignore{ background-color: #CCCCCC; } *.fitheader{ border: solid 1px black; margin: 1px; padding: 2px; } *.line{ margin: 5px; } |
|
From: Owen R. <exo...@us...> - 2006-02-24 06:13:37
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25814/project/core/sourcecontrol Modified Files: Vault3.cs Vault317.cs VaultHistoryParser.cs VaultVersionChecker.cs Log Message: fixing vault code so that date parsing using invariant culture so that unit tests run in non-us cultures Index: Vault3.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/Vault3.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Vault3.cs 15 Feb 2006 17:28:27 -0000 1.1 --- Vault3.cs 24 Feb 2006 06:13:32 -0000 1.2 *************** *** 1,6 **** using System; - using System.Xml; using System.Text.RegularExpressions; ! using ThoughtWorks.CruiseControl.Core.Sourcecontrol; using ThoughtWorks.CruiseControl.Core.Util; using ThoughtWorks.CruiseControl.Remote; --- 1,5 ---- using System; using System.Text.RegularExpressions; ! using System.Xml; using ThoughtWorks.CruiseControl.Core.Util; using ThoughtWorks.CruiseControl.Remote; *************** *** 11,15 **** /// Integrates with Vault 3.0.0 - 3.1.6 /// </summary> ! public class Vault3 : ProcessSourceControl { private static readonly Regex MatchVaultElements = new Regex("<vault>(?:.|\n)*</vault>", RegexOptions.IgnoreCase); --- 10,14 ---- /// Integrates with Vault 3.0.0 - 3.1.6 /// </summary> ! public class Vault3 : ProcessSourceControl { private static readonly Regex MatchVaultElements = new Regex("<vault>(?:.|\n)*</vault>", RegexOptions.IgnoreCase); *************** *** 32,36 **** } ! public override Modification[] GetModifications(IIntegrationResult from, IIntegrationResult to) { _labelApplied = false; --- 31,35 ---- } ! public override Modification[] GetModifications(IIntegrationResult from, IIntegrationResult to) { _labelApplied = false; *************** *** 44,58 **** /// </summary> /// <param name="result"></param> ! public override void LabelSourceControl(IIntegrationResult result) { if (! _shim.ApplyLabel) return; ! if (_shim.AutoGetSource) { ! if ( result.Status != IntegrationStatus.Success ) { // Make sure we only remove the label if we actually applied it. It's possible that the integration // failed because the label already exists. In this case, we certainly don't want to remove it. ! if ( _labelApplied ) { Log.Info(string.Format( --- 43,57 ---- /// </summary> /// <param name="result"></param> ! public override void LabelSourceControl(IIntegrationResult result) { if (! _shim.ApplyLabel) return; ! if (_shim.AutoGetSource) { ! if (result.Status != IntegrationStatus.Success) { // Make sure we only remove the label if we actually applied it. It's possible that the integration // failed because the label already exists. In this case, we certainly don't want to remove it. ! if (_labelApplied) { Log.Info(string.Format( *************** *** 65,69 **** _shim.Folder, _shim.Repository)); } ! } else { --- 64,68 ---- _shim.Folder, _shim.Repository)); } ! } else { *************** *** 73,92 **** } ! public override void GetSource(IIntegrationResult result) { ! if ( !_shim.AutoGetSource ) return; _labelApplied = false; ! if ( StringUtil.IsBlank(_shim.WorkingDirectory) && !(!_shim.ApplyLabel && _shim.UseVaultWorkingDirectory && !_shim.CleanCopy) ) { _shim.WorkingDirectory = GetVaultWorkingFolder(result); ! if ( StringUtil.IsBlank(_shim.WorkingDirectory) ) throw new VaultException( ! string.Format("Vault user {0} has no working folder set for {1} in repository {2} and no working directory has been specified.", ! _shim.Username, _shim.Folder, _shim.Repository)); } ! if ( _shim.ApplyLabel ) { Log.Info(string.Format("Applying label \"{0}\" to {1} in repository {2}.", result.Label, _shim.Folder, _shim.Repository)); --- 72,91 ---- } ! public override void GetSource(IIntegrationResult result) { ! if (!_shim.AutoGetSource) return; _labelApplied = false; ! if (StringUtil.IsBlank(_shim.WorkingDirectory) && !(!_shim.ApplyLabel && _shim.UseVaultWorkingDirectory && !_shim.CleanCopy)) { _shim.WorkingDirectory = GetVaultWorkingFolder(result); ! if (StringUtil.IsBlank(_shim.WorkingDirectory)) throw new VaultException( ! string.Format("Vault user {0} has no working folder set for {1} in repository {2} and no working directory has been specified.", ! _shim.Username, _shim.Folder, _shim.Repository)); } ! if (_shim.ApplyLabel) { Log.Info(string.Format("Applying label \"{0}\" to {1} in repository {2}.", result.Label, _shim.Folder, _shim.Repository)); *************** *** 120,124 **** if (value.Length == 0) { ! throw new Vault3.VaultException(string.Format("The output does not contain the expected <vault> element: {0}", output)); } return value; --- 119,123 ---- if (value.Length == 0) { ! throw new VaultException(string.Format("The output does not contain the expected <vault> element: {0}", output)); } return value; *************** *** 128,140 **** { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); ! if ( getByLabel ) { builder.AddArgument("getlabel", _shim.Folder); builder.AddArgument(result.Label); ! if ( _shim.UseVaultWorkingDirectory ) builder.AddArgument("-labelworkingfolder", result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); else builder.AddArgument("-destpath", result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); ! } else { --- 127,139 ---- { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); ! if (getByLabel) { builder.AddArgument("getlabel", _shim.Folder); builder.AddArgument(result.Label); ! if (_shim.UseVaultWorkingDirectory) builder.AddArgument("-labelworkingfolder", result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); else builder.AddArgument("-destpath", result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); ! } else { *************** *** 146,152 **** } - builder.AddArgument("-merge", "overwrite"); ! builder.AppendArgument("-makewritable"); builder.AddArgument("-setfiletime", _shim.setFileTime); AddCommonOptionalArguments(builder); --- 145,150 ---- } builder.AddArgument("-merge", "overwrite"); ! builder.AppendArgument("-makewritable"); builder.AddArgument("-setfiletime", _shim.setFileTime); AddCommonOptionalArguments(builder); *************** *** 154,158 **** } ! private ProcessInfo LabelProcessInfo(IIntegrationResult result) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); --- 152,156 ---- } ! private ProcessInfo LabelProcessInfo(IIntegrationResult result) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); *************** *** 163,167 **** } ! private ProcessInfo RemoveLabelProcessInfo(IIntegrationResult result) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); --- 161,165 ---- } ! private ProcessInfo RemoveLabelProcessInfo(IIntegrationResult result) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); *************** *** 172,176 **** } ! protected ProcessInfo ForHistoryProcessInfo(IIntegrationResult from, IIntegrationResult to) { ProcessInfo info = ProcessInfoFor(BuildHistoryProcessArgs(from.StartTime, to.StartTime), from); --- 170,174 ---- } ! protected ProcessInfo ForHistoryProcessInfo(IIntegrationResult from, IIntegrationResult to) { ProcessInfo info = ProcessInfoFor(BuildHistoryProcessArgs(from.StartTime, to.StartTime), from); *************** *** 179,183 **** } ! protected ProcessInfo ProcessInfoFor(string args, IIntegrationResult result) { return new ProcessInfo(_shim.Executable, args, result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); --- 177,181 ---- } ! protected ProcessInfo ProcessInfoFor(string args, IIntegrationResult result) { return new ProcessInfo(_shim.Executable, args, result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); *************** *** 187,191 **** // rowlimit 0 or -1 means unlimited (default is 1000 if not specified) // TODO: might want to make rowlimit configurable? ! private string BuildHistoryProcessArgs(DateTime from, DateTime to) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); --- 185,189 ---- // rowlimit 0 or -1 means unlimited (default is 1000 if not specified) // TODO: might want to make rowlimit configurable? ! private string BuildHistoryProcessArgs(DateTime from, DateTime to) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); *************** *** 198,202 **** } ! protected void AddCommonOptionalArguments(ProcessArgumentBuilder builder) { builder.AddArgument("-host", _shim.Host); --- 196,200 ---- } ! protected void AddCommonOptionalArguments(ProcessArgumentBuilder builder) { builder.AddArgument("-host", _shim.Host); *************** *** 237,246 **** XmlAttribute repositoryFolderAtt; XmlAttribute localFolderAtt; ! foreach ( XmlNode workingFolderNode in workingFolderNodes ) { repositoryFolderAtt = workingFolderNode.Attributes["reposfolder"]; localFolderAtt = workingFolderNode.Attributes["localfolder"]; ! if ( repositoryFolderAtt != null && localFolderAtt != null ) ! if ( repositoryFolderAtt.InnerText == _shim.Folder ) { return localFolderAtt.InnerText; --- 235,244 ---- XmlAttribute repositoryFolderAtt; XmlAttribute localFolderAtt; ! foreach (XmlNode workingFolderNode in workingFolderNodes) { repositoryFolderAtt = workingFolderNode.Attributes["reposfolder"]; localFolderAtt = workingFolderNode.Attributes["localfolder"]; ! if (repositoryFolderAtt != null && localFolderAtt != null) ! if (repositoryFolderAtt.InnerText == _shim.Folder) { return localFolderAtt.InnerText; *************** *** 258,262 **** xml.LoadXml(ExtractXmlFromOutput(result.StandardOutput)); } ! catch ( XmlException ) { throw new VaultException(string.Format( --- 256,260 ---- xml.LoadXml(ExtractXmlFromOutput(result.StandardOutput)); } ! catch (XmlException) { throw new VaultException(string.Format( *************** *** 268,274 **** public class VaultException : CruiseControlException { ! public VaultException(string message) : base(message) {} } ! } ! } --- 266,273 ---- public class VaultException : CruiseControlException { ! public VaultException(string message) : base(message) ! {} } ! } ! } \ No newline at end of file Index: VaultHistoryParser.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/VaultHistoryParser.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** VaultHistoryParser.cs 15 Feb 2006 17:28:27 -0000 1.4 --- VaultHistoryParser.cs 24 Feb 2006 06:13:32 -0000 1.5 *************** *** 1,4 **** --- 1,5 ---- using System; using System.Collections; + using System.Globalization; using System.IO; using System.Text; *************** *** 9,12 **** --- 10,22 ---- public class VaultHistoryParser : IHistoryParser { + private CultureInfo culture; + + public VaultHistoryParser() : this(CultureInfo.CurrentCulture) + {} + + public VaultHistoryParser(CultureInfo culture) + { + this.culture = culture; + } public Modification[] Parse(TextReader history, DateTime from, DateTime to) *************** *** 45,49 **** private bool EntryWithinRange(XmlNode node, DateTime from, DateTime to) { ! DateTime date = DateTime.Parse(node.Attributes["date"].InnerText); return (date > from && date < to); } --- 55,59 ---- private bool EntryWithinRange(XmlNode node, DateTime from, DateTime to) { ! DateTime date = DateTime.Parse(node.Attributes["date"].InnerText, culture); return (date > from && date < to); } *************** *** 80,84 **** fileName = name.Substring(index + 1, name.Length - index - 1); } ! DateTime date = DateTime.Parse(node.Attributes["date"].InnerText); Modification modification = new Modification(); modification.FileName = fileName; --- 90,94 ---- fileName = name.Substring(index + 1, name.Length - index - 1); } ! DateTime date = DateTime.Parse(node.Attributes["date"].InnerText, culture); Modification modification = new Modification(); modification.FileName = fileName; Index: Vault317.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/Vault317.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Vault317.cs 15 Feb 2006 17:28:27 -0000 1.1 --- Vault317.cs 24 Feb 2006 06:13:32 -0000 1.2 *************** *** 2,5 **** --- 2,6 ---- using System.Collections; using System.Diagnostics; + using System.Globalization; using System.Xml; using ThoughtWorks.CruiseControl.Core.Sourcecontrol; *************** *** 7,11 **** using ThoughtWorks.CruiseControl.Remote; ! namespace ThoughtWorks.CruiseControl.Core.sourcecontrol { /// <summary> --- 8,12 ---- using ThoughtWorks.CruiseControl.Remote; ! namespace ThoughtWorks.CruiseControl.Core.Sourcecontrol { /// <summary> *************** *** 16,19 **** --- 17,21 ---- private long _folderVersion; private long _lastTxID; + private CultureInfo culture = CultureInfo.CurrentCulture; public Vault317(VaultVersionChecker versionCheckerShim) : base(versionCheckerShim) *************** *** 30,40 **** /// <param name="executor"></param> public Vault317(VaultVersionChecker versionCheckerShim, IHistoryParser historyParser, ProcessExecutor executor) : base(versionCheckerShim, historyParser, executor) { ! ! } ! ! public override Modification[] GetModifications(IIntegrationResult from, IIntegrationResult to) ! { ! if ( LookForChangesUsingVersionHistory(from, to) ) return GetModificationsFromItemHistory(from, to); else --- 32,40 ---- /// <param name="executor"></param> public Vault317(VaultVersionChecker versionCheckerShim, IHistoryParser historyParser, ProcessExecutor executor) : base(versionCheckerShim, historyParser, executor) + {} + + public override Modification[] GetModifications(IIntegrationResult from, IIntegrationResult to) { ! if (LookForChangesUsingVersionHistory(from, to)) return GetModificationsFromItemHistory(from, to); else *************** *** 56,62 **** // included in the list of mods without this extra check. ArrayList modList = new ArrayList(itemModifications.Length); ! foreach ( Modification mod in itemModifications ) { ! if ( mod.ChangeNumber <= _lastTxID ) modList.Add(mod); } --- 56,62 ---- // included in the list of mods without this extra check. ArrayList modList = new ArrayList(itemModifications.Length); ! foreach (Modification mod in itemModifications) { ! if (mod.ChangeNumber <= _lastTxID) modList.Add(mod); } *************** *** 64,71 **** return (Modification[]) modList.ToArray(typeof (Modification)); } ! private bool LookForChangesUsingVersionHistory(IIntegrationResult from, IIntegrationResult to) { - Log.Info(string.Format("Checking for modifications to {0} in Vault Repository \"{1}\" between {2} and {3}", _shim.Folder, _shim.Repository, from.StartTime, to.StartTime)); --- 64,70 ---- return (Modification[]) modList.ToArray(typeof (Modification)); } ! private bool LookForChangesUsingVersionHistory(IIntegrationResult from, IIntegrationResult to) { Log.Info(string.Format("Checking for modifications to {0} in Vault Repository \"{1}\" between {2} and {3}", _shim.Folder, _shim.Repository, from.StartTime, to.StartTime)); *************** *** 77,95 **** } ! public override void GetSource(IIntegrationResult result) { ! if ( !_shim.AutoGetSource ) return; Debug.Assert(_folderVersion > 0, "_folderVersion <= 0 when attempting to get source. This shouldn't happen."); ! if (_shim.CleanCopy ) { string cleanCopyWorkingFolder = null; ! if ( StringUtil.IsBlank(_shim.WorkingDirectory) ) { cleanCopyWorkingFolder = GetVaultWorkingFolder(result); ! if ( StringUtil.IsBlank(cleanCopyWorkingFolder) ) throw new VaultException( ! string.Format("Vault user {0} has no working folder set for {1} in repository {2} and no working directory has been specified.", ! _shim.Username, _shim.Folder, _shim.Repository)); } else --- 76,94 ---- } ! public override void GetSource(IIntegrationResult result) { ! if (!_shim.AutoGetSource) return; Debug.Assert(_folderVersion > 0, "_folderVersion <= 0 when attempting to get source. This shouldn't happen."); ! if (_shim.CleanCopy) { string cleanCopyWorkingFolder = null; ! if (StringUtil.IsBlank(_shim.WorkingDirectory)) { cleanCopyWorkingFolder = GetVaultWorkingFolder(result); ! if (StringUtil.IsBlank(cleanCopyWorkingFolder)) throw new VaultException( ! string.Format("Vault user {0} has no working folder set for {1} in repository {2} and no working directory has been specified.", ! _shim.Username, _shim.Folder, _shim.Repository)); } else *************** *** 104,120 **** } ! public override void LabelSourceControl(IIntegrationResult result) { // only apply label if it's turned on and the integration was a success ! if ( !_shim.ApplyLabel || result.Status != IntegrationStatus.Success ) return; Debug.Assert(_folderVersion > 0, "_folderVersion <= 0 when attempting to label. This shouldn't happen."); ! Log.Info(string.Format("Applying label \"{0}\" to version {1} of {2} in repository {3}.", ! result.Label, _folderVersion, _shim.Folder, _shim.Repository)); Execute(LabelProcessInfo(result)); } ! private ProcessInfo LabelProcessInfo(IIntegrationResult result) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); --- 103,119 ---- } ! public override void LabelSourceControl(IIntegrationResult result) { // only apply label if it's turned on and the integration was a success ! if (!_shim.ApplyLabel || result.Status != IntegrationStatus.Success) return; Debug.Assert(_folderVersion > 0, "_folderVersion <= 0 when attempting to label. This shouldn't happen."); ! Log.Info(string.Format("Applying label \"{0}\" to version {1} of {2} in repository {3}.", ! result.Label, _folderVersion, _shim.Folder, _shim.Repository)); Execute(LabelProcessInfo(result)); } ! private ProcessInfo LabelProcessInfo(IIntegrationResult result) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); *************** *** 126,130 **** } - /// <summary> /// Gets the most recent folder version via Vault's versionhistory command. --- 125,128 ---- *************** *** 157,161 **** XmlNodeList versionNodeList = versionHistoryXml.SelectNodes("/vault/history/item"); XmlNode folderVersionNode = null; ! if ( bForceGetLatestVersion ) { Debug.Assert(versionNodeList.Count == 1, "Attempted to retrieve folder's current version and got no results."); --- 155,159 ---- XmlNodeList versionNodeList = versionHistoryXml.SelectNodes("/vault/history/item"); XmlNode folderVersionNode = null; ! if (bForceGetLatestVersion) { Debug.Assert(versionNodeList.Count == 1, "Attempted to retrieve folder's current version and got no results."); *************** *** 165,169 **** { Debug.Assert(versionNodeList.Count == 0 || versionNodeList.Count == 1, "Vault versionhistory -rowlimit 1 returned more than 1 row."); ! if ( versionNodeList.Count == 1 ) { folderVersionNode = versionNodeList.Item(0); --- 163,167 ---- { Debug.Assert(versionNodeList.Count == 0 || versionNodeList.Count == 1, "Vault versionhistory -rowlimit 1 returned more than 1 row."); ! if (versionNodeList.Count == 1) { folderVersionNode = versionNodeList.Item(0); *************** *** 173,190 **** } ! if ( folderVersionNode != null ) { ! if ( bForceGetLatestVersion ) { // We asked Vault for the most recent folder version. We have to check its date to // see if this represents a change since the last integration. ! XmlAttribute dateAttr = (XmlAttribute)folderVersionNode.Attributes.GetNamedItem("date"); Debug.Assert(dateAttr != null, "date attribute not found in version history"); ! DateTime dtLastChange = DateTime.Parse(dateAttr.Value); ! if ( dtLastChange > from.StartTime ) bFoundChanges = true; } // get the new most recent folder version ! XmlAttribute versionAttr = (XmlAttribute)folderVersionNode.Attributes.GetNamedItem("version"); Debug.Assert(versionAttr != null, "version attribute not found in version history"); _folderVersion = long.Parse(versionAttr.Value); --- 171,188 ---- } ! if (folderVersionNode != null) { ! if (bForceGetLatestVersion) { // We asked Vault for the most recent folder version. We have to check its date to // see if this represents a change since the last integration. ! XmlAttribute dateAttr = (XmlAttribute) folderVersionNode.Attributes.GetNamedItem("date"); Debug.Assert(dateAttr != null, "date attribute not found in version history"); ! DateTime dtLastChange = DateTime.Parse(dateAttr.Value, culture); ! if (dtLastChange > from.StartTime) bFoundChanges = true; } // get the new most recent folder version ! XmlAttribute versionAttr = (XmlAttribute) folderVersionNode.Attributes.GetNamedItem("version"); Debug.Assert(versionAttr != null, "version attribute not found in version history"); _folderVersion = long.Parse(versionAttr.Value); *************** *** 192,196 **** // get the new most recent TxId ! XmlAttribute txIdAttr = (XmlAttribute)folderVersionNode.Attributes.GetNamedItem("txid"); Debug.Assert(txIdAttr != null, "txid attribute not found in version history"); _lastTxID = long.Parse(txIdAttr.Value); --- 190,194 ---- // get the new most recent TxId ! XmlAttribute txIdAttr = (XmlAttribute) folderVersionNode.Attributes.GetNamedItem("txid"); Debug.Assert(txIdAttr != null, "txid attribute not found in version history"); _lastTxID = long.Parse(txIdAttr.Value); *************** *** 201,205 **** } - private ProcessInfo VersionHistoryProcessInfo(IIntegrationResult from, IIntegrationResult to, bool bForceGetLatestVersion) { --- 199,202 ---- *************** *** 209,216 **** // Look only for changes, unless caller asked us to get the latest folder // version regardless of whether there's been a change. ! if ( !bForceGetLatestVersion ) { // use folderVersion when possible because it's faster and more accurate ! if ( _folderVersion != 0 ) { builder.AddArgument("-beginversion", (_folderVersion + 1).ToString()); --- 206,213 ---- // Look only for changes, unless caller asked us to get the latest folder // version regardless of whether there's been a change. ! if (!bForceGetLatestVersion) { // use folderVersion when possible because it's faster and more accurate ! if (_folderVersion != 0) { builder.AddArgument("-beginversion", (_folderVersion + 1).ToString()); *************** *** 236,241 **** builder.AddArgument("getversion", _folderVersion.ToString()); builder.AddArgument(_shim.Folder); ! ! if ( !StringUtil.IsBlank(_shim.WorkingDirectory) ) { builder.AddArgument(result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); --- 233,238 ---- builder.AddArgument("getversion", _folderVersion.ToString()); builder.AddArgument(_shim.Folder); ! ! if (!StringUtil.IsBlank(_shim.WorkingDirectory)) { builder.AddArgument(result.BaseFromWorkingDirectory(_shim.WorkingDirectory)); *************** *** 251,255 **** return ProcessInfoFor(builder.ToString(), result); } - } ! } --- 248,251 ---- return ProcessInfoFor(builder.ToString(), result); } } ! } \ No newline at end of file Index: VaultVersionChecker.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/core/sourcecontrol/VaultVersionChecker.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VaultVersionChecker.cs 15 Feb 2006 17:28:27 -0000 1.1 --- VaultVersionChecker.cs 24 Feb 2006 06:13:32 -0000 1.2 *************** *** 1,4 **** using Exortech.NetReflector; - using ThoughtWorks.CruiseControl.Core.sourcecontrol; using ThoughtWorks.CruiseControl.Core.Util; using System.Reflection; --- 1,3 ---- |
|
From: Owen R. <exo...@us...> - 2006-02-24 06:13:37
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25814/project/UnitTests/Core/SourceControl Modified Files: Vault317Test.cs Vault3Test.cs VaultHistoryParserTest.cs Log Message: fixing vault code so that date parsing using invariant culture so that unit tests run in non-us cultures Index: Vault3Test.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/Vault3Test.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Vault3Test.cs 15 Feb 2006 17:41:20 -0000 1.2 --- Vault3Test.cs 24 Feb 2006 06:13:30 -0000 1.3 *************** *** 33,37 **** <result success=""yes"" /> </vault>"; ! protected VaultVersionChecker vault; protected DynamicMock mockHistoryParser; --- 33,37 ---- <result success=""yes"" /> </vault>"; ! protected VaultVersionChecker vault; protected DynamicMock mockHistoryParser; *************** *** 129,133 **** result.StartTime = yesterday; string args = string.Format(@"history $ -excludeactions label -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}", ! yesterday, today, SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(args); ExpectToParseHistory(); --- 129,133 ---- result.StartTime = yesterday; string args = string.Format(@"history $ -excludeactions label -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}", ! yesterday, today, SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(args); ExpectToParseHistory(); *************** *** 175,179 **** ExpectToCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 175,179 ---- ExpectToCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 195,199 **** ExpectToNotCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 195,199 ---- ExpectToNotCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 216,220 **** ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 216,220 ---- ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 237,241 **** ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 237,241 ---- ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 258,262 **** ExpectToCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 258,262 ---- ExpectToCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 279,283 **** ExpectToNotCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 279,283 ---- ExpectToNotCleanFolder(); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 300,304 **** ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 300,304 ---- ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 321,325 **** ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 321,325 ---- ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -destpath c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 494,498 **** vault.GetSource(result); } ! catch ( Vault3.VaultException ) { VaultExceptionThrown = true; --- 494,498 ---- vault.GetSource(result); } ! catch (Vault3.VaultException) { VaultExceptionThrown = true; *************** *** 518,522 **** vault.GetSource(result); } ! catch ( Vault3.VaultException ) { VaultExceptionThrown = true; --- 518,522 ---- vault.GetSource(result); } ! catch (Vault3.VaultException) { VaultExceptionThrown = true; *************** *** 587,591 **** vault.AutoGetSource = true; vault.Folder = "$"; ! IntegrationResult failed = IntegrationResultMother.CreateFailed(); failed.Label = result.Label; --- 587,591 ---- vault.AutoGetSource = true; vault.Folder = "$"; ! IntegrationResult failed = IntegrationResultMother.CreateFailed(); failed.Label = result.Label; *************** *** 633,637 **** ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); --- 633,637 ---- ExpectToExecuteArguments(@"listworkingfolders" + SetAndGetCommonOptionalArguments()); ExpectToExecuteArguments(@"label $ foo" + SetAndGetCommonOptionalArguments()); ! ExpectToExecuteArguments(@"getlabel $ foo -labelworkingfolder c:\source" + GetWorkingFolderArguments() + GetFileTimeArgument() + SetAndGetCommonOptionalArguments()); *************** *** 652,660 **** protected string GetWorkingFolderArguments() { ! if ( vault.ApplyLabel ) return @" -merge overwrite -makewritable"; else { ! if ( vault.UseVaultWorkingDirectory ) return @" -performdeletions removeworkingcopy -merge overwrite -makewritable"; else --- 652,660 ---- protected string GetWorkingFolderArguments() { ! if (vault.ApplyLabel) return @" -merge overwrite -makewritable"; else { ! if (vault.UseVaultWorkingDirectory) return @" -performdeletions removeworkingcopy -merge overwrite -makewritable"; else *************** *** 690,694 **** } */ ! protected void ExpectToCleanFolder() { --- 690,694 ---- } */ ! protected void ExpectToCleanFolder() { Index: VaultHistoryParserTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/VaultHistoryParserTest.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** VaultHistoryParserTest.cs 15 Feb 2006 17:28:27 -0000 1.3 --- VaultHistoryParserTest.cs 24 Feb 2006 06:13:31 -0000 1.4 *************** *** 1,3 **** --- 1,4 ---- using System; + using System.Globalization; using System.IO; using NUnit.Framework; *************** *** 13,17 **** //Can end up with DateTime parsing errors in the test otherwise... //e.g. US format date string "5/13/2003" gives format exception when parsed on UK locale system. ! private static string XML_COMMENT_DATE = new DateTime(2003, 5, 13, 22, 41, 30).ToString(); private static readonly string XML = @"<vault> --- 14,18 ---- //Can end up with DateTime parsing errors in the test otherwise... //e.g. US format date string "5/13/2003" gives format exception when parsed on UK locale system. ! private static string XML_COMMENT_DATE = new DateTime(2003, 5, 13, 22, 41, 30).ToString(CultureInfo.InvariantCulture); private static readonly string XML = @"<vault> *************** *** 36,39 **** --- 37,47 ---- </history> </vault>"; + private VaultHistoryParser parser; + + [SetUp] + protected void SetUp() + { + parser = new VaultHistoryParser(CultureInfo.InvariantCulture); + } private StringReader GetReader(string xml) *************** *** 45,49 **** public void NumberOfModifications() { - VaultHistoryParser parser = new VaultHistoryParser(); StringReader reader = GetReader(XML); Modification[] modifications = parser.Parse(reader, new DateTime(2003, 5, 12), DateTime.Now); --- 53,56 ---- *************** *** 55,59 **** public void NumberOfModificationsWithInvalidDate() { - VaultHistoryParser parser = new VaultHistoryParser(); StringReader reader = GetReader(XML); Modification[] modifications = parser.Parse(reader, DateTime.Now.AddMinutes(-1), DateTime.Now); --- 62,65 ---- *************** *** 65,69 **** public void ModificationData() { - VaultHistoryParser parser = new VaultHistoryParser(); StringReader reader = GetReader(XML); Modification[] modifications = parser.Parse(reader, new DateTime(2003, 5, 12), DateTime.Now); --- 71,74 ---- *************** *** 81,85 **** public void ShouldStripCharactersOutsideOfVaultElement() { - VaultHistoryParser parser = new VaultHistoryParser(); StringReader reader = GetReader(XML_PADDED_WITH_EXTRA_CHARACTERS); Modification[] modifications = parser.Parse(reader, new DateTime(2003, 5, 12), DateTime.Now); --- 86,89 ---- *************** *** 96,100 **** public void NoComments() { - VaultHistoryParser parser = new VaultHistoryParser(); StringReader reader = GetReader(NO_COMMENT_XML); parser.Parse(reader, new DateTime(2003, 5, 12), DateTime.Now); --- 100,103 ---- *************** *** 105,109 **** public void ShouldFindFileAndFolderNamesForAddsAndDeletes() { - VaultHistoryParser parser = new VaultHistoryParser(); StringReader reader = GetReader(ADD_AND_DELETE_FILES_XML); Modification[] modifications = parser.Parse(reader, new DateTime(2003, 5, 12), DateTime.Now); --- 108,111 ---- Index: Vault317Test.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/SourceControl/Vault317Test.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Vault317Test.cs 15 Feb 2006 17:28:27 -0000 1.1 --- Vault317Test.cs 24 Feb 2006 06:13:29 -0000 1.2 *************** *** 1,4 **** --- 1,6 ---- using System; + using System.Globalization; using System.Text; + using System.Threading; using NMock; using NUnit.Framework; *************** *** 12,24 **** public class Vault317Test : Vault3Test { - private bool _bModificationsRetrieved = false; [SetUp] public override void SetUp() { CreateProcessExecutorMock(VaultVersionChecker.DefaultExecutable); mockHistoryParser = new DynamicMock(typeof (IHistoryParser)); ! vault = new VaultVersionChecker(new VaultHistoryParser(), (ProcessExecutor) mockProcessExecutor.MockInstance, VaultVersionChecker.EForcedVaultVersion.Vault317); this.DefaultWorkingDirectory = @"c:\source"; --- 14,28 ---- public class Vault317Test : Vault3Test { private bool _bModificationsRetrieved = false; + private CultureInfo culture = CultureInfo.InvariantCulture; [SetUp] public override void SetUp() { + Thread.CurrentThread.CurrentCulture = culture; + CreateProcessExecutorMock(VaultVersionChecker.DefaultExecutable); mockHistoryParser = new DynamicMock(typeof (IHistoryParser)); ! vault = new VaultVersionChecker(new VaultHistoryParser(culture), (ProcessExecutor) mockProcessExecutor.MockInstance, VaultVersionChecker.EForcedVaultVersion.Vault317); this.DefaultWorkingDirectory = @"c:\source"; *************** *** 32,38 **** public void FindsSimpleChange() { ! ! DateTime dtBeforeChange = DateTime.Parse("1/18/2006 3:34:06 PM"); ! DateTime dtAfterChange = DateTime.Parse("1/18/2006 3:34:08 PM"); result.StartTime = dtBeforeChange; --- 36,41 ---- public void FindsSimpleChange() { ! DateTime dtBeforeChange = DateTime.Parse("1/18/2006 3:34:06 PM", culture); ! DateTime dtAfterChange = DateTime.Parse("1/18/2006 3:34:08 PM", culture); result.StartTime = dtBeforeChange; *************** *** 78,82 **** <result success=""yes"" /> </vault>"; ! dtAfterChange = DateTime.Parse("1/18/2006 3:36:07 PM"); itemHistoryArgs = string.Format(@"history $ -excludeactions label -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}", dtBeforeChange, dtAfterChange, SetAndGetCommonOptionalArguments()); --- 81,85 ---- <result success=""yes"" /> </vault>"; ! dtAfterChange = DateTime.Parse("1/18/2006 3:36:07 PM", culture); itemHistoryArgs = string.Format(@"history $ -excludeactions label -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}", dtBeforeChange, dtAfterChange, SetAndGetCommonOptionalArguments()); *************** *** 92,97 **** public void TakesTransactionIntoAccountWhenGettingModifications() { ! DateTime dtBeforeChange = DateTime.Parse("1/18/2006 3:34:06 PM"); ! DateTime dtAfterChange = DateTime.Parse("1/18/2006 3:34:08 PM"); result.StartTime = dtBeforeChange; --- 95,100 ---- public void TakesTransactionIntoAccountWhenGettingModifications() { ! DateTime dtBeforeChange = DateTime.Parse("1/18/2006 3:34:06 PM", culture); ! DateTime dtAfterChange = DateTime.Parse("1/18/2006 3:34:08 PM", culture); result.StartTime = dtBeforeChange; *************** *** 140,144 **** <result success=""yes"" /> </vault>"; ! DateTime dtEnd = DateTime.Parse("1/18/2006 3:36:07 PM"); itemHistoryArgs = string.Format(@"history $ -excludeactions label -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}", dtBeforeChange, dtEnd, SetAndGetCommonOptionalArguments()); --- 143,147 ---- <result success=""yes"" /> </vault>"; ! DateTime dtEnd = DateTime.Parse("1/18/2006 3:36:07 PM", culture); itemHistoryArgs = string.Format(@"history $ -excludeactions label -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}", dtBeforeChange, dtEnd, SetAndGetCommonOptionalArguments()); *************** *** 672,677 **** return; ! DateTime dtBeforeChange = DateTime.Parse("1/18/2006 3:34:06 PM"); ! DateTime dtAfterChange = DateTime.Parse("1/18/2006 3:34:08 PM"); result.StartTime = dtBeforeChange; --- 675,680 ---- return; ! DateTime dtBeforeChange = DateTime.Parse("1/18/2006 3:34:06 PM", CultureInfo.InvariantCulture); ! DateTime dtAfterChange = DateTime.Parse("1/18/2006 3:34:08 PM", CultureInfo.InvariantCulture); result.StartTime = dtBeforeChange; |
|
From: Owen R. <exo...@us...> - 2006-02-24 05:37:03
|
Update of /cvsroot/ccnet/ccnetlive In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6867 Modified Files: ccnet.config Log Message: updating ccnet 1.0.1 label to 1.0.2 Index: ccnet.config =================================================================== RCS file: /cvsroot/ccnet/ccnetlive/ccnet.config,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** ccnet.config 3 Feb 2006 17:54:16 -0000 1.24 --- ccnet.config 24 Feb 2006 05:36:56 -0000 1.25 *************** *** 65,69 **** </sourcecontrol> <labeller type="defaultlabeller"> ! <prefix>1.0.1.</prefix> </labeller> <tasks> --- 65,69 ---- </sourcecontrol> <labeller type="defaultlabeller"> ! <prefix>1.0.2.</prefix> </labeller> <tasks> |