FW/1 - The Invisible Framework

Framework One and friends...

FW/1 4.1.0 Release Candidate Available

| Comments

The first Release Candidate of FW/1 4.1.0 is available for testing.

This is a maintenance release for FW/1 4.0.0 that includes a number of bug fixes and some minor enhancements. The most important bug fix addresses a race condition that could cause transient beans to be partially resolved, leading to dependencies not being available under heavy load conditions. My thanks to John Whish and John Berquist for their work in tracking that down and providing a patch to address it!

Other bug fixes mostly focus on error handling.

The enhancements include making session handling pluggable, improving handling of missing views, and a new onReload() extension point. In addition, the process to test FW/1 has been overhauled: it now uses CommandBox and TestBox, making it much easier for contributors to run tests locally, as well as expanding the matrix of servers/versions that can be automatically tested.

Finally, Lucee 5.x is officially supported by this release. Although earlier versions of FW/1 “worked” on Lucee 5.x, the Clojure integration (introduced in FW/1 3.5) only worked in limited cases on Lucee 5.x so I could not consider it “officially supported” (for example, at World Singles, we could not upgrade to Lucee 5.x because it breaks our use of Clojure from CFML). In order to support Lucee 5.x officially, the Clojure integration functionality has been removed from FW/1. The files that provide Clojure integration are still available in the cfmljure repository on GitHub.

I consider this Release Candidate to be “production-ready” so I would appreciate as many users upgrading and testing it as possible!

Thank you to everyone who contributes to FW/1 in every way!

FW/1 4.0.0 Released!

| Comments

The Gold Release of FW/1 4.0.0 is available for general release and production use. The focus of this release is improved REST support:

  • JSON-encoded and URL-encoded POST / PUT 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.

Dependency Injection (DI/1) has also received a lot of attention in this release, including the addition of a flexible and powerful builder syntax for declaring beans.

See the FW/1 4.0.0 Change Log for full details of all the enhancements and bug fixes. Please note that there are a few breaking (or potentially breaking) changes since 3.5.1, with the most notable one being that Adobe ColdFusion 10 is now the minimum supported version. Support for Railo and Lucee has not changed.

This will be followed by a 4.1 maintenance release and a 4.5 migration release, which will pave the way for some breaking changes planned for the 5.0 release. For more details of future plans, consult the FW/1 Roadmap.

FW/1 4.0.0 Beta 2

| Comments

FW/1 4.0.0 Beta 2 is available. The only change from Beta 1 is that the enableJSONPOST setting has been renamed to decodeRequestBody. This is a breaking change if you were using that setting in the earlier Alpha / Beta builds: you will now get an exception and will need to update your application’s configuration.

For full details, read the Change Log for FW/1 4.0.

FW/1 4.0.0 Alpha 1

| Comments

FW/1 4.0.0 Alpha 1 is available. At this point FW/1 4.0.0 is feature complete – there may be a few very minor changes between now and the Beta, and then only bug fixes through the RC phase. We’ve been using this develop version in production at work all along so I consider it solid enough for serious work.

FW/1 4.0 and Beyond

| Comments

Happy New Year and Welcome to 2016!

FW/1 3.5 has been out for a few months now and I want to talk about what’s coming this year.

FW/1 3.5.0 Released!

| Comments

The Gold Release of FW/1 3.5.0 is available for general release and production use. The focus of this release is integration, bringing an improved way to add subsystems to an existing application, an easier way to add FW/1 to a legacy application, support for mixed CFML / Clojure applications, better support for WireBox, and full support for ForgeBox and CommandBox!

FW/1 3.5.0 Release Candidate 2 Available!

| Comments

The second Release Candidate of FW/1 3.5.0 is available for testing.

This Release Candidate contains a few bug fixes discovered since Release Candidate 1. I consider this stable enough to evaluate for production usage at this point – I expect this RC to be the Gold Release unless end user testing uncovers a showstopping issue in the next week or two!

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

FW/1 Out of the Box

| Comments

FW/1 is up on ForgeBox. ForgeBox is the npm / Maven of the CFML world. If you haven’t heard about it – or you think it’s only for “Box” products – you need to check it out! It’s a repository for CFML projects that can be easily installed via Command Box. Wait! You haven’t heard of that either? Gosh, you’ve got some reading to do! It’ll change the way you do development!

Go get it installed, then read on!

FW/1 New Releases Etc

| Comments

A couple of months have passed since FW/1 3.1 was released but things have been busy behind the scenes!

As indicated in July, work on FW/1 3.5 had been progressing in parallel (the first time two releases of FW/1 have been worked on concurrently!) and you can already download FW/1 3.5 Alpha 2. Yes, there was an Alpha 1 as well, but as work progressed on the massively overhauled 3.5 documentation, some important usability enhancements appeared and a new alpha was released within 24 hours! In particular, the Clojure and CFML Sitting in a Tree section has been extensively updated and includes a fully worked example of how to create FW/1 application from scratch using the REPL to create Clojure services and controllers, with CFML views and layouts!

You’ll also probably notice that the FW/1 website has had a facelift, finally getting the look’n’feel that Kevin Stannard designed five years ago. Better late than never, and huge thanks to Kevin again for his wonderful logo design and choice of colors! The 3.5 documentation now includes a table of contents on each page, making it easier to navigate (this will probably get backported to 3.1 and 3.0 at some point).

In addition to the ongoing work on FW/1 3.5, we also have an important bug fix release for the 3.1.x version which addresses a potential problem with REST APIs.

Finally, if you’re a CommandBox fan, we have good news: you can now easily install FW/1 3.1.2 and 3.5.0 (prerelease) via box. I’ll be blogging about this shortly. The 3.1.2 release is exactly the same as 3.1.1 (including the version number!) but it includes box.json for compatibility with ForgeBox / CommandBox. In addition, Tony Junkes has contributed an initial set of box commands for FW/1 that let you get up and running quickly. This will be covered in the next blog post.

FW/1 3.1 Release Candidate 2 Available!

| Comments

The second Release Candidate of FW/1 3.1 is now available for testing. You download FW/1 3.1 RC 2 from GitHub.

These are the changes since RC 1:

  • Major overhaul of AOP/1; intercept by CFC type; intercept by CFC name regex (Daniel Budde).
  • Routes now support regex restriction on placeholder variables (Guillaume Boivin).

For a complete list of changes since 3.0:

At this point, release 3.1 should be considered “production ready” and only critical bug fixes will be included between now and the “gold” release. It will be merged to master tomorrow in preparation for the final release at the weekend.

As noted before, release 3.5 will follow fairly quickly after that, with a focus on language integration, bringing automatic support for Clojure code in the Model and Controllers, as well as first class support for the Lucee Language in the Model, the Views, and the Controllers.