Release Notes
Release Notes for ColdBox 7.0.0
Last updated
Was this helpful?
Release Notes for ColdBox 7.0.0
Last updated
Was this helpful?
The full release notes per library can be found below. Just click on the library tab and explore their release notes:
Router resources doesn't seem to respect group() closures
Event Caching Does Not Preserve HTTP Response Codes
`getFullURL` encodes the query string when it should not.
Scoping lookup bug in Lucee affects route()
Event Cache Response Has Status Code of 0 (or Null)
make event caching cache keys lower cased to avoid case issues when clearing keys
render inline PDF (CB 6.8.1) throws a 500 error
RestHandler OnError() Exception not checking for empty `exception` blocks which would cause another exception on development ONLY
BiConsumer proxy was making both arguments required, when they can be null so execution fails
Woops and Adobe CF needs a double check if session/client is defined even if sessionManagement/clientManagement is defined
virtual app controller scoping is missing on ocassion due to this.load|unload flags
Integration Tests do not support NoRender()
RestHandler.cfc missing exception information on InvalidCredentials & TokenInvalidException
Invalid DateFormat Mask in Whoops.cfm
Update the Router.cfc to look at not only the cgi host but the forwarded hosts
calling function "view" from within function which has an argument named "view" causes error.
viewLocations struct does not exist in function renderer.layout() on line 684 if nolayout = true
Attempts to use `getHTMLBaseURL()` inside of Async Task Fail on ACF
Missing java casting on arrayRange() method ont the asyncmanager
Ensure modules are applied to routing action structs when necessary #243
Render collections items and counter variables are not thread safe since we migrated to a singleton renderer
urlMatches in the request context does not account for the path to be larger than the requested uri
Overridden events in preProcess interceptions assume event cache configuration of original request
Base Model and Interceptor Tests where overriding application.wirebox in integration tests
Var scoping issue on `includeUDF` in the super type
ModuleAwareness : Wirebox Injector Lookup Should Check Current Module First
Implement abort logic onAuthenticationFailure on RESTHandler
Reuse existing controller in getMockRequestContext()
JSON Serialization in `forAttribute` Does Not Support ACF Prefixing
Do not allow injection of the same applicatio helper on the same target
Please add more debugging info to REST handler
When whoops error template defaults to public for non-dev, the messaging is very confusing
ColdBox DebugMode with inDebugMode() helper
Reworking of several rest handler exception methods so they log the issues instead of announcing `onException` events and announce their appropriate events , onAuthenticationFailure, onAuthorizationFailure, onValidationException, onEntityNotFoundException
ColdBox Proxy should ignore the routing service captures to avoid redirects or returns
encapsulate route finding by name to the actual router itself
Compatibility layer for env methods in the Util object: getSystemSetting(), getSystemProperty(), getEnv()
Allow for Flash RAM to use a third party provided tracking variable via the new setting identifierProvider
Allow unregistering closure listeners
Provide ability for handlers/interceptors/etc. to have inherent self-knowledge of the module they live in for modulesettings/moduleConfig injections
Allow passing interception point first in interceptor listen() method
Whoops updates galore! SQL Syntax highlighting, json formatting and highlighting, and more
New Flow delegate helpers for functional usage everywhere in ColdBox land
New convention for module setting overrides: config/{moduleName}.cfc
PostLayoutRender and PostViewRender now pass which view/layout path was used to render
postEvent now get's new interceptData: ehBean, handler and data results
this.unloadColdBox is false now as the default thanks to the virtual test app
New `back()` function in super type that you can use to redirect back to your referer or a fallback
new toJson() helper in the Util class which is delegated in many locations around the framework to add struct based query serialization and no dubm security prefixes
Add in functionality to exclude patterns via router's findRoute()
New convention for coldfusion tags: includes/tags. Every ColdBox app will register that location as a repository for custom tags for your application
Lazy loading and persistence of engine helper to assist in continued performance and initial load speed
New core delegates for smaller building blocks, which leverages the `@coreDelegates` namespace
New coldbox based delegates mapped with `@cbDelegates`
core json utils now include a prettyJson() and a toPrettyJson() utilities
New getEnv() method on the base test class to get access to the env delegate for inquiring for env and java properties
ChronoUnit becomes the official cb Date Time Helper to assist with date/time conversions and formatting
New super type methods: getDateTimeHelper() getIsoTime() to assist with recurrent iso time conversions in modern APIs and responses
Add three environment location helpers in the controller and supertype: isProduction(), isDevelopment(), isTesting()
Request Context setRequestTimeout() method encapsulation, so you can control the time limit of a request
setRequestTimeout() mock in testing Request Context so handlers cannot override testing timeouts
Module Inception Isolation - every module has it's own injector that matches the module hierarchy
All rendering methods now accept a `viewVariables` argument that allows you to add variables into the view's `variables` scope
New request context method: `routeIs( name ):boolean` that evaluates if the passed name is the same as the current route
request context `getFullUrl()` renamed to `getUrl()`
request context `getFullPath()` renamed to `getPath()`
request context `event.getUrl( withQuery:true )` new argument `withQuery` to allow adding the query string or not
request context `event.getPath( withQuery:true )` new argument `withQuery` to allow adding the query string or not
New request context methods: `getPathSegments():array, getPathSegment( index, defaultValue ):string` so you can segment the incoming url path
Add `persist` and `persistStruct` to the `back()` method in the supertype
Add route names to resourceful routes according to conventions
this.moduleInjector enables modular injector hiearchy. By default it is false until ColdBox 8
New super type method: `getRootWireBox()` to get an instance of the root wirebox in the application
COMPAT: jsonQueryFormat has been removed in preference to "struct".
routes.cfm Support Removal
populateModel deprecated - refactored to just populate() in the supertype methods
Removal of uniqueUrls boolean indicator for URL routing, since Pretty URLs are now the standard. This rerouting feature needs to be removed.
BeanPopulator renamed to ObjectPopulator to be consistent with naming
WireBox caches Singletons even if their autowired dependencies throw exceptions.
Wirebox - add onInjectorMissingDependency event
Ability to remove specific objects from wirebox injector singleton's and request scopes via a `clear( key )` method
Object Delegators
Object Populator is now created by the Injector and it is now a singleton
Object populator now caches orm entity maps, so they are ONLy loaded once and population with orm objects accelerates tremendously
object populator cache relational metadata for faster population of the same objects
New `this.population` marker for controlling mas population of objects. It can include an `include` and and `exclude` list.
Lazy Properties
Property Observers
Transient request cache for injections and delegations
New config setting transientInjectionCache to enable or disable globally, default is true
You can now instantiate an Injector with the `binder` argument being the config structure instead of creating a binder
New injection DSL for ColdBox Root Injector `coldbox:rootWireBox`
Injectors can now track the root injector by having a root reference via `getRoot(), hasRoot()` methods
New DSL for wirebox only root injectors: `wirebox:root`
Intermittent Exception from MetadataIndexer
Come up with better default serialization for exception objects on LogEvents
Allow for closure for all logging messages in the logger, this way, we can verify the logging level automatically.
LogEvents in JSON are now prettified