<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.java.cruise-control.devel">
    <title>gmane.comp.java.cruise-control.devel</title>
    <link>http://blog.gmane.org/gmane.comp.java.cruise-control.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12913"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12909"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12898"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12894"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12891"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12887"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12886"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12885"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12877"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12875"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12873"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12870"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12868"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12866"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12864"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12863"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12862"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12913">
    <title>New plugin - regular expression basedproperties</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12913</link>
    <description>&lt;pre&gt;Hallo,
I have just committed change which allows to write 3rd party properties plugin 
(e.g. getting properties from a database).

I also have an implementation of "regular expression properties plugin" which 
parses a given text file and defines properties based on the regular 
expressions.

As an example, let us consider the file with lines as follows:
&amp;lt;pre&amp;gt;
   name1[value1]
   name2[value2]  Anything may follow ...
   
   there may be anything as well ...
   
   name3[value3]; name4[value4]; name5[value5]
&amp;lt;/pre&amp;gt;
 
and we want to define properties based on this. Moreover, we want to alter the 
names into the form: &amp;lt;code&amp;gt;build.attrib.special_name_1&amp;lt;/code&amp;gt;. To achieve 
this, we need to define regex pattern:
 &amp;lt;pre&amp;gt;
   \s*([a-zA-Z]+)(\d+)[(\S+)]
 &amp;lt;/pre&amp;gt;
then, the template of property name must be set to (referring to groups 1 and 
2):
 &amp;lt;pre&amp;gt;
   build.attrib.special_\1_\2 
 &amp;lt;/pre&amp;gt;
and the value of property value is simple reference to group 3:
 &amp;lt;pre&amp;gt;
   \3 
 &amp;lt;/pre&amp;gt;


So, the plugin is configured as follows:

&amp;lt;regexpproperties file="the.file" pattern="\s*([a-zA-Z]+)(\d+)[(\S+)]" 
name="build.attrib.special_\1_\2" value="\3" /&amp;gt;


We will use it in our builds to define properties used later as the config 
options of the building (python) scripts. Since the options are defined in the 
python, their automatic definition from the python file(s) is much more robust 
(change of the option will not break the build since it will be re-defined 
automatically).


Now, the question is: do you want to have this regexproperties plugin included 
in CC? I can manage it as 3rd party plugin, but I thing it may be quite useful 
for other uses as well.

Best regards,
Dan T.
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2_______________________________________________
Cruisecontrol-devel mailing list
Cruisecontrol-devel&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cruisecontrol-devel
&lt;/pre&gt;</description>
    <dc:creator>Daniel Tihelka</dc:creator>
    <dc:date>2012-04-19T21:30:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12909">
    <title>Welcome new committer, Julian Simpson</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12909</link>
    <description>&lt;pre&gt;We are pleased to welcome Julian Simpson to the ranks of CruiseControl
committers. Julian has a long history with the CruiseControl community and
we are pleased to have him on-board.

Jtf

&lt;/pre&gt;</description>
    <dc:creator>Jeffrey Fredrick</dc:creator>
    <dc:date>2012-04-14T19:00:57</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12898">
    <title>How to develop a new SourceControl plugin?</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12898</link>
    <description>&lt;pre&gt;Hi

Where can I find the details (interface specification, etc.) regarding
writing a new SourceControl plugin? This link doesn't work:
http://cruisecontrol.sourceforge.net/main/api/net/sourceforge/cruisecontrol/SourceControl.html

Thanks
Jirong

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
&lt;/pre&gt;</description>
    <dc:creator>Jirong Hu</dc:creator>
    <dc:date>2012-03-20T14:16:10</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12894">
    <title>Proof of concept GitHub repo</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12894</link>
    <description>&lt;pre&gt;I decided to import CruiseControl to a GitHub repository, so we could
discuss something concrete.

It was pretty straight forward:
1) install git and git-svn
2) run 'git svn clone
https://cruisecontrol.svn.sourceforge.net/svnroot/cruisecontrol/trunk'

That's not a complete clone: I'll have to experiment with the options to
bring the branches and tags in.

Also, I need to map SVN usernames[1] to GitHub usernames:

alden -&amp;gt; https://github.com/alden(?)
pauljulius -&amp;gt; https://github.com/PaulJulius(?)
jfredrick -&amp;gt; https://github.com/JeffreyFredrick
jchyip -&amp;gt; https://github.com/jchyip
jkuipers -&amp;gt; https://github.com/jkuipers
bahmail -&amp;gt; https://github.com/bhamail
sl4mmy -&amp;gt; https://github.com/sl4mmy
robertdw -&amp;gt; unknown
gurun -&amp;gt; unknown
Niklas Olofsson -&amp;gt; unknown
Hack Kampbjørn -&amp;gt; unknown

It's not mandatory to do this, but as committers would need a GitHub
account to participate, it seems sensible to get this done when an import
would happen. Besides, I think it's this social element (being able to
easily discover the work of others) that is valuable.

Anyway, feel free to have a look:

https://github.com/builddoctor/cruisecontrol

Best,

Julian.


[1] taken from http://cruisecontrol.sourceforge.net/developers.html, and by
grepping 'svn log' entries
&lt;/pre&gt;</description>
    <dc:creator>Julian Simpson</dc:creator>
    <dc:date>2012-02-19T20:35:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12891">
    <title>[JIRA] Created: (CC-1054) Mercurial sourcecontrol patch: watched branch indication in config.xml; user-email extraction</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12891</link>
    <description>&lt;pre&gt;Mercurial sourcecontrol patch: watched branch indication in config.xml; user-email extraction
---------------------------------------------------------------------------------------------

                 Key: CC-1054
                 URL: http://jira.public.thoughtworks.org/browse/CC-1054
             Project: CruiseControl
          Issue Type: Improvement
          Components: Core Application
    Affects Versions: 2.8.4
            Reporter: Pavel Shkrablyuk


Hi.

I would like to propose two patches for Mercurial sourcecontrol:
1. now one can't declare which branch should be watched for changes. we build only "default" branch ci-server, but some development is made on other branches too. when there're new commits to those branches - CC sees them and launches build despite the fact that those commits do not affect "default" branch.
I've added "branch" propperty to Mercurial Sourcecontrol, it's default value is "default", thus those who build "default" don't have to mention it explicitely, and for those who want to watch different, non-default, branch will be able to do this.
2. now Mercurial Sourcecontrol doesn't set userEmail of Modifications it produces, so I added extraction of email to log or incoming command template

I'm not Java programmer, so please take a look if there's nothing bad in my patch.

I'll be glad if this patch will be approved.
Thanks for the grate project - it not only works good, it's so intuitive in code!

&lt;/pre&gt;</description>
    <dc:creator>Pavel Shkrablyuk (JIRA</dc:creator>
    <dc:date>2012-02-18T22:28:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12887">
    <title>Github?</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12887</link>
    <description>&lt;pre&gt;Hello,

I was talking to Jeffrey Fredrick the other day about putting the
CruiseControl source code on GitHub.  I said I'd raise the question on the
mailing list.

My thinking is that the project is more likely to get pull requests from
GitHub users, than it is to get diffs via JIRA.  CruiseControl may get some
more love by doing this: IMHO using GitHub lowers the bar to participation.
Sure, some people will fork the project and never give back, but it's done
in an overt way.

Naturally, all the committers keep their roles, just on a different system.

Any comments?

Sincerely

Julian.


&lt;/pre&gt;</description>
    <dc:creator>Julian Simpson</dc:creator>
    <dc:date>2012-02-02T22:14:16</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12886">
    <title>[JIRA] Created: (CC-1053) Plastic SCM plugin4.0</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12886</link>
    <description>&lt;pre&gt;Plastic SCM plugin 4.0
----------------------

                 Key: CC-1053
                 URL: http://jira.public.thoughtworks.org/browse/CC-1053
             Project: CruiseControl
          Issue Type: New Feature
    Affects Versions: 2.8.4
         Environment: All the operating systems
            Reporter: Luis Rodriguez
            Priority: Major


Attached is the new version of the Plastic SCM 4.0 plugin, released last 17th Nov. 2011.

I've changed and ran the unit tests corresponding to the integration, also attached.

Unfortunately I couldn't generate diff files for the changes done, so I attach the previous version of the plugin (inside the original folder), FYI.

Thanks a lot,
Luis

&lt;/pre&gt;</description>
    <dc:creator>Luis Rodriguez (JIRA</dc:creator>
    <dc:date>2012-01-16T11:09:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12885">
    <title>[JIRA] Updated: (CC-1053) Plastic SCM plugin4.0</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12885</link>
    <description>&lt;pre&gt;
     [ http://jira.public.thoughtworks.org/browse/CC-1053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luis Rodriguez updated CC-1053:
-------------------------------

    Attachment: PlasticSCM 4.0 plugin.zip

These are the changes. I didn't create new files, so the 4 files included are the plugin. Inside the "original" dir I attach the original plugin, since I couldn't create the diff files. The new plugin versio is contained within the "PlasticSCM 4.0 plugin" directory.


&lt;/pre&gt;</description>
    <dc:creator>Luis Rodriguez (JIRA</dc:creator>
    <dc:date>2012-01-16T11:07:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12877">
    <title>new version of Plastic SCM plugin forCruiseControl</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12877</link>
    <description>&lt;pre&gt;Hello,

I would like to request a new feature be added to CruiseControl.
The feature is a plugin for Plastic SCM 4.0. This plugin is compatible with previous versions of Plastic SCM.

I believe this should be implemented because the old plugin is not compatible with the new version of Plastic SCM.

I've written this new plugin by myself and I would like to send it to you, in order to ship it within the next version of Cruise Control .NET.

Tell me if I need to submit my changes to github, or whatever needed.

Thanks

&lt;/pre&gt;</description>
    <dc:creator>Luis Rodríguez Neches</dc:creator>
    <dc:date>2012-01-12T17:04:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876">
    <title>[JIRA] Created: (CC-1052) Dashboard missing testcases when they have no children</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876</link>
    <description>&lt;pre&gt;Dashboard missing testcases when they have no children
------------------------------------------------------

                 Key: CC-1052
                 URL: http://jira.public.thoughtworks.org/browse/CC-1052
             Project: CruiseControl
          Issue Type: Bug
          Components: Dashboard
    Affects Versions: 2.8.4
         Environment: Google Chrome; Windows 7
            Reporter: Uri Moszkowicz
            Priority: Major


The dashboard correctly displays testcases when there are child nodes such as failures and errors but when there are none you cannot see them on the dashboard.

Ex:
Suite1 
Tests: 9, Failures: 1, Errors: 0, Duration: 962.0
Suite2 
Tests: 35, Failures: 3, Errors: 0, Duration: 1512.0

There is no arrow or other identifier allowing me to expand the suites to see which testcases within them passed. I can see the failures under a "Test Failures" heading.

&lt;/pre&gt;</description>
    <dc:creator>Uri Moszkowicz (JIRA</dc:creator>
    <dc:date>2012-01-04T21:49:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876">
    <title>[JIRA] Created: (CC-1052) Dashboard missing testcases when they have no children</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876</link>
    <description>&lt;pre&gt;Dashboard missing testcases when they have no children
------------------------------------------------------

                 Key: CC-1052
                 URL: http://jira.public.thoughtworks.org/browse/CC-1052
             Project: CruiseControl
          Issue Type: Bug
          Components: Dashboard
    Affects Versions: 2.8.4
         Environment: Google Chrome; Windows 7
            Reporter: Uri Moszkowicz
            Priority: Major


The dashboard correctly displays testcases when there are child nodes such as failures and errors but when there are none you cannot see them on the dashboard.

Ex:
Suite1 
Tests: 9, Failures: 1, Errors: 0, Duration: 962.0
Suite2 
Tests: 35, Failures: 3, Errors: 0, Duration: 1512.0

There is no arrow or other identifier allowing me to expand the suites to see which testcases within them passed. I can see the failures under a "Test Failures" heading.

&lt;/pre&gt;</description>
    <dc:creator>Uri Moszkowicz (JIRA</dc:creator>
    <dc:date>2012-01-04T21:49:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876">
    <title>[JIRA] Created: (CC-1052) Dashboard missing testcases when they have no children</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12876</link>
    <description>&lt;pre&gt;Dashboard missing testcases when they have no children
------------------------------------------------------

                 Key: CC-1052
                 URL: http://jira.public.thoughtworks.org/browse/CC-1052
             Project: CruiseControl
          Issue Type: Bug
          Components: Dashboard
    Affects Versions: 2.8.4
         Environment: Google Chrome; Windows 7
            Reporter: Uri Moszkowicz
            Priority: Major


The dashboard correctly displays testcases when there are child nodes such as failures and errors but when there are none you cannot see them on the dashboard.

Ex:
Suite1 
Tests: 9, Failures: 1, Errors: 0, Duration: 962.0
Suite2 
Tests: 35, Failures: 3, Errors: 0, Duration: 1512.0

There is no arrow or other identifier allowing me to expand the suites to see which testcases within them passed. I can see the failures under a "Test Failures" heading.

&lt;/pre&gt;</description>
    <dc:creator>Uri Moszkowicz (JIRA</dc:creator>
    <dc:date>2012-01-04T21:49:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12875">
    <title>Plugin to view All latest project statisticson a server.</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12875</link>
    <description>&lt;pre&gt;Contribution for CuriseControl.Net - A plugin to display last statistics 
for all Projects on a server with Project Statistics.

Configuration:

  &amp;lt;serverPlugins&amp;gt;
      &amp;lt;serverReportServerPlugin /&amp;gt;
      &amp;lt;!-- Add your plugin here --&amp;gt;
      &amp;lt;serverStatisticsPlugin /&amp;gt;
    &amp;lt;/serverPlugins&amp;gt;

Link:  Server Statistics

Limits: 
        - All projects on that server have to have the same statistics 
columns configured.
        - Has not been tested on a server with no project statistics 
configured.
        - I am new to CruseControl.Net - suggestions are welcome.


---------- ServerStatistics.cs Plugin -----------
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using Exortech.NetReflector;
using ThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation;
using ThoughtWorks.CruiseControl.Core.Util;
using ThoughtWorks.CruiseControl.Remote;
using ThoughtWorks.CruiseControl.WebDashboard.Dashboard;
using ThoughtWorks.CruiseControl.WebDashboard.IO;
using ThoughtWorks.CruiseControl.WebDashboard.MVC;
using ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise;
using ThoughtWorks.CruiseControl.WebDashboard.MVC.View;
using ThoughtWorks.CruiseControl.WebDashboard.Plugins.Statistics;
using ThoughtWorks.CruiseControl.WebDashboard.ServerConnection;


namespace ThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerStatistics
{
    /// &amp;lt;summary&amp;gt;
    /// Purpose: 
    ///     Gives an overview of all projects statistics on this server.
    ///     Names the Link for the Server web site
    ///     Provides the Action Class that handles the request when 
requested
    /// 
    /// Important:  This plugin depends upon your configuring and using 
the 
    ///     ProjectStatisticsPlugin - since it uses the results.xml file
    ///     that it producedes.
    /// 
    ///     First configure ProjectStatisticsPlugin, then configure this 
plugin
    ///     to view all project statistics on the server.
    /// &amp;lt;para&amp;gt;
    /// LinkDescription : "Server Statistics".
    /// &amp;lt;/para&amp;gt;
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;example&amp;gt;
    /// &amp;lt;code title="Minimalist example"&amp;gt;
    /// &amp;amp;lt;serverStatisticsPlugin /&amp;amp;gt;
    /// &amp;lt;/code&amp;gt;
    /// &amp;lt;/example&amp;gt;
    /// &amp;lt;title&amp;gt;Server Statistics Plugin&amp;lt;/title&amp;gt;
    /// &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;
    [ReflectorType("serverStatisticsPlugin")]
    public class ServerStatisticsPlugin : ICruiseAction, IPlugin
    {
        public static readonly string ACTION_NAME = 
"ViewServerStatisticsReport";
        private readonly IFarmService farmService;
        private readonly IVelocityViewGenerator viewGenerator;
        private readonly ICruiseUrlBuilder urlBuilder;

        #region Constructor

        // Constructor for use with built-in Action class
        public ServerStatisticsPlugin(IFarmService farmServer, 
IVelocityViewGenerator viewGenerator, ICruiseUrlBuilder urlBuilder)
        {
            this.farmService = farmServer;
            this.viewGenerator = viewGenerator;
            this.urlBuilder = urlBuilder;
        }

        #endregion


        #region IPlugin Members

        /// &amp;lt;summary&amp;gt;
        /// Provide the Menu Link that invokes FarmStatisticsAction
        /// &amp;lt;/summary&amp;gt;
        public string LinkDescription
        {
            get { return "Server Statistics"; }
        }

        public INamedAction[] NamedActions
        {
            get { return new INamedAction[] { new ImmutableNamedAction(
"ViewServerStatistics", this) }; }
        }

        #endregion


        #region ICruiseAction Members

        /// &amp;lt;summary&amp;gt;
        /// Execute this action after a user clicks the "Server 
Statistics" link, 
        /// to show all projects latest statistics (configured through the 

        /// ProjectStatistics Plugin).
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name="request"&amp;gt;CruiseControl web request&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;IResponse page to the web server&amp;lt;/returns&amp;gt;
        public IResponse Execute(ICruiseRequest request)
        {
            IProjectSpecifier project;
            string statisticsDocument;
            Hashtable velocityContext = new Hashtable();
 
            CruiseServerSnapshotListAndExceptions snapshot = 
farmService.GetCruiseServerSnapshotListAndExceptions(request.ServerSpecifier, 
request.RetrieveSessionToken());
            List&amp;lt;QueueSnapshot&amp;gt; queues = new List&amp;lt;QueueSnapshot&amp;gt;();
            ArrayList statisticsList;
            List&amp;lt;ArrayList&amp;gt; projectStatisticsList = new List&amp;lt;ArrayList&amp;gt;();

            for (int idxSnapshot = 0; idxSnapshot &amp;lt; 
snapshot.Snapshots.Length; idxSnapshot++)
            {
                QueueSetSnapshot queueSnapshot = 
snapshot.Snapshots[idxSnapshot].QueueSetSnapshot;
                for (int idxQueue = 0; idxQueue &amp;lt; 
queueSnapshot.Queues.Count; idxQueue++)
                {
                    queues.Add(queueSnapshot.Queues[idxQueue]);
                    project = GetProjectSpecifier(request, 
queueSnapshot.Queues[idxQueue].QueueName);
 
                    // Use the ProjectStatisticsPlugin results xml file.
                    statisticsDocument = 
farmService.GetStatisticsDocument(project, 
request.RetrieveSessionToken());
                    Log.Debug(statisticsDocument);

                    try
                    {

                        // Read the ProjectStatisticsPlugin results xml 
file
                        statisticsList = GetEachProjectStatistics(project, 
statisticsDocument);

                        if (statisticsList.Count &amp;gt; 2)  // Name, and Status 
are expected
                        {
                            // Add for single project statisticsList of 
Colums
                            // Columns are in Name-Value pairs
                            projectStatisticsList.Add(statisticsList);
                        }
                    }
                    catch (XmlException)
                    {
                        // The Project does not have Statistics configured 
or gathered.
                        // Nothing to do since not all projects have 
Statistics.
                        //"Missing/Invalid statistics reports. Please 
check if you have enabled the Statistics Publisher, and statistics have 
been collected atleast once after that.";
                    }
                }
            }

            // Data for table of Project Statistics
            velocityContext["projectStatisticsList"] = 
projectStatisticsList;

            return viewGenerator.GenerateView(&amp;lt; at &amp;gt;"ServerStatistics.vm", 
velocityContext);
        }

        #endregion


        #region Helper Methods

        /// &amp;lt;summary&amp;gt;
        /// Get the Project Specifier given the project name
        /// Prerequisite:  Select a server so request will have the server 
name
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name="request"&amp;gt;ICruiseRequest web request information
&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;DefaultProjectSpecifier&amp;lt;/returns&amp;gt;
        private IProjectSpecifier GetProjectSpecifier(ICruiseRequest 
request, string projectName)
        {
            string server = request.ServerName;
            return new DefaultProjectSpecifier
(farmService.GetServerConfiguration(server), projectName);
        }

// Example:
//&amp;lt;/statistics&amp;gt;
//  &amp;lt;integration build-label="3" status="Success" day="22" month="Dec" 
year="2011"&amp;gt;
//    &amp;lt;statistic name="StartTime"&amp;gt;2011-12-22 10:12:55&amp;lt;/statistic&amp;gt; 
//    &amp;lt;statistic name="Duration"&amp;gt;00:00:49&amp;lt;/statistic&amp;gt; 
//    &amp;lt;statistic name="TestCount"&amp;gt;4&amp;lt;/statistic&amp;gt; 
//    &amp;lt;statistic name="TestFailures"&amp;gt;0&amp;lt;/statistic&amp;gt; 
//    &amp;lt;statistic name="TestIgnored"&amp;gt;0&amp;lt;/statistic&amp;gt; 
//    &amp;lt;statistic name="BuildErrorType" /&amp;gt; 
//    &amp;lt;statistic name="BuildErrorMessage" /&amp;gt; 
//  &amp;lt;/integration&amp;gt;
//  &amp;lt;timestamp day="22" month="Dec" year="2011" /&amp;gt; 
//&amp;lt;/statistics&amp;gt;

        /// &amp;lt;summary&amp;gt;
        /// Read a project statistics xml report, parse, and 
        /// get an ordered list of project statistics data in Name-Value 
pairs/
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name="project"&amp;gt;Project specifier&amp;lt;/param&amp;gt;
        /// &amp;lt;param name="statisticsDocument"&amp;gt;Project Statistics XML string
&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;ordered list of project statistics data in Name-Value 
pairs&amp;lt;/returns&amp;gt;
        /// &amp;lt;remarks&amp;gt;Uses an XmlDocument&amp;lt;/remarks&amp;gt;
        private ArrayList GetEachProjectStatistics(IProjectSpecifier 
project, string statisticsDocument)
        {
            // Read the ProjectStatisticsPlugin results xml file
            // to duplicate the column names configured for that plugin
            // also read the values from the xml file produced by 
ProjectStatisticsPlugin
            ArrayList statisticsList = new ArrayList();
            XmlDocument doc = new XmlDocument();
            string href;

            using (XmlReader reader = XmlReader.Create(new StringReader
(statisticsDocument)))
            {
                    doc.Load(reader);
                    //XPathNavigator nav = doc.CreateNavigator();
                    XmlNode root = doc.DocumentElement;
                    XmlNodeList integrationNodes = root.SelectNodes(
&amp;lt; at &amp;gt;"integration");
                    XmlNode current = null;

                    if ((integrationNodes != null) &amp;amp;&amp;amp; 
(integrationNodes.Count &amp;gt; 0))
                    {
                        // Use last integration node
                        current = integrationNodes[integrationNodes.Count 
- 1];

                        // First Column
                        Hashtable Col1 = new Hashtable();
                        // Add a Project Statistics URL
                        href = &amp;lt; at &amp;gt;"&amp;lt;a href=" + urlBuilder.BuildProjectUrl(
ProjectStatisticsPlugin.ACTION_NAME, project) + "&amp;gt;" + project.ProjectName 
+ "&amp;lt;/a&amp;gt;";
                        Col1.Add(&amp;lt; at &amp;gt;"Name", href);
                        statisticsList.Add(Col1);

                        if (current.Attributes.Count &amp;gt;= 2)
                        {
                            // Second Status Attribute
                            string status = current.Attributes[1].Value;
                            Hashtable Col2 = new Hashtable();
                            Col1.Add(&amp;lt; at &amp;gt;"Status", status);
                            statisticsList.Add(Col2);
                        }

                        // move to the "statistic" nodes
                        XmlNodeList statisticsNodes = current.SelectNodes(
&amp;lt; at &amp;gt;"statistic");
                        Hashtable Coln; // project statistics columns(n)

                        foreach (XmlNode node in statisticsNodes)
                        {
                            Coln = new Hashtable();
                            if (node.Attributes.Count &amp;gt; 0)
                            {
                                string name = node.Attributes[0].Value;
                                string value = node.InnerText;
                                Coln.Add(name, value);
                                statisticsList.Add(Coln);
                            }
                        }
                    }
            }
            return statisticsList;
        }

        /// &amp;lt;summary&amp;gt;
        /// Read a project statistics xml report, parse, and 
        /// get an ordered list of project statistics data in Name-Value 
pairs/
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name="project"&amp;gt;Project specifier&amp;lt;/param&amp;gt;
        /// &amp;lt;param name="statisticsDocument"&amp;gt;Project Statistics XML string
&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;ordered list of project statistics data in Name-Value 
pairs&amp;lt;/returns&amp;gt;
        /// &amp;lt;remarks&amp;gt;Uses an XmlReader&amp;lt;/remarks&amp;gt;
        private ArrayList GetProjectStatistics(IProjectSpecifier project, 
string statisticsDocument)
        {
            // Read the ProjectStatisticsPlugin results xml file
            // to duplicate the column names configured for that plugin
            // also read the values from the xml file produced by 
ProjectStatisticsPlugin
            ArrayList statisticsList = new ArrayList();
            using (XmlReader reader = XmlReader.Create(new StringReader
(statisticsDocument)))
            {
                reader.ReadToFollowing("integration");
                reader.MoveToFirstAttribute();
                string buildLabel = reader.Value;

                Hashtable Col0 = new Hashtable();
                Col0.Add("Name", project.ProjectName);

                // Wait to see if we can read this project statistics
                // If we can then start a statisticsList of columns
                // for this project.
                statisticsList.Add(Col0);

                reader.MoveToNextAttribute();
                string status = reader.Value;
                Hashtable Col1 = new Hashtable();
                Col1.Add("Status", status);
                statisticsList.Add(Col1);

                Hashtable Coln; // project status column n

                while (reader.Read())
                {
                    reader.ReadToFollowing("statistic");
                    string value = reader.Value;
                    reader.MoveToFirstAttribute();
                    string name = reader.Value;

                    // Read the rest of the configured columns
                    Coln = new Hashtable();
                    Coln.Add(name, value);
                    statisticsList.Add(Coln);
                }
            }
            return statisticsList;
        }

        #endregion

    }
}
-------------------------

---------  ServerStatistics.vm Template ---------
&amp;lt;!-- ServerStatistics.vm: Start --&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
  $(document).ready(function(){
  $('#ServerStatistics').tablesorter({
  sortList:[[0,0]]
  });
  });
&amp;lt;/script&amp;gt;
&amp;lt;table class="SortableGrid" id="ServerStatistics"&amp;gt;
  &amp;lt;thead&amp;gt;
    &amp;lt;tr class="ProjectGridHeader"&amp;gt;
##
## Note: Process each project statistics row for the Table Header
##
#foreach ($statisticsList in $projectStatisticsList)
#if ( $velocityCount == 1 )
#foreach ($col in $statisticsList)
  #foreach ($key in $col.Keys)&amp;lt;th&amp;gt;$key&amp;lt;/th&amp;gt;#end
#end
#end
#end
    &amp;lt;/tr&amp;gt;
  &amp;lt;/thead&amp;gt;
  &amp;lt;tbody&amp;gt;
##
## Note: Process each project statistics row for the Table Data
##
#foreach ($statisticsList in $projectStatisticsList)
    &amp;lt;tr&amp;gt;
#foreach ($col in $statisticsList)
#foreach ($value in $col.Values)
#if ($value == "Success")
&amp;lt;td class="Green"&amp;gt;$value&amp;lt;/td&amp;gt;
#elseif ($value == "Failure")
&amp;lt;td class="Red"&amp;gt;$value&amp;lt;/td&amp;gt;
#else
&amp;lt;td&amp;gt;$value&amp;lt;/td&amp;gt;
#end
#end
#end
    &amp;lt;/tr&amp;gt;
#end
  &amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;!-- ServerStatistics.vm: End --&amp;gt;
---------------------------------------------



Thanks,
Stephen


The information contained in this e-mail, and any attachment, is confidential and is intended solely for the use of the intended recipient. Access, copying or re-use of the e-mail or any attachment, or any information contained therein, by any other person is not authorized. If you are not the intended recipient please return the e-mail to the sender and delete it from your computer. Although we attempt to sweep e-mail and attachments for viruses, we do not guarantee that either are virus-free and accept no liability for any damage sustained as a result of viruses. 

Please refer to http://disclaimer.bnymellon.com/eu.htm for certain disclosures relating to European legal entities.------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox_______________________________________________
Cruisecontrol-devel mailing list
Cruisecontrol-devel&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cruisecontrol-devel
&lt;/pre&gt;</description>
    <dc:creator>stephen.popp&lt; at &gt;bnymellon.com</dc:creator>
    <dc:date>2011-12-30T14:16:32</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12873">
    <title>[JIRA] Created: (CC-1051) get ModificationsFailing</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12873</link>
    <description>&lt;pre&gt;get Modifications Failing
-------------------------

                 Key: CC-1051
                 URL: http://jira.public.thoughtworks.org/browse/CC-1051
             Project: CruiseControl
          Issue Type: Bug
         Environment: NA
            Reporter: Sampanna Mohite


BUILD EXCEPTION 
Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation has timed out.
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss.GetModifications(IIntegrationResult from, IIntegrationResult to, String tempOutputFileName)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request) 
Project: TestProject 
Date of build: 2011-12-23 09:35:21 
Running time: 00:05:01 
Integration Request: Build (IfModificationExists) triggered from IntervalTrigger 


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------config -------------

&amp;lt;cruisecontrol xmlns:cb="urn:ccnet.config.builder"&amp;gt;
&amp;lt;!-- This is your CruiseControl.NET Server Configuration file. Add your projects below! --&amp;gt;

    &amp;lt;project name="TestProject" &amp;gt; &amp;lt;!-- Each build is tagged as a project --&amp;gt;
 &amp;lt;modificationDelaySeconds&amp;gt;2&amp;lt;/modificationDelaySeconds&amp;gt;
 &amp;lt;maxSourceControlRetries&amp;gt;5&amp;lt;/maxSourceControlRetries&amp;gt;

&amp;lt;triggers&amp;gt; &amp;lt;!-- Indicates the frequency at which CruiseControl.net checks for changes --&amp;gt;
&amp;lt;intervalTrigger seconds="30"/&amp;gt; &amp;lt;!-- This projects checks for changes every 30 seconds --&amp;gt;
&amp;lt;/triggers&amp;gt;

&amp;lt;sourcecontrol type="vss"&amp;gt;
  &amp;lt;executable&amp;gt;C:\Program Files\Microsoft Visual SourceSafe\SS.EXE&amp;lt;/executable&amp;gt;
  &amp;lt;username&amp;gt;Sampanna.Mohite&amp;lt;/username&amp;gt;
  &amp;lt;password&amp;gt;&amp;lt;/password&amp;gt;
&amp;lt;project&amp;gt;$/&amp;lt;/project&amp;gt;
  &amp;lt;ssdir&amp;gt;\\pcsshare\VSSPro8\&amp;lt;/ssdir&amp;gt;
  &amp;lt;applyLabel&amp;gt;true&amp;lt;/applyLabel&amp;gt;
  &amp;lt;autoGetSource&amp;gt;true&amp;lt;/autoGetSource&amp;gt;
  &amp;lt;alwaysGetLatest&amp;gt;true&amp;lt;/alwaysGetLatest&amp;gt;
  &amp;lt;workingDirectory&amp;gt;C:\PRO\SourceCode\DotNet&amp;lt;/workingDirectory&amp;gt;
  &amp;lt;culture&amp;gt;en-US&amp;lt;/culture&amp;gt;
  &amp;lt;cleanCopy&amp;gt;false&amp;lt;/cleanCopy&amp;gt;
  &amp;lt;timeout units="minutes"&amp;gt;5&amp;lt;/timeout&amp;gt;
&amp;lt;/sourcecontrol&amp;gt;

&amp;lt;tasks&amp;gt;
            &amp;lt;msbuild&amp;gt;
                  &amp;lt;executable&amp;gt;C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe&amp;lt;/executable&amp;gt;
                  &amp;lt;workingDirectory&amp;gt;C:\Program Files\CruiseControl.NET\server\TestProject\WorkingDirectory&amp;lt;/workingDirectory&amp;gt;
                  &amp;lt;projectFile&amp;gt;C:\PRO\SourceCode\DotNet\BusinessObjects\Protech.Education2\Protech.Education2.csproj&amp;lt;/projectFile&amp;gt;
                  &amp;lt;buildArgs&amp;gt;/p:Configuration=Debug /v:diag&amp;lt;/buildArgs&amp;gt;  
                  &amp;lt;targets&amp;gt;Build&amp;lt;/targets&amp;gt;
                  &amp;lt;timeout&amp;gt;15&amp;lt;/timeout&amp;gt;
                  &amp;lt;logger&amp;gt;ThoughtWorks.CruiseControl.MsBuild.XmlLogger,C:\Program Files\CruiseControl.NET\webdashboard\bin\ThoughtWorks.CruiseControl.MsBuild.dll&amp;lt;/logger&amp;gt;
            &amp;lt;/msbuild&amp;gt;
      &amp;lt;/tasks&amp;gt;


    &amp;lt;/project&amp;gt;
&amp;lt;/cruisecontrol&amp;gt;


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Build Log -------------

&amp;lt;cruisecontrol project="TestProject"&amp;gt;
  &amp;lt;request source="IntervalTrigger" buildCondition="IfModificationExists"&amp;gt;Build (IfModificationExists) triggered from IntervalTrigger&amp;lt;/request&amp;gt; 
- &amp;lt;parameters&amp;gt;
  &amp;lt;parameter name="$CCNetArtifactDirectory" value="C:\Program Files\CruiseControl.NET\server\TestProject\Artifacts" /&amp;gt; 
  &amp;lt;parameter name="$CCNetBuildCondition" value="IfModificationExists" /&amp;gt; 
  &amp;lt;parameter name="$CCNetBuildDate" value="2011-12-23" /&amp;gt; 
  &amp;lt;parameter name="$CCNetBuildTime" value="09:35:21" /&amp;gt; 
  &amp;lt;parameter name="$CCNetFailureUsers" value="System.Collections.ArrayList" /&amp;gt; 
  &amp;lt;parameter name="$CCNetIntegrationStatus" value="Unknown" /&amp;gt; 
  &amp;lt;parameter name="$CCNetLabel" value="1" /&amp;gt; 
  &amp;lt;parameter name="$CCNetLastIntegrationStatus" value="Exception" /&amp;gt; 
  &amp;lt;parameter name="$CCNetListenerFile" value="C:\Program Files\CruiseControl.NET\server\TestProject\Artifacts\TestProject_ListenFile.xml" /&amp;gt; 
  &amp;lt;parameter name="$CCNetModifyingUsers" value="System.Collections.ArrayList" /&amp;gt; 
  &amp;lt;parameter name="$CCNetNumericLabel" value="1" /&amp;gt; 
  &amp;lt;parameter name="$CCNetProject" value="TestProject" /&amp;gt; 
  &amp;lt;parameter name="$CCNetProjectUrl" value="http://PCSPC76/ccnet" /&amp;gt; 
  &amp;lt;parameter name="$CCNetRequestSource" value="IntervalTrigger" /&amp;gt; 
  &amp;lt;parameter name="$CCNetUser" value="" /&amp;gt; 
  &amp;lt;parameter name="$CCNetWorkingDirectory" value="C:\Program Files\CruiseControl.NET\server\TestProject\WorkingDirectory" /&amp;gt; 
  &amp;lt;/parameters&amp;gt;
  &amp;lt;modifications /&amp;gt; 
- &amp;lt;integrationProperties&amp;gt;
  &amp;lt;CCNetArtifactDirectory&amp;gt;C:\Program Files\CruiseControl.NET\server\TestProject\Artifacts&amp;lt;/CCNetArtifactDirectory&amp;gt; 
  &amp;lt;CCNetBuildCondition&amp;gt;IfModificationExists&amp;lt;/CCNetBuildCondition&amp;gt; 
  &amp;lt;CCNetBuildDate&amp;gt;2011-12-23&amp;lt;/CCNetBuildDate&amp;gt; 
  &amp;lt;CCNetBuildTime&amp;gt;09:35:21&amp;lt;/CCNetBuildTime&amp;gt; 
  &amp;lt;CCNetFailureUsers /&amp;gt; 
  &amp;lt;CCNetIntegrationStatus&amp;gt;Exception&amp;lt;/CCNetIntegrationStatus&amp;gt; 
  &amp;lt;CCNetLabel&amp;gt;1&amp;lt;/CCNetLabel&amp;gt; 
  &amp;lt;CCNetLastIntegrationStatus&amp;gt;Exception&amp;lt;/CCNetLastIntegrationStatus&amp;gt; 
  &amp;lt;CCNetListenerFile&amp;gt;C:\Program Files\CruiseControl.NET\server\TestProject\Artifacts\TestProject_ListenFile.xml&amp;lt;/CCNetListenerFile&amp;gt; 
  &amp;lt;CCNetModifyingUsers /&amp;gt; 
  &amp;lt;CCNetNumericLabel&amp;gt;1&amp;lt;/CCNetNumericLabel&amp;gt; 
  &amp;lt;CCNetProject&amp;gt;TestProject&amp;lt;/CCNetProject&amp;gt; 
  &amp;lt;CCNetProjectUrl&amp;gt;http://PCSPC76/ccnet&amp;lt;/CCNetProjectUrl&amp;gt; 
  &amp;lt;CCNetRequestSource&amp;gt;IntervalTrigger&amp;lt;/CCNetRequestSource&amp;gt; 
  &amp;lt;CCNetWorkingDirectory&amp;gt;C:\Program Files\CruiseControl.NET\server\TestProject\WorkingDirectory&amp;lt;/CCNetWorkingDirectory&amp;gt; 
  &amp;lt;LastIntegrationStatus&amp;gt;Exception&amp;lt;/LastIntegrationStatus&amp;gt; 
  &amp;lt;LastSuccessfulIntegrationLabel&amp;gt;1&amp;lt;/LastSuccessfulIntegrationLabel&amp;gt; 
  &amp;lt;LastModificationDate&amp;gt;22/12/2011 09:40:23&amp;lt;/LastModificationDate&amp;gt; 
  &amp;lt;/integrationProperties&amp;gt;
  &amp;lt;build date="2011-12-23 09:35:21" buildtime="00:05:01" buildcondition="IfModificationExists" /&amp;gt; 
- &amp;lt;exception&amp;gt;
- &amp;lt;![CDATA[ 
ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation has timed out.
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss.GetModifications(IIntegrationResult from, IIntegrationResult to, String tempOutputFileName)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)

  ]]&amp;gt; 
  &amp;lt;/exception&amp;gt;
  &amp;lt;/cruisecontrol&amp;gt;



&lt;/pre&gt;</description>
    <dc:creator>Sampanna Mohite (JIRA</dc:creator>
    <dc:date>2011-12-23T09:52:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12870">
    <title>[JIRA] Created: (CC-1050) Problem with checking modifications in GIT repository</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12870</link>
    <description>&lt;pre&gt;Problem with checking modifications in GIT repository
-----------------------------------------------------

                 Key: CC-1050
                 URL: http://jira.public.thoughtworks.org/browse/CC-1050
             Project: CruiseControl
          Issue Type: Bug
          Components: Core Application
    Affects Versions: 2.8.4
         Environment: Linux 64b Debian Lenny
            Reporter: Zdenek
            Priority: Major


When I configure git modificationset for a checking of changes in git repository, the changes are not detected in some cases.

I mean that the problem is in Git.java class:

&amp;lt;code&amp;gt;
    static String gitRevision(Date dt) {
        final String dts = "&amp;lt; at &amp;gt;{ " + (dt.getTime() / 1000) + "}";
        /* The SVN plugin claims we have to quote this for Windows. */
        return Util.isWindows() ? ("\"" + dts + "\"") : dts;
    }
&amp;lt;/code&amp;gt;

There should be formated date instead of timestamp. Timestamp is resolved by git as a ordinal number, not as a timestamp.

"man gitrevisions" says:

 - a ref followed by the suffix &amp;lt; at &amp;gt; with a date specification enclosed in a brace pair (e.g.  {yesterday}, {1 month 2 weeks 3 days 1 hour 1 second ago} or {1979-02-26 18:30:00}) to specify the value of the ref at a prior point in time. 

 - a ref followed by the suffix &amp;lt; at &amp;gt; with an ordinal specification enclosed in a brace pair (e.g.  {1}, {15}) to specify the n-th prior value of that ref.


&lt;/pre&gt;</description>
    <dc:creator>Zdenek (JIRA</dc:creator>
    <dc:date>2011-12-21T15:41:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12868">
    <title>[JIRA] Created: (CC-1049) When running with new JDK/JRE 7, CC can't communicate with dashboard</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12868</link>
    <description>&lt;pre&gt;When running with new JDK/JRE 7, CC can't communicate with dashboard
--------------------------------------------------------------------

                 Key: CC-1049
                 URL: http://jira.public.thoughtworks.org/browse/CC-1049
             Project: CruiseControl
          Issue Type: Bug
    Affects Versions: 2.8.4
         Environment: Windows Server 2003, JDK 7, CC 2.8.4
            Reporter: David Richards
            Priority: Major


Cruise Control service runs fine and builds are OK, but there is no communication with dashboard so build activity is not showm and buttons to force build and configure projects are disabled.  There is an exception thrown over and over:

com.thoughtworks.xstream.converters.reflection.ObjectAccessException:?Cannot
construct net.sourceforge.cruisecontrol.BuildLoopInformation as it
doesnot have a no-args constructor...

Sorry I didn't grab whole stack.  Changed to JDK 1.6.0_29 and it works fine.

&lt;/pre&gt;</description>
    <dc:creator>David Richards (JIRA</dc:creator>
    <dc:date>2011-11-30T03:28:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12866">
    <title>[JIRA] Created: (CC-1048) Not able to declaresourcecontrol tag</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12866</link>
    <description>&lt;pre&gt;Not able to declare sourcecontrol tag
-------------------------------------

                 Key: CC-1048
                 URL: http://jira.public.thoughtworks.org/browse/CC-1048
             Project: CruiseControl
          Issue Type: Bug
         Environment: Windows NT
            Reporter: Prabhu
            Priority: Critical


HI ,

I tried to automate my build using ccnet..Using ccnet server 1.6.7981.1.I am getting error --&amp;gt;

System.InvalidOperationException : Cannot start process becaus a file name has not been provided.
at System.Dainostics.process.Start()


trace shows on GetModifications().

Please do needful.

&lt;/pre&gt;</description>
    <dc:creator>Prabhu (JIRA</dc:creator>
    <dc:date>2011-11-23T05:05:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12864">
    <title>[JIRA] Created: (CC-1047) CruiseControl creates first build.1, but no build shows after the 1st build</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12864</link>
    <description>&lt;pre&gt;CruiseControl creates first build.1, but no build shows after the 1st build
---------------------------------------------------------------------------

                 Key: CC-1047
                 URL: http://jira.public.thoughtworks.org/browse/CC-1047
             Project: CruiseControl
          Issue Type: Bug
          Components: Core Application
    Affects Versions: 2.8.4
         Environment: CentOS 6
            Reporter: Decho
            Priority: Major


Hello,

We`ve spent many hours trying to fix this one, but with no success :(
Everything looks good when a new project is created.
build.1 is automatically generated when CruiseControl starts for the first time.

The problem is that no build.2 appears after auto build, even when restarting CruiseControl, 
rebooting the server or manually running build.xml

Cruisecontrol is installed in /opt/cruisecontrol

Project is located at:
/opt/cruisecontrol/projects/backend

Logs are created in:
/opt/cruisecontrol/logs/backend

Currently there is only one xml file:
log20111120165830Lbuild.1.xml

No matter what we try, no *build.2.xml is being created :(
Please, help.


&lt;/pre&gt;</description>
    <dc:creator>Decho (JIRA</dc:creator>
    <dc:date>2011-11-20T15:55:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12863">
    <title>[JIRA] Created: (CC-1046) Forced build still checks for modifications</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12863</link>
    <description>&lt;pre&gt;Forced build still checks for modifications
-------------------------------------------

                 Key: CC-1046
                 URL: http://jira.public.thoughtworks.org/browse/CC-1046
             Project: CruiseControl
          Issue Type: Bug
          Components: Core Application
    Affects Versions: 2.8.3
            Reporter: David Stibbe


A forced build will still check for modifications. 
This step would be completely unnecessary, since the build was forced.

&lt;/pre&gt;</description>
    <dc:creator>David Stibbe (JIRA</dc:creator>
    <dc:date>2011-11-15T11:05:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12862">
    <title>[JIRA] Created: (CC-1045) Windows service doesnt start , throws error saying specified user does not have valid profile to load assembly</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12862</link>
    <description>&lt;pre&gt;Windows service doesnt start ,throws error saying specified user does not have valid profile to load assembly
-------------------------------------------------------------------------------------------------------------

                 Key: CC-1045
                 URL: http://jira.public.thoughtworks.org/browse/CC-1045
             Project: CruiseControl
          Issue Type: Bug
         Environment: c#.net
            Reporter: tesch


Hi
 
I am using shadow copy to update my dll when its in use.When service starts, dll runs from shadowcopied domain as result of which dll remains unlocked and can be updated also.It works well and fine in my machine.
But when we tried running the service on other machine ,service throws the following error:
"Specified user does not have valid profile ,Unable to load assmebly"
 
Cachepath is getting created .but problem is its unable to load from the cachepath .what would be the cause?
find below the code i have used:
string _path="C:\\TTG\\Tools\\TtLUpdate\\"
 AppDomainSetup environment = new AppDomainSetup()
      {
         ApplicationBase = Path.GetDirectoryName(_path)
      };
 
       // instantiate the security policy for the application domain...
  Evidence evidence = AppDomain.CurrentDomain.Evidence;
       //Enable shadow copy option for the newly created domain for  the purpose to            
       // update TTGUpdateDLL when in use
AppDomain.CurrentDomain.SetShadowCopyFiles();
AppDomain.CurrentDomain.SetShadowCopyPath(Path.GetDirectoryName(_path));
environment.ShadowCopyDirectories = Path.GetDirectoryName(_path);
environment.ShadowCopyFiles = "true";
string _installPath = WindowsRegistry.Instance.Read(WindowsRegistry.REGKEYS.HKLM, "\\Software\\TTLTT\\System", "InstallDirectory");
environment.CachePath = _installPath + "\\Tools\\TtgUpdate\\AssemblyCatch";
environment.ApplicationName = "AppName";
string _shadowCopyPath = environment.CachePath + "\\" + environment.ApplicationName;
          
       // instantiate the application domain...
_appDomain = AppDomain.CreateDomain(friendlyName, evidence, environment);
             

&lt;/pre&gt;</description>
    <dc:creator>tesch (JIRA</dc:creator>
    <dc:date>2011-11-10T22:24:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12860">
    <title>How to build and run tests ?</title>
    <link>http://comments.gmane.org/gmane.comp.java.cruise-control.devel/12860</link>
    <description>&lt;pre&gt;Hi people,

I've just checkout the project CruiseControl from the SVN trunk.
I'm trying to get in touch with the architecture, and especially to find 
how to run the JUnit test cases.
Can it be achived from Eclipse directly ?
Should i use build.xml script ?

Thanks a lot.
Regards,

Cédric


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
&lt;/pre&gt;</description>
    <dc:creator>Cédric Teyton</dc:creator>
    <dc:date>2011-11-05T12:57:53</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.java.cruise-control.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.java.cruise-control.devel</link>
  </textinput>
</rdf:RDF>

