<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Escape Keys - Coldbox</title>
			<link>http://www.escapekeys.com/blog</link>
			<description>A ColdFusion and Web Development Blog by Tom de Manincor</description>
			<language>en-us</language>
			<pubDate>Wed, 08 Sep 2010 14:00:09 -0400</pubDate>
			<lastBuildDate>Fri, 20 Nov 2009 06:31:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>blog@escapekeys.com</managingEditor>
			<webMaster>blog@escapekeys.com</webMaster>
			
			<item>
				<title>Speaking at NL CFUG - Battle of the Frameworks</title>
				<link>http://www.escapekeys.com/blog/2009/11/20/Speaking-at-NL-CFUG--Battle-of-the-Frameworks</link>
				<description>
				
				Debating over the popular Coldfusion frameworks always leads to some interesting discussion.

Today, Model-Glue, Fusebox, and Coldbox will be facing off.

To introduce the code and theory, as well as the practicality each framework brings to the table, we will be presenting them with an application walkthrough.

Letting attendees see what&apos;s in the pudding and leave with the proof.

Check the &lt;a href=&quot;http://www.cfug.nl/default/index.cfm/agenda/meeting-20-november/&quot;&gt;NL CFUG Homepage&lt;/a&gt; for more information.

Location: Adobe HQ, Hoogoorddreef 54-A, Amsterdam

13:00 - 13:30 Binnenkomst&lt;br&gt;
13:30 - 14:15 Coldbox - Tom de Manincor&lt;br&gt;
14.15 - 15.00 Fusebox - Erik-Jan Jaquet&lt;br&gt;
15:00 - 15:30 Pauze&lt;br&gt;
15:30 - 16:15 ModelGlue - Jochem van Dieten&lt;br&gt;
16.15 - 17.00 Discussie frameworks&lt;br&gt;
17:00 - 18:00 Borrel / Netwerken&lt;br&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Fri, 20 Nov 2009 06:31:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/11/20/Speaking-at-NL-CFUG--Battle-of-the-Frameworks</guid>
				
			</item>
			
			<item>
				<title>Coldbox Amsterdam Training - DISCOUNTS and REFERRALS</title>
				<link>http://www.escapekeys.com/blog/2009/10/15/Coldbox-Amsterdam-Training--DISCOUNTS-and-REFERRALS</link>
				<description>
				
				With a week left before the &lt;a href=&quot;http://cboxams.eventbrite.com&quot;&gt;Coldbox 101 + Workshop here in Amsterdam&lt;/a&gt;, we have decided to extend the Early Bird pricing and offer a &lt;strong&gt;DISCOUNT&lt;/strong&gt;, as well.

Early bird tickets are 1200 Euro ($1755 USD) and will be available until October 21st. 

Use the discount code: &lt;a href=&quot;http://cboxams.eventbrite.com/?discount=CB_AMS_LM&quot;&gt;CB_AMS_LM&lt;/a&gt; and receive a 200 Euro discount ($300 USD).

Where else can you get a 2 day training and a 1 day hands on workshop for 1000 Euro?

Not to mention, you will leave inspired and with plenty of resources and materials that will help you continue to expand your skill set indefinitely.

I apologize to those who have already registered, but we will also offer a retroactive discount for referrals.
If you know someone who may be interested, now is the time to push. Have them mention your name and get &lt;strong&gt;10% of their final ticket price.&lt;/strong&gt; That applies to each referral. Yes, they are allowed to use the discount code above, but remember the kick-back is 10% of their ticket price. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Thu, 15 Oct 2009 07:19:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/10/15/Coldbox-Amsterdam-Training--DISCOUNTS-and-REFERRALS</guid>
				
			</item>
			
			<item>
				<title>UPDATE: Coldbox 101 Amsterdam</title>
				<link>http://www.escapekeys.com/blog/2009/10/5/UPDATE-Coldbox-101-Amsterdam</link>
				<description>
				
				Registration issues have been resolved.
Due to issues accepting payments with PayPal, and hosting an international event, tickets must be sold in USD and processed with Google Checkout.

The registration page has been updated: &lt;a href=&quot;http://cboxams.eventbrite.com/&quot;&gt;Coldbox 101 Amsterdam @ eventbrite&lt;/a&gt;

