Skip to content

Releases: framework-one/fw1

Release 4.0.0 Alpha 1

06 Mar 00:51
Compare
Choose a tag to compare
Release 4.0.0 Alpha 1 Pre-release
Pre-release

The focus of the 4.0 release is on improving REST support. Improvements include:

  • JSON-encoded POST body support.
  • Controllers have easy access to HTTP headers.
  • Builder syntax for renderData() result elements.
  • Support for user-supplied rendering functions.
  • Integrated support for HTTP OPTIONS verb.
  • Per-resource error handling.
  • Setting status text (in addition to status code) in HTTP responses.
  • Wildcard HTTP method support.

In addition, DI/1 has had a number of enhancements, including the addition of a builder syntax for programmatically declaring beans.

For more detail, see the Change Log for FW/1 4.0.

Release 3.5.0

21 Oct 19:55
Compare
Choose a tag to compare

The major new features in FW/1 3.5.0 are:

  • Subsystems 2.0. A new, more streamlined way to add subsystems to an existing FW/1 application has been added. Thank you to Steven Neiland for the inspiration and guiding principles! Read about Subsystems 2.0 and how they differ from the older approach (which is still supported). The examples have been reworked to use Subsystems 2.0 so you can see how it works in practice.
  • An Alternative Application Structure is now supported that allows you to create FW/1 applications that do not require Application.cfc extends the FW/1 component. Read about the Alternative Application Structure. Some of the examples have been updated to use this approach so you can see how it works in practice.
  • Clojure integration. If you have Leiningen installed (Clojure's build tool) then it is very easy to write services and/or controllers in Clojure and have FW/1 automatically integrate those into your CFML application. Read about mixing CFML & Clojure for more details. An example of Clojure integration is provided in the repository (you'll need Leiningen installed for that example to run).
  • ForgeBox / CommandBox support. FW/1 now has a box.json file and is hosted on ForgeBox so it can be easily installed via CommandBox.

In addition to the major features, the following enhancements have been added:

  • redirect() allows queryString to be a struct, like buildURL().
  • isFrameworkReloadRequest() is now public in case an application needs to take action when the framework is reloaded.
  • getSubsystemSectionAndItem() added to supplement getFullyQualifiedAction() (the latter omits the subsystem if it is empty).
  • The WireBox adapter now supports custom binders.
  • The conventions used for various folder names can now be overridden in the framework configuration.

And the following bugs have been fixed:

  • 377 - AOP/1 now allows a single interceptor to be applied to multiple objects.
  • 361 - renderData() could kill sessions (this was backported to 3.1.1).
  • 336 - account for expandPath() returning the wrong directory on ACF11 when the path has a trailing /.

Finally, FW/1 includes experimental support for Lucee Language, so if you are running a prerelease build of Lucee Server that has Lucee Language support enabled, you can write controllers and views etc in .lc or .lucee files and FW/1 will use them.

You can read the full list of changes since 3.1 on GitHub, along with
accepted pull requests since 3.1.

Release 3.5.0 RC 2

06 Oct 22:33
Compare
Choose a tag to compare
Release 3.5.0 RC 2 Pre-release
Pre-release

Changes since RC 1:

  • Fix layout display issue when using non-default subsystem delimiter #376 @dfair98
  • Fix subsystem model management behavior (regression from 3.1) #378
  • Fix subsystem delimiter edge case (regression from 3.1) #379
  • Expose Clojure integration example conditionally (as app and as subsystem) #380
  • Add internal trace type #381 @ryanguill
  • Fix AOP/1 issue with multiple interceptors #382 ( #377 ) @dbudde

Release 3.5.0 RC 1

22 Sep 19:22
Compare
Choose a tag to compare
Release 3.5.0 RC 1 Pre-release
Pre-release

Changes since Beta 2:

  • Fixed concurrent modification exception in edge case DI/1 setter analysis #375
  • Improved debugging of DI/1 metadata failures (by adding more information to exceptions) #374
  • Fixed view() (and layout) handling with Subsystems 2.0 #373
  • isFrameworkReloadRequest() is now public #372
  • Clojure integration should ignore editor temporary files #371
  • Subsystem bean factory handling more consistent #370
  • Updated examples that use Alternative Application Structure

Release 3.5.0 Beta 2

16 Sep 01:14
Compare
Choose a tag to compare
Release 3.5.0 Beta 2 Pre-release
Pre-release

Changes since Beta 1:

Bug fixes:

  • Examples of Alternative Application Structure should work in more installations / configurations (6helloclojure, userManager)
  • Dotted CFC path deduction tweaked to fix an edge case bug

DI/1:

  • Add liberal plurals option (so libraries is treated as the plural of library, for example)

Subsystems:

  • setView() / setLayout() did not respect (new) subsystems #368
  • Ignore absolute / root-relative diLocations for subsystems

Clojure integration:

  • Add server scope caching option
  • More flexible namespace-to-bean name mapping #366
  • Improved null handling in conversion functions

Release 3.5.0 Beta 1

10 Sep 18:26
Compare
Choose a tag to compare
Release 3.5.0 Beta 1 Pre-release
Pre-release

Changes since Alpha 2:

  • Resolved per-application mapping issue with Alternative Application Structure in FW/1
  • Resolved edge case dotted path detection in DI/1
  • Figured out box.json ignore patterns

Release 3.5.0 Alpha 2

06 Sep 09:34
Compare
Choose a tag to compare
Release 3.5.0 Alpha 2 Pre-release
Pre-release

Changes since Alpha 1:

  • Improves CFML / Clojure interop when project.clj depends on cfml-interop library.
  • Improves backward compatibility of legacy subsystem auto-detection.

Release 3.1.2

06 Sep 23:01
Compare
Choose a tag to compare

Identical to 3.1.1 with addition of box.json for ForgeBox / CommandBox usage.

Release 3.5.0 Alpha 1

05 Sep 00:13
Compare
Choose a tag to compare
Release 3.5.0 Alpha 1 Pre-release
Pre-release

The first "feature complete" prerelease build of FW/1 3.5.0 focuses on integration and includes:

  • Support for controllers and services to be written in CFML, Clojure, or Lucee
  • Support for views and layouts to be written in CFML or Lucee
  • Configurable folder names to set your own conventions (for controllers, layouts, subsystems, and views)
  • Support for Application.cfc to use FW/1 without extending framework.one
  • A new, cleaner, more consistent set of conventions for adding subsystems to an existing application

For a full list of changes, see https://github.com/framework-one/fw1/issues?q=is%3Aissue+milestone%3A3.5+is%3Aclosed

Release 3.1.1

02 Sep 20:18
Compare
Choose a tag to compare

Reverts #342 to fix #361 -- renderData() no longer flushes content or headers generated by the application.

This should solve any problems with cross-origin headers or some session-based bugs when using REST APIs powered by renderData().

The downside is that if you output any debugging code, it will be part of the response (as it was in 3.0) and potentially break your REST call.