Blog

Brad Wood

May 05, 2016

Spread the word


Share your thoughts

We are excited to announce availability of CommandBox v3.1.0 Beta for testing and feedback.  Our goal is to have this released in time for Into The Box so that means we need you to help get it stable and ready to go.  There are a collection of bug fixes, and several very nice improvements, the biggest of which is the ability to start up any CFML engine you want on demand including Lucee 5, Adobe ColdFusion 2016 and Railo.

How do I get it?

First things first.  If you already have an older version of CommandBox installed, you can run this command which will give you the URL 

CommandBox> upgrade --latest

Or just hop over to our integration server and grab the correct binary for your OS:
http://integration.stg.ortussolutions.com/artifacts/ortussolutions/commandbox/3.1.0/

We're still working on the GitBook docs for this release, but you can use the "help" commands to get additional info.

What do I need to know?

The first thing to take note of is that the beta of CommandBox is currently pointing to our stage server since we are using a brand new ForgeBox API.  This will be fine for testing, and even installing most packages, but it's not guaranteed to be the exact same packages as what's on production.  

If you want more juicy details on the new features of 3.1.0, please check out these two blog entries on my personal blog:

Exciting New Features In The CommandBox 3.1.0 Bleeding Edge

CommandBox Multi-Server Support Now In Beta (v3.1.0)

Also, a full list of tickets completed thus far are available here in JIRA:

JIRA Search for "Resolved" tickets in the "3.1.0" release.

What's new?

Here's an overview of the big changes and improvements in this release.  There will be more to come, but this is what we have done so far.

Multi-Server Support

The CommandBox CLI runs on Lucee Server, and the web servers you could start in any directory used to only be Lucee too.  Now you can start up a web server of any kind and version.  Currently supported CF engines are:

  • Adobe ColdFusion 2016.0.0+297996
  • Adobe ColdFusion 11.0.0+289974
  • Adobe ColdFusion 10.0.12+286680
  • Adobe ColdFusion 9.0.2+282541
  • Lucee Server 4.5.2.018 (embedded, so no download needed)
  • Lucee Server 5.0.0-SNAPSHOT+243
  • Railo Server 4.2.1+008

Starting up a CF server is still super easy.  Everything you need will be downloaded the first time you start the server and cached for subsequent restarts.  

# Start the default engine
CommandBox> start

# Start the latest stable Railo engine
CommandBox> start cfengine=railo

# Start a specific engine and version
CommandBox> start cfengine=adobe@10.0.12

Start any Java WAR as a server

This goes hand-in-hand with multi-server support, but opens the door even wider to ANY Java J2EE application, which could be a custom CF engine build of your choice, or just a standard Java application.

CommandBox> server start WARPath=/path/to/explodedWAR
CommandBox> server start WARPath=/path/to/WARArchive.war

Global Server Defaults

You can store your server settings in a server.json file since version 3.0.0.  Now, we've made it even better by allowing you to provide global defaults that apply to all servers via the config settings.

CommandBox> config set server.defaults.app.cfengine=lucee@5-snapshot
CommandBox> config set server.defaults.jvm.heapSize=1024

New ForgeBox 2.0 API

We've re-written the ForgeBox API to be better, faster, and stronger.  It supports a whole slew of new functionality to help CFML developers publish their packages and get them into the hands (and servers) of other developers.

ForgeBox 2.0 tracks multiple versions of the same package

This is self explanatory, but a huge improvement.  Your project's entire history of releases can now be tracked via ForgeBox, allowing users to install the specific version of your package that they need.

CommandBox> install coldbox@3.8.1

ForgeBox can create users from the CLI

Signing up for a new ForgeBox account just got even easier with the following command.  

CommandBox> forgebox register

ForgeBox can log you in from the CLI

You can also authenticate to ForgeBox to publish your packages and more with this new command.  You may never touch a web browser as long as you live.

CommandBox> forgebox login

ForgeBox can publish package from the CLI

Put them all together and what do you get? Only the smoothest, fastest, and most advanced workflow for managing your open source packages in the CFML space.  With one command you can shoot new packages off to ForgeBox for the entire world to see, or just update a new version of an existing package.  There's no need to log into the web site and keep stuff up to date, this command does it all for you, including reading in your readme files.