More news about the event:

Luis Majano, the creator of Colbox, will be joining us via Video Conferencing for a Meet and Greet. He will also talk about what&apos;s new in the latest version.

Each attendee will receive a Coldbox Training Manual (over 300 pages), along with an Exercise Booklet (just under a 100 pages), and some nice schwag (bag,t-shirt,etc). 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Mon, 05 Oct 2009 14:43:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/10/5/UPDATE-Coldbox-101-Amsterdam</guid>
				
			</item>
			
			<item>
				<title>UPDATE: Coldbox 101 Amsterdam</title>
				<link>http://www.escapekeys.com/blog/2009/10/2/UPDATE-Coldbox-101-Amsterdam</link>
				<description>
				
				If you have tried to purchase tickets, but run into errors when checking out using PayPal, please bare with me.
The alternate payment methods are also not functioning. 
I have been working with EventBrite and PayPal to determine the cause and find a solution...

I apologize for the inconvenience, and appreciate your patience.

In the meantime, it will be a manual process.
To reserve your seat use the contact form and specify the attendees full names and email address.

You will receive an EventBrite ticket and a Paypal Invoice. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Fri, 02 Oct 2009 15:08:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/10/2/UPDATE-Coldbox-101-Amsterdam</guid>
				
			</item>
			
			<item>
				<title>UPDATE: ColdBox Training Amsterdam (LOCATION + DISCOUNT)</title>
				<link>http://www.escapekeys.com/blog/2009/9/30/UPDATE-ColdBox-Training-Amsterdam-LOCATION--DISCOUNT</link>
				<description>
				
				I am happy to announce the location of our first ColdBox Europe training here in Amsterdam.

Thanks to Ernst van der Linden, of Team Coldbox and &lt;a href=&quot;http://evdlinden.behindthe.net/&quot;&gt;BehindThe.net&lt;/a&gt;, along with the crew at &lt;a href=&quot;http://remunetservices.com/&quot;&gt;RemuNet Services&lt;/a&gt; for offering to host the event.

The facility is in the heart of town, and has the real Amsterdam feel.

You can check it out on Google Maps:&lt;br /&gt;
&lt;a href=&quot;http://maps.google.nl/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=Keizersgracht+83A,+Amsterdam+1015+CG&amp;sll=52.377603,4.888337&amp;sspn=0.008239,0.015836&amp;ie=UTF8&amp;ll=52.37759,4.888315&amp;spn=0.008239,0.015836&amp;z=16&amp;iwloc=A&quot;&gt;Keizersgracht 83A&lt;br /&gt;Amsterdam 1015 CG&lt;/a&gt;

The affiliation has also allowed us to offer the 3 DAY course for a discounted rate of 1200 Euros (early bird - before Oct.14th) and 1500 Euros after the 14th.

So spread the word and sign up soon, seating is limited.

&lt;a href=&quot;http://cboxams.eventbrite.com/&quot;&gt;Registration and Event Info at cboxams.eventbrite.com&lt;/a&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Wed, 30 Sep 2009 20:06:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/9/30/UPDATE-ColdBox-Training-Amsterdam-LOCATION--DISCOUNT</guid>
				
			</item>
			
			<item>
				<title>Scotch on the Rocks with a twist of Training</title>
				<link>http://www.escapekeys.com/blog/2009/9/19/Scotch-on-the-Rocks-with-a-twist-of-Training</link>
				<description>
				
				&lt;a href=&quot;http://www.scotch-on-the-rocks.co.uk/&quot;&gt;Scotch on the Road&lt;/a&gt; is coming to &lt;strong&gt;Amsterdam&lt;/strong&gt; on &lt;strong&gt;October 26th.&lt;/strong&gt; If you don&apos;t know it is a FREE event. Check out their site for session information and other specifics.

