FW/1 - The Invisible Framework

Framework One and friends...

FW/1 3.1 Release Candidate 1 Available!

| Comments

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

These are the changes since Beta 2:

  • renderData() supports "jsonp" (Giancarlo Gomez) and "html".
  • renderData() now causes a content reset before rendering the data (Giancarlo Gomez).
  • Subsystem-specific configuration can now override diEngine, diLocations, and diComponent. Previously it could only override diConfig.
  • setupApplication() no longer runs twice when first request is also a reload request.

For a complete list of changes since 3.0:

At this point, release 3.1 is “feature complete” and only bug fixes will be included between now and the “gold” release. 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.

FW/1 3.1 Beta 2 Available!

| Comments

The second beta version of FW/1 3.1 is available for testing. Whilst this is a minor bug fix and enhancement release, it now includes the first major rewrite of AOP/1. Documentation will follow shortly. Massive thanks to Daniel Budde for the rewrite! You can download FW/1 3.1 Beta 2 from GitHub, as well as read the full release notes there.

FW/1 2.5.2 & 2.2.3 - Important Updates!

| Comments

The thread safety issue affecting SES URLs and routes in FW/1 3.0 has been backported to the 2.2.x and 2.5.x releases so if you believe you are seeing incorrectly routed requests on either of those releases, you can update to the appropriate patch release:

These include a context root fix for 2.5.1 and 2.2.2.

If you are on an earlier release of FW/1 and believe you are seeing the issue that is fixed in this patch, please post on the FW/1 mailing list (I’d rather not backport this patch any further – I’d rather you upgraded!).

Once again, thank you to David Sedeño who highlighted this critical issue!

FW/1 3.0.2 - Important Update!

| Comments

If you are using SES URLs or routes with FW/1 3.0 you should download FW/1 3.0.2 and update your applications as soon as possible, to address a thread safety issue in the way that CGI.PATH_INFO was handled in FW/1 3.0. This is an update to 3.0.1 and includes a context root fix.

The symptoms you might see include incorrectly routed requests under load.

Thank you to David Sedeño who highlighted this critical issue!

Lucee and FW/1

| Comments

Today saw the announcement of the Lucee Association Switzerland and the release of a new open source CFML engine: Lucee 4.5.0.

For background on the new engine and the association behind it, read Adam Cameron’s blog post with Q&A about the launch.

I’ve already migrated all my local test environments to Lucee and can report that FW/1 (and DI/1 and cfmljure) all run beautifully on it - and it will be my primary test environment for future development of the FW/1 family going forward.

I’ve also migrated my local dev environment for World Singles over to Lucee and that went pretty smoothly too (I encountered just two issues - both minor, one already fixed in Lucee’s master repository).

The Lucee wiki has information about downloading and installing Lucee, as well as building Lucee from source, and how to migrate from Railo to Lucee (hint: it’s really easy - stop the server, remove railo.jar, add lucee.jar, start the server).

Have fun with Lucee!

FW/1 & Clojure Sitting in Tree

| Comments

Anyone following my tech trajectory will know that, after starting to learn Clojure in 2010, I’ve moved increasingly away from CFML and toward Clojure. In 2014, my team decided that Clojure would be our official primary language and all new development would happen there instead of in CFML. We still have a lot of CFML code in production - about 90kloc - but we consider it “legacy code” at this point. Most of that CFML code is a large ColdBox app that we built about five years ago (technically it’s three ColdBox apps but they share a lot of code). Our application Model has been slowly moving to Clojure so that we can reuse that code in new applications we’re building in Clojure. We’ve also been building new apps with FW/1 (and reusing both our CFML code and our Clojure code). We still like CFML as a templating language for views and our controllers - in our FW/1 apps at least - are often mostly just “glue” code that lets us call into our Clojure model code.

FW/1 3.0 RC 1 Available

| Comments

FW/1 3.0 has been in beta testing since August 2014 and lots of people are already running in production so I figured it was time to push out the first Release Candidate build.

The main focus of RC 1 has been bug fixes. Only a small number of functional enhancements have been added (notably getEnvVar() to retrieve the value of a system environment variable which can be useful during environment control processing).

Cfmljure Release 0.1.0

| Comments

I started cfmljure back in 2010, a few months after I started to learn Clojure, as a way to run Clojure code inside a CFML application. That early version worked - we’ve been using it in at World Singles since mid-2011 to integrate Clojure into our large ColdBox application, and updated versions of cfmljure have been in very heavy production usage since May 2012.

FW/1 3.0 Beta 1 Available

| Comments

Just over four weeks ago, I released FW/1 3.0 Alpha 1 and declared it feature complete. There were some big changes in that release and, in particular, some long-standing features were removed (after being deprecated in FW/1 2.5) and some recently-introduced features were also deprecated. Today I am releasing the first Beta version which includes bug fixes and usability enhancements, focusing primarily on DI/1 and AOP/1.

FW/1 3.0 Alpha 1 Available for Testing!

| Comments

I consider FW/1 3.0 to be feature complete at this point so I am releasing Alpha 1 for testing. I expect people to run into a few bugs - this release has some big changes in it, compared to the 2.x release stream - and it’s possible that new feature requests will crop up during alpha testing, but everything I wanted to change is in place.

FW/1 2.5 Is Released!

| Comments

This is a migration release to pave the way for breaking changes in Release 3.0. All examples have been updated to latest best practices and now use cfcscript exclusively. Examples use DI/1 0.5.0 to manage all beans and services (as framework.ioc), and no longer rely on start/end actions or the service() method.