CommandBox> forgebox publish

Bumping package versions auto-tags your Git repo

In our never-ending quest to improve the developer's workflow, bumping your packages to a new version will automatically tag your local Git repo (if you're using one).  That's one less thing you need to worry about before using the publish command.

CommandBox> bump --patch message="Finalized awesome features."

Semantic Version support

Now that ForgeBox is aware of all your packages versions, the CLI is also able to use fancy version ranges to install the versions you need and allow you to update easily to new compatible versions of your packages in the future.  We've implemented full NPM-style semver support.  Check out these new syntaxes supported for packages on ForgeBox.

# Latest stable version
CommandBox> install foo

# latest version, even if pre release (bleeding edge)
CommandBox> install foo@be

# A specific version
CommandBox> install foo@1.2.3

# Any version with a major number of 4 (4.1, 4.2, 4.9, etc)
CommandBox> install foo@4.x

# Any version greater than 1.5.0
CommandBox> install foo@>1.5.0

# Any version greater than 5.2 but less than or equal to 6.3.4
CommandBox> install "foo@>5.2 <=6.3.4"

Interceptor-based CLI scripts

If you want to piggyback additional commands to run at key lifecycle events for your package, servers, or CLI, you can specify scripts in your package.json.  Scripts are commands to be run from the CommandBox interactive shell, that will execute automatically in the same working directory.  They are stored in the box.json under an object called "scripts" and keyed off the name of the interceptor you want to fire them. These are useful for additional housekeeping tasks that you want to make automatic.

{
  "scripts" : {
   "postVersion" : "package set location='gitUser/gitRepo#`package version`'"
   "postPublish" : "!git push",
   "onServerStart" : "echo 'Hi, thanks for starting `server show name` on port `server show web.http.port` in directory `pwd`'"
  }
}

Well, don't just stand there

It's time for you to get out there and test.  Put in tickets for any bugs you find here.  To review, you can download the beta for CommandBox 3.1.0 here:

http://integration.stg.ortussolutions.com/artifacts/ortussolutions/commandbox/3.1.0/

And if you want to read a more in-depth review of the features, check out these posts on my personal blog:

Exciting New Features In The CommandBox 3.1.0 Bleeding Edge

CommandBox Multi-Server Support Now In Beta (v3.1.0)

 

 

Add Your Comment

Recent Entries

The Into the Box 2025 Agenda is LIVE and Done!

The Into the Box 2025 Agenda is LIVE and Done!

The wait is over! The official Into the Box 2025 agenda is now live — and it's packed with high-impact sessions designed for modern CFML and BoxLang developers. Whether you’re building APIs, modernizing legacy apps, diving into serverless, or exploring AI integrations, this is the conference you’ve been waiting for.

Here’s a look at what you can expect — categorized by key topics to help you plan your learning journey, there’s something for everyone covering modern CFML tools and BoxLang:

Maria Jose Herrera
Maria Jose Herrera
April 15, 2025
Only 2 Days Left to Lock In Early Bird Pricing for Into the Box 2025!

Only 2 Days Left to Lock In Early Bird Pricing for Into the Box 2025!

The countdown is on. You have just two days left to secure your Early Bird ticket  for just $199 to Into the Box 2025 before prices increase on April 16.

We are proud to offer an engaging and high-value online experience for developers around the world. With a virtual ticket, you get more than just access — you get ongoing value that supports your growth long after the conference ends.

Maria Jose Herrera
Maria Jose Herrera
April 14, 2025
BoxLang is Going Stable — Join Us for the Big Reveal at Into the Box 2025!

BoxLang is Going Stable — Join Us for the Big Reveal at Into the Box 2025!

BoxLang is the modern, flexible JVM language you've been waiting for. We know what it’s like to need better tools, more freedom, and the ability to scale without limits — because we’ve been there too. That’s why we’re building BoxLang with you and for you. Your feedback, ideas, and needs shape its future.

We’re committed to fair pricing, real support, and a growing ecosystem designed to help us all modernize, innovate, and thrive — together.

Maria Jose Herrera
Maria Jose Herrera
April 14, 2025