We are considering offering a 2 day &lt;strong&gt;Coldbox 101 training and an additional hands-on Workshop.&lt;/strong&gt; Since it&apos;s short notice, this is a quick poll for interest.
Details and specifics will follow.
&lt;br /&gt;&lt;br /&gt;
Schedule:&lt;br /&gt;
Thursday &amp; Friday: Training&lt;br /&gt;
Saturday: Additional Hands-on Workshop&lt;br /&gt;
Sunday: ---&lt;br /&gt;
Monday: Scotch On The Road&lt;br /&gt;
&lt;br /&gt;
This way there is enough time to go through the concepts, features, and syntax of Coldbox. And an extra day to put it into practice.
Develop a full application using Coldbox with some of the latest technologies, like Coldspring, Lightwire, Transfer, etc.
Not to mention, plenty of tips, tricks, tools, and shortcuts for developing. Not only with Coldbox, but in general. I&apos;ll even touch on some Object Oriented stuff, where it&apos;s good, bad, and why.

If you are coming from out of town, or just need a reason to bug the boss to spend some of that training budget...Amsterdam has one of the best public transport systems in the world. You can do plenty of sight seeing, beer drinking, and ...it&apos;s Amsterdam! 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Sat, 19 Sep 2009 12:57:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/9/19/Scotch-on-the-Rocks-with-a-twist-of-Training</guid>
				
			</item>
			
			<item>
				<title>Presenting Coldbox at the CFUG NL (Netherlands) on November 20th</title>
				<link>http://www.escapekeys.com/blog/2009/9/19/Presenting-Coldbox-at-the-CFUG-NL-Netherlands-on-November-20th</link>
				<description>
				
				The guys here at CFUG NL are putting together a battle of the frameworks.

Bringing in presenters for each of the major frameworks: Coldbox, Mach-ii, Model Glue, and Fusebox.

I have been asked to represent Coldbox.

Each presenter will give a walk-through on how to build a basic application.
We don&apos;t have too much time, so we will squeeze in as much info as we can about the frameworks, as well.

To help benchmark and to give developers a better understanding of what each framework offers, we will all be building the same app.

It will be held at the Adobe Office at the Amsterdam Arena and will start at 14:00 hours. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Sat, 19 Sep 2009 12:30:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/9/19/Presenting-Coldbox-at-the-CFUG-NL-Netherlands-on-November-20th</guid>
				
			</item>
			
			<item>
				<title>Certified Coldbox training in the Netherlands...Anyone interested???</title>
				<link>http://www.escapekeys.com/blog/2009/7/10/Certified-Coldbox-training-in-the-NetherlandsAnyone-interested</link>
				<description>
				
				Team Coldbox is preparing to offer Certified Coldbox training courses here in the Netherlands.

I am hoping to offer our first course this winter in Amsterdam.

So if you have any interest or suggestions, please send them this way. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Fri, 10 Jul 2009 16:01:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/7/10/Certified-Coldbox-training-in-the-NetherlandsAnyone-interested</guid>
				
			</item>
			
			<item>
				<title>Coldbox 3.0 and the &apos;Box Suite&apos; are on the brink...</title>
				<link>http://www.escapekeys.com/blog/2009/7/10/Coldbox-30-and-the-Box-Suite-are-on-the-brink</link>
				<description>
				
				Luis and Team Coldbox have been busy as usual creating top-notch code for us all to use.

The upcoming 3.0 version of &lt;a href=&quot;http://coldbox.org&quot;&gt;Coldbox&lt;/a&gt; is packed with improvements, new features, and all kinds of tools to make a CF developers life easier.

It&apos;s in alpha now and available from the &lt;a href=&quot;http://coldbox.org/index.cfm/download&quot;&gt;Coldbox download page&lt;/a&gt;.

You&apos;ll also find &lt;a href=&quot;http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbLogBox&quot;&gt;LogBox&lt;/a&gt;, a logging framework, and &lt;a href=&quot;http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbMockBox&quot;&gt;MockBox&lt;/a&gt;, an object stubbing framework, are ready for the public to get their hands on. BlenderBox, a new IOC framework is around the corner, as well. Whether Luis likes it or not, I have deemed the new collection the &apos;Box Suite&apos;, for obvious reasons. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Fri, 10 Jul 2009 15:49:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/7/10/Coldbox-30-and-the-Box-Suite-are-on-the-brink</guid>
				
			</item>
			
			<item>
				<title>CB-101 ColdBox Training in Ontario - Day 1</title>
				<link>http://www.escapekeys.com/blog/2009/3/15/CB101-ColdBox-Training-in-Ontario--Day-1</link>
				<description>
				
				I&apos;m no novice when it comes to Coldbox, but I&apos;ve also never had the opportunity to sit and go thru the system with the author himself. That alone had me looking forward to the seminar.

