Blog

Brad Wood

November 13, 2014

Spread the word


Share your thoughts

ColdBox 4.0 is now in Release Candidate and we're tightening down all the screws for the big release.  As 4.0 is a major release of the platform, we've taken the opportunity to really clean up the code, making changes and improvements where necessary.  This includes the exodus of 75% of ColdBox's core code into pluggable modules so you can truly pick and choose what parts of the framework you want.  Some methods such as getPlugin() and getColdBoxOCM() were also removed.  This has naturally modified the framework's API a bit and your 3.x ColdBox app might not run without some tweaking.  

We have a What's New doc as well as a Compatibility Guide for ColdBox 4.0 where we have tried to document any changes necessary to get your codebase switched over.  However, we realize that some of this may take time for you to refactor if you have a larger codebase and we don't want it to keep you from looking at ColdBox 4.0  

That's why I've created a compatibility module for ColdBox 3.x code bases to help them run on the new 4.0 version of the ColdBox platform.  We feel this is a  much better solution than littering the core codebase with additional settings and feature flags.  ColdBox is the only framework with a first-class modular architecture.  Mix that with the incredible extensibility options, and this module has be ability to alter just about anything it wants.  

Only install it if you need it, and remove it once you're finished refactoring your code to the 4.0 standards.  This isn't meant to be a permanent install-- it's just a stepping stone to help you get your codebase up and running until you have time to finish refactoring.  Do feel free to use it in production, though it comes with no warranties or guarantees.  Here's a list of the modifications this module will make to ColdBox 4.x to make it work like the 3.x versions.

Functions and behaviors restored

  • Original getModuleSettings() behavior
  • getPlugin() function
  • getMyPlugin() function
  • getColdBoxOCM() function
  • UDFLibraryFile setting
  • "model" convention for WireBox scan locations
  • coldbox.system.plugin base class

The following WireBox mapping DSL namespaces are restored

  • ocm
  • ocm:{keyName}
  • coldbox:plugin:{pluginName}
  • coldbox:myplugin:{pluginName}
  • coldbox:myplugin:{pluginName@moduleName}
  • coldbox:fwconfigbean
  • coldbox:configbean
  • coldbox:cacheManager
  • coldbox:mailsettingsbean (requires mailservices module)
  • coldbox:debuggerService (requires cbdebugger module)
  • coldbox:validationManager (requires validation module)

This module also comes packaged with all the original ColdBox 3.8.1 plugins, so you only need to install this module and you'll have it all back again.   If you need any of the functionality that was refactored into modules such as ORM, validation, or i18n, just install those modules.  

Known issues:

  • When this module loads, it will copy Plugin.cfc to the coldbox/system directory.  If you uninstall this module, it will not remove that file.
  • Plugins only work for the default convention location of "plugins". 
  • You will still need to change the Application.cfc to use coldbox.system.Bootstrap instead of coldbox.system.ColdBox.  There's really no way around that one.

Installation

The preferred way to install this module is via CommandBox because using a package manager is just so fast and easy.  If you don't have Command Box, grab it real quick from here.  Then CD to your site's web root and run the following:

CommandBox> install cbcompat

If you want to do an old-fashioned installation, just click the download link from ForgeBox, and uncompress the contents of the zip file into your app's modules directory.

If you have questions or suggestions, hit me up on the ColdBox list, or feel free to submit a pull request.

Add Your Comment

Recent Entries

BoxLang 1.0.0 Beta 23 Launched

BoxLang 1.0.0 Beta 23 Launched

The latest release of BoxLang, Beta 23, marks a significant step forward in our journey to create the ultimate dynamic language for the JVM. Packed with powerful new features, important bug fixes, and thoughtful optimizations, this update is designed to make your development experience smoother, faster, and more reliable, especially after now starting to take 100s of comments and bug reports from our community.

Luis Majano
Luis Majano
November 23, 2024
TestBox Latest Updates and News!

TestBox Latest Updates and News!

We’re thrilled to have launched the new TestBox website and TestBox 6.0! If you haven’t had a chance to explore yet, visit TestBox to discover updated documentation, powerful resources, and features that make testing more efficient than ever.

Maria Jose Herrera
Maria Jose Herrera
November 21, 2024
Is Your ColdFusion Application Ready for the Future?

Is Your ColdFusion Application Ready for the Future?

In a rapidly evolving digital world, maintaining performance, security, and scalability for ColdFusion applications is more challenging than ever. Whether you're using Lucee or Adobe ColdFusion, legacy systems can become a bottleneck for growth, innovation, and user satisfaction. The need to future-proof your ColdFusion applications has never been more critical.

But where do you start?


The Hidden Costs of an Outdated ColdFusion Application

As you...

Cristobal Escobar
Cristobal Escobar
November 21, 2024