Today we are very pleased to announce the final release of CommandBox 4.0.0.  This has been one of our most ambitious releases and closed more than 70 tickets over 6 months of development and testing.  

This release has gone through a month of testing that created two release candidates.  A big thanks goes out to everyone who helped provide feedback.  There are a lot of new features and libraries in 4.0 as well as a major overhaul of many of the UI aspects of the CLI. 

Download

To get the final 4.0.0 release, you can download it here from our CommandBox homepage:

https://www.ortussolutions.com/products/commandbox

Just swap out your box.exe binary and CommandBox will upgrade itself on first run.  It's a one way street, so feel free to backup the .CommandBox folder in your user home first.  

If you prefer to use Homebrew, the debian repo, or Yum repo, those are all updated now as well. 

Please Note: The box binary is normally around 38MB in size.  Due to an issue with the final build, the Pack200 process didn't run and the binary came out around 80MB.  I'll get this fixed for the next release and the binary should be back to the normal size. 

Documentation

First, you'll want to read through this blog post here which details all of the new features and changed in CommandBox 4.  Note the very last section contains all of the known "breaking changes".  For the most part, CommandBox 4 is very backwards compatible.  

https://www.ortussolutions.com/blog/commandbox-4-release-candidate-available-for-testing

All of the official CommandBox docs are fully updated for the 4.0.0 release.  You can find them here:

https://commandbox.ortusbooks.com/

And of course, the full API docs showing all the core commands and parameters are available here:

http://apidocs.ortussolutions.com/commandbox/current/index.html

Major Areas of Development

  • Major rewrite of CLI engine loader
    • Lucee 5 now powers the CLI
    • Using JSR-223 to dynamically load Lucee 5
  • All 3rd Party libs updated
    • JGit
    • Launch4J
    • Runwar
    • JLine3
  • Improved Task Runner support
    • Task scaffolding with “task create
    • Task DSL to call other tasks
    • Ortus Builds are now being converted to Task Runners.  No Ant!  No XML!
  • Support for Private package
  • Revamped Server Logs (access, rewrite, console)
  • ColdBox 5 updates
  • Tons of bug fixes and improvements

Issues/Questions/Support

In the unlikely event of a water landing, please reach out so we can help you.  Here a few ways you can contact us:

Release Notes

Bug

  • [COMMANDBOX-174] - Box CLI not working inside cygwin
  • [COMMANDBOX-395] - Commandbox 3.1.X no longer works with Git Bash
  • [COMMANDBOX-728] - Allow control of default package name when box.json is missing
  • [COMMANDBOX-749] - Server won't start with $ in web root path
  • [COMMANDBOX-750] - Can't list files in directory with parenthesis in the name
  • [COMMANDBOX-761] - Default rewrites don't start regex at the start of the request URI
  • [COMMANDBOX-763] - Ctrl-C in shell kills associated server processes on *nix
  • [COMMANDBOX-767] - Issue installing older CF engine when two versions exist who only differ in build ID
  • [COMMANDBOX-778] - Adobe war has incorrect default /CFIDE CF mapping
  • [COMMANDBOX-782] - CLI Loader crashes: Error reloading cached bundle
  • [COMMANDBOX-783] - ls and dir do not list directory content after 'cd ..' without trailing slash
  • [COMMANDBOX-785] - restart command not correctly detecting stopped server
  • [COMMANDBOX-787] - Starting two servers at once can corrupt servers.json file
  • [COMMANDBOX-788] - Starting server from non-ForgeBox endpoint doesn't detect proper engine/verion
  • [COMMANDBOX-790] - Package publishing fails with folder named "readme" in the root

Story

  • [COMMANDBOX-724] - Control HTTPOnly and secure attribute of JSESSIONID

New Feature

Improvement