Releases: ColdBox/coldbox-platform
Releases · ColdBox/coldbox-platform
6.9.0
Added
- COLDBOX-1229 Added debug argument to ScheduleExecutor and Scheduler when creating tasks for consistency
- COLDBOX-1230 Reorganized ScheduledTasks functions within the CFC into code groups and comments
Improvements
- COLDBOX-1226 Scheduled Tasks Updates
Fixed
- COLDBOX-1145 RestHandler OnError() Exception not checking for empty `exception` blocks which would cause another exception on development ONLY
7.0.0
ColdBox HMVC
Bugs
- COLDBOX-1133 `getFullURL` encodes the query string when it should not.
- COLDBOX-1136 Scoping lookup bug in Lucee affects route()
- COLDBOX-1138 Event Cache Response Has Status Code of 0 (or Null)
- COLDBOX-1139 make event caching cache keys lower cased to avoid case issues when clearing keys
- COLDBOX-1143 render inline PDF (CB 6.8.1) throws a 500 error
- COLDBOX-1145 RestHandler OnError() Exception not checking for empty `exception` blocks which would cause another exception on development ONLY
- COLDBOX-1146 BiConsumer proxy was making both arguments required, when they can be null so execution fails
- COLDBOX-1149 Woops and Adobe CF needs a double check if session/client is defined even if sessionManagement/clientManagement is defined
- COLDBOX-1150 virtual app controller scoping is missing on ocassion due to this.load|unload flags
- COLDBOX-1151 Integration Tests do not support NoRender()
- COLDBOX-1153 RestHandler.cfc missing exception information on InvalidCredentials & TokenInvalidException
- COLDBOX-1154 Invalid DateFormat Mask in Whoops.cfm
- COLDBOX-1173 Update the Router.cfc to look at not only the cgi host but the forwarded hosts
- COLDBOX-1175 calling function "view" from within function which has an argument named "view" causes error.
- COLDBOX-1176 viewLocations struct does not exist in function renderer.layout() on line 684 if nolayout = true
- COLDBOX-1191 Attempts to use `getHTMLBaseURL()` inside of Async Task Fail on ACF
- COLDBOX-1193 Missing java casting on arrayRange() method ont the asyncmanager
- COLDBOX-1194 Ensure modules are applied to routing action structs when necessary #243
- COLDBOX-1196 Render collections items and counter variables are not thread safe since we migrated to a singleton renderer
- COLDBOX-1202 urlMatches in the request context does not account for the path to be larger than the requested uri
- COLDBOX-1204 Overridden events in preProcess interceptions assume event cache configuration of original request
- COLDBOX-1211 Base Model and Interceptor Tests where overriding application.wirebox in integration tests
- COLDBOX-1213 Var scoping issue on `includeUDF` in the super type
Improvements
- COLDBOX-1029 ModuleAwareness : Wirebox Injector Lookup Should Check Current Module First
- COLDBOX-1155 Implement abort logic onAuthenticationFailure on RESTHandler
- COLDBOX-1157 Reuse existing controller in getMockRequestContext()
- COLDBOX-1159 JSON Serialization in `forAttribute` Does Not Support ACF Prefixing
- COLDBOX-1171 Do not allow injection of the same applicatio helper on the same target
- COLDBOX-1177 Please add more debugging info to REST handler
- COLDBOX-1184 When whoops error template defaults to public for non-dev, the messaging is very confusing
- COLDBOX-1185 ColdBox DebugMode with inDebugMode() helper
- COLDBOX-1190 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-1195 ColdBox Proxy should ignore the routing service captures to avoid redirects or returns
- COLDBOX-1210 encapsulate route finding by name to the actual router itself
- COLDBOX-1214 Compatibility layer for env methods in the Util object: getSystemSetting(), getSystemProperty(), getEnv()
New Features
- COLDBOX-1022 Allow for Flash RAM to use a third party provided tracking variable via the new setting identifierProvider
- COLDBOX-1039 Allow unregistering closure listeners
- COLDBOX-1077 Provide ability for handlers/interceptors/etc. to have inherent self-knowledge of the module they live in for modulesettings/moduleConfig injections
- COLDBOX-1137 Allow passing interception point first in interceptor listen() method
- COLDBOX-1140 Whoops updates galore! SQL Syntax highlighting, json formatting and highlighting, and more
- COLDBOX-1141 New Flow delegate helpers for functional usage everywhere in ColdBox land
- COLDBOX-1142 New convention for module setting overrides: config/{moduleName}.cfc
- COLDBOX-1147 PostLayoutRender and PostViewRender now pass which view/layout path was used to render
- COLDBOX-1148 postEvent now get's new interceptData: ehBean, handler and data results
- COLDBOX-1152 this.unloadColdBox is false now as the default thanks to the virtual test app
- COLDBOX-1158 New `back()` function in super type that you can use to redirect back to your referer or a fallback
- COLDBOX-1161 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
- COLDBOX-1162 Add in functionality to exclude patterns via router's findRoute()
- COLDBOX-1165 New convention for modules for storing and using coldfusion tags: `/tags`
- COLDBOX-1166 Lazy loading and persistence of engine helper to assist in continued performance and initial load speed
- COLDBOX-1167 New core delegates for smaller building blocks, which leverages the `@coreDelegates` namespace
- COLDBOX-1168 New coldbox based delegates mapped with `@cbDelegates`
- COLDBOX-1172 core json utils now include a prettyJson() and a toPrettyJson() utilities
- COLDBOX-1174 New getEnv() method on the base test class to get access to the env delegate for inquiring for env and java properties
- COLDBOX-1178 ChronoUnit becomes the official cb Date Time Helper to assist with date/time conversions and formatting
- COLDBOX-1179 New super type methods: getDateTimeHelper() getIsoTime() to assist with recurrent iso time conversions in modern APIs and responses
- COLDBOX-1186 Add three environment location helpers in the controller and supertype: isProduction(), isDevelopment(), isTesting()
- COLDBOX-1188 Request Context setRequestTimeout() method encapsulation, so you can control the time limit of a request
- COLDBOX-1189 setRequestTimeout() mock in testing Request Context so handlers cannot override testing timeouts
- COLDBOX-1192 Module Inception Isolation - every module has it's own injector that matches the module hierarchy
- COLDBOX-1197 All rendering methods now accept a `viewVariables` argument that allows you to add variables into the view's `variables` scope
- [COLDBOX-1199](ht...
6.8.2
Added
- Github actions for LTS Releases
- LTS Updates
Bugs
- COLDBOX-1219 CFProvider ACF versions are Hard-Coded
- WIREBOX-132 WireBox caches Singletons even if their autowired dependencies throw exceptions.
v6.8.1
ColdBox HMVC Core
Bug
- COLDBOX-1139 make event caching cache keys lower cased to avoid case issues when clearing keys
- COLDBOX-1138 Event Cache Response Has Status Code of 0 or
null
v6.8.0
ColdBox HMVC Core
Bug
- COLDBOX-1134 Router closure responses not marshalling complex content to json
- COLDBOX-1132 New virtual app was always starting up the virtual coldbox app instead of checking if it was running already
Improvement
- COLDBOX-1131 Updated Missing Action Response Code to 404 instead of 405
- COLDBOX-1127 All core async proxies should send exceptions to the error log
New Feature
- COLDBOX-1130 New config/ColdBox.cfc global injections: webMapping, coldboxVersion
- COLDBOX-1126 Funnel all out and err logging on a ColdBox Scheduled Task to LogBox
Task
- COLDBOX-1135 Remove HandlerTestCase as it is no longer in usage.
v6.7.0
[6.7.0] => 2022-JUN-22
ColdBox HMVC Core
Bug
- COLDBOX-1114 Persistance of variables failing due to null support
- COLDBOX-1110 Renderer is causing coldbox RestHandler to render convention view
- COLDBOX-1109 Exceptions in async interceptors are missing onException announcement
- COLDBOX-1105 Interception with
async
annotation causes InterceptorState Exception on Reinit - COLDBOX-1104 A view not set exception is thrown when trying to execution handler ColdBox methods that are not concrete actions when they should be invalid events.
- COLDBOX-1103 Update getServerIP() so it avoids looking at the cgi scope as it can cause issues on ACF
- COLDBOX-1100 Event Caching Does Not Preserve HTTP Response Codes
- COLDBOX-1099 Regression on ColdBox v6.6.1 around usage of statusCode = 0 on relocates
- COLDBOX-1098 RequestService context creation not thread safe
- COLDBOX-1097 Missing scopes on isNull() checks
- COLDBOX-1092 RestHandler Try/Catches Break In Testbox When RunEvent() is Called
- COLDBOX-1045 Scheduled tasks have no default error handling
- COLDBOX-1043 Creating scheduled task with unrecognized timeUnit throws null pointer
- COLDBOX-1042 afterAnyTask() and task.after() don't run after failing task
- COLDBOX-1040 Error in onAnyTaskError() or after() tasks not handled and executor dies.
- COLDBOX-966 Coldbox Renderer.RenderLayout() Overwrites Event's Current View
Improvement
- COLDBOX-1124 Convert mixer util to script and utilize only the necessary mixins by deprecating older mixins
- COLDBOX-1116 Enhance EntityNotFound Exception Messages for rest handlers
- COLDBOX-1096 SES is always disabled on RequestContext until RoutingService request capture : SES is the new default for ColdBox Apps
- COLDBOX-1094 coldbox 6.5 and 6.6 break ORM event handling in cborm
- COLDBOX-1067 Scheduled Tasks: Inject module context variables to module schedulers and inject global context into global scheduler
- COLDBOX-1044 Create singular aliases for timeunits
New Feature
- COLDBOX-1123 New xTask() method in the schedulers that will automatically disable the task but still register it. Great for debugging!
- COLDBOX-1121 Log schedule task failures to console so errors are not ignored
- COLDBOX-1120 Scheduler's onShutdown() callback now receives the boolean force and numeric timeout arguments
- COLDBOX-1119 The Scheduler's shutdown method now has two arguments: boolean force, numeric timeout
- COLDBOX-1118 All schedulers have a new property: shutdownTimeout which defaults to 30 that can be used to control how long to wait for tasks to gracefully complete when shutting down.
- COLDBOX-1113 New coldobx.system.testing.VirtualApp object that can startup,restart and shutdown Virtual Testing Applications
- COLDBOX-1108 Async interceptos can now discover their announced data without duplicating it via cfthread
- COLDBOX-1107 Interception Event pools are now using synchronized linked maps to provide concurrency
- COLDBOX-1106 New super type function "forAttribute" to help us serialize simple/complex data and encoded for usage in html attributes
- COLDBOX-1101 announce
onException
interception from RESTHandler, when exceptions are detected - COLDBOX-1053 Async schedulers and executors can now have a graceful shutdown and await for task termination with a configurable timeout.
- COLDBOX-1052 Scheduled tasks add start and end date/times
Task
- COLDBOX-1122 lucee async tests where being skipped due to missing engine check
- COLDBOX-1117 Remove nextRun stat from scheduled task, it was never implemented
CacheBox
Bug
- CACHEBOX-66 Cachebox concurrent store meta index not thread safe during reaping
Improvement
- CACHEBOX-82 Remove the usage of identity hash codes, they are no longer relevant and can cause contention under load
LogBox
Improvement
- LOGBOX-68 Remove the usage of identity hash codes, they are no longer relevant and can cause contention under load
- LOGBOX-65 File Appender missing text "ExtraInfo: "
WireBox
Bug
- WIREBOX-126 Inherited Metadata Usage - Singleton attribute evaluated before Scopes
Improvement
- WIREBOX-129 Massive refactor to improve object creation and injection wiring
- WIREBOX-128 Injector now caches all object contains lookups to increase performance across hierarchy lookups
- WIREBOX-127 Lazy load all constructs on the Injector to improve performance
- WIREBOX-125 Remove the usage of identity hash codes, they are no longer relevant and can cause contention under load
v6.6.1
Changelog
All notable changes to this project will be documented here: https://coldbox.ortusbooks.com/intro/release-history and summarized in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[6.6.1] => 2022-FEB-17
Coldbox HMVC Core
Bug
- COLDBOX-1093 Remove debug writedumps left over from previous testing
- COLDBOX-1085 Fix instance of bad route merging the routes but loosing the handler
Improvement
- COLDBOX-1095 Update Response Pagination Properties for Case-Sensitive Engines
- COLDBOX-1091 default status code to 302 in the internal relocate() just like CFML does instead of 0 and eliminate source
- COLDBOX-1089 Update the internal cfml engine checker to have more engine based feature checkers
- COLDBOX-1088 Switch isInstance check on renderdata in controller to secondary of $renderdata check to optimize speed
CacheBox
Bug
- CACHEBOX-80 Bug in JDBCMetadataIndexer sortedKeys() using non-existent variable
arguments.objectKey
Improvement
- CACHEBOX-81 JDBCStore Dynamically generate queryExecute options + new config to always include DSN due to ACF issues
[6.6.0] => 2022-JAN-31
ColdBox HMVC Core
Bug
- COLDBOX-1072 Non config apps fails since the core Settings.cfc had the configure() method removed
- COLDBOX-1069 Framework Initialization Fails in @be on AutoWire of App Scheduler
- COLDBOX-1066 Scheduled tasks not accessing application scope on Adobe Engines
- COLDBOX-1063 ColdBox schedulers starting before the application is ready to serve requests
- COLDBOX-1062 Scheduler service not registering schedulers with the appropriate name
- COLDBOX-1051 scheduler names can only be used once - executor needs to be removed
- COLDBOX-1036 Scheduled tasks fail after upgrading to coldbox 6.5. Downgrading to 6.4.0 works.
- COLDBOX-1027 actions for a specific pattern cannot point to different handlers
Improvement
- COLDBOX-1074 Improvements to module loading/activation log messages
- COLDBOX-1071 Make unloadAll() in ModuleService more resilient by verifying loaded modules exist
- COLDBOX-1061 Change default template cache from concurrentSoftReference to ConcurrentReference to avoid auto cleanups
- COLDBOX-1056 Default route names to pattern when using route()
- COLDBOX-1050 New router method:
apiResources()
to allow you to define resources without the new and edit actions - COLDBOX-1049 Update elixirPath to allow for many permutations of filenames and arguments to avoid cache collisions
- COLDBOX-1048 Ability for the response
setPagination()
to use any incoming argument for storage - COLDBOX-1037 Move
onRequestCapture
after default event capture to allow for consistency on the capture - COLDBOX-980 Deprecate declaration of multiple resources on a single
resources()
call - COLDBOX-676 Improve routing DSL to allow for different HTTP verbs on the the same route to point to different events or actions
New Feature
- COLDBOX-1082 Announce
onException
interception points for async interceptors - COLDBOX-1080 experimental web mapping support to allow for modern app templates with assets outside of the webroot
- COLDBOX-1076 Ability to pass in the domain to test executions in via integration testing
- COLDBOX-1073 Enable automated full null support via github actions
- COLDBOX-1065 ScheduledTask new
getMemento
() to get the state of the task - COLDBOX-1064 Schedulers can now get the current thread and thread name:
getCurrentThread(), getThreadName()
as private helpers - COLDBOX-1033 New controller method:
getUserSessionIdentifier
() which gives you the unique request tracking identifier according to our algorithms - COLDBOX-1032 New coldbox setting
identifierProvider
which can be a closure/udf/lambda that provides a unique tracking identifier for user requests
CacheBox
Bug
- CACHEBOX-76 Fixed method return value + SQL compatibility on jdbc metadata indexer thanks to @homestar9
- CACHEBOX-75 reap operation was not ignoring 0 values for last access timeouts
- CACHEBOX-74 Typo in queryExecute Attribute "datasource" in the JDBCStore.cfc
Improvement
- CACHEBOX-73 Replace IIF and urlEncodedFormat on cache content reports
- CACHEBOX-79 Lower logging verbosity of cache reaping from info to debug messages
WireBox
Bug
- WIREBOX-124 Killing
IInjector
interface usages due to many issues across cfml engines, leaving them for docs only - WIREBOX-118 Never override an existing variables key with virtual inheritance
Improvement
- WIREBOX-120 DSLs process method now receives the caller
targetID
alongside thetargetObject
and thetarget
definition
New Feature
- WIREBOX-122 New wirebox DSL to inject the target's metadata that's cached in the target's binder:
wirebox:objectMetadata
- WIREBOX-121 New WireBoxDSL:
wirebox:targetID
to give you back the target ID used when injecting the object - WIREBOX-119 Missing
coldbox:schedulerService
DSL - WIREBOX-117 HDI - Ability for injectors to have a collection of child injectors to delegate lookups to, basically Hierarchical DI
Task
- WIREBOX-123 Removal of usage of Injector dsl interface due to so many issues with multiple engines
v6.6.0
Changelog
All notable changes to this project will be documented here: https://coldbox.ortusbooks.com/intro/release-history and summarized in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[6.6.0] => 2022-JAN-31
ColdBox HMVC Core
Bug
- COLDBOX-1072 Non config apps fails since the core Settings.cfc had the configure() method removed
- COLDBOX-1069 Framework Initialization Fails in @be on AutoWire of App Scheduler
- COLDBOX-1066 Scheduled tasks not accessing application scope on Adobe Engines
- COLDBOX-1063 ColdBox schedulers starting before the application is ready to serve requests
- COLDBOX-1062 Scheduler service not registering schedulers with the appropriate name
- COLDBOX-1051 scheduler names can only be used once - executor needs to be removed
- COLDBOX-1036 Scheduled tasks fail after upgrading to coldbox 6.5. Downgrading to 6.4.0 works.
- COLDBOX-1027 actions for a specific pattern cannot point to different handlers
Improvement
- COLDBOX-1074 Improvements to module loading/activation log messages
- COLDBOX-1071 Make unloadAll() in ModuleService more resilient by verifying loaded modules exist
- COLDBOX-1061 Change default template cache from concurrentSoftReference to ConcurrentReference to avoid auto cleanups
- COLDBOX-1056 Default route names to pattern when using route()
- COLDBOX-1050 New router method:
apiResources()
to allow you to define resources without the new and edit actions - COLDBOX-1049 Update elixirPath to allow for many permutations of filenames and arguments to avoid cache collisions
- COLDBOX-1048 Ability for the response
setPagination()
to use any incoming argument for storage - COLDBOX-1037 Move
onRequestCapture
after default event capture to allow for consistency on the capture - COLDBOX-980 Deprecate declaration of multiple resources on a single
resources()
call - COLDBOX-676 Improve routing DSL to allow for different HTTP verbs on the the same route to point to different events or actions
New Feature
- COLDBOX-1082 Announce
onException
interception points for async interceptors - COLDBOX-1080 experimental web mapping support to allow for modern app templates with assets outside of the webroot
- COLDBOX-1076 Ability to pass in the domain to test executions in via integration testing
- COLDBOX-1073 Enable automated full null support via github actions
- COLDBOX-1065 ScheduledTask new
getMemento
() to get the state of the task - COLDBOX-1064 Schedulers can now get the current thread and thread name:
getCurrentThread(), getThreadName()
as private helpers - COLDBOX-1033 New controller method:
getUserSessionIdentifier
() which gives you the unique request tracking identifier according to our algorithms - COLDBOX-1032 New coldbox setting
identifierProvider
which can be a closure/udf/lambda that provides a unique tracking identifier for user requests
CacheBox
Bug
- CACHEBOX-76 Fixed method return value + SQL compatibility on jdbc metadata indexer thanks to @homestar9
- CACHEBOX-75 reap operation was not ignoring 0 values for last access timeouts
- CACHEBOX-74 Typo in queryExecute Attribute "datasource" in the JDBCStore.cfc
Improvement
- CACHEBOX-73 Replace IIF and urlEncodedFormat on cache content reports
- CACHEBOX-79 Lower logging verbosity of cache reaping from info to debug messages
WireBox
Bug
- WIREBOX-124 Killing
IInjector
interface usages due to many issues across cfml engines, leaving them for docs only - WIREBOX-118 Never override an existing variables key with virtual inheritance
Improvement
- WIREBOX-120 DSLs process method now receives the caller
targetID
alongside thetargetObject
and thetarget
definition
New Feature
- WIREBOX-122 New wirebox DSL to inject the target's metadata that's cached in the target's binder:
wirebox:objectMetadata
- WIREBOX-121 New WireBoxDSL:
wirebox:targetID
to give you back the target ID used when injecting the object - WIREBOX-119 Missing
coldbox:schedulerService
DSL - WIREBOX-117 HDI - Ability for injectors to have a collection of child injectors to delegate lookups to, basically Hierarchical DI
Task
- WIREBOX-123 Removal of usage of Injector dsl interface due to so many issues with multiple engines
v6.5.2
v6.4.0
Changelog
All notable changes to this project will be documented here: https://coldbox.ortusbooks.com/intro/release-history and summarized in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[6.4.0] => 2021-APR-09
ColdBox HMVC Core
Bugs
- COLDBOX-991 Fixes issues with Adobe losing App Context in Scheduled Tasks
- COLDBOX-988 When running scheduled tasks in ACF loading of contexts produce a null pointer exception
- COLDBOX-981 DataMarshaller no longer accepts 'row', 'column' or 'struct' as a valid argument.
Improvements
- COLDBOX-989 Add more debugging when exceptions occur when loading/unloading thread contexts
- COLDBOX-971 Implement caching strategy for application helper lookups into the
default
cache
New Features
- COLDBOX-990 Allow structs for query strings when doing relocations
- COLDBOX-987 Encapsulate any type of exception in the REST Handler in a onAnyOtherException() action
- COLDBOX-986 Add registration and activation timestamps to the a module configuration object
- COLDBOX-985 Rename renderLayout() to just layout() and deprecate it for v7
- COLDBOX-984 Rename renderView() to just view() and deprecate it for v7