Fusebox 5.1 Release Notes

Fusebox

Fusebox 5.1 Release Notes

This page covers the tickets closed as part of the Fusebox 5.1 release. Tickets are listed in two groups: bug fixes and enhancements. Each ticket is listed in order with a short summary of what has changed. For more detail, you can read about the Fusebox 5.1 enhancements (a work in progress right now).

Bugs fixed in Fusebox 5.1

Ticket Description Notes
#99 cfdirectory date last modified in O/S sensitive <cfdirectory> returns date/time last modified to one minute resolution on some systems and this caused changes in circuit XML files to be ignored. Changed the code that retrieves the date/time last modified to use Java code so that it is guaranteed to provide seconds. Note that this means Fusebox 5.1 will not run on BlueDragon.NET 6.2.1 (due to a bug - fixed in BlueDragon.NET 7).
#138 Parse File Lock Timeout The timeouts used on various <cflock> tags inside the framework were not consistent which could cause locks to timeout in certain circumstances when waiting for each other. The timeout values are all consistent now which should eliminate (or at least reduce) instances of this timeout problem.
#140 attributes scope not available in exception handler You could not refer to the attributes scope in an error template file in Fusebox 5. This has been fixed in Fusebox 5.1.
#150 Extra local vars in fuseboxCircuit The unused variables have been removed.
#153 Element fusebox is undefined after renaming application If you renamed the ColdFusionapplication (in your <cfapplication> tag), Fusebox sometimes got confused and failed to recover properly. This has been fixed in Fusebox 5.1.
#155 Fuseaction permissions is handled incorrectly. In Fusebox 5, if you had permissions on some <fuseaction> tags, they incorrectly cascaded onto subsequent <fuseaction> tags that had no permissions. The workaround was to explicitly specify permissions="". In Fusebox 5.1, permissions are correctly handled on <fuseaction>s.
#157 Expand Boolean literals that are acceptable Fusebox 4.1 allowed "yes" and "no" for Boolean attributes, as well as "true" and "false". Fusebox 5 only allowed "true" and "false". Fusebox 5.1 now allows "yes" and "no", restoring compatibility.
#159 DTD says fusebox.xml items are compulsory The DTD has been updated so that optional items are indicated correctly.
#160 Sequence of conditional logic in <IF> bvlock Fusebox 5 did not allow <false> to precede <true> inside an <if> verb. Fusebox 5.1 allows either order, just like Fusebox 4.1 did.
#162 Include bug If you used a variable for the include file name in an optional <include> verb, Fusebox 5 sometimes did not handle the absence of the included file correctly. This has been fixed in Fusebox 5.1.
#163 Paths with . in the folder names fail when using relative paths In Fusebox 5, paths that included both /../ and directory names with a . in them were not resolved correctly in all situations. Fusebox 5.1 reverts pretty much to the old canonical path logic from Fusebox 4.1 to fix this bug.
#166 development-full-load not working on other Locales Duplicate of #99 above.
#167 Problem with development-full-load Duplicate of #99 above.
#174 Fusebox.dtd requires all top level items for validation Fixed a number of errors in the DTDs
#176 getValue() Should Only Return Specified Key Fixed newly added fuseboxEvent object
#177 isDefined issue with fusebox 5 in circuit Actually an error in <if> handling after fixing #160 above
#185 Pre/postfuseaction callsuper="true" is ignored This was a bug introduced during implementation of #139 below
#186 <postfuseaction callsuper="true" /> bug Duplicate of #185 above

Enhancements added in Fusebox 5.1

Ticket Description Notes
#54 FUSEBOX_CALLER_PATH for chained includes If you try to include a Fusebox application's index.cfm from a file in another directory, Fusebox 5 miscalculated the location of the application root and applications failed to run. This optional variable can now be set in the application's index.cfm file to override the default calculation and force Fusebox 5.1 to recognize a specific application root.
#73 Plugins ought to have custom attributes too The <plugin> declaration can now have custom XML attributes, indicated by XML namespace declarations on the enclosing <fusebox> tag. The fuseboxPlugin object now has a getCustomAttributes(namespace) method that returns custom attributes for the specified namespace, just as Fusebox 5 provided for classes and fuseactions.
#89 Add javascript support for <relocate/> tag type="javascript" causes the <relocate> verb to generate JavaScript? that will cause a redirect in the browser. See also #128 below.
#95 Global Lexicons/Errortemplates/plugins Fusebox 5.1 allows easier sharing of common application elements between multiple Fusebox applications. You can override the default location of lexicons, error templates and plugins (and, in fact, the parsed files) by specifying <parameter> tags in the fusebox.xml file. You can specify relative paths (relative to the application root) or absolute paths which will be treated as relative to your ColdFusion webroot or resolved via ColdFusionmappings. An individual lexicon's location can be overridden by specifying an absolute path in the XML namespace declaration. An individual plugin's location can be overridden by specifying an absolute path in the optional path attribute in the <plugin> declaration.
#128 Add support for 301 Moved Permanently to relocate verb type="moved" causes the <relocate> verb to generate a status code of 301 and a status header of Moved Permanently along with a Location header to force a redirect. See also #89 above.
#135 Strict mode check for both .xml and .xml.cfm files If you have both fusebox.xml and fusebox.xml.cfm, Fusebox silently selects the .xml.cfm version. Similarly with circuit.xml and circuit.xml.cfm. In Fusebox 5.1, enabling strict mode will cause the presence of both versions of a given file to be treated as an error.
#139 Add absolute path support to a circuit definition in the fusebox.xml file The <circuit> declaration in the fusebox.xml file now allows a relative="true|false" attribute to specify whether the path attribute specifies a relative path (relative to the application root) or an absolute path that is relative to the ColdFusion webroot or is resolved via a ColdFusionmapping. This allows circuits to be moved outside of the application root more easily, as well as allowing multiple Fusebox applications to share circuits more easily.
#141 change to xfa verb processing to support dots in xfa value In Fusebox 5 and earlier, the <xfa> value attribute could include URL parameters and those in turn could include dots (.) in the parameter names. This confused the logic that tried to add the default circuit name to <xfa> values that were not of the form circuitname.fuseactionname. In order not to break any programs relying on that bug, Fusebox 5.1 does not change the default behavior but when strict mode is enabled, URL parameters are no longer allowed in an <xfa> value. In addition, <xfa> now allows <parameter> child tags to specify URL parameters (name/value pairs).
#158 Better error when phase contains non-plugin declarations The <phase> declaration in fusebox.xml now only allows <plugin> declarations with a clearer error message if you tried to put regular <fuseaction> verbs in a <phase> declaration.
#164 Provide an "event" object to encapsulate attributes scope so that CFC usage becomes easier For folks who like an object-oriented style, a new variable, "event", exists alongside the "attributes" scope variable. The "event" variable is an object that provides "hasValue(key)", "getValue(key)" and "setValue(key,value)" methods (just like the event object in Model-Glue).
#165 Add build.xml to make deploying skeleton easier An ant build script has been added to the skeleton application. If you change the target property to match your own webroot, the script will copy the skeleton files into your webroot as "skeleton". If you use CFEclipse, this means that setting up new Fusebox applications becomes a matter of a few mouse clicks.
#168 Add sample lexicons for ColdSpring and Reactor Sample lexicons - provided by Nathan Strutz and Qasim Rasheed - have been added to the skeleton application that make it easy to use ColdSpring and Reactor with your Fusebox applications. See the instructions inside these files for more details.
#180 <if> does not validate children Now it checks that <if> only contains <true> and <false> children
#184 Add xfa= attribute to <relocate> Instead of specifying a URL, you can specify just an XFA name. Also took this opportunity to add a number of new fusebox.xml parameters to control how URLs are constructed and provided default 'self' and 'myself' values

Other miscellaneous tickets closed in Fusebox 5.1

Ticket Description Notes
#12 <do> not in verb parent context Closed, won't fix. Not worth the effort.
#30 Parsed file indentation has never worked Closed, won't fix. Not worth the effort - or the performance trade off.
#48 Replace cfparam with cfif structKeyExists where appropriate Closed, won't fix. Not worth the effort since this is really just a stylistic issue.
#51 Use structKeyExists() instead of isDefined() in parsed files Closed, won't fix. Not worth the effort since this is really just a stylistic issue (and might introduce a performance overhead).
#74 Whitespace suppression on include verb Closed, invalid. Content variables provide the same functionality that was requested in this ticket (it wasn't really about whitespace).
#169 Change copyright to TeraTech TeraTech, Inc. own the Fusebox name and code now. The source code license has also been changed from the old "Fusebox License" (a modified Apache Software License 1.0) to a standard Apache Software License 2.0 which should be more acceptable to commercial organizations.
#170 Create the public 5.1 Beta 'nuff said!
#173 Fusebox 5.1 not compatible with BlueDragon 6.2.1 Server FREE Edition Updated the readme and release notes to show BlueDragon 6.2.1 is not supported - BlueDragon 7.0 is required
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.