Hi all patch has been applied and integration test added.
with kind regards Ruben Willems On Wed, Apr 21, 2010 at 5:12 PM, johnman <[email protected]> wrote: > Hi I seem to be having a problem with cb include. > > I'm on 1.5.7180.4: > > > ccnet.config looks like this: > > <cruisecontrol xmlns:cb="urn:ccnet.config.builder"> > <cb:include href="myproj.config"/> > </cruisecontrol> > > also tried: > > <cruisecontrol xmlns:cb="urn:ccnet.config.builder"> > <cb:include href="myproj.config" xmlns:cb="urn:ccnet.config.builder"/> > </cruisecontrol> > > myproj.config > > <cb:config-template xmlns:cb="urn:ccnet.config.builder"> > <project name="MyFirstProject" /> > </cb:config-template> > > This fails as well: > > <project name="MyFirstProject" /> > > and so does this: > > <project name="MyFirstProject" xmlns:cb="urn:ccnet.config.builder"/> > > This is the error I get: > > [CCNet Server:ERROR] INTERNAL ERROR: Object reference not set to an > instance of an object. > ---------- > System.NullReferenceException: Object reference not set to an instance > of an object. > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.PreprocessorEnvironment.PushInclude(String > href) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.IncludeProcessor.Process(XNode > node) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.DefaultProcessor._ProcessPpElement(XElement > element) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.DefaultProcessor._ProcessElement(XElement > element) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.DefaultProcessor.Process(XNode > node) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.DefaultProcessor._ProcessNonPpElement(XElement > element) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.DefaultProcessor._ProcessElement(XElement > element) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.DefaultProcessor.Process(XNode > node) > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ConfigPreprocessor.<PreProcess>b__1(XNode > node) > at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() > at > > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ConfigPreprocessor.PreProcess(XmlReader > input, XmlWriter output, XmlUrlResolver resolver, Uri input_uri) > at > > ThoughtWorks.CruiseControl.Core.Config.DefaultConfigurationFileLoader.CreateXmlValidatingLoader(FileInfo > configFile) > at > > ThoughtWorks.CruiseControl.Core.Config.DefaultConfigurationFileLoader.AttemptLoadConfiguration(FileInfo > configFile) > at > > ThoughtWorks.CruiseControl.Core.Config.DefaultConfigurationFileLoader.Load(FileInfo > configFile) > at > ThoughtWorks.CruiseControl.Core.Config.FileConfigurationService.Load() > at > > ThoughtWorks.CruiseControl.Core.Config.FileWatcherConfigurationService.Load() > at > ThoughtWorks.CruiseControl.Core.Config.CachingConfigurationService.Load() > at > ThoughtWorks.CruiseControl.Core.CruiseServer..ctor(IConfigurationService > configurationService, IProjectIntegratorListFactory > projectIntegratorListFactory, IProjectSerializer projectSerializer, > IProjectStateManager stateManager, IFileSystem fileSystem, > IExecutionEnvironment executionEnvironment > , List`1 extensionList) > at > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.CreateLocal(String > configFile) > at > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.CreateRemote(String > configFile) > at > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.Create(Boolean > remote, String configFile) > at ThoughtWorks.CruiseControl.Core.ConsoleRunner.LaunchServer() > at ThoughtWorks.CruiseControl.Core.ConsoleRunner.Run() > at ThoughtWorks.CruiseControl.Console.AppRunner.Run(String[] args, > Boolean usesShadowCopying) > ---------- > > If I paste this project inline it works. > > I've used: > > <!DOCTYPE cruisecontrol [ > <!ENTITY X.Projects SYSTEM "file:BT.P4.Dev.Projects.xml"> > > ]> > > to include a list of projects from an external file in the past and > this doesn't seem to work any more either. > > Any idea why it is failing? > > Do you need to use the preprocessor xmlns:cb="urn:ccnet.config.builder > for CC.NET to work? > > Thanks, > > John > > > On Apr 19, 9:40 am, Ruben Willems <[email protected]> wrote: > > Hi > > > > that explains it , there is indeed a bug in the 1.6, and there is also a > > patch available, > > just need the time to commit it. > > > > the 1.5 branch jas my priority, so we can get the release out end this > month > > > > with kind regards > > Ruben Willems > > > > On Mon, Apr 19, 2010 at 9:56 AM, Cedric <[email protected] > >wrote: > > > > > > > > > Ruben, > > > > > Thanks for looking into this. the 1.5 build was never an issue. I seem > > > to be having this problem with 1.6. > > > > > On Apr 13, 7:59 pm, Ruben Willems <[email protected]> wrote: > > > > Hi > > > > > > that integration test I added had a bug in it, thanks to Jermey for > > > finding > > > > it. > > > > so the pre-processor seems to work! > > > > > > Next I copied the config files you provided into the involved > filenames, > > > and > > > > these are parsed ok. > > > > CCValidator says : all ok > > > > > > Attached are the files I used to validate. > > > > I would suggest to install the latest 1.5 build, and see if you still > > > have > > > > the problem. > > > > you can just unzip the ccvalidator to a separate folder, and check if > > > your > > > > config passes validation. > > > > > > If not, can you provide me your config files? (off list is also ok) > > > > > > with kind regards > > > > Ruben Willems > > > > > > On Mon, Apr 12, 2010 at 11:22 AM, Cedric < > > > [email protected]>wrote: > > > > > > > Chaps, > > > > > > > I've trimmed the config files that I use for the server. I have > also > > > > > downloaded the latest build and it does still fail. > > > > > > > There are three files here and are typical of our usage of CCNET. > > > > > > > Hope this helps. > > > > > > > Cedric > > > > > > > CCNET.CONFIG > > > > > <cruisecontrol xmlns:cb="urn:ccnet.config.builder"> > > > > > > > <!-- Definition Blocks --> > > > > > <cb:include href="Definitions.xml" > > > > > xmlns:cb="urn:ccnet.config.builder"/> > > > > > > > <!-- Project files --> > > > > > <cb:include href="project.xml" > xmlns:cb="urn:ccnet.config.builder"/> > > > > > > > </cruisecontrol> > > > > > > > DEFINITIONS.XML > > > > > <cb:config-template xmlns:cb="urn:ccnet.config.builder"> > > > > > <!--# Location of the tools folder on the server--> > > > > > <cb:define rootPath="C:" /> > > > > > > > <!--# Location of the tools folder on the server--> > > > > > <cb:define outputRootPath="C:" /> > > > > > > > <!--# Location of the program files folder on the server--> > > > > > <cb:define programFilesPath="$(rootPath)\Program Files" /> > > > > > > > <!--# Location of the tools folder on the server--> > > > > > <cb:define toolsPath="$(programFilesPath)\IntroducerTools" /> > > > > > > > <!--# Location of the tools folder on the server--> > > > > > <cb:define svnBinPath="$(programFilesPath)\VisualSVN Server\bin" > /> > > > > > > > <!--# Location of the State folder on the server--> > > > > > <cb:define statePath="$(rootPath)\CC_State" /> > > > > > > > <!--# Location of the WorkingFolder on the server--> > > > > > <cb:define workingPath="$(rootPath)\CC_WorkingFolder" /> > > > > > > > <!--# Location of the Artifacts folder on the server--> > > > > > <cb:define artifactsPath="$(outputRootPath)\CC_Artifacts" /> > > > > > > > <!--# Location of the Logs folder on the server--> > > > > > <cb:define logsPath="$(rootPath)\CC_Logs" /> > > > > > > > <!--# Location of the Builds folder on the server--> > > > > > <cb:define buildsPath="$(outputRootPath)\CC_Builds" /> > > > > > > > <!--# Location of the CCNet server path on the server --> > > > > > <cb:define ccnetServerPath="$(programFilesPath)\CruiseControl.NET > > > > > \server" /> > > > > > > > <!--# Location of the CCNet server path on the server --> > > > > > <cb:define ncoverPath="$(programFilesPath)\ncover" /> > > > > > > > <!--# BUILD BLOCKS --> > > > > > <!--# > > > > > The COMMON_SourceControl Block is used for access to the source > > > > > control system. > > > > > > > DO NOT CHANGE THE USER NAME/PASSWORD UNLESS YOU HAVE BEEN TOLD TO > > > > > > > *VARS* > > > > > trunkPath - the path in SVN has has the source code to build > > > > > tagPath - the path in SVN has has the tags in it > > > > > --> > > > > > <cb:define name="COMMON_SourceControl"> > > > > > <sourcecontrol type="filtered"> > > > > > <sourceControlProvider type="svn"> > > > > > <autoGetSource>true</autoGetSource> > > > > > <executable>"$(svnBinPath)\svn.exe"</executable> > > > > > > > > > > <trunkUrl>http://myServer:8080/svn/$(trunkPath)<http://myServer:8080/svn/$%28trunkPath%29> > <http://myServer:8080/svn/$%28trunkPath%29> > > > <http://myServer:8080/svn/$%28trunkPath%29> > > > > > </trunkUrl> > > > > > > > > > > <tagBaseUrl>http://myServer:8080/svn/$(tagPath)<http://myServer:8080/svn/$%28tagPath%29> > <http://myServer:8080/svn/$%28tagPath%29> > > > <http://myServer:8080/svn/$%28tagPath%29> > > > > > </tagBaseUrl> > > > > > <workingDirectory>$(workingFolder)</workingDirectory> > > > > > <cleanCopy>false</cleanCopy> > > > > > <cleanUp>true</cleanUp> > > > > > <revert>true</revert> > > > > > <tagOnSuccess>true</tagOnSuccess> > > > > > <username>bob</username> > > > > > <password>bob</password> > > > > > </sourceControlProvider> > > > > > <exclusionFilters> > > > > > <pathFilter> > > > > > <caseSensitive>false</caseSensitive> > > > > > <pattern>/**/AssemblyInfo.vb</pattern> > > > > > </pathFilter> > > > > > <pathFilter> > > > > > <caseSensitive>false</caseSensitive> > > > > > <pattern>/**/AssemblyInfo.cs</pattern> > > > > > </pathFilter> > > > > > </exclusionFilters> > > > > > </sourcecontrol> > > > > > </cb:define> > > > > > > > <!--# > > > > > The COMMON_MSBuild35 Block is used to build a solution. > > > > > > > *VARS* > > > > > workingFolder - the path on the server to the working folder > > > > > solutionFile - the name of the solution > > > > > --> > > > > > <cb:define name="COMMON_MSBuild35"> > > > > > <msbuild> > > > > > > <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</ > > > > > executable> > > > > > <workingDirectory>$(workingFolder)</workingDirectory> > > > > > <projectFile>$(solutionFile)</projectFile> > > > > > <buildArgs>/noconsolelogger /p:Configuration=Release > /v:minimal</ > > > > > buildArgs> > > > > > <targets>Build</targets> > > > > > <timeout>900</timeout> > > > > > <logger>$(ccnetServerPath) > > > > > \ThoughtWorks.CruiseControl.MsBuild.dll</logger> > > > > > </msbuild> > > > > > </cb:define> > > > > > > > <!--# > > > > > The COMMON_CleanResults Block is used to remove any old results > that > > > > > are in the working folder of the solution being built. > > > > > > > *VARS* > > > > > workingFolder - the path on the server to the wolrking folder > > > > > --> > > > > > <cb:define name="COMMON_CleanResults"> > > > > > <exec> > > > > > <description>Clean result files</description> > > > > > <executable>CleanResults.exe</executable> > > > > > <baseDirectory>$(toolsPath)</baseDirectory> > > > > > <buildArgs>"$(workingFolder)"</buildArgs> > > > > > </exec> > > > > > </cb:define> > > > > > > > <!--# > > > > > The COMMON_TweakVersionInfo Block is used to adjust the version > > > > > attribute > > > > > of the assembly being built so that the version number is correct. > > > > > > > *VARS* > > > > > toolsPath - the path on the server to the tools folder > > > > > workingFolder - the path on the server to the working folder > > > > > project - the name of the project to tweak > > > > > --> > > > > > <cb:define name="COMMON_TweakVersionInfo"> > > > > > <exec> > > > > > <description>Adjust Version Info</description> > > > > > <executable>AdjustSolutionInfo.exe</executable> > > > > > <baseDirectory>$(toolsPath)</baseDirectory> > > > > > <buildArgs>"$(workingFolder)" "$(project)"</buildArgs> > > > > > <successExitCodes>0,1</successExitCodes> > > > > > </exec> > > > > > <exec> > > > > > <description>Commit Version Info</description> > > > > > <executable>$(svnBinPath)\svn.exe</executable> > > > > > <baseDirectory>$(workingFolder)</baseDirectory> > > > > > <buildArgs>ci -m="Automated Commit by build process for the > > > > > Assembly Version Info files" --non-interactive --username=bob -- > > > > > password=bob</buildArgs> > > > > > </exec> > > > > > </cb:define> > > > > > > > <!--# > > > > > The DEFAULT_Publisher Block is used to publish results of the > build > > > > > to > > > > > the build report. This is then ultimately display to the end user > in > > > > > the > > > > > latest build/build screen on CCNet > > > > > > > *VARS* > > > > > none > > > > > --> > > > > > <cb:define name="DEFAULT_Publisher"> > > > > > <artifactcleanup> > > > > > <cleanUpMethod>KeepLastXBuilds</cleanUpMethod> > > > > > <cleanUpValue>75</cleanUpValue> > > > > > <description /> > > > > > </artifactcleanup> > > > > > <artifactcleanup> > > > > > <cleanUpMethod>KeepLastXSubDirs</cleanUpMethod> > > > > > <cleanUpValue>75</cleanUpValue> > > > > > <description /> > > > > > </artifactcleanup> > > > > > <modificationHistory onlyLogWhenChangesFound="true"/> > > > > > <xmllogger/> > > > > > </cb:define> > > > > > > > <!--# > > > > > The COMMON_Labeller Block is used to stamp a version number into > > > > > SVN. The CCNet service > > > > > will use the revision number from SVN and an incremental build > > > > > number to produce a version > > > > > stamp. > > > > > > > *VARS* > > > > > majorVersion - the Major part of a version number > > > > > minorVersion - the Minor part of a version number > > > > > --> > > > > > <cb:define name="COMMON_Labeller"> > > > > > <labeller type="assemblyVersionLabeller"> > > > > > <major>$(majorVersion)</major> > > > > > <minor>$(minorVersion)</minor> > > > > > <incrementOnFailure>false</incrementOnFailure> > > > > > </labeller> > > > > > </cb:define> > > > > > > > </cb:config-template> > > > > > > > PROJECT.XML > > > > > <cb:config-template xmlns:cb="urn:ccnet.config.builder"> > > > > > > > <project name="configProject"> > > > > > <!--# Project Variables --> > > > > > <cb:scope > > > > > workingFolder="$(workingPath)\configProject" > > > > > artifactFolder="$(artifactsPath)\configProject" > > > > > resultsFolder="$(workingFolder)\Results" > > > > > trunkPath="configProject/trunk" > > > > > tagPath="configProject/tags" > > > > ... > > > > read more ยป- Hide quoted text - > > > > - Show quoted text - > > > -- > Subscription settings: > http://groups.google.com/group/ccnet-user/subscribe?hl=en >
