<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gregs &#187; ColdFusion</title>
	<atom:link href="http://gregs.tcias.co.uk/category/comps/coldfusion/feed/" rel="self" type="application/rss+xml" />
	<link>http://gregs.tcias.co.uk</link>
	<description>helping me remember what I figure out</description>
	<lastBuildDate>Fri, 03 Feb 2012 01:04:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Merging PDFs</title>
		<link>http://gregs.tcias.co.uk/2011/03/11/merging-pdfs/</link>
		<comments>http://gregs.tcias.co.uk/2011/03/11/merging-pdfs/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 15:50:49 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[itext]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=636</guid>
		<description><![CDATA[I have just posted two small utility functions to merge PDF documents together for those working in CF. You can view them here . Or inline below. The first function takes an array of PDF documents and merges them into &#8230; <a href="http://gregs.tcias.co.uk/2011/03/11/merging-pdfs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just posted two small utility functions to merge PDF documents together for those working in CF. You can view them <a href="https://gist.github.com/866034">here</a> . Or inline below.</p>
<p>The first function takes an array of PDF documents and merges them into one. This was handy when different pages for a report had different styling requirements (such a full background colouring bleeding across the margins)</p>
<p><script src="https://gist.github.com/866034.js?file=gistfile1.cfm"></script></p>
<p>The second function stamps a pdf document over another pdf document at certain position. I needed this for a document that had a table dynamically generated that spanned multiple pages and I wanted the footer to not overlap the table content (I could not figure out how to use a css based solution because of the margins).</p>
<p><script src="https://gist.github.com/866034.js?file=gistfile2.cfm"></script></p>
<p>Anyway maybe somebody else will find these handy.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2011/03/11/merging-pdfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Stubbie has moved</title>
		<link>http://gregs.tcias.co.uk/2010/11/10/project-stubbie-has-moved/</link>
		<comments>http://gregs.tcias.co.uk/2010/11/10/project-stubbie-has-moved/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 14:05:42 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=556</guid>
		<description><![CDATA[Yesterday I decided to move Stubbie away from RIAforge. It has nothing to do with RIAForge, I just decided to use Git and as a result move it to Github. Since Github basically provides all the tools, there was no &#8230; <a href="http://gregs.tcias.co.uk/2010/11/10/project-stubbie-has-moved/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yesterday I decided to move <a href="https://github.com/gregstewart/stubbie">Stubbie</a> away from <ahref="http://riaforge.com/">RIAforge</a>. It has nothing to do with RIAForge, I just decided to use Git and as a result move it to <a href="https://github.com/">Github</a>. Since Github basically provides all the tools, there was no need to keep anything on RIAForge. I moved the blog posts over to this blog and you can find them under the <ahref="http://gregs.tcias.co.uk/category/comps/tdd/stubbie/">stubbie category</a>. Over the coming days I aim to add some content to the <a href="https://github.com/gregstewart/stubbie/wiki">Wiki</a>.</p>
<p>I also added a few new features:</p>
<ul>
<li>a mach-ii plugin &#8211; so that stubs are recreated if needed on each request</li>
<li>ColdSpring integration for autowiring the objects in your test stubs (which can also make use of the Mach-ii ColdSpring plugin to that end)</li>
<li>Due to the Mach-ii CS integration I added a remote Facade for use with MXUnit (in order to access the application scope)</li>
</ul>
<p>It&#8217;s all a little experimental at this stage and I&#8217;d be interested in your experience with the code, feedback, etc&#8230; Feel free to drop me a note or <a href="https://github.com/gregstewart/stubbie/issues">raise tickets</a> over @ Github with your feedback or bugs or suggestions. Alternatively, just leave a comment here. </p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2010/11/10/project-stubbie-has-moved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s been years&#8230;</title>
		<link>http://gregs.tcias.co.uk/2010/06/23/its-been-years/</link>
		<comments>http://gregs.tcias.co.uk/2010/06/23/its-been-years/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 15:33:05 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=552</guid>
		<description><![CDATA[&#8230;between updates. But based of a short conversation with Jon Farrar, I got round to adding mxunit support. I also tidied up a few things in the code for rendering the CFCs and fixed an issue with the VarScopeChecker not &#8230; <a href="http://gregs.tcias.co.uk/2010/06/23/its-been-years/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&#8230;between updates. But based of a short conversation with Jon Farrar, I got round to adding mxunit support. </p>
<p>I also tidied up a few things in the code for rendering the CFCs and fixed an issue with the VarScopeChecker not being picked up by MXUnit.</p>
<p>As always feedback is most welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2010/06/23/its-been-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX calls and expired sessions</title>
		<link>http://gregs.tcias.co.uk/2008/06/19/ajax-calls-and-expired-sessions/</link>
		<comments>http://gregs.tcias.co.uk/2008/06/19/ajax-calls-and-expired-sessions/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 08:12:44 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://gregs.teacupinastorm.com/?p=477</guid>
		<description><![CDATA[I have been updating a bunch of code recently to make use of the new features in Prototype 1.6 and one of the great additions in this release was the introduction of Automatic JavaScript response evaluation. This allowed me to &#8230; <a href="http://gregs.tcias.co.uk/2008/06/19/ajax-calls-and-expired-sessions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have been updating a bunch of code recently to make use of the new features in <a href="http://prototypejs.org/">Prototype 1.6</a> and one of the great additions in this release was the introduction of <a href="http://prototypejs.org/api/ajax/request">Automatic JavaScript response evaluation</a>. This allowed me to improve on my session checking code without having to fuff around with the response information sent back to the client. The problem was with XHR requests: i.e. if the user initiated such a request when his session had expired, then usually the response would fail or worse just hang.</p>
<p>The snippet below shows my new session checking code.</p>
<div class="igBar"><span id="ljavascript-4"><a href="#" onclick="javascript:showPlainTxt('javascript-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-4">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;script type=<span style="color: #3366CC;">"text/javascript"</span>&gt;&lt;!--</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> myAjaxCall<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;url = <span style="color: #3366CC;">"index.cfm"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;pars=<span style="color: #3366CC;">"?fuseaction.someFuseaction&amp;par1=1&amp;par2=2"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">new</span> Ajax.<span style="color: #006600;">Updater</span><span style="color: #66cc66;">&#40;</span>\\<span style="color: #3366CC;">'div_to_populate<span style="color: #000099; font-weight: bold;">\\</span>'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;url, <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;method: \\<span style="color: #3366CC;">'post<span style="color: #000099; font-weight: bold;">\\</span>'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;postBody: pars,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;onLoading: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #009900; font-style: italic;">//code to run while making the request</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;onComplete : <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>transport,json<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span>json &amp;&amp; json<span style="color: #66cc66;">&#91;</span>\\<span style="color: #3366CC;">'session<span style="color: #000099; font-weight: bold;">\\</span>'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;setSessionExpired<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">//Code to run when the request has completed</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;onFailure: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>\\<span style="color: #3366CC;">'something went wrong<span style="color: #000099; font-weight: bold;">\\</span>'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;&nbsp; &nbsp; evalScripts:<span style="color: #003366; font-weight: bold;">true</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;<span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> setSessionExpired<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>\\<span style="color: #3366CC;">'Your session has timed out<span style="color: #000099; font-weight: bold;">\\</span>'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;&nbsp; &nbsp;window.<span style="color: #006600;">location</span>=\\<span style="color: #3366CC;">'http://&lt;cfoutput&gt;#cgi.HTTP_HOST#&lt;/cfoutput&gt;/?fuseaction=home.home<span style="color: #000099; font-weight: bold;">\\</span>'</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// --&gt;&lt;/script&gt; </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>The trick is to intercept the call when you do your session checking at the back end. Let's say you have a fuseaction called login.login (see below and yes this is fusebox 3 :S) where you display the login form when a user is not logged in, this is where I inserted the check for an XHR request, by looking at the http headers sent along with the request. The key here is a new header attribute passed in with Prototype "X-Requested-With". If this attribute exists then I know it's an XHR request and I can create a custom JSON header with an error struct that holds a key called session with a value of timeout. All I then need to do is encode the struct as JSON and pass that encoded struct back to the browser.</p>
<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showPlainTxt('code-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-5">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;cfcase value=<span style="color:#CC0000;">"login"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!--- gvs 1Feb08 - handles XHR requests that session timeout ---&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cfset attributes.<span style="">request</span> = GetHttpRequestData<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>/&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cfif StructKeyExists<span style="color:#006600; font-weight:bold;">&#40;</span>attributes.<span style="">request</span>.<span style="">headers</span>,<span style="color:#CC0000;">"X-Requested-With"</span><span style="color:#006600; font-weight:bold;">&#41;</span>&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfsetting showdebugoutput=<span style="color:#CC0000;">"false"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfparam name=<span style="color:#CC0000;">"attributes.jsonObj"</span> default=<span style="color:#CC0000;">"#CreateObject('component','com.jehiah.json')#"</span>/&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfparam name=<span style="color:#CC0000;">"error"</span> default=<span style="color:#CC0000;">"#StructNew()#"</span>/&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfset error<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'session'</span><span style="color:#006600; font-weight:bold;">&#93;</span>=<span style="color:#CC0000;">'timeout'</span>/&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfif StructKeyExists<span style="color:#006600; font-weight:bold;">&#40;</span>attributes,<span style="color:#CC0000;">"jsonObj"</span><span style="color:#006600; font-weight:bold;">&#41;</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfheader name=<span style="color:#CC0000;">"X-JSON"</span> value=<span style="color:#CC0000;">"#trim(attributes.jsonObj.encode(error))#"</span> /&gt;&lt;cfabort&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/cfif&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/cfif&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cfif StructKeyExists<span style="color:#006600; font-weight:bold;">&#40;</span>session,<span style="color:#CC0000;">'login'</span><span style="color:#006600; font-weight:bold;">&#41;</span>&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfset attributes.<span style="">login</span> = session.<span style="">login</span>/&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cfelse&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;cfparam name=<span style="color:#CC0000;">"attributes.login"</span> default=<span style="color:#CC0000;">""</span>/&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/cfif&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cfscript&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; xfa.<span style="">submitform</span>=<span style="color:#CC0000;">'index.cfm?fuseaction=login.processlogin'</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/cfscript&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cfinclude template=<span style="color:#CC0000;">"#affiliate('dsp_login.cfm')#"</span>/&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/cfcase&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Now let's jump back to the JavaScript code and take a look at the onComplete function again:</p>
<div class="igBar"><span id="ljavascript-6"><a href="#" onclick="javascript:showPlainTxt('javascript-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-6">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">onComplete : <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>transport,json<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span>json &amp;amp;&amp;amp; json<span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'session'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setSessionExpired<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">//Code to run when the request has completed</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>If there's a JSON object and it has a key of session then I call my setSessionExpired function which redirects the users. Now the json session key only exists in these situations since the call normally just passes back the result of the call.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2008/06/19/ajax-calls-and-expired-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project update</title>
		<link>http://gregs.tcias.co.uk/2007/10/08/project-update/</link>
		<comments>http://gregs.tcias.co.uk/2007/10/08/project-update/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 15:32:06 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=550</guid>
		<description><![CDATA[It's been for ever and a day, since I have done any commits to this project, but prompted by Janet's comments I have made a handful of commits to the repository. cfUnit is now supported A fix for cfmx 6.1 &#8230; <a href="http://gregs.tcias.co.uk/2007/10/08/project-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It's been for ever and a day, since I have done any commits to this project, but prompted by Janet's comments I have made a handful of commits to the repository.</p>
<ol>
<li>cfUnit is now supported</li>
<li>A fix for cfmx 6.1 and recursive directory lookups</li>
<li>The code can now handle missing tearDown methods in existing test cfcs.</li>
</ol>
<p>I have also tried to simplify the config.xml file a little and here's what the default looks like:</p>
<div class="igBar"><span id="lcode-9"><a href="#" onclick="javascript:showPlainTxt('code-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-9">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;stubbie&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;config&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;appName value=<span style="color:#CC0000;">"myMapping"</span> /&gt;&lt;!-- the name of your app, can be the mapping name as set up in cfadmin --&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;appPath value=<span style="color:#CC0000;">"/my/full/path/to/the code/"</span> /&gt;&lt;!--full path to the app --&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;packageRoot value=<span style="color:#CC0000;">""</span> /&gt;&lt;!-- if you have a mapping for your app<span style="color:#CC0000;">'s cfcs, e.g. com.mydomain, specify it here (if you have specified an app name the result will be com.mydomain.myapp) --&gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;saveTestFilesTo value=&quot;&quot; /&gt;&lt;!-- Not implemented yet, optional storage location for the test stubs --&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;unitTestFramework value=&quot;cfcUnit&quot;/&gt;&lt;!-- cfcUnit/cfUnit --&gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;coldSpring use=&quot;false&quot; path=&quot;config/cs.xml&quot;/&gt;&lt;!-- (working on it) whether or not to use CS and if so where is the cs config file in relation to the app path --&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &lt;/config&gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&lt;/stubbie&gt; </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>A concrete example usually works best, so:</p>
<div class="igBar"><span id="lcode-10"><a href="#" onclick="javascript:showPlainTxt('code-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-10">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;stubbie&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;config&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;appName value=<span style="color:#CC0000;">"art"</span> /&gt;&lt;!-- the name of your app, can be the mapping name as set up in cfadmin --&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;appPath value=<span style="color:#CC0000;">"/Users/gregstewart/Sites/Client X sites/Fusebox/ART2/"</span> /&gt;&lt;!--full path to the app --&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;packageRoot value=<span style="color:#CC0000;">""</span> /&gt;&lt;!-- if you have a mapping for your app<span style="color:#CC0000;">'s cfcs, e.g. com.mydomain, specify it here (if you have specified an app name the result will be com.mydomain.myapp) --&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;saveTestFilesTo value=&quot;&quot; /&gt;&lt;!-- Not implemented yet, optional storage location for the test stubs --&gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;unitTestFramework value=&quot;cfcUnit&quot;/&gt;&lt;!-- cfcUnit/cfUnit --&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;coldSpring use=&quot;false&quot; path=&quot;config/cs.xml&quot;/&gt;&lt;!-- (working on it) whether or not to use CS and if so where is the cs config file in relation to the app path --&gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &lt;/config&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&lt;/stubbie&gt; </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><em>appName</em> : This now refers to a cf mapping in the administrator for my project, in this case art, however if you are using a package approach (with say a value of "com.domain"), then this value would simply be appended to the packageRoot (e.g. com.domain.art)</p>
<p><em>appPath</em> : This is now the full path to the application, e.g. on my local machine /Users/gregstewart/Sites/Client X sites/Fusebox/ART2/</p>
<p><em>packageRoot</em> : Hasn't changed</p>
<p><em>saveTestFilesTo</em> : Hasn't changed</p>
<p><em>unitTestFramework</em> : Now supports cfUnit.</p>
<p><em>coldSpring</em> : Something working on, i.e. use ColdSpring to generate mock objects. Could be ages before it sees the light of day, if my past track record is anything to go by.</p>
<p>Thoughts and suggestions are still most welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2007/10/08/project-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More unit testing generator projects</title>
		<link>http://gregs.tcias.co.uk/2007/05/28/more-unit-testing-generator-projects/</link>
		<comments>http://gregs.tcias.co.uk/2007/05/28/more-unit-testing-generator-projects/#comments</comments>
		<pubDate>Mon, 28 May 2007 15:03:59 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=546</guid>
		<description><![CDATA[Finally managed to catch up on a few blog posts this week after another project deadline has passed and I came across two more projects that have started to generate unit tests for you: Squidhead and CFUnit Stub Generator for &#8230; <a href="http://gregs.tcias.co.uk/2007/05/28/more-unit-testing-generator-projects/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Finally managed to catch up on a few blog posts this week after another project deadline has passed and I came across two more projects that have started to generate unit tests for you:</p>
<ul>
<li><a href="http://www.numtopia.com/terry/blog/archives/2007/05/squidhead_and_cfunit.cfm" title="Squidhead and CFUnit">Squidhead and CFUnit</a></li>
<li><a href-"http://www.briankotek.com/blog/index.cfm/2007/5/16/Stub-Generator-for-CFCs-Unit-Tests-and-More" title="Stub Generator for CFCs, Unit Tests, and More">Stub Generator for CFCs, Unit Tests, and More</a></li>
</ul>
<p>Both projects do a hell of a lot more than just create test objects though. Definitely worth checking out.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2007/05/28/more-unit-testing-generator-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For those 11 folks&#8230;</title>
		<link>http://gregs.tcias.co.uk/2007/05/10/for-those-11-folks/</link>
		<comments>http://gregs.tcias.co.uk/2007/05/10/for-those-11-folks/#comments</comments>
		<pubDate>Thu, 10 May 2007 05:21:27 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=543</guid>
		<description><![CDATA[...who so far downloaded the code. I'd be pleased to hear from you, if you have had a chance to install it and run it. I am especially interested in the experience so far, any issues, such as unclear install &#8230; <a href="http://gregs.tcias.co.uk/2007/05/10/for-those-11-folks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>...who so far downloaded the code. I'd be pleased to hear from you, if you have had a chance to install it and run it. I am especially interested in the experience so far, any issues, such as unclear install instructions, config problems, calling the CFC and of course any bugs.</p>
<p>Feel free to comment here, use the <a href="http://stubbie.riaforge.org/forums/forums.cfm?conferenceid=244FF9F0-C349-4B5E-BBD4027EF42E3B62"  title="Stubbie forums">forums</a> or even log an issue with the <a href="http://stubbie.riaforge.org/index.cfm?event=page.issues"  title="Issue tracker">tracker</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2007/05/10/for-those-11-folks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion repository is available</title>
		<link>http://gregs.tcias.co.uk/2007/05/10/subversion-repository-is-available/</link>
		<comments>http://gregs.tcias.co.uk/2007/05/10/subversion-repository-is-available/#comments</comments>
		<pubDate>Thu, 10 May 2007 05:16:09 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=541</guid>
		<description><![CDATA[I finally got round to setting up the Subversion (SVN) repository today. So if you feel like living dangerously you can grab the source from SVN trunk.]]></description>
			<content:encoded><![CDATA[<p>I finally got round to setting up the Subversion (SVN) repository today. So if you feel like living dangerously you can grab the source from <a href="http://svn.riaforge.org/stubbie/trunk" title="Subversion Trunk folder">SVN trunk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2007/05/10/subversion-repository-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stubbie 0.1 available for download</title>
		<link>http://gregs.tcias.co.uk/2007/05/04/stubbie-01-available-for-download/</link>
		<comments>http://gregs.tcias.co.uk/2007/05/04/stubbie-01-available-for-download/#comments</comments>
		<pubDate>Fri, 04 May 2007 01:48:30 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.teacupinastorm.com/?p=452</guid>
		<description><![CDATA[Just wanted to let folks know, and with trepidation, that the 0.1 release of Stubbie is available for download from the project page. I have also added a few blog posts to the project: Basic install instructions Links for feedback, &#8230; <a href="http://gregs.tcias.co.uk/2007/05/04/stubbie-01-available-for-download/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just wanted to let folks know, and with trepidation, that the 0.1 release of Stubbie is available for download from <a title="Stubbie project page" href="http://stubbie.riaforge.org/">the project page</a>. I have also added a few blog posts to the project:</p>
<ul>
<li><a title="Basic install instructions" href="http://stubbie.riaforge.org/blog/index.cfm/2007/5/3/Installing-and-using-Stubbie">Basic install instructions</a></li>
<li><a title="Download Stubbie" href="http://stubbie.riaforge.org/blog/index.cfm/2007/5/3/Download-Stubbie">Links for feedback, issues and suggestions</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2007/05/04/stubbie-01-available-for-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing and using Stubbie</title>
		<link>http://gregs.tcias.co.uk/2007/05/03/installing-and-using-stubbie/</link>
		<comments>http://gregs.tcias.co.uk/2007/05/03/installing-and-using-stubbie/#comments</comments>
		<pubDate>Fri, 04 May 2007 00:22:36 +0000</pubDate>
		<dc:creator>gregs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[stubbie]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[stubs]]></category>

		<guid isPermaLink="false">http://gregs.tcias.co.uk/?p=536</guid>
		<description><![CDATA[I thought it would also be useful if I post the installation and usage instructions here. Installation The simplest way to install stubbie is to just place it in your webroot, alternatively you can just create a mapping called /stubbie &#8230; <a href="http://gregs.tcias.co.uk/2007/05/03/installing-and-using-stubbie/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I thought it would also be useful if I post the installation and usage instructions here.</p>
<h3>Installation</h3>
<p>The simplest way to install stubbie is to just place it in your webroot, alternatively you can just create a mapping called /stubbie and point it to your install folder.</p>
<h3>Usage</h3>
<p>Using stubbie requires 2 steps the first is editing config.xml and the second is calling the component.</p>
<p>Step 1<br />
Open up the config.xml file and edit it the following settings</p>
<div class="igBar"><span id="lcode-13"><a href="#" onclick="javascript:showPlainTxt('code-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-13">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;stubbie&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;config&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;appName value=<span style="color:#CC0000;">"myAppName"</span> /&gt;&lt;!-- the name of your app, e.<span style="">g</span>. <span style="">the</span> folder name under which the app resides, used to suffix the root path of your app --&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;appPath value=<span style="color:#CC0000;">"/Full/Path/To/Root/Of/Your/App"</span> /&gt;&lt;!-- full path to the app, minus the app folder name --&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;packageRoot value=<span style="color:#CC0000;">"com.myDomain"</span> /&gt;&lt;!-- if you have a mapping for your app<span style="color:#CC0000;">'s cfcs, e.g. com.mydomain, specify it here --&gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;saveTestFilesTo value=&quot;&quot; /&gt;&lt;!-- Not implemented yet, optional storage location for the test stubs --&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;unitTestFramework value=&quot;cfcUnit&quot;/&gt;&lt;!-- cfcUnit and cfUnit are allowed options here --&gt;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; &lt;/config&gt;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; </span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&lt;/stubbie&gt; </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Step 2</p>
<p>Place the following code anywhere you wish to invoke stubbie from:</p>
<div class="igBar"><span id="lcode-14"><a href="#" onclick="javascript:showPlainTxt('code-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-14">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;cfset configFilePath = ExpandPath<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"./config.xml"</span><span style="color:#006600; font-weight:bold;">&#41;</span>/&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;cfset stubbie = CreateObject<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"component"</span>,<span style="color:#CC0000;">"Stubbie"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">init</span><span style="color:#006600; font-weight:bold;">&#40;</span>configFilePath<span style="color:#006600; font-weight:bold;">&#41;</span>/&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;cfset stubbie.<span style="">build</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>/&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://gregs.tcias.co.uk/2007/05/03/installing-and-using-stubbie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

