Skip to content

Commit 7bd789c

Browse files
committed
Make 4.0 the current version
1 parent f0ea85e commit 7bd789c

File tree

9 files changed

+851
-208
lines changed

9 files changed

+851
-208
lines changed

source/documentation/cfml-and-clojure.markdown

Lines changed: 250 additions & 62 deletions
Large diffs are not rendered by default.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
layout: page
3+
title: "Change Log for FW/1 and Friends"
4+
date: 2016-09-16 20:00
5+
comments: false
6+
sharing: false
7+
footer: true
8+
---
9+
The following changes are part of FW/1 4.0, DI/1 1.2.0, and cfmljure 1.1.0.
10+
11+
Summary
12+
---
13+
The focus of the 4.0 release is on improving REST support. Improvements include:
14+
15+
* JSON-encoded and URL-encoded POST / PUT body support.
16+
* Controllers have easy access to HTTP headers.
17+
* Builder syntax for `renderData()` result elements.
18+
* Support for user-supplied rendering functions.
19+
* Integrated support for HTTP `OPTIONS` verb.
20+
* Per-resource error handling.
21+
* Setting status text (in addition to status code) in HTTP responses.
22+
* Wildcard HTTP method support.
23+
24+
In addition, DI/1 has had a number of enhancements, including the addition of a builder syntax for programmatically declaring beans.
25+
26+
Breaking Changes
27+
---
28+
29+
* [443](https://github.com/framework-one/fw1/issues/443) - Prevented `loadListener` from being accidentally inherited and run on a managed subsystem bean factory (it should only run on the main parent factory). This is potentially breaking: if you relied on running load listeners multiple times -- however, that was never a recommended approach.
30+
* [400](https://github.com/framework-one/fw1/issues/400) - By default, `property` declarations that contain a `type` or `default` are now ignored for autowiring. In earlier versions of FW/1 (DI/1), such `property` declarations would have been treated as dependencies and autowired: you could override that behavior for _typed_ properties by specifying `omitTypedProperties : true` in your configuration. That is now the default behavior. In addition a new `omitDefaultedProperties` setting has been added, also defaulted to `true`, which is what tells FW/1 (DI/1) to ignore `property` declarations that contain a `default`. If you need to restore the pre-4.0 behavior, add `omitDefaultedProperties` and/or `omitTypedProperties` to your configuration, set to `false`.
31+
* [391](https://github.com/framework-one/fw1/issues/391) - Adobe ColdFusion 9.0.2 is no longer a supported platform. FW/1 4.0 relies on closure support and therefore requires Adobe ColdFusion 10 or later. Support for Railo and Lucee has not changed.
32+
* [390](https://github.com/framework-one/fw1/issues/390) - If you override `missingBean()` in DI/1, read the documentation carefully as this is now an official extension point with different behavior to previous releases.
33+
34+
Enhancements
35+
---
36+
37+
* [448](https://github.com/framework-one/fw1/issues/448) - Added `callClojure()` extension point for `cljcontroller.cfc`.
38+
* [442](https://github.com/framework-one/fw1/issues/442) - In Alpha 1 and Beta 1, the `decodeRequestBody` setting was called `enableJSONPOST`. As a migration aid, attempting to set `enableJSONPOST` will throw an exception saying you should use `decodeRequestBody` instead.
39+
* [441](https://github.com/framework-one/fw1/pull/441) - `decodeRequestBody` handles URL-encoded form variables, which is typical for PUT, as well as JSON-encoded form bodies (see issue 389 below for the introduction of this setting).
40+
* [439](https://github.com/framework-one/fw1/issues/439) - Add `framework.facade` component to make FW/1 accessible out-of-band (for integration purposes).
41+
* [434](https://github.com/framework-one/fw1/issues/434) - Add `getRoutePath()` convenience method.
42+
* [419](https://github.com/framework-one/fw1/issues/419) - Add `getCGIRequestMethod()` convenience method.
43+
* [418](https://github.com/framework-one/fw1/issues/418) - Allow `factoryBean()` to accept function/closure.
44+
* [417](https://github.com/framework-one/fw1/issues/417) - Add builder syntax for bean declarations.
45+
* [416](https://github.com/framework-one/fw1/issues/416) - Delay bean discovery (where possible) until after declarations are processed.
46+
* [415](https://github.com/framework-one/fw1/issues/415) - Add support for CFML-only and Clojure-only search paths.
47+
* [414](https://github.com/framework-one/fw1/issues/414) - Add support for Boot to cfmljure.
48+
* [413](https://github.com/framework-one/fw1/issues/413) - `layout()` may now be called from controllers.
49+
* [412](https://github.com/framework-one/fw1/issues/412) - Add `renderer()` to access `renderData()` builder and add `header()` to set HTTP response headers.
50+
* [411](https://github.com/framework-one/fw1/issues/411) - Add `headers` argument to controllers.
51+
* [410](https://github.com/framework-one/fw1/issues/410) - Clarified license (Apache Source License 2.0), added LICENSE file.
52+
* [409](https://github.com/framework-one/fw1/issues/409) - Dependency injection uses additional caches to improve `getBean()` performance (by a factor of 9x-25x, depending on your usage and your CFML engine).
53+
* [407](https://github.com/framework-one/fw1/pull/407) - DI/1 now has a public `hasParent()` predicate method.
54+
* [400](https://github.com/framework-one/fw1/issues/400) - Dependency injection ignores typed/defaulted properties by default. This can be disabled via the `omitDefaultedProperties` and `omitTypedProperties` settings.
55+
* [399](https://github.com/framework-one/fw1/issues/399) - `getBean()` now accepts an optional second argument that can override beans in the factory to provide constructor arguments to be used in the bean's `init()` call.
56+
* [394](https://github.com/framework-one/fw1/issues/394) - Improved error messages when DI/1 attempts to use a CFC that has syntax errors to include filename/line number of the underlying error.
57+
* [392](https://github.com/framework-one/fw1/issues/392) - A wildcard resource match is generated for `$RESOURCES` to provide per-resource error handling. This can be disabled via the `perResourceError` setting.
58+
* [390](https://github.com/framework-one/fw1/issues/390) - DI/1 now considers `missingBean()` to be a fully supported extension point that allows users to handling `getBean()` calls for unknown beans by any means, including creating and returning their own beans.
59+
* [389](https://github.com/framework-one/fw1/issues/389) - A new setting `decodeRequestBody` tells FW/1 to deserialize the JSON-encoded body of an HTTP request.
60+
* [388](https://github.com/framework-one/fw1/issues/388) - The `statusCode` and `jsonpCallback` arguments to `renderData()` have been deprecated and a new builder syntax has been added to support all possible parameters available when rendering data, e.g., `renderData( "json" ).data( result ).statusCode( 202 )`.
61+
* [387](https://github.com/framework-one/fw1/issues/387) - A new setting `preflightOptions` tells FW/1 to provide built-in support for HTTP `OPTIONS`. An additional setting `optionsAccessControl` allows you to fine tune the `Access-Control-*` headers returned.
62+
* [386](https://github.com/framework-one/fw1/issues/386) - Routes can now have `$*` as an explicit wildcard for the HTTP method.
63+
* [385](https://github.com/framework-one/fw1/issues/385) - The new `renderData()` build syntax supports `statusText()` to set the HTTP response status text.
64+
* [328](https://github.com/framework-one/fw1/issues/328) - The `renderData()` `type` may be a function/closure that returns `contentType`, rendered `content`, and an optional `writer` for delivering the data to the browser.
65+
66+
Bug Fixes
67+
---
68+
69+
* [449](https://github.com/framework-one/fw1/issues/449) - Fix race condition in DI/1's bean resolution caching.
70+
* [446](https://github.com/framework-one/fw1/issues/446) - Fix bug in `$RESOURCES` when `nested` resource appeared in multiple `resources`.
71+
* [440](https://github.com/framework-one/fw1/issues/440) - Improved thread safety on application reloading. Even `reloadApplicationOnEveryRequest : true` should be safe now!
72+
* [429](https://github.com/framework-one/fw1/issues/429) - Removed `expandPath()` in calls to `cachedFileExists()`.
73+
* [427](https://github.com/framework-one/fw1/issues/427) - Fixed bug that prevented `before()` / `after()` working in Clojure controllers; fixed bug that caused Clojure controller shims to be created twice.
74+
* [422](https://github.com/framework-one/fw1/pull/422) - Fix bug with case insensitive routes.
75+
* [420](https://github.com/framework-one/fw1/issues/420) - Fix bug in transient autowiring (caused by caching metadata).
76+
* [395](https://github.com/framework-one/fw1/pull/395) - Corrected calls to `buildURL()` in examples.

0 commit comments

Comments
 (0)