Skip to the content.

This document is left as a historical roadmap – see the FW/1 Roadmap blog post for the current state of things.

Whilst you can read the FW/1 issues list to see what’s on the cards for future releases, several people have asked that I document things at a higher level so they can get a better sense of what’s coming.

5.x Lifecycle Restructuring

FW/1 5.0 will move the request lifecycle methods out of Application.cfc into a separate CFC. In addition, subsystems will also get a CFC that controls their lifecycle methods (subsystem.cfc). Since this will be a breaking change, there will be a 4.5 release to pave the way with deprecation warnings and exceptions, in the same way that the 2.5 release paved the way between 2.2 and 3.0.

4.x REST and Modernization

FW/1 4.2 is the latest stable release and is a maintenance release, providing a few small bug fixes and early, experimental support for ColdBox Modules. This is not yet documented because it is fairly limited (in terms of the number of public ColdBox modules it actually supports).

FW/1 4.1 was a maintenance release that fixed several bugs and introduced a handful of minor enhancements, including custom template engine support and pluggable session handling.

FW/1 4.0 was a major release that focused on improved REST support and Dependency Injection. The major version number change indicates that support for ACF9.0.2 was dropped to allow for the use of closures in the code as this provided some nicer syntax for some framework features. The core code was also modernized a little to take advantage of features in ACF10+ and Lucee 4.5+ in this release.

3.x Integrations

FW/1 3.5 added integraton of Clojure controllers and autowired Clojure services (this was removed in FW/1 4.1). It did this by bundling cfmljure and providing an extension to DI/1, as well as a controller adapter. It also provides direct support for the Lucee language (a new dialect of CFML, introduced in Lucee 5.0), as well as a new, improved way to add subsystems to an existing application. In addition, WireBox is better support as a DI option, and the folder naming conventions can be configured for the first time. It is a major release but also remains compatible with earlier 3.x releases.

FW/1 3.1 was the previous stable release, and it was primarily a maintenance release for 3.0, but it also bundled AOP/1 for the first time. It builds on core 3.0 features:

FW/1 3.0 bundled DI/1 and automatically creates bean factories following the convention of a model folder containing services and beans subfolders. Subsystems also follow this convention and use the main application’s bean factory as a parent to enable sharing of common services across subsystems.

FW/1 3.0 also slims down the framework by removing all of the service queue machinery and the start/end variants of controller methods, as well as coalescing all the framework components in a single folder framework (with org.corfield.framework replaced by framework.one).

2.5 Deprecations

FW/1 2.5 represented a large shift from 2.2.1 and deprecated a number of long-standing features that were removed in 3.0:

2.1/2.2 Release Stream

This is the previous stable stream. FW/1 2.5 is the last release in that stream. The 2.x versions support Adobe ColdFusion 9.0.1 and later, Lucee 4.5.0 and later, and Railo 3.2.2 and later.

Changes between 1.x and 2.x include:

1.x Release Stream

This is the legacy stream. FW/1 1.3 is the most recent legacy version, provided to support older CFML engines (Adobe ColdFusion 9.0.0 and earlier, Railo 3.1.x, Open BlueDragon). FW/1 2.x and 3.x will not run on these older CFML engines. Only critical fixes will be made to the 1.x release stream. Currently no new 1.x releases are planned.