Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
ColdBox 5.4.0 is a minor version update with lots of fixes, improvements, performance enhancements and some nice new features. Below are the major areas of improvement and the full release notes. To update your ColdBox installation just leverage CommandBox:
update coldbox
update logbox
update wirebox
update cachebox
In our initiative to make all Modules sharable between ColdBox, CommandBox and whatever other boxes we make in the future. We created the box
alias for injections. In our case any injection with the prefix coldbox
can be used as box
We have created a new internal runner called runRoute()
which is similar to runEvent()
but it allows you to abstract your events by leveraging named routes. So just like you can create links based on named routes and params, you can execute named routes and params as well internally via runRoute()
This should have been a major release on its own. The entire CacheBox framework was re-written in script and modernized from top to bottom. We removed all implicit variable access which gave us huge performance boosts and we streamlined all operations with modern techniques. The results are great and our maintenance will be much less in the future. A part from those optimizations we managed to add a few nice items:
Adobe 2018 certified
New setting resetTimeoutOnAccess
which allows you to simulate session scopes on any CacheBox cache. Every time a get()
operation is done, that item's timeout will be reset.
All cache providers get some multi function goodness: setMulti(), getMulti(), lookupMulti(), clearMulti(),getCachedObjectMetadataMulti()
There are two major improvements we did with LogBox in this release:
1) The file locking operations on file appenders have been streamlined to avoid high i/o operations.
2) The console appender uses an asynchronous streaming technique which makes it extremely efficient and fast.
[COLDBOX-556] - prePostExempt
doesn't skip around advices
[COLDBOX-755] - Core interceptors in coldbox.cfc do not listen or register custom interception points that are contributed by modules
[COLDBOX-761] - invalidEventHandler
gets in to an infinite loop when the invalidEventHandler
isn't a full event
[COLDBOX-766] - ColdBox shutdown errors onApplicationEnd
due to lack of application scope
[COLDBOX-770] - Use of event.sendFile
delivers a file with single quotes in the name
[COLDBOX-773] - Remove default defaultValue as it never will throw an exception if missing on requestcontext on getHTTPHeader()
[COLDBOX-765] - Update all elixir methods to match new version
[COLDBOX-771] - Add Elixir version 3 path methods
[COLDBOX-775] - Added `:`
as a delimiter for the route()
method when using modules to be consistent with run event
[COLDBOX-776] - new runner: runRoute()
that allows you to run routes internally with param passing
[COLDBOX-767] - Change "module already registered" from warn to debug
[COLDBOX-774] - Introduce generic "box" namespace for Wirebox injections
[CACHEBOX-46] - CacheboxProvider metadata and stores: use CFML functions on java hash maps breaks concurrency
[CACHEBOX-50] - getOrSet() provider method doesn't work with full null support
[CACHEBOX-52] - getQuiet(), clearQuiet(), getSize(), clearAll(), expireAll() broken in acf providers
[CACHEBOX-48] - New setting: `resetTimeoutOnAccess` to allow the ability to reset timeout access for entries
[CACHEBOX-49] - Global script conversion and code optimizations
[CACHEBOX-53] - lookup operations on ACF providers updated to leverage cacheIdExists() improves operation by over 50x
[CACHEBOX-54] - setMulti(), getMulti(), lookupMulti(), clearMulti(),getCachedObjectMetadataMulti() is now available on all cache providers
[CACHEBOX-47] - Increased timeout on `getOrSet` lock
[CACHEBOX-51] - Consolidated usages of the abstract cache provider to all providers to avoid redundancy
[WIREBOX-82] - builder.toVirtualInheritance()
: scoping issues
[WIREBOX-83] - When using sandbox security, and using a provider DSL the file existence checks blow up
[LOGBOX-34] - Console appender completely rewritten to support asynchronous streaming
[LOGBOX-33] - Improve file exists usage on file appenders to avoid i/o operations
ColdBox is a conventions-based HMVC development framework for ColdFusion (CFML). It provides a set of reusable code and tools that can be used to increase your development productivity as well as a development standard for working in team environments.
ColdBox is natively based on modular architecture which helps address most infrastructure concerns of typical web applications and thus called an HMVC framework.
ColdBox is maintained under the Semantic Versioning guidelines as much as possible.Releases will be numbered with the following format:
And constructed with the following guidelines:
Breaking backward compatibility bumps the major (and resets the minor and patch)
New additions without breaking backward compatibility bumps the minor (and resets the patch)
Bug fixes and misc changes bumps the patch
The ColdBox Platform is open source and licensed under the Apache 2 License. If you use ColdBox, please try to make mention of it in your code or web site or add a Powered By Coldbox icon.
Copyright by Ortus Solutions, Corp
ColdBox is a registered trademark by Ortus Solutions, Corp
Info: The ColdBox Websites, Documentation, logo and content have a separate license and they are a separate entity.
The ColdBox help and discussion group can be found here: https://groups.google.com/forum/#!forum/coldbox
We all make mistakes from time to time :) So why not let us know about it and help us out. We also love pull requests, so please star us and fork us: https://github.com/coldbox/coldbox-platform
By Email: bugs@coldbox.org
ColdBox is a professional open source software backed by Ortus Solutions, Corp offering services like:
Custom Development
Professional Support & Mentoring
Training
Server Tuning
Security Hardening
Code Reviews
Official Site: https://www.coldbox.org
Source Code: https://github.com/coldbox/coldbox-platform
Bug Tracker: https://ortussolutions.atlassian.net/browse/COLDBOX
Twitter: @coldbox
Facebook: https://www.facebook.com/coldboxplatform
Google+: https://www.google.com/+ColdboxOrg
Vimeo Channel: https://vimeo.com/channels/coldbox
Because of His grace, this project exists. If you don't like this, then don't read it, it's not for you.
"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God." Romans 5:5
ColdBox 5.2.0 is a minor version update with lots of fixes, improvements and some new features not only to the ColdBox core but to LogBox and WireBox alike. Below are the major areas of improvement and the full release notes. To update your ColdBox installation just leverage CommandBox: update coldbox
The major areas of improvement for the ColdBox core where on tons of fixes, however there are some nice new features discussed below.
[] - Function addAsset
generate wrong link if asset path contains ".js"
[] - Make implicit views case sensitive by default for linux systems
[] - HTML HELPER - Fix a requirement for columnName
if column is defined
[] - Passing headers to `request
` breaks RoutingService when in test mode
[] - Add ENV
overload in detectEnvironment()
via ENVIRONMENT system setting/property
[] - setNextEvent does not exist in coldbox.system.web.Controller
[] - fail fast strong typed to boolean, update to allow closures
[] - getRenderData() in base test case was not looking at the right request collection
[] - Fail fast can't be turned off for original behavior
[] - Module mappings disappear when not unloading ColdBox in base test case
[] - Clear not working on string builders: Use setLength(0) since clear is not a method on StringBuilder
[] - When using group() operations with a handler and no explicit handler routing call added, route never registered the handler
This will allow root models to behave like modules where all models are registered automatically for you but with no namespace.
This terminator was missing from the new Routing DSL. This will allow you to build up routes that terminate at an action.
The main application router and ALL module routers are now also interceptors.
ColdBox 5.6.0 is a minor version update with lots of fixes, improvements, performance enhancements and some nice new features. Below are the major areas of improvement and the full release notes. To update ColdBox or any of the standalone libraries just leverage CommandBox:
update coldbox
update logbox
update wirebox
update cachebox
We had two specific tickets that have resulted in extreme performance improvements for ALL ColdBox requests. You will feel and see the difference:
[] - Event Handler Bean: Single instance per handler action for major performance improvements
This ticket was contributed by Dom Watson () one of the lead engineers of the amazing PresideCMS project built on top of ColdBox. We worked together to avoid the creation of handler beans on each runnable event. We now cache each event handler bean representation which results in an extreme boost in performance. Thanks Dom!
[] - Remove afterInstanceAutowire interceptor in handlerService as afterHandlerCreation is now officially removed.
Thanks to our local mad scientist Brad Wood, he reported that the handler services still listened to ALL CFC creations in an application in order to relay an afterHandlerCreation
interception point from the good 'ol 2.6 days. This has been finally removed and boom, another big boost in performance!
We have enhanced the bug reporting templates to include much more information when dealing with exceptions:
Show SQL error details on Adobe CF
Current route, params and debug info
Contributing module for the current routed URL
Thanks to our very own Eric Peterson, you can now merge HTTP verbs on the same route pattern, which you could not do before:
This is a patch release for ColdBox
[] - Elvis operator inconsistencies on Adobe Engines, please Adobe, patch the engines and fix your compiler!
[] - Some HTMLHelper method still need escaping as certain values should never be HTML
[] - determine session/client state via CF getApplicationMetadata() instead of isDefined() to avoid load issues for flash ram
[] - RemotingUtil converted to cfscript #367
[] - New global directive: autoMapModels
which if true, it will map all root models just like modules do.
[] - toAction()
terminator is missing from the new router DSL
[] - Register config/Router.cfc
as an interceptor
[] - Implicitly pass args from renderLayout()
into the rendered views
[] - List modules which have already been processed when a module cannot be activated to help with debugging
[] - when using async option on FileAppender, nothing logs, well now it does!
[] - Add defaultValue
arguments to getProperty()
methods on abstract appenders
[] - Leave off text "ExtraInfo: "
from console appender if empty string
[] - Virtual inheritance not injecting generic getters and setters correctly on target objects
[] - Virtual inheritance not inheriting init
from super class
[] - Add method to binder to override alias of current mapping, by passing the current mapping to the influencer closure
[] - Don't exclude path in parent mapping destinations
[] - Simplify error message for missing dependency to be human readable
[] - ModuleService to add default route doesn't work correctly
[] - Fix default bug report to show SQL error detail for adobe SQL exceptions
[] - When doing package resolving if you are in a module it still tries to resolve a module
[] - Error in HTML helper WRAPPERATTRS doesn't exist in argument scope
[] - Include the colon for non 80 or 443 port numbers #419 in github
[] - Allow merging of HTTP verbs when doing separate verbs for the same route
[] - Update cfconfig to use env variables instead of inline mixins, modernizeOrDie
[] - Add more current route information to the BugReport.cfm template
[] - Ability for bug reports and app to know which module contributed the incoming URL route.
[] - Use of .keyExists() can needlessly use memory in requests, suggest StructKeyExists() instead
[] - Event Handler Bean: Single instance per handler action for major performance improvements
[] - HandlerService.cfc$newHandler(): declares variables that are never used
[] - Remove afterInstanceAutowire interceptor in handlerService as afterHandlerCreation is now officially removed.
[] - AbstractCacheProvider.getOrSet(): local var unscoped when checking if null
ColdBox 5.3.0 is a minor version update with lots of fixes, improvements, performance enhancements and some nice new features. Below are the major areas of improvement and the full release notes. To update your ColdBox installation just leverage CommandBox: update coldbox
[COLDBOX-741] - Defining UDF as COLDBOX_FAIL_FAST no longer returns false
[COLDBOX-750] - Fixed typo(s) in call of function prePend() on routing
[COLDBOX-752] - base url not eliminating double slashes
[COLDBOX-756] - Setter for valid extensions is setting the wrong variable
[COLDBOX-759] - Cleanup the with closure on group routing to avoid leakage
[COLDBOX-753] - Add new flag to router: multiDomainDiscovery
that can be turned on/off
[COLDBOX-742] - Add trimming to asset loader to avoid spaces on links
[COLDBOX-744] - InterceptorState + EventPool uses syncrhonizedMap that has locking issues: refactor to avoid these issues
[COLDBOX-754] - set initiated bit for ColdBox after modules are activated
[COLDBOX-760] - Performance improvements for interception registrations and discovery
[LOGBOX-32] - Add test and fix for adding a LogBox category after the fact
[WIREBOX-79] - Account for leading slashes in mapDirectory()
[WIREBOX-80] - Throw a nicer DSL error if ColdBox is not linked
[WIREBOX-81] - Performance improvements for the construction of transients
This is a patch release for ColdBox
[COLDBOX-711] - HTML helper cannot add fontawesome icons in button due to XSS enabled by default
[COLDBOX-712] - ColdBox shutdown code that uses CF mappings for modules fails on fwreinit
[COLDBOX-713] - addAsset throw error when called from handlers
[COLDBOX-714] - Too many issues when encoding by default for HTML Helper, revert to non-encoded and provide ways to encode globally and a-la-carte
[COLDBOX-702] - Framework setting for the automatic deserialization of JSON payloads to the RC: jsonPayloadToRC
The automatic JSON to request collection feature defaults now to false to avoid backwards compatibility. You can easily turn it on via the setting: coldbox.jsonPayloadToRC
The HTML Helper has been migrated to an internal module in this release. It allows you to configure it via the following configuration settings in your ColdBox.cfc
.
You can also now inject the HTML helper anywhere using it's injection DSL Shortcut of @HTMLHelper
This is a patch release for ColdBox.
[COLDBOX-703] - regression onmissingmethod on html helper method was public and changed to private
[COLDBOX-704] - viewModule logic was not working at all yet again.
[COLDBOX-705] - Remove setting throwOnInvalidInterceptionStates, makes no sense anymore
[COLDBOX-706] - Moved order of event manager states the injector provides to a ColdBox app so the binder can listen on itself
ColdBox 5.5.0 is a minor version update with lots of fixes, improvements, performance enhancements and some nice new features. Below are the major areas of improvement and the full release notes. To update your ColdBox installation just leverage CommandBox:
update coldbox
update logbox
update wirebox
update cachebox
The major libraries updated in this release are ColdBox MVC and WireBox.
If you are using annotations for component aliases you will have to tell WireBox explicitly to process those mappings. As by default, we no longer process mappings on startup.
This release is a big performance boost for two areas of operation: modules, and models. The Module Service has been completely revised to make it as fast as possible when registering and activating modules. If you have an extensive usage of modules, you will feel the difference when booting up or re-initing the framework.
The other area is the inspection of models that has been lazy evaluated. This allows for faster bootups and reinits as models are only inspected on demand or when explicitly marked.
Our environment functions have now been added to the Framework SuperType and thus all objects in the ColdBox eco-system receive it:
getEnv(), getSystemSetting() and getSystemProperty()
As resources have become more mainstream in ColdBox, we now give you the ability to choose the URL pattern you want to attach to the resource. This allows you to create a-la-carte resource patterns and also allow you to nest resources via patterns.
[COLDBOX-786] - HTMLHelper typo on getSetting
call via elixirpath()
[COLDBOX-788] - Private method in handler is accessible from public ( direct link )
[COLDBOX-783] - New module directive: autoProcessModels
which defaults to false to defer to lazy processing of models
[COLDBOX-789] - Added getEnv(), getSystemSetting() and getSystemProperty()
to super type for easier environment setting retrievals
[COLDBOX-790] - Added much more logging and info when booting up the Module Service
[COLDBOX-791] - buildLink(), relocate()
now will translate raw : to / in URL
with appropriate module entry points thanks to richard herbert
[COLDBOX-792] - Allow nested resources and the ability for custom URL patterns for resources
[COLDBOX-782] - Add TestBox 3 and code coverage to the core
[COLDBOX-785] - Module service performance optimizations for module activations.
[COLDBOX-787] - Update RequestContext.cfc getFullUrl()
to include port number
[WIREBOX-84] - Remove auto processing of all mappings defer to lazy loading
[WIREBOX-85] - MapDirectory
new boolean argument process
which defers to false, if true, the mappings will be auto processed
[WIREBOX-86] - New binder method: process()
if chained from a mapping, it will process the mapping's metadata automatically.
[WIREBOX-87] - AOP debug logging as serialized CFCs which clogs log files