Release of Upgrade Path for Legacy Fusebox

So rather than wait around for someone to pass a Fusebox application my way, I realized that there actually was still an old FB3 sample application (all of one fuseaction) available for download from the fusebox site. So I grabbed that code, combined it with the necessary bits from a traditional FB5.5 skeleton and have created an upgrade path from FB3 to FB5.5. You can download the code below.

It actually wasn't tragically difficult to implement this. I know a number of folks seem to have been under the impression that this would be a big challenge. It turns out that there's a relatively convenient and simple way to implement this. There are a couple of things that contributed to this being possible (or at least easier). One is that the skeletons for these versions don't share any files. FB3 didn't have an Application.cfc and FB5 doesn't need an index.cfm, that was handy. Secondly if FB5 fails to find an event, it throws a convenient "fusebox.undefinedFuseaction" error that can be trapped and used as an entry point to run the FB3 app. Because FB3 runs entirely within the unused index.cfm, it's easy at that point to fail over to FB3.

There are of course limitations. You can't <do> an FB3 fuseaction from within an FB5 event for example. The point here was not to create a total mesh of the two environments, but rather to create a discrete way to support legacy code while continuing with future development on the newer versions of Fusebox. Personally I think this achieves that goal rather nicely. :)

For anyone interested in the code, the download is in the menu below (between the comments link and del.icio.us). The included release notes will tell you everything you need to know to get it running. Hopefully this will find its way into the 5.5.2 release of the Fusebox core. :)

Related Blog Entries

Comments
Adam Haskell's Gravatar Stupendous! I can't say I've looked at the code so I might come back and call you and idiot but the way you describe it sounds like a fairly good solution. Maybe I could work something in like a plugin to call the FB3 do's in FB5 to help blend it a bit better. Looks like you Sir Issac have given me something to do over the weekend while watching DragonBall (again, because I like it so much).
# Posted By Adam Haskell | 10/31/08 9:01 AM
ike's Gravatar Glad to help. :)
# Posted By ike | 10/31/08 1:05 PM
Mike Ritchie's Gravatar Nicely done! Now with the noXML variant of FB5.5 it should be possible to extend this even more, though not sure the best way to do it. Maybe create a fuseboxFB3Circuit object? that would then cfinclude the relevant fbx_Switch file?
# Posted By Mike Ritchie | 10/31/08 1:36 PM
ike's Gravatar Thanks Mike. Although that might be a possibility I'd be hesitant to try to create an FB3Circuit.cfc for a couple of reasons. One of those reasons is that I wanted to keep the impact on the FB5 code minimal (although I'm not sure how Adam feels about that goal)... But beyond that my concern (which also may be unfounded) would be that it might start running into problems related to the differences between the way FB3 and FB5 handle things like layouts.

I actually don't use Fusebox for my own projects though, so my own opinions on it are probably not the most important here... but I saw an area where it seemed like some people were struggling with upgrading and I wanted to help out. :)
# Posted By ike | 10/31/08 2:26 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.5.006. | Protected by Akismet | Blog with WordPress