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

Is Cloud the Answer for Your ColdFusion Dilemma?

Is Cloud the Answer for Your ColdFusion Dilemma?

Feeling the limits of an on-premise ColdFusion setup?

Many businesses face high costs, limited scalability, and performance bottlenecks, leaving them wondering if the cloud could be the answer.

In our FREE whitepaper, "Is Cloud the Answer for Your ColdFusion Dilemma?", we explore:

  • Benefits of Migrating to the Cloud: From cost savings to increased flexibility, find out what a cloud-based ColdFusion setup can do.
Cristobal Escobar
Cristobal Escobar
November 13, 2024
Mastering Events and Listeners in CBWIRE

Mastering Events and Listeners in CBWIRE

In CBWIRE, events and listeners are the backbone of building responsive, modular applications without relying heavily on JavaScript. This guide walks you through setting up and using CBWIRE events to create seamless interactions between components, from dispatching events in CFML and frontend templates to listening with Alpine.js and JavaScript. Learn how to make your applications feel dynamic and engaging by effortlessly connecting components. Whether you’re triggering events to update a dashboard or targeting specific parts of your app with dispatchTo, these techniques will empower you to create a modern, interactive CFML experience with ease.

Grant Copley
Grant Copley
November 11, 2024
10 Key Benefits of Hiring a Specialized ColdFusion Consulting Team

10 Key Benefits of Hiring a Specialized ColdFusion Consulting Team

ColdFusion remains a powerful and versatile platform for building dynamic web applications. However, keeping your ColdFusion environment optimized, secure, and scalable requires specialized expertise. Whether managing a long-standing ColdFusion application or planning new development projects, hiring a dedicated ColdFusion consulting and support team can be a game-changer for CTOs, CIOs, and developers. Here's why:

1. Expert Guidance on ColdFusion Web Development

...

Cristobal Escobar
Cristobal Escobar
November 08, 2024