Re: No Builder Added Error
Steve Murphy <[email protected]> Tue, 20 Sep 2011 10:33:02 +0100
| Newsgroups | gmane.comp.java.cruise-control.user |
|---|---|
| Message-ID | <[email protected]> |
I've found the problem (woohoo), only took me 2 days :) . There is a erroneous '-' character after one of the comment blocks (line 158 in the config below, or 212 in my actual config file). Using the -debug option when launching CruiseControl gave me a bit more information, and led me to conclude that the issue was in the composite schedule section [main ] DEBUG PluginXMLHelper - treating child with adder composite adding net.sourceforge.cruisecontrol.builders.CompositeBuilder@1865b28 [main ] DEBUG PluginXMLHelper - treating child with adder schedule adding net.sourceforge.cruisecontrol.Schedule@1cac6db [main ] ERROR Main - error setting config file on controller After carefully going through each ant call several times I finally spotted the offending character. When there is a problem with the configuration file does it display the line number anywhere? Thanks, Steve -----Original Message----- From: Steve Murphy Sent: Monday, September 19, 2011 2:16 PM To: [email protected] Subject: Re: [Cruisecontrol-user] No Builder Added Error By removing things in a more systematic way I've narrowed it down. When I remove the first project in the file (PROJ_32_Linux) cruise starts up ok. If I undo that change and remove the 2nd project (PROJ_FULL_32_Linux) the 'no builders added' error still occurs. So there is something wrong in the PROJ_32_Linux project. Apart from some of the paths and names being project depended the only difference that I can tell are the 'requireModification' setting and the 'composite time' setting. Maybe a fresh pair of eyes can find the fault. Regards, Steve Here is my config file, I have removed some of log merge files & some of the emails and change some names, but other than that it's the same. <cruisecontrol> <!-- Load environment variables --> <property environment="env" toupper="true" /> <property name="CC" value="${env.CCDIR}" /> <property name="CC.proj" value="${CC}/projects/CC" /> <property name="ant.home" value="${env.ANT_HOME}" /> <property name="xsldir" value="${CC}/webapps/cruisecontrol/xsl" /> <property name="cc.css" value="${CC}/webapps/cruisecontrol/css/cruisecontrol.css" /> <property name="PROJ.res" value="${CC}/testing/work.xtc/ESCONF" /> <property name="PROJ.blddir" value="${CC}/projects/cc/PROJbld" /> <property name="svn.PROJ" value="${CC}/projects/CC/PROJ" /> <property name="testing.utils" value="${CC}/projects/testing/work.xtc/ESSHARED" /> <property name="svn.id" value="escc" /> <property name="svn.password" value="CC1adm1n" /> <property name="svn.root" value="http://my-svn/PROJ/trunk/tip" /> <property name="svn.module" value="PROJ" /> <property name="testing.svn" value="http://my-svn/testware/tip" /> <property name="ant.buildFile" value="antPROJ_UNIX.xml" /> <plugin name="project"> <bootstrappers> <svnbootstrapper localWorkingCopy="${svn.PROJ}" username="${svn.id}" password="${svn.password}" /> </bootstrappers> <modificationset quietPeriod="10" > <svn repositoryLocation="${svn.root}" localWorkingCopy="${svn.PROJ}" username="${svn.id}" password="${svn.password}" useLocalRevision="false" /> </modificationset> <log> <merge dir="${PROJ.logs}/BUILD-PROJ.xml"/> <merge dir="${PROJ.logs}/INIT-UTILS.xml"/> <merge dir="${PROJ.logs}/CONF1.xml"/> <merge dir="${PROJ.logs}/CONF1-64.xml"/> <merge dir="${PROJ.logs}/CONF2.xml"/> <merge dir="${PROJ.logs}/CONF2-64.xml"/> </log> <publishers> <htmlemail mailHost="wgateout.mycompany.com" returnAddress="${return.address}" CSS="${cc.css}" logDir="${PROJ.logs}" XSLDir="${xsldir}" spamWhileBroken="true" reportSuccess="true" > <map alias="stevenm" address="[email protected]" /> <map alias="dev1" address="[email protected]" /> <map alias="dev2" address="[email protected]" /> <always address="[email protected]" /> <ignore user="local" /> <ignore user="User" /> <ignore user="SVN" /> <!-- ignore while system is developed --> <ignore user="dev1" /> <ignore user="dev2" /> </htmlemail> </publishers> </plugin> <!-- START OF CONFIDENCE TEST RUN PROJECT --> <project buildAfterFailed="false" name="PROJ_32_Linux" requireModification="true"> <labelincrementer separator="_" defaultLabel="BUILD_1" preBuildIncrementer="true" /> <property name="PROJ.logs" value="${CC}/logs/PROJ_32_Linux" /> <property name="return.address" value="[email protected]" /> <property name="CC.lable" value="${projectlabel}" /> <property name="buildPub.file" value="logs/PROJ_32_Linux/buildstatus.txt" /> <property name="build.Name" value="CONF32_Linux" /> <property name="build.bit" value="32" /> <listeners> <currentbuildstatuslistener file="logs/PROJ_32_Linux/buildstatus.txt" /> </listeners> <!-- Run the PROJ-CC.bat file --> <schedule> <composite> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="echoenv"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <!-- Disable until system works <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="STARTMAIL"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> --> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="INITRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="CLEANRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="BUILD"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="COPYTEST"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="INITUTILS"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <!-- <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="DUMMYTEST"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> -->- <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="RUNTEST"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="COPYRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <!-- <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="DUMMYRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="DUMMYSLEEP"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="MOVEFILES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> --> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="CHECKRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> </composite> </schedule> </project> <!-- START OF 32BIT NIGHTLY FULL TEST RUN PROJECT --> <project buildAfterFailed="false" name="PROJ_FULL_32_Linux" requireModification="false"> <labelincrementer separator="_" defaultLabel="BUILD_1" preBuildIncrementer="true" /> <property name="PROJ.logs" value="${CC}/logs/PROJ_FULL_32_Linux" /> <property name="return.address" value="[email protected]" /> <property name="CC.lable" value="${projectlabel}" /> <property name="buildPub.file" value="logs/PROJ_FULL_32_Linux/buildstatus.txt" /> <property name="build.Name" value="ESFULL32_Linux" /> <property name="build.bit" value="32" /> <listeners> <currentbuildstatuslistener file="logs/PROJ_FULL_32_Linux/buildstatus.txt" /> </listeners> <!-- Run the PROJ-CC.bat file --> <schedule> <composite time="2300"> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="echoenv"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <!-- <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="STARTMAIL"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> --> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="INITRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="CLEANRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="BUILD"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="COPYTEST"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="INITUTILS"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <!-- <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="DUMMYTEST"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> --> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="RUNTEST"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="COPYRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <!-- <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="DUMMYRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="DUMMYSLEEP"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="MOVEFILES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> --> <ant buildfile="${ant.buildFile}" uselogger="false" anthome="${ant.home}" antworkingdir="${CC.proj}" saveLogDir="${PROJ.logs}" target="CHECKRES"> <property name="BUILD_NAME" value="${build.Name}" /> <property name="BIT" value="${build.bit}" /> <property name="CC_LOGS" value="${PROJ.logs}" /> </ant> </composite> </schedule> </project> </cruisecontrol> -----Original Message----- From: Steve Murphy Sent: Monday, September 19, 2011 11:38 AM To: [email protected] Subject: [Cruisecontrol-user] No Builder Added Error Hello, I’ve managed to break my CruiseControl configuration script. When I start cruise I get the following error message. I’ve tried reverting back to a backup and removing whole sections of the file, but I cannot pinpoint the offending part of the script. Does one of the numbers in the CruiseControlException error refer the the line in the config file that is bad? Thanks, Steve 2011-09-19 09:07:06,307 [main ] INFO Main - CruiseControl Version 2.7.1 Compiled on September 4 2007 1821 2011-09-19 09:07:06,349 [main ] INFO XMLConfigManager - reading settings from config file [/home/user1/cruise/config.xml] 2011-09-19 09:07:06,734 [main ] ERROR Main - error setting config file on controller net.sourceforge.cruisecontrol.CruiseControlException: no builders added at net.sourceforge.cruisecontrol.util.ValidationHelper.fail(ValidationHelper.java:90) at net.sourceforge.cruisecontrol.util.ValidationHelper.assertFalse(ValidationHelper.java:99) at net.sourceforge.cruisecontrol.builders.CompositeBuilder.validate(CompositeBuilder.java:133) at net.sourceforge.cruisecontrol.Schedule.validate(Schedule.java:462) at net.sourceforge.cruisecontrol.ProjectConfig.validate(ProjectConfig.java:112) at net.sourceforge.cruisecontrol.CruiseControlConfig.handleProject(CruiseControlConfig.java:309) at net.sourceforge.cruisecontrol.CruiseControlConfig.parse(CruiseControlConfig.java:124) at net.sourceforge.cruisecontrol.CruiseControlConfig.<init>(CruiseControlConfig.java:104) at net.sourceforge.cruisecontrol.config.XMLConfigManager.loadConfig(XMLConfigManager.java:88) at net.sourceforge.cruisecontrol.config.XMLConfigManager.<init>(XMLConfigManager.java:80) at net.sourceforge.cruisecontrol.CruiseControlController.setConfigFile(CruiseControlController.java:94) at net.sourceforge.cruisecontrol.Main.createController(Main.java:139) at net.sourceforge.cruisecontrol.Main.start(Main.java:114) at net.sourceforge.cruisecontrol.launch.Launcher.run(Launcher.java:244) at net.sourceforge.cruisecontrol.launch.Launcher.main(Launcher.java:108) 2011-09-19 09:07:06,736 [main ] FATAL Main - no builders added ------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA Learn about the latest advances in developing for the BlackBerry® mobile platform with sessions, labs & more. See new tools and technologies. Register for BlackBerry® DevCon today! http://p.sf.net/sfu/rim-devcon-copy1 _______________________________________________ Cruisecontrol-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cruisecontrol-user ------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA Learn about the latest advances in developing for the BlackBerry® mobile platform with sessions, labs & more. See new tools and technologies. Register for BlackBerry® DevCon today! http://p.sf.net/sfu/rim-devcon-copy1 _______________________________________________ Cruisecontrol-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cruisecontrol-user ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Cruisecontrol-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cruisecontrol-user