Skip to content

Releases: ColdBox/coldbox-platform

v6.7.0

21 Jun 22:19
Compare
Choose a tag to compare

[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

17 Feb 22:22
Compare
Choose a tag to compare

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 the targetObject and the target 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

17 Feb 21:45
Compare
Choose a tag to compare

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 the targetObject and the target 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

21 Jul 21:47
Compare
Choose a tag to compare
Merge branch 'development'

v6.4.0

20 Apr 15:49
Compare
Choose a tag to compare

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

10 Mar 21:30
Compare
Choose a tag to compare

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

12 Jan 23:33
Compare
Choose a tag to compare

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

18 Dec 21:26
Compare
Choose a tag to compare

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

17 Dec 22:43
Compare
Choose a tag to compare

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

21 Oct 21:09
Compare
Choose a tag to compare

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