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
>

Reply via email to