So – I am responsible for maintaining a legacy application that runs on ColdFusion with Fusebox 4. My Team Lead wanted to move the application to Fusebox 5 – to bring us up to the latest release of the framework.
Problem #1 – Fusebox isn’t being actively supported anymore.
Solution # 1 – After some hunting through Facebook groups and Slack channels – I was reminded of “The Wayback Machine” – a website that archives other websites over time. After finding the LAST release of the “FuseBox.org” websites – I downloaded the latest Fusebox core files. While I was doing that – I found a GitHub repo that actually had later files (after the demise of Fusebox.org). So… I grabbed those core files instead.
I set up a new ColdFusion site for testing. Then, I installed the Fusebox core files – and their “skeleton” app (so I could re-familiarize myself with the framework that I haven’t worked with in YEARS).
Problem #2 – Fusebox threw an error. It was telling me it couldn’t find one of the primary files for the app (fusebox.xml). The thing is – the file was there – exactly where it was supposed to be. UGH!
Solution #2 – Pulling my hair out! OK – No… My hair’s too short to pull out. So – back to Google groups, Facebook groups, and the Wayback Machine. All to no avail. At that point I went back to GitHub and wandered through some of the old “issues” for Fusebox. There, I found an “issue” that was “similar”. It appears someone tried to use Fusebox 5 with Lucee (an Open Source ColdFusion engine) and ran into a problem with certain function names. It seems that Lucee AND Fusebox both have a function named “getCanonicalPath” – and they both return DIFFERENT results. So – OF COURSE – the Lucee function took precedence – and gave Fusebox a result that didn’t work for Fusebox’s needs.
After a little research into the “guts” of ColdFusion – I found that the version we use (Adobe ColdFusion 2018) – ALSO has the EXACT same “problem”. So – I “branched” the Fusebox 5 Github Repo and changed the name of the Fusebox function from “getCanonicalPath” (the offending function name) to “getFBCanonicalPath” – and then renamed all the calls for that function in the Fusebox branch.
After deploying my NEW Fusebox branch to the test application site – VOILA! The app performs as expected.