ColdBox HMVC Documentation
DocsSourceSupportTraining
7.x
7.x
  • Introduction
    • Contributing Guide
    • Release History
      • What's New With 7.4.0
      • What's New With 7.3.x
      • What's New With 7.2.0
      • What's New With 7.1.0
      • What's New With 7.0.0
        • Release Notes
    • Upgrading to ColdBox 7
    • What is ColdBox
    • What is MVC
    • About This Book
      • Author
  • For Newbies
    • 60 Minute Quick Start
      • Installing ColdBox
      • My First ColdBox Application
      • My First Handler & View
      • Linking Events Together
      • Working with Events
      • Adding A Layout
      • Adding A Model
      • RESTFul Data
      • Next Steps
    • Getting Started Guide
  • Getting Started
    • Installation
    • Application Templates
    • Conventions
    • Configuration
      • ColdBox.cfc
        • Configuration Directives
          • CacheBox
          • ColdBox
          • Conventions
          • Environments
          • Flash
          • InterceptorSettings
          • Interceptors
          • Layouts
          • LayoutSettings
          • LogBox
          • Modules
          • ModuleSettings
          • Settings
          • WireBox
        • System Settings (Java Properties and Environment Variables)
      • Using Settings
      • Bootstrapper - Application.cfc
  • The Basics
    • Request Context
    • Routing
      • Requirements
        • Rewrite Rules
      • Application Router
      • Routing DSL
        • Routing By Convention
        • Pattern Placeholders
        • Routing Methods
        • Resourceful Routes
        • Named Routes
        • Routing Groups
        • Routing Namespaces
      • Building Routable Links
      • RESTFul Extension Detection
      • HTTP Method Spoofing
      • HTML Base Tag
      • Pathinfo Providers
    • Event Handlers
      • How are events called?
      • Getting & Setting Values
      • Setting Views
      • Relocating
      • Rendering Data
      • Sending Files
      • Interception Methods
        • Pre Advices
        • Post Advices
        • Around Advices
      • Model Integration
        • Model Data Binding
      • HTTP Method Security
      • Implicit Methods
      • Executing Events
      • Executing Routes
      • Viewlets - Reusable Events
      • Event Caching
      • Validation
    • Layouts & Views
      • Views
        • Rendering Views
        • Rendering External Views
        • Rendering With Local Variables
        • Rendering Collections
        • View Caching
        • View Helpers
        • View Events
      • Layouts
        • Basic Layouts
        • Default Layout
        • Nested Layouts
        • Overriding Layouts
        • Layouts From A Module
        • Layout Helpers
        • Layout Events
      • Implicit Layout-View Declarations
      • Helpers UDF's
      • ColdBox Elixir
    • Models
      • Domain Modeling
        • Service Layer
        • Data Layers
        • Book
      • Conventions Location
      • WireBox Binder
      • Super Type Usage Methods
      • Injection DSL
        • ColdBox Namespace
        • CacheBox Namespace
        • EntityService Namespace
        • Executor Namespace
        • Java Namespace
        • LogBox Namespace
        • Models Namespace
        • Provider Namespace
        • WireBox Namespace
      • Object Scopes
      • Coding: Solo Style
        • Datasource
        • Contact.cfc
        • ContactDAO.cfc
        • ContactService.cfc
        • Contacts Handler
      • Coding: ActiveEntity Style
        • ORM
        • Contact.cfc
        • Contacts Handler
        • Views
      • Coding: Virtual Service Layer
        • ORM
        • Contacts.cfc
        • Contacts Handler
        • Views
      • Coding: ORM Scaffolding
        • ORM
        • Contacts.cfc
        • Scaffold
    • Interceptors
      • How do they work?
        • Conventions
      • Interceptor Declaration
      • Interceptor Registration
      • Dynamic Registration
      • Core Interception Points
        • Application Life Cycle Events
        • Object Creating Events
        • Layout-View Events
        • Module Events
        • CacheBox Events
      • Restricting Execution
      • Interceptor Output Buffer
      • Custom Events
        • Configuration Registration
        • Programmatic Registration
        • Listening
        • Announcing Interceptions
      • Unregistering Interceptors
      • Reporting Methods
      • Interceptor Asynchronicity
        • Async Announcements
        • Async Listeners With Join
        • Async Listeners No Join
        • Asynchronous Annotations
  • HMVC
    • Modules
      • Core Modules
      • Locations
      • Parent Configuration
      • Module Layout
        • Changing The Module Layout
      • Module Service
        • Module Lifecycle
        • Module Registration
        • Module Activation
        • Module Unloading
        • Common Methods
        • Loading New Modules
        • Loading A-la-carte Modules
        • Module Events
      • ModuleConfig
        • Public Module Properties
        • The Decorated Variables
        • The configure() Method
        • Module Settings
        • Environment Control
        • Interceptor Events
      • Module Event Executions
      • URL Routing
        • Default Route Execution
        • Module Routes Files
      • Module Async Scheduling
      • Request Context Module Methods
      • Layout and View Renderings
        • Layout/View Discovery
        • Overriding Views
        • Overriding Layouts
        • Default Module Layout
        • Explicit Module Renderings
      • Models
      • Module CF Mappings
      • Module Dependencies
      • Module Helpers
      • Module Bundles
      • Module Inception
  • Testing
    • Testing Quick Start
    • Testing ColdBox Applications
      • Test Harness
      • ColdBox Testing Classes
      • Testing Methods
      • Integration Testing
        • Test Annotations
        • Life-Cycle Events
        • Request Setup()
        • The execute() Method
        • HTTP Testing Methods
        • Testing Without Virtual Application
      • Interceptor Testing
      • Model Object Testing
      • Tips & Tricks
  • Digging Deeper
    • Async Programming
      • Async Pipelines & Futures
      • Parallel Computations
      • Executors
      • Scheduled Tasks
    • ColdBox Proxy
      • Getting Started
      • The Base Proxy Object
      • The Event Handlers
        • Distinguishing Request Types
        • RenderData()
      • Proxy Events
      • Standard Return Types
      • Caveats & Gotchas
    • Controller Decorator
    • ColdBox Scheduled Tasks
    • Flash RAM
      • Flash Storage
      • Using Flash RAM
      • Creating Your Own Flash Scope
    • HTML Helper
    • REST Handler
    • Request Context Decorator
    • Recipes
      • Building REST APIs
      • ColdBox Exception Handling
      • Debugging ColdBox Apps
      • Clearing the View Cache
      • Basic HTTP Authentication Interceptor
  • Architecture Concepts
    • How ColdBox Works
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
Export as PDF
  1. Introduction
  2. Release History
  3. What's New With 7.0.0

Release Notes

Release Notes for ColdBox 7.0.0

Last updated 1 year ago

Was this helpful?

The full release notes per library can be found below. Just click on the library tab and explore their release notes:

Bug

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.

Improvement

New Feature

Task

Improvement

Bug

New Feature

Bug

Improvement

New Feature

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

COLDBOX-1079
COLDBOX-1100
COLDBOX-1133
COLDBOX-1136
COLDBOX-1138
COLDBOX-1139
COLDBOX-1143
COLDBOX-1145
COLDBOX-1146
COLDBOX-1149
COLDBOX-1150
COLDBOX-1151
COLDBOX-1153
COLDBOX-1154
COLDBOX-1173
COLDBOX-1175
COLDBOX-1176
COLDBOX-1191
COLDBOX-1193
COLDBOX-1194
COLDBOX-1196
COLDBOX-1202
COLDBOX-1204
COLDBOX-1211
COLDBOX-1213
COLDBOX-1029
COLDBOX-1155
COLDBOX-1157
COLDBOX-1159
COLDBOX-1171
COLDBOX-1177
COLDBOX-1184
COLDBOX-1185
COLDBOX-1190
COLDBOX-1195
COLDBOX-1210
COLDBOX-1214
COLDBOX-1022
COLDBOX-1039
COLDBOX-1077
COLDBOX-1137
COLDBOX-1140
COLDBOX-1141
COLDBOX-1142
COLDBOX-1147
COLDBOX-1148
COLDBOX-1152
COLDBOX-1158
COLDBOX-1161
COLDBOX-1162
COLDBOX-1164
COLDBOX-1166
COLDBOX-1167
COLDBOX-1168
COLDBOX-1172
COLDBOX-1174
COLDBOX-1178
COLDBOX-1179
COLDBOX-1186
COLDBOX-1188
COLDBOX-1189
COLDBOX-1192
COLDBOX-1197
COLDBOX-1199
COLDBOX-1200
COLDBOX-1201
COLDBOX-1205
COLDBOX-1206
COLDBOX-1207
COLDBOX-1208
COLDBOX-1209
COLDBOX-1215
COLDBOX-1216
COLDBOX-1160
COLDBOX-1169
COLDBOX-1170
COLDBOX-1187
WIREBOX-133
WIREBOX-132
WIREBOX-89
WIREBOX-130
WIREBOX-131
WIREBOX-134
WIREBOX-135
WIREBOX-136
WIREBOX-137
WIREBOX-138
WIREBOX-139
WIREBOX-140
WIREBOX-141
WIREBOX-142
WIREBOX-143
WIREBOX-144
WIREBOX-145
CACHEBOX-83
LOGBOX-67
LOGBOX-61
LOGBOX-69