Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
The focus of the 4.0 release is on improving REST support. Improvements include:
- JSON-encoded and URL-encoded POST / PUT body support.
- Controllers have easy access to HTTP headers.
- Builder syntax for
- Support for user-supplied rendering functions.
- Integrated support for HTTP
- 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.
- 443 - Prevented
loadListenerfrom 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.
- 400 - By default,
propertydeclarations that contain a
defaultare now ignored for autowiring. In earlier versions of FW/1 (DI/1), such
propertydeclarations would have been treated as dependencies and autowired: you could override that behavior for typed properties by specifying
omitTypedProperties : truein your configuration. That is now the default behavior. In addition a new
omitDefaultedPropertiessetting has been added, also defaulted to
true, which is what tells FW/1 (DI/1) to ignore
propertydeclarations that contain a
default. If you need to restore the pre-4.0 behavior, add
omitTypedPropertiesto your configuration, set to
- 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.
- 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.
- 448 - Added
callClojure()extension point for
- 442 - In Alpha 1 and Beta 1, the
decodeRequestBodysetting was called
enableJSONPOST. As a migration aid, attempting to set
enableJSONPOSTwill throw an exception saying you should use
- 441 -
decodeRequestBodyhandles 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).
- 439 - Add
framework.facadecomponent to make FW/1 accessible out-of-band (for integration purposes).
- 434 - Add
- 419 - Add
- 418 - Allow
factoryBean()to accept function/closure.
- 417 - Add builder syntax for bean declarations.
- 416 - Delay bean discovery (where possible) until after declarations are processed.
- 415 - Add support for CFML-only and Clojure-only search paths.
- 414 - Add support for Boot to cfmljure.
- 413 -
layout()may now be called from controllers.
- 412 - Add
renderData()builder and add
header()to set HTTP response headers.
- 411 - Add
headersargument to controllers.
- 410 - Clarified license (Apache Source License 2.0), added LICENSE file.
- 409 - Dependency injection uses additional caches to improve
getBean()performance (by a factor of 9x-25x, depending on your usage and your CFML engine).
- 407 - DI/1 now has a public
- 400 - Dependency injection ignores typed/defaulted properties by default. This can be disabled via the
- 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
- 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.
- 392 - A wildcard resource match is generated for
$RESOURCESto provide per-resource error handling. This can be disabled via the
- 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.
- 389 - A new setting
decodeRequestBodytells FW/1 to deserialize the JSON-encoded body of an HTTP request.
- 388 - The
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 ).
- 387 - A new setting
preflightOptionstells FW/1 to provide built-in support for HTTP
OPTIONS. An additional setting
optionsAccessControlallows you to fine tune the
- 386 - Routes can now have
$*as an explicit wildcard for the HTTP method.
- 385 - The new
renderData()build syntax supports
statusText()to set the HTTP response status text.
- 328 - The
typemay be a function/closure that returns
content, and an optional
writerfor delivering the data to the browser.
- 449 - Fix race condition in DI/1's bean resolution caching.
- 446 - Fix bug in
nestedresource appeared in multiple
- 440 - Improved thread safety on application reloading. Even
reloadApplicationOnEveryRequest : trueshould be safe now!
- 429 - Removed
expandPath()in calls to
- 427 - Fixed bug that prevented
after()working in Clojure controllers; fixed bug that caused Clojure controller shims to be created twice.
- 422 - Fix bug with case insensitive routes.
- 420 - Fix bug in transient autowiring (caused by caching metadata).
- 395 - Corrected calls to