The course kicked off with a nice breakfast and a goody bag loaded with training materials, a t-shirt, cheat sheets, candy and snacks, not to mention the bag itself is pretty nice.

The training manual has to be around 300+ pages, and that doesn&apos;t include the exercises. That&apos;s a separate booklet 100+ pages thick. Both are as rich in content as they are in size.

The lecture began with an intro to Design Patterns, Object Oriented methodology, and the vocabulary needed to comprehend the framework&apos;s architecture. He also went over some Best Practices not specific to Coldbox.
A good lesson for those migrating from spaghetti or even well structured procedural code.

The highlight for me came when he mentioned a few things to be aware of when using ColdFusion. Years of CF and I guess a few things had slipped by me. 

&lt;strong&gt;
Did you know:

1. Variables of type string, array, number, and date all pass in and out of components by value.
But structures, queries, and all other &apos;complex&apos; objects including CFCs get passed by reference.
May seem obvious to some, but to me, the ARRAY type seemed liked it should of been grouped with the complex types and passed by reference. Apparently, its a CF thing. Don&apos;t know how I feel about that, your thoughts?

2. ColdFusion creates java inner classes for each method in a CFC. So on top of the classes it uses to build CFC objects, it also has to instantiate these inner classes for each method. So consider the overhead of bloating objects with simple getter and setters, is it worth it?

Definitely, got me thinking...
&lt;/strong&gt;

From there we jumped into framework itself. Luis went over how to get it installed, configured, and how to tweak your IDE (eclipse and dw snippets and dictionaries).

The focus with Coldbox has always been the developer. If you don&apos;t know, there are lots of features that you wont find in other frameworks that make coding easier, and more fun. Luis touched on the development tools such as, the dashboard, debugger, cache monitor, and even the SideBar, to name a few.

Things started getting pretty advanced when we got into the Coldbox architecture and hierarchy. A great way to really understand the power and the functionality you have available from within the framework.
I don&apos;t want to spoil it for those attending the seminar at CFUnited, so I wont go in to much more detail. I will say there are lots of details and knowledge to be absorbed, even for a veteran like myself.

Looking forward to Day 2&apos;s lesson. We still have half of the training manual to go. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Sun, 15 Mar 2009 15:45:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2009/3/15/CB101-ColdBox-Training-in-Ontario--Day-1</guid>
				
			</item>
			
			<item>
				<title>TransferSync v0.4 released</title>
				<link>http://www.escapekeys.com/blog/2008/11/14/TransferSync-v04-released</link>
				<description>
				
				A minor update with a major fix.

0.4 -CHANGE LOG- 11/13/2008
- enhancement - logging improvements and toggle setting/property added
- enhancement - improved caching
- enhancement - added getKeyMap method
- enhancement - added argument to definition file
- enhancement - changed definition file extension to .transfer
- fix - added double lock to prevent concurrency issues with duplicate method creation

And for those using Coldbox there is an optimized version of the gateway in the package.

Grab a copy at:
&lt;a href=&quot;http://transfersync.riaforge.org&quot;&gt;TransferSync @ riaForge&lt;/a&gt; 
				</description>
				
				<category>Transfer</category>				
				
				<category>TransferSync</category>				
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<category>Coldspring</category>				
				
				<pubDate>Fri, 14 Nov 2008 02:37:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2008/11/14/TransferSync-v04-released</guid>
				
			</item>
			
			<item>
				<title>QUICK TIP: Reload Coldspring in Coldbox without Reinitilaizing</title>
				<link>http://www.escapekeys.com/blog/2008/8/28/QUICK-TIP-Reload-Coldspring-in-Coldbox-without-Reinitilaizing</link>
				<description>
				
				&lt;a href=&quot;http://www.coldboxframework.com/&quot;&gt;Coldbox&lt;/a&gt; and &lt;a href=&quot;http://www.coldspringframework.org&quot;&gt;Coldspring&lt;/a&gt; have a lot to offer when it comes to development. However, loading time is the price we pay.

There are a number of settings in Coldbox to optimize performance based on environment, but developing locally with nothing cached can drag between requests. Especially, if you are using a large number of beans with Coldspring.

If you want to trigger a reload it&apos;s as simple as:
&lt;code&gt;
&lt;cfset getPlugin(&apos;ioc&apos;).configure() /&gt;
&lt;/code&gt;

Where and how you use this is up to you.

May be we can get it integrated into the &lt;a href=&quot;http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbSideBar&quot;&gt;Coldbox Sidebar&lt;/a&gt;. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<category>Coldspring</category>				
				
				<pubDate>Thu, 28 Aug 2008 19:34:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2008/8/28/QUICK-TIP-Reload-Coldspring-in-Coldbox-without-Reinitilaizing</guid>
				
			</item>
			
			<item>
				<title>The &apos;Opimized for Colbox&apos; edition of TransferSync now available</title>
				<link>http://www.escapekeys.com/blog/2008/8/20/The-Opimized-for-Colbox-edition-of-TransferSync-now-available</link>
				<description>
				
				The second release of TransferSync, didn&apos;t see any bug fixes. Instead, this edition includes some optimizations for those using Coldbox. There are no major changes to the methodology or function. Everything works the same. However, a few things have been updated to take advantage of the Coldbox cache and features to provide better performance.

Grab the latest version at &lt;a href=&quot;http://transfersync.riaforge.org/&quot;&gt;RIAForge.org&lt;/a&gt; 
				</description>
				
				<category>Transfer</category>				
				
				<category>TransferSync</category>				
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Wed, 20 Aug 2008 05:56:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2008/8/20/The-Opimized-for-Colbox-edition-of-TransferSync-now-available</guid>
				
			</item>
			
			<item>
				<title>Clustered Environments and Coldbox SES Interceptor</title>
				<link>http://www.escapekeys.com/blog/2008/7/17/Clustered-Environments-and-Coldbox-SES-Interceptor</link>
				<description>
				
				I was using the &lt;a href=&quot;http://coldboxframework.com&quot;&gt;Coldbox&lt;/a&gt; SES interceptor and the built in Coldcourse integration, and ran into a little snag the other day. Our production boxes are clustered behind a load balancer using sticky sessions. In order to, reinitialize the framework, I had to access each host by ip and port.

This causes an issue with the current integration with &lt;b&gt;Coldcourse&lt;/b&gt; and the &lt;b&gt;SES&lt;/b&gt; interceptor. What happens is your &lt;b&gt;BaseURL&lt;/b&gt; gets set to &apos;http://localhost:1234&apos;. Which is no good for those rewrites, since the address will not resolve.

The answer...

Use the config or environments.xml to specify a new setting &apos;BaseHostName&apos;.

config.xml
&lt;code&gt;
&lt;Setting name=&quot;BaseHostName&quot;	value=&quot;www.mysite.com&quot; /&gt;
&lt;/code&gt;

environments.xml
&lt;code&gt;
&lt;environment name=&quot;local&quot; urls=&quot;&quot; patterns=&quot;.local&quot;&gt;
	&lt;Setting name=&quot;BaseHostName&quot;	value=&quot;mysite.local&quot; /&gt;
&lt;/code&gt;

While you are in the config, make sure you check the order of your interceptors. You will want the environment interceptor to come before the SES. Be sure to set the &lt;b&gt;FireOnInit&lt;/b&gt; property to TRUE. 
This means that the load up of settings occurs once the interceptor get&apos;s created and NOT on the execution point.

&lt;code&gt;
&lt;Interceptor class=&quot;interceptor.environmentControl&quot;&gt;
			&lt;Property name=&apos;configFile&apos;&gt;config/environments.xml.cfm&lt;/Property&gt;
			&lt;Property name=&apos;fireOnInit&apos;&gt;true&lt;/Property&gt;
		&lt;/Interceptor&gt;
		
		&lt;Interceptor class=&quot;coldbox.system.interceptors.ses&quot;&gt;
			&lt;Property name=&quot;configFile&quot;&gt;config/routes.cfm&lt;/Property&gt;
		&lt;/Interceptor&gt;
&lt;/code&gt;

Then, modify the routes.cfm to accept the new setting.
&lt;code&gt;
&lt;cfif not settingExists(&apos;BaseHostName&apos;)&gt;
	&lt;cfset setSetting(&apos;BaseHostName&apos;,cgi.HTTP_HOST) /&gt;
&lt;/cfif&gt;

&lt;cfif len(getSetting(&quot;AppMapping&quot;)) lte 1&gt;
	&lt;cfset setBaseURL(&quot;http://#getSetting(&apos;BaseHostName&apos;)#&quot;)&gt;
&lt;cfelse&gt;
	&lt;cfset setBaseURL(&quot;http://#getSetting(&apos;BaseHostName&apos;)#/#getSetting(&apos;AppMapping&apos;)#/index.cfm&quot;) /&gt;
&lt;/cfif&gt;
&lt;/code&gt;

That&apos;s it. Now whether you are clustered or not, you have control over the host name. Maybe this will make it into a future release of Coldbox. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Thu, 17 Jul 2008 16:51:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2008/7/17/Clustered-Environments-and-Coldbox-SES-Interceptor</guid>
				
			</item>
			
			<item>
				<title>BugLog Plugin for Coldbox gets Performance Upgrade</title>
				<link>http://www.escapekeys.com/blog/2008/7/14/BugLog-Plugin-for-Coldbox-gets-Performance-Upgrade</link>
				<description>
				
				Thanks to &lt;a href=&quot;http://www.oscararevalo.com/&quot;&gt;Oscar&lt;/a&gt; and &lt;a href=&quot;http://robgonda.com&quot;&gt;Rob&lt;/a&gt; for the quick feedback. Both pointed out flaws that needed addressing immediately. I made the appropriate updates, and after a quick review with &lt;a href=&quot;http://luismajano.com&quot;&gt;Luis&lt;/a&gt;, even more.

This release should be as optimized as it gets.

Oscar, indicated the importance of getting the accurate hostname when in a clustered environment.
He suggested doing so with:
&lt;code&gt;
hostname = CreateObject(&quot;java&quot;, &quot;java.net.InetAddress&quot;).getLocalHost().getHostName();
&lt;/code&gt;

Which from my research, is the best approach. However, as Rob mentioned in his comment, the idea of creating an object on every exception could create a nasty performance drain. Well, we all know Luis has packed Coldbox with all kinds of goodies, and of course in his &apos;utilities&apos; plugin he already had a method to getInetHost(), which does exactly what Oscar suggested. Except, since its a CB plugin, its already loaded and cached for us. So I now call a cached object&apos;s method when the BugLog plugin initializes and I store it in the instance data.

Next, had to get rid of the CFINVOKE, and not by replacing it with a CreateObject. The best way to do this is with lazy loading. You don&apos;t want to create and stash the webservice object in the plugin instance at creation, because CB plugins are initialized with the framework. Lazy loading will create the object the first time it is needed, and will persist as long as the plugin itself exists. Which you can define with the CACHE settings in the plugin metadata.

This is what the latest version looks like:
&lt;code&gt;
&lt;cfcomponent hint=&quot;Passes Exceptions and Bug Reports to BugLog&quot; extends=&quot;coldbox.system.plugin&quot; output=&quot;false&quot; cache=&quot;true&quot; cachetimeout=&quot;20&quot;&gt;

	&lt;cffunction name=&quot;init&quot; access=&quot;public&quot; returntype=&quot;BugLog&quot; output=&quot;false&quot;&gt;
		&lt;cfargument name=&quot;controller&quot; type=&quot;any&quot; required=&quot;true&quot;&gt;
		
		&lt;cfset super.Init(arguments.controller) /&gt;
		&lt;cfset setPluginName(&quot;BugLog&quot;)&gt;
		&lt;cfset setPluginVersion(&quot;1.2&quot;)&gt;
		&lt;cfset setPluginDescription(&quot;This is the BugLog plugin.&quot;)&gt;
		&lt;cfset setHostName(getPlugin(&apos;utilities&apos;).getInetHost()) /&gt;
		
		&lt;cfreturn this&gt;
	&lt;/cffunction&gt;
	
	&lt;!--- creates and logs bug report ---&gt;
	&lt;cffunction name=&quot;logError&quot; access=&quot;public&quot; output=&quot;No&quot; returntype=&quot;boolean&quot;&gt;
		&lt;cfargument name=&quot;oExceptionBean&quot; required=&quot;true&quot; type=&quot;any&quot; /&gt;
		&lt;cfargument name=&quot;sMessage&quot; required=&quot;true&quot; type=&quot;string&quot;  /&gt;
		&lt;cfargument name=&quot;sSseverityCode&quot; type=&quot;string&quot; default=&quot;error&quot; /&gt;
		
		&lt;cfparam name=&quot;session.cfid&quot; default=&quot;&quot; /&gt;
		&lt;cfparam name=&quot;session.cftoken&quot; default=&quot;&quot; /&gt;
		
		&lt;cfreturn getBugLogWS().logEntry(
									dateTime = now(),
									message = arguments.sMessage,
									applicationCode = application.applicationname,
									severityCode = arguments.sSseverityCode,
									hostName = getHostName(),
									exceptionMessage = arguments.oExceptionBean.getMessage(),
									exceptionDetails = arguments.oExceptionBean.getDetail(),
									CFID = session.CFID,
									CFTOKEN = session.CFTOKEN,
									userAgent = cgi.HTTP_USER_AGENT,
									templatePath = cgi.SCRIPT_NAME,
									HTMLReport = getController().getExceptionService().renderBugReport(arguments.oExceptionBean)
									) /&gt;
	&lt;/cffunction&gt;
	
	&lt;cffunction name=&quot;getBugLogWS&quot; access=&quot;public&quot; returntype=&quot;any&quot; output=&quot;false&quot;&gt;
		&lt;cfif not structKeyExists(instance,&apos;oBugLogWS&apos;)&gt;
			&lt;cfset setBugLogWS(getPlugin(&apos;webservices&apos;).getWSobj(&apos;BugLog&apos;)) /&gt;
		&lt;/cfif&gt;
		&lt;cfreturn instance.oBugLogWS /&gt;
	&lt;/cffunction&gt;
	
	&lt;cffunction name=&quot;setBugLogWS&quot; access=&quot;public&quot; returntype=&quot;void&quot; output=&quot;false&quot;&gt;
		&lt;cfargument name=&quot;oBugLogWS&quot; type=&quot;any&quot; required=&quot;true&quot; /&gt;
		&lt;cfset instance.oBugLogWS = arguments.oBugLogWS /&gt;
	&lt;/cffunction&gt;
	
	&lt;cffunction name=&quot;getHostName&quot; access=&quot;public&quot; returntype=&quot;string&quot; output=&quot;false&quot;&gt;
		&lt;cfreturn instance.sHostName /&gt;
	&lt;/cffunction&gt;
	
	&lt;cffunction name=&quot;setHostName&quot; access=&quot;public&quot; returntype=&quot;void&quot; output=&quot;false&quot;&gt;
		&lt;cfargument name=&quot;sHostName&quot; type=&quot;string&quot; required=&quot;true&quot; /&gt;
		&lt;cfset instance.sHostName = arguments.sHostName /&gt;
	&lt;/cffunction&gt;
	
&lt;/cfcomponent&gt;
&lt;/code&gt;

If you didn&apos;t notice, I now allow for you to pass in the Message, and Severity Code, along with the Exception Bean. The code in your exception handler should look something like this:
&lt;code&gt;
getPlugin(&apos;BugLog&apos;,true).logError(
											oExceptionBean = exceptionBean,
											sMessage = exceptionBean.getMessage(),
											sSeverityCode = &apos;onException&apos;);
&lt;/code&gt;

Hope this helps out, I will be updating the original post. Be sure to check that out if you haven&apos;t it contains useful information for those who are just getting this setup. 
				</description>
				
				<category>BugLog</category>				
				
				<category>ColdFusion</category>				
				
				<category>Coldbox</category>				
				
				<pubDate>Mon, 14 Jul 2008 17:14:00 -0400</pubDate>
				<guid>http://www.escapekeys.com/blog/2008/7/14/BugLog-Plugin-for-Coldbox-gets-Performance-Upgrade</guid>
				
			</item>
			</channel></rss>