Releases: ColdBox/coldbox-platform
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
v6.3.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.2.2] => 2021-JAN-12
ColdBox HMVC Core
Bugs
- [COLDBOX-963] - Use Java URI for more resiliant getFullURL to avoid double slashes
WireBox
Bug
- [WIREBOX-107] - wirebox metadata caching broken
- [WIREBOX-109] - Standalone event pool interceptData -> data not backwards compat
Improvement
- [WIREBOX-108] - WireBox not handling cachebox, logbox, and asynmanager instances properly
CacheBox
Improvement
- [CACHEBOX-65] - CacheBox not handling wirebox, logbox, and asynmanager instances properly
LogBox
Improvement
- [LOGBOX-60] - Ignore interrupted exceptions from appenders' scheduler pool
v6.2.2
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.2.2] => 2021-JAN-12
ColdBox HMVC Core
Bugs
- [COLDBOX-963] - Use Java URI for more resiliant getFullURL to avoid double slashes
WireBox
Bug
- [WIREBOX-107] - wirebox metadata caching broken
- [WIREBOX-109] - Standalone event pool interceptData -> data not backwards compat
Improvement
- [WIREBOX-108] - WireBox not handling cachebox, logbox, and asynmanager instances properly
CacheBox
Improvement
- [CACHEBOX-65] - CacheBox not handling wirebox, logbox, and asynmanager instances properly
LogBox
Improvement
- [LOGBOX-60] - Ignore interrupted exceptions from appenders' scheduler pool
v6.2.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.0.0] => 2020-AUG-20
ColdBox HMVC Core
Bugs
[COLDBOX-48] - CacheBox creates multiple reap threads if the initial one take longer to complete than the reap frequency
[COLDBOX-339] - Error in AbstractFlashScope: key does't exists due to race conditions
[COLDBOX-822] - InvalidEvent is not working when set to a module event
[COLDBOX-829] - Stopgap for Lucee bug losing sessionCluster application setting
[COLDBOX-832] - toResponse() silently fails on incorrect data types
[COLDBOX-837] - Unable to manually call invalid event method without producing error
[COLDBOX-839] - Router method and argument name discrepancy
[COLDBOX-845] - Capture request before announcing onRequestCapture
[COLDBOX-850] - XML Converter Updated invoke() to correctly call method by name
[COLDBOX-857] - ElixirPath does not take in account of module root
[COLDBOX-861] - Self-autowire fails for applications with context root configured in ColdBox Proxy
[COLDBOX-862] - when passing custom cfml executors to futures it blows up as the native executor is not set
[COLDBOX-873] - NullPointerException in ScheduledExecutor (Lucee 5.3.4.80)
[COLDBOX-875] - PopulateFromQuery : Gracefully handle out of index rownumber in populateFromQuery #450
[COLDBOX-878] - ColdBox 6 blows up if models directory doesn't exist
[COLDBOX-879] - Reinit-Password-Check does not use the new "reinitKey"-Setting
[COLDBOX-880] - ViewHelpers not working in CB-6 RC
[COLDBOX-885] - Pagination not showing from rest response
[COLDBOX-889] - RendererEncapsulator passes view-variables to "next" rendered view
[COLDBOX-891] - Whoops breaking on some exceptions
[COLDBOX-897] - Template cache eventSnippets don't match module events or event suffixes
[COLDBOX-899] - queryString argument ignored when using event in BaseTestCase#execute
[COLDBOX-903] - Renderer.ViewNotSetException when renderLayout used in request
[COLDBOX-911] - Garbled text in Whoops error screen - utf8 encoding
New Features
[COLDBOX-268] - Async Workers
[COLDBOX-749] - Performance: make renderer a singleton
[COLDBOX-848] - Improve the bug reporting template for development based on whoops
[COLDBOX-849] - Incorporate Response and RestHandler into core
[COLDBOX-851] - All ColdBox apps get a coldbox-tasks
scheduler executor for internal ColdBox services and scheduled tasks
[COLDBOX-852] - Updated the default ColdBox config appender to be to console instead of the dummy one
[COLDBOX-853] - ColdBox controller gets a reference to the AsyncManager and registers a new AsyncManager@coldbox
wirebox mapping
[COLDBOX-855] - Allow for the application to declare it's executors via the new executors
configuration element
[COLDBOX-856] - Allow for a module to declare it's executors via the new executors
configuration element
[COLDBOX-858] - Introduction of async/parallel programming via cbPromises
[COLDBOX-859] - ability to do async scheduled tasks with new async cbpromises
[COLDBOX-860] - Convert proxy to script and optimize it
[COLDBOX-863] - Add setting to define reinit key vs. hard-coded fwreinit: reinitKey
[COLDBOX-864] - jsonPayloadToRC now defaults to true
[COLDBOX-865] - autoMapModels defaults to true now
[COLDBOX-868] - RequestContext Add urlMatches to match current urls
[COLDBOX-869] - Response, SuperType => New functional if construct when( boolean, success, failure )
[COLDBOX-871] - Removed fwsetting argument from getSetting() in favor of a new function: getColdBoxSetting()
[COLDBOX-874] - BaseTestCase new method getHandlerResults() to easy get the handler results, also injected into test request contexts
[COLDBOX-876] - New dsl coldbox:coldboxSettings alias to coldbox:fwSettings
[COLDBOX-877] - New dsl coldbox:asyncManager to get the async manager
[COLDBOX-887] - Elixir manifest support for module and app roots via discovery
[COLDBOX-894] - New listen() super type and interceptor service method to register one-off closures on specific interception points
[COLDBOX-905] - The buildLink( to ) argument can now be a struct to support named routes : { name, params }
[COLDBOX-906] - Move queryString as the second argument for buildLink() so you can use it with psoitional params
[COLDBOX-907] - New context method: getCurrentRouteRecord() which gives you the full routed route record
[COLDBOX-908] - New context method: getCurrentRouteMeta() which gives you the routed route metadata if any
[COLDBOX-909] - New router method: meta() that you can use to store metadata for a specific route
[COLDBOX-910] - Every route record can now store a struct of metadata alongside of it using the meta
key
[COLDBOX-912] - Allow toRedirect() to accept a closure which receives the matched route, you can process and then return the redirect location
[COLDBOX-915] - New onColdBoxShutdown interception point fired when the entire framework app is going down
Tasks
[COLDBOX-866] - onInvalidEvent is now removed in favor of invalidEventHandler, this was deprecated in 5.x
[COLDBOX-867] - Removed interceptors.SES as it was deprecated in 5
[COLDBOX-870] - setnextEvent removed as it was deprecated in 5
[COLDBOX-872] - getModel() is now fully deprecated and removed in fvor of getInstance()
[COLDBOX-886] - elixir version 2 support removed
[COLDBOX-900] - request
and associated integration test methods are not in the official docs
Improvements
[COLDBOX-830] - Update cachebox flash ram to standardize on unique key discovery
[COLDBOX-833] - Improvements to threading for interceptors and logging to avoid dumb Adobe duplicates
[COLDBOX-841] - Change announceInterception() and processState() to a single method name like: announce()
[COLDBOX-846] - Use relocate and setNextEvent status codes in getStatusCode for testing integration
[COLDBOX-882] - Deprecate interceptData in favor of just data
[COLDBOX-892] - Please add an easily accessible "fwreinit" button to whoops...
[COLDBOX-895] - migrating usage of cgi.http_host to cgi.server_name due to inconsistencies with proxy requests that affects caching and many other features
[COLDBOX-904] - Interceptor Buffer Methods Removed
[COLDBOX-916] - Better module registration/activation logging to identify location and version
WireBox
Bugs
[WIREBOX-90] - Fix constructor injection with virtual inheritance
New Features
[WIREBOX-91] - Injector's get a reference to an asyncManager and a task scheduler whether they are in ColdBox or non-ColdBox mode
[WIREBOX-92] - New executors
dsl so you can easily inject executors ANYWEHRE
[WIREBOX-97] - New dsl coldbox:coldboxSetting:{setting} alias to coldbox:fwSetting:{setting}
Improvements
[WIREBOX-88] - Improve WireBox error on Adobe CF
[WIREBOX-93] - Rename WireBox provider get() to $get() to avoid conflicts with provided classes
[WIREBOX-94] - getInstance() now accepts either dsl or name via the first argument and initArguments as second argument
CacheBox
Bugs
[CACHEBOX-59] - Announced Events in the set() of the cacheBoxProvider
[CACHEBOX-63] - cfthread-20506;variable [ATTRIBUES] doesn't exist;lucee.runtime.exp.ExpressionException: variable [ATTRIBUES] doesn't exist
New Features
[CACHEBOX-24] - CacheBox reaper : migrate to a scheduled task via cbPromises
[CACHEBOX-60] - CacheFactory gets a reference to an asyncManager and a task scheduler whether they are in ColdBox or non-ColdBox mode
Improvements
[CACHEBOX-64] - Migrations to script and more fluent programming
LogBox
Bugs
[LOGBOX-35] - FileAppender: if logging happens in a thread, queue never gets processed and, potentially, you run out of heap space
[LOGBOX-38] - Rotate property is defined but never used
[LOGBOX-45] - Work around for adobe bug CF-4204874 where closures are holding on to tak contexts
[LOGBOX-50] - Rolling file appender inserting tabs on first line
New Features
[LOGBOX-5] - Allow config path as string in LogBox init (standalone)
[LOGBOX-11] - Allow standard appenders to be configured by name (instead of full path)
[LOGBOX-36] - Added an err()
to abstract appenders for reporting to the error streams
[LOGBOX-42] - All appenders get a reference to the running LogBox instance
[LOGBOX-43] - LogBox has a scheduler executor and the asyncmanager attached to it for standalone and ColdBox mode.
[LOGBOX-44] - Rolling appender now uses the new async schedulers to stream data to files
[LOGBOX-46] - Update ConsoleAppender to use TaskScheduler
[LOGBOX-47] - AbstractAppender log listener and queueing facilities are now available for all appenders
[LOGBOX-48] - DB Appender now uses a queueing approach to sending log messages
[LOGBOX-49] - Rolling File Appender now uses the async scheduler for log rotation checks
Improvements
[LOGBOX-37] - Improvements to threading for logging to avoid dumb Adobe duplicates
[LOGBOX-41] - refactoring of internal utility closures to udfs to avoid ACF memory leaks: CF-4204874
[LOGBOX-51] - Migrations to script and more fluent programming
v6.2.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.0.0] => 2020-AUG-20
ColdBox HMVC Core
Bugs
[COLDBOX-48] - CacheBox creates multiple reap threads if the initial one take longer to complete than the reap frequency
[COLDBOX-339] - Error in AbstractFlashScope: key does't exists due to race conditions
[COLDBOX-822] - InvalidEvent is not working when set to a module event
[COLDBOX-829] - Stopgap for Lucee bug losing sessionCluster application setting
[COLDBOX-832] - toResponse() silently fails on incorrect data types
[COLDBOX-837] - Unable to manually call invalid event method without producing error
[COLDBOX-839] - Router method and argument name discrepancy
[COLDBOX-845] - Capture request before announcing onRequestCapture
[COLDBOX-850] - XML Converter Updated invoke() to correctly call method by name
[COLDBOX-857] - ElixirPath does not take in account of module root
[COLDBOX-861] - Self-autowire fails for applications with context root configured in ColdBox Proxy
[COLDBOX-862] - when passing custom cfml executors to futures it blows up as the native executor is not set
[COLDBOX-873] - NullPointerException in ScheduledExecutor (Lucee 5.3.4.80)
[COLDBOX-875] - PopulateFromQuery : Gracefully handle out of index rownumber in populateFromQuery #450
[COLDBOX-878] - ColdBox 6 blows up if models directory doesn't exist
[COLDBOX-879] - Reinit-Password-Check does not use the new "reinitKey"-Setting
[COLDBOX-880] - ViewHelpers not working in CB-6 RC
[COLDBOX-885] - Pagination not showing from rest response
[COLDBOX-889] - RendererEncapsulator passes view-variables to "next" rendered view
[COLDBOX-891] - Whoops breaking on some exceptions
[COLDBOX-897] - Template cache eventSnippets don't match module events or event suffixes
[COLDBOX-899] - queryString argument ignored when using event in BaseTestCase#execute
[COLDBOX-903] - Renderer.ViewNotSetException when renderLayout used in request
[COLDBOX-911] - Garbled text in Whoops error screen - utf8 encoding
New Features
[COLDBOX-268] - Async Workers
[COLDBOX-749] - Performance: make renderer a singleton
[COLDBOX-848] - Improve the bug reporting template for development based on whoops
[COLDBOX-849] - Incorporate Response and RestHandler into core
[COLDBOX-851] - All ColdBox apps get a coldbox-tasks
scheduler executor for internal ColdBox services and scheduled tasks
[COLDBOX-852] - Updated the default ColdBox config appender to be to console instead of the dummy one
[COLDBOX-853] - ColdBox controller gets a reference to the AsyncManager and registers a new AsyncManager@coldbox
wirebox mapping
[COLDBOX-855] - Allow for the application to declare it's executors via the new executors
configuration element
[COLDBOX-856] - Allow for a module to declare it's executors via the new executors
configuration element
[COLDBOX-858] - Introduction of async/parallel programming via cbPromises
[COLDBOX-859] - ability to do async scheduled tasks with new async cbpromises
[COLDBOX-860] - Convert proxy to script and optimize it
[COLDBOX-863] - Add setting to define reinit key vs. hard-coded fwreinit: reinitKey
[COLDBOX-864] - jsonPayloadToRC now defaults to true
[COLDBOX-865] - autoMapModels defaults to true now
[COLDBOX-868] - RequestContext Add urlMatches to match current urls
[COLDBOX-869] - Response, SuperType => New functional if construct when( boolean, success, failure )
[COLDBOX-871] - Removed fwsetting argument from getSetting() in favor of a new function: getColdBoxSetting()
[COLDBOX-874] - BaseTestCase new method getHandlerResults() to easy get the handler results, also injected into test request contexts
[COLDBOX-876] - New dsl coldbox:coldboxSettings alias to coldbox:fwSettings
[COLDBOX-877] - New dsl coldbox:asyncManager to get the async manager
[COLDBOX-887] - Elixir manifest support for module and app roots via discovery
[COLDBOX-894] - New listen() super type and interceptor service method to register one-off closures on specific interception points
[COLDBOX-905] - The buildLink( to ) argument can now be a struct to support named routes : { name, params }
[COLDBOX-906] - Move queryString as the second argument for buildLink() so you can use it with psoitional params
[COLDBOX-907] - New context method: getCurrentRouteRecord() which gives you the full routed route record
[COLDBOX-908] - New context method: getCurrentRouteMeta() which gives you the routed route metadata if any
[COLDBOX-909] - New router method: meta() that you can use to store metadata for a specific route
[COLDBOX-910] - Every route record can now store a struct of metadata alongside of it using the meta
key
[COLDBOX-912] - Allow toRedirect() to accept a closure which receives the matched route, you can process and then return the redirect location
[COLDBOX-915] - New onColdBoxShutdown interception point fired when the entire framework app is going down
Tasks
[COLDBOX-866] - onInvalidEvent is now removed in favor of invalidEventHandler, this was deprecated in 5.x
[COLDBOX-867] - Removed interceptors.SES as it was deprecated in 5
[COLDBOX-870] - setnextEvent removed as it was deprecated in 5
[COLDBOX-872] - getModel() is now fully deprecated and removed in fvor of getInstance()
[COLDBOX-886] - elixir version 2 support removed
[COLDBOX-900] - request
and associated integration test methods are not in the official docs
Improvements
[COLDBOX-830] - Update cachebox flash ram to standardize on unique key discovery
[COLDBOX-833] - Improvements to threading for interceptors and logging to avoid dumb Adobe duplicates
[COLDBOX-841] - Change announceInterception() and processState() to a single method name like: announce()
[COLDBOX-846] - Use relocate and setNextEvent status codes in getStatusCode for testing integration
[COLDBOX-882] - Deprecate interceptData in favor of just data
[COLDBOX-892] - Please add an easily accessible "fwreinit" button to whoops...
[COLDBOX-895] - migrating usage of cgi.http_host to cgi.server_name due to inconsistencies with proxy requests that affects caching and many other features
[COLDBOX-904] - Interceptor Buffer Methods Removed
[COLDBOX-916] - Better module registration/activation logging to identify location and version
WireBox
Bugs
[WIREBOX-90] - Fix constructor injection with virtual inheritance
New Features
[WIREBOX-91] - Injector's get a reference to an asyncManager and a task scheduler whether they are in ColdBox or non-ColdBox mode
[WIREBOX-92] - New executors
dsl so you can easily inject executors ANYWEHRE
[WIREBOX-97] - New dsl coldbox:coldboxSetting:{setting} alias to coldbox:fwSetting:{setting}
Improvements
[WIREBOX-88] - Improve WireBox error on Adobe CF
[WIREBOX-93] - Rename WireBox provider get() to $get() to avoid conflicts with provided classes
[WIREBOX-94] - getInstance() now accepts either dsl or name via the first argument and initArguments as second argument
CacheBox
Bugs
[CACHEBOX-59] - Announced Events in the set() of the cacheBoxProvider
[CACHEBOX-63] - cfthread-20506;variable [ATTRIBUES] doesn't exist;lucee.runtime.exp.ExpressionException: variable [ATTRIBUES] doesn't exist
New Features
[CACHEBOX-24] - CacheBox reaper : migrate to a scheduled task via cbPromises
[CACHEBOX-60] - CacheFactory gets a reference to an asyncManager and a task scheduler whether they are in ColdBox or non-ColdBox mode
Improvements
[CACHEBOX-64] - Migrations to script and more fluent programming
LogBox
Bugs
[LOGBOX-35] - FileAppender: if logging happens in a thread, queue never gets processed and, potentially, you run out of heap space
[LOGBOX-38] - Rotate property is defined but never used
[LOGBOX-45] - Work around for adobe bug CF-4204874 where closures are holding on to tak contexts
[LOGBOX-50] - Rolling file appender inserting tabs on first line
New Features
[LOGBOX-5] - Allow config path as string in LogBox init (standalone)
[LOGBOX-11] - Allow standard appenders to be configured by name (instead of full path)
[LOGBOX-36] - Added an err()
to abstract appenders for reporting to the error streams
[LOGBOX-42] - All appenders get a reference to the running LogBox instance
[LOGBOX-43] - LogBox has a scheduler executor and the asyncmanager attached to it for standalone and ColdBox mode.
[LOGBOX-44] - Rolling appender now uses the new async schedulers to stream data to files
[LOGBOX-46] - Update ConsoleAppender to use TaskScheduler
[LOGBOX-47] - AbstractAppender log listener and queueing facilities are now available for all appenders
[LOGBOX-48] - DB Appender now uses a queueing approach to sending log messages
[LOGBOX-49] - Rolling File Appender now uses the async scheduler for log rotation checks
Improvements
[LOGBOX-37] - Improvements to threading for logging to avoid dumb Adobe duplicates
[LOGBOX-41] - refactoring of internal utility closures to udfs to avoid ACF memory leaks: CF-4204874
[LOGBOX-51] - Migrations to script and more fluent programming
v6.1.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.0.0] => 2020-AUG-20
ColdBox HMVC Core
Bugs
[COLDBOX-48] - CacheBox creates multiple reap threads if the initial one take longer to complete than the reap frequency
[COLDBOX-339] - Error in AbstractFlashScope: key does't exists due to race conditions
[COLDBOX-822] - InvalidEvent is not working when set to a module event
[COLDBOX-829] - Stopgap for Lucee bug losing sessionCluster application setting
[COLDBOX-832] - toResponse() silently fails on incorrect data types
[COLDBOX-837] - Unable to manually call invalid event method without producing error
[COLDBOX-839] - Router method and argument name discrepancy
[COLDBOX-845] - Capture request before announcing onRequestCapture
[COLDBOX-850] - XML Converter Updated invoke() to correctly call method by name
[COLDBOX-857] - ElixirPath does not take in account of module root
[COLDBOX-861] - Self-autowire fails for applications with context root configured in ColdBox Proxy
[COLDBOX-862] - when passing custom cfml executors to futures it blows up as the native executor is not set
[COLDBOX-873] - NullPointerException in ScheduledExecutor (Lucee 5.3.4.80)
[COLDBOX-875] - PopulateFromQuery : Gracefully handle out of index rownumber in populateFromQuery #450
[COLDBOX-878] - ColdBox 6 blows up if models directory doesn't exist
[COLDBOX-879] - Reinit-Password-Check does not use the new "reinitKey"-Setting
[COLDBOX-880] - ViewHelpers not working in CB-6 RC
[COLDBOX-885] - Pagination not showing from rest response
[COLDBOX-889] - RendererEncapsulator passes view-variables to "next" rendered view
[COLDBOX-891] - Whoops breaking on some exceptions
[COLDBOX-897] - Template cache eventSnippets don't match module events or event suffixes
[COLDBOX-899] - queryString argument ignored when using event in BaseTestCase#execute
[COLDBOX-903] - Renderer.ViewNotSetException when renderLayout used in request
[COLDBOX-911] - Garbled text in Whoops error screen - utf8 encoding
New Features
[COLDBOX-268] - Async Workers
[COLDBOX-749] - Performance: make renderer a singleton
[COLDBOX-848] - Improve the bug reporting template for development based on whoops
[COLDBOX-849] - Incorporate Response and RestHandler into core
[COLDBOX-851] - All ColdBox apps get a coldbox-tasks
scheduler executor for internal ColdBox services and scheduled tasks
[COLDBOX-852] - Updated the default ColdBox config appender to be to console instead of the dummy one
[COLDBOX-853] - ColdBox controller gets a reference to the AsyncManager and registers a new AsyncManager@coldbox
wirebox mapping
[COLDBOX-855] - Allow for the application to declare it's executors via the new executors
configuration element
[COLDBOX-856] - Allow for a module to declare it's executors via the new executors
configuration element
[COLDBOX-858] - Introduction of async/parallel programming via cbPromises
[COLDBOX-859] - ability to do async scheduled tasks with new async cbpromises
[COLDBOX-860] - Convert proxy to script and optimize it
[COLDBOX-863] - Add setting to define reinit key vs. hard-coded fwreinit: reinitKey
[COLDBOX-864] - jsonPayloadToRC now defaults to true
[COLDBOX-865] - autoMapModels defaults to true now
[COLDBOX-868] - RequestContext Add urlMatches to match current urls
[COLDBOX-869] - Response, SuperType => New functional if construct when( boolean, success, failure )
[COLDBOX-871] - Removed fwsetting argument from getSetting() in favor of a new function: getColdBoxSetting()
[COLDBOX-874] - BaseTestCase new method getHandlerResults() to easy get the handler results, also injected into test request contexts
[COLDBOX-876] - New dsl coldbox:coldboxSettings alias to coldbox:fwSettings
[COLDBOX-877] - New dsl coldbox:asyncManager to get the async manager
[COLDBOX-887] - Elixir manifest support for module and app roots via discovery
[COLDBOX-894] - New listen() super type and interceptor service method to register one-off closures on specific interception points
[COLDBOX-905] - The buildLink( to ) argument can now be a struct to support named routes : { name, params }
[COLDBOX-906] - Move queryString as the second argument for buildLink() so you can use it with psoitional params
[COLDBOX-907] - New context method: getCurrentRouteRecord() which gives you the full routed route record
[COLDBOX-908] - New context method: getCurrentRouteMeta() which gives you the routed route metadata if any
[COLDBOX-909] - New router method: meta() that you can use to store metadata for a specific route
[COLDBOX-910] - Every route record can now store a struct of metadata alongside of it using the meta
key
[COLDBOX-912] - Allow toRedirect() to accept a closure which receives the matched route, you can process and then return the redirect location
[COLDBOX-915] - New onColdBoxShutdown interception point fired when the entire framework app is going down
Tasks
[COLDBOX-866] - onInvalidEvent is now removed in favor of invalidEventHandler, this was deprecated in 5.x
[COLDBOX-867] - Removed interceptors.SES as it was deprecated in 5
[COLDBOX-870] - setnextEvent removed as it was deprecated in 5
[COLDBOX-872] - getModel() is now fully deprecated and removed in fvor of getInstance()
[COLDBOX-886] - elixir version 2 support removed
[COLDBOX-900] - request
and associated integration test methods are not in the official docs
Improvements
[COLDBOX-830] - Update cachebox flash ram to standardize on unique key discovery
[COLDBOX-833] - Improvements to threading for interceptors and logging to avoid dumb Adobe duplicates
[COLDBOX-841] - Change announceInterception() and processState() to a single method name like: announce()
[COLDBOX-846] - Use relocate and setNextEvent status codes in getStatusCode for testing integration
[COLDBOX-882] - Deprecate interceptData in favor of just data
[COLDBOX-892] - Please add an easily accessible "fwreinit" button to whoops...
[COLDBOX-895] - migrating usage of cgi.http_host to cgi.server_name due to inconsistencies with proxy requests that affects caching and many other features
[COLDBOX-904] - Interceptor Buffer Methods Removed
[COLDBOX-916] - Better module registration/activation logging to identify location and version
WireBox
Bugs
[WIREBOX-90] - Fix constructor injection with virtual inheritance
New Features
[WIREBOX-91] - Injector's get a reference to an asyncManager and a task scheduler whether they are in ColdBox or non-ColdBox mode
[WIREBOX-92] - New executors
dsl so you can easily inject executors ANYWEHRE
[WIREBOX-97] - New dsl coldbox:coldboxSetting:{setting} alias to coldbox:fwSetting:{setting}
Improvements
[WIREBOX-88] - Improve WireBox error on Adobe CF
[WIREBOX-93] - Rename WireBox provider get() to $get() to avoid conflicts with provided classes
[WIREBOX-94] - getInstance() now accepts either dsl or name via the first argument and initArguments as second argument
CacheBox
Bugs
[CACHEBOX-59] - Announced Events in the set() of the cacheBoxProvider
[CACHEBOX-63] - cfthread-20506;variable [ATTRIBUES] doesn't exist;lucee.runtime.exp.ExpressionException: variable [ATTRIBUES] doesn't exist
New Features
[CACHEBOX-24] - CacheBox reaper : migrate to a scheduled task via cbPromises
[CACHEBOX-60] - CacheFactory gets a reference to an asyncManager and a task scheduler whether they are in ColdBox or non-ColdBox mode
Improvements
[CACHEBOX-64] - Migrations to script and more fluent programming
LogBox
Bugs
[LOGBOX-35] - FileAppender: if logging happens in a thread, queue never gets processed and, potentially, you run out of heap space
[LOGBOX-38] - Rotate property is defined but never used
[LOGBOX-45] - Work around for adobe bug CF-4204874 where closures are holding on to tak contexts
[LOGBOX-50] - Rolling file appender inserting tabs on first line
New Features
[LOGBOX-5] - Allow config path as string in LogBox init (standalone)
[LOGBOX-11] - Allow standard appenders to be configured by name (instead of full path)
[LOGBOX-36] - Added an err()
to abstract appenders for reporting to the error streams
[LOGBOX-42] - All appenders get a reference to the running LogBox instance
[LOGBOX-43] - LogBox has a scheduler executor and the asyncmanager attached to it for standalone and ColdBox mode.
[LOGBOX-44] - Rolling appender now uses the new async schedulers to stream data to files
[LOGBOX-46] - Update ConsoleAppender to use TaskScheduler
[LOGBOX-47] - AbstractAppender log listener and queueing facilities are now available for all appenders
[LOGBOX-48] - DB Appender now uses a queueing approach to sending log messages
[LOGBOX-49] - Rolling File Appender now uses the async scheduler for log rotation checks
Improvements
[LOGBOX-37] - Improvements to threading for logging to avoid dumb Adobe duplicates
[LOGBOX-41] - refactoring of internal utility closures to udfs to avoid ACF memory leaks: CF-4204874
[LOGBOX-51] - Migrations to script and more fluent programming