SlideShare a Scribd company logo
1 of 57
Download to read offline
Go
Commando!
WHO AM I?
• Luis Majano
• Computer Engineer
• Born in El Salvador ->Texas
• CEO of Ortus Solutions
• Adobe Community Professional
• ColdFusion (CFML) Advocate
• Adobe Advisory Committee
• Lucee Language Committee
• Sandals -> ESRI -> Ortus
@lmajano
@ortussolutions
How do we work in CF
A better way to work in CF
What is CommandBox
Features
Demo
Making CFML Huuugeee Again!
HOW DO WE WORK IN CF?
Code% App%
Code
Code
Code
Code
Code
Code
Code
IT’S ALIVE!
Collaboration
Automation
Reusability
CFMLTOOLING
CFML SHAMING
• Lack of tooling
• Package Management
• CLI
• OS Integrations
• Applications
• Legacy Hell
• Way behind the cool kids
LEGACY PROBLEM
• Gives CFML a bad name
• Security Issues
• Performance Issues
• Employee Issues
• Development Issues
• Finding Developer Issues
• >35% No MVC
• >60% No DI
• >55% NoTesting
How we should work!
App#Package#
Manager#
CLI#
REPL#
Automa6on#
OS#
Take CFML Back to
The Future
Since 2015
Package Manager, REPL, CLI + More
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
Who is this for?
Any ColdFusion (CFML) Developer
Free 4 All
Java 8+
v4.2.0
Professional Open Source
• GitHub
• https://github.com/Ortus-Solutions/commandbox
• Services
• On-SiteTraining
• VirtualTraining
• Mentoring
• Custom Development
• Security Services
• Support
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
Usage - CLI vs Shell
box myapp.cfm Shell
Usage - OS Execution
OS 

+

CFML
Execute CFML Files
box myapp.cfm &
Box Scripting: *Unix
#!/usr/bin/env box
Usage - Commands
• How you get things done!
• Built-in Help
• command help
• Command Namespaces
• Commands
• Aliases
• Parameters/Arguments
• Tab-Completion
• History
Usage - Parameters
Named Params
box execute file=test.cfm
Positional
box install coldbox
Boolean Flags
box coldbox create app —installColdBox
Boolean Flags
box coldbox create controller —!script
Escape Input
t,n, ”, ’
Usage - History
Command History
box history
REPL History
box history type=scriptrepl
box history type=tagrepl
Clear History
box history —clear
Usage - OS Integration
• Editing
• sed
• Output Manipulation
• |, more, tail, grep
• File Redirection
• > Create, >> Append
• Open
• Files/Directories
• Browser
• Run OS Binaries
• Grunt, Node, Git, Gulp, Etc.
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
What’s a package?
• A folder or zip/tar file that must contain:
• box.json
• It must be in the root!
init name="My Package" version="1.0.0"
Were do packages run?
CFML 

App
$ CLI
box.json
• Package Descriptor
• Declares package metadata
• Name
• Slug
• Version
• Author
• Dependencies
• DevDependencies
• Installation Details
• Custom Metadata
• Package Scripts
• Listen to CLI/Server/OS Events
BOX.JSON{
"name":"cbdebugger Builder",
"version":"1.5.0",
"slug":"cbdebugger-shell",
"dependencies":{
"coldbox":"^4.3.0",
"workbench":"git+https://github.com/Ortus-Solutions/unified-workbench.git"
},
"devDependencies":{
"testbox":"2.3.0+00044"
},
"installPaths":{
"testbox":"testbox",
"coldbox":"coldbox",
"workbench":"workbench"
},
"testbox":{
"runner":"http://localhost:49616"
},
"scripts":{
"postVersion":"recipe workbench/bump.boxr"
}
}
Working With Packages
$ package help
Where do they come from?
• ForgeBox
• File zip/tar
• Directory
• Git
• Github
• Bitbucket
• HTTP/S
• JAR
Code Endpoints
install coldbox@4.3.0
install coldbox@be
install http://www.site.com/myPackage.zip
install https://maven/myjar.jar
install /var/libs/myPackage.zip
install /var/libs/myPackage/
install username/repoName.git#v1.5.6
Packaging Features
• Can distribute without dependencies
• Can have development dependencies
• Dependencies Inception
• “install” to initialize a project
• “update” to update dependencies
• “outdated” to check for versions
• “list” to visualize dependencies
• “uninstall” to uninstall dependencies
Package Scripts
• Interceptor-based CLI Scripts
• Listen to CommandBox Events
• Supports Expansions, CFML functions, piping, environment variables, etc.
"scripts" : {
"postVersion" : "package set location='gitUser/gitRepo#v`package version`'",
"postPublish" : "!git push --follow-tags"
}
• Ad-hoc Scripts as well
"scripts" : {
"build" : "!grunt build && testbox run && run-script generateAPIDocs && bump --patch && publish",
"generateAPIDocs" : "docbox generate"
}
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
Read - Eval - Print - Loop
• Executes code
• SupportTags or CFScript
• History
• Multi-line Statements
• Declare closures, functions, etc
• Keeps variables state
• Developer’s best friend
REPL
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
Integrated Server
• Lightweight servlet container: undertow
• Startup ad-hoc servers in any folder
• Keeps track of servers, no WEB-INF needed
• Server Commands
• start
• stop
• restart
• status
• log
• open
• forget
• Lucee + Adobe CF + Any Java WAR
CFML
Engine
PORTABILITY CONTAINERS
https://commandbox.ortusbooks.com/content/deploying-commandbox/docker.html
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
What is ForgeBox
• https://forgebox.io
• ColdFusion (CFML) Code Directory
• Foster Community
• Works in Unison with CommandBox
• Cloud Package Management
• 500+ Packages and growing
ForgeBox Registration
• CLI or UI
• Ask you a few questions
• Ready to start publishing
• Registers an API Key for you
forgebox register
https://forgebox.io/security/registration
ForgeBox Commands
$ forgebox help
ForgeBox Identities
• Login from CLI
• forgebox login
• Stores your API Key
• ~user./CommandBox
• Supports multiple logins
• forgebox use username
• Supports Who you are
• forgebox whoami
ForgeBox Publish
• Publishes your public/private packages
• Reads your box.json
• Can push your readme files, changelogs, instructions
• Make sure location key is set
forgebox publish
PRO ACCOUNTS
• Monthly Subscription Service
• Private Packages
• S3 Storage
• Unique Installation Strings
• FREE for limited time
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
ColdFusion Extensibility
• Commands are all CFML
• Create custom commands and modules
• Register in ForgeBox
• Favorite Commands
• commandBox-Chuck-Norris
• commandbox-docbox
• commandbox-fusionreactor
• commandbox-cflint
CFML
What is CommandBox?
CLI Package

Manager
REPL
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFML
ColdFusion AutomationForgeBox
Automation Commands
• execute
• Executes cfml scripts like batch files
• Can accept parameters
• Task Runners
• Analagous to gulp, ant, gradle, etc
• CFC with execution targets
• Recipes
• Like a “Batch” file: !#/usr/bin/box
• Runs multiple commands
• Can accept parameters
• my-recipe.boxr
build.cfc
Task run build
task run build createZips
task run build compileAssets
task run build minimzeJS
component {
function run() {
createZips();
compileAssets();
}
function createZips() {
print.line( 'Zips created!' );
}
function compileAssets(){
print.line( 'Assets Compiled!' );
}
function minimizeJS(){
print.line( 'JS Minimized!' );
}
}
# Init a repository
mkdir $name
init $name
run git init
# Create ColdBox App
coldbox create app $name —installColdBox
coldbox create handler $controller index,save,delete
coldbox create module $module
# Prepare for Testing
install testbox
package set defaultPort=“$port”
package set testbox.runner=“localhost:$port/tests/runner”
my-recipe.boxr
recipe my-recipe.boxr MyApp
What is CommandBox?
CLI Package

Manager
REP
L
Read-Eval

Print-Loop
Integrated

Server
Scaffolding
CFM
L
ColdFusion AutomationForgeBox
Scaffolding
Available For Any Framework or
Application
Preside CMS
Scaffolding
init
coldbox create app “MyApp” —-installColdBox
coldbox create handler contacts index,save,delete
coldbox create module MyModule
install testbox
package set defaultPort=“90001”
package set testbox.runner=“localhost:90001/tests/runner”
testbox run
Resources
• Official Site
• https://ortussolutions.com/products/commandbox
• Documentation + Book
• https://apidocs.ortussolutions.com/commandbox/current
• https://commandbox.ortusbooks.com
• Google Group
• https://groups.google.com/a/ortussolutions.com/forum/#!forum/commandbox
• Training
• https://ortussolutions.com/services/training
• Professional Support
• https://ortussolutions.com/services/support
@lmajano
@ortussolutions
ENTERPRISE
• ForgeBox for Enterprise + Government
• Downloadable Appliance
• Encapsulated Dependencies
• Unique URI entrypoint
• Unique CommandBox Registrations
forgebox register ortus http://fb.ortus.com
install ortus:cfbox
install ortus:@lmajano/cfbox
Q & A

More Related Content

What's hot

Can you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and YouCan you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and YouColdFusionConference
 
How to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share featureHow to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share featureAngel Borroy López
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git togetherColdFusionConference
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionColdFusionConference
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSColdFusionConference
 
Serverless Media Workflow
Serverless Media WorkflowServerless Media Workflow
Serverless Media WorkflowMooYeol Lee
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016ColdFusionConference
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016Ortus Solutions, Corp
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
 
Migration to ColdFusion 11 – making it seamless and easy anit
Migration to ColdFusion 11 – making it seamless and easy   anitMigration to ColdFusion 11 – making it seamless and easy   anit
Migration to ColdFusion 11 – making it seamless and easy anitColdFusionConference
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewJosh Padnick
 
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
December OpenNTF Webinar: The Volt MX LotusScript ToolkitDecember OpenNTF Webinar: The Volt MX LotusScript Toolkit
December OpenNTF Webinar: The Volt MX LotusScript ToolkitHoward Greenberg
 
Eugene PHP June 2015 - Let's Talk Laravel
Eugene PHP June 2015 - Let's Talk LaravelEugene PHP June 2015 - Let's Talk Laravel
Eugene PHP June 2015 - Let's Talk Laravelanaxamaxan
 
Mobile Applications Made Easy with ColdFusion 11
Mobile Applications Made Easy with ColdFusion 11Mobile Applications Made Easy with ColdFusion 11
Mobile Applications Made Easy with ColdFusion 11ColdFusionConference
 
SP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
SP24S053 Introduction to PowerShell for SharePoint Developers and AdministratorsSP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
SP24S053 Introduction to PowerShell for SharePoint Developers and AdministratorsMichael Blumenthal (Microsoft MVP)
 
Everything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLEverything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLMario-Leander Reimer
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Gavin Pickin
 

What's hot (20)

Can you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and YouCan you contain the future - Docker, Container Technologies, The Future, and You
Can you contain the future - Docker, Container Technologies, The Future, and You
 
How to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share featureHow to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share feature
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git together
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Testing Automaton - CFSummit 2016
Testing Automaton - CFSummit 2016Testing Automaton - CFSummit 2016
Testing Automaton - CFSummit 2016
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusion
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWS
 
Serverless Media Workflow
Serverless Media WorkflowServerless Media Workflow
Serverless Media Workflow
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017
 
Migration to ColdFusion 11 – making it seamless and easy anit
Migration to ColdFusion 11 – making it seamless and easy   anitMigration to ColdFusion 11 – making it seamless and easy   anit
Migration to ColdFusion 11 – making it seamless and easy anit
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
 
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
December OpenNTF Webinar: The Volt MX LotusScript ToolkitDecember OpenNTF Webinar: The Volt MX LotusScript Toolkit
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
 
Eugene PHP June 2015 - Let's Talk Laravel
Eugene PHP June 2015 - Let's Talk LaravelEugene PHP June 2015 - Let's Talk Laravel
Eugene PHP June 2015 - Let's Talk Laravel
 
Mobile Applications Made Easy with ColdFusion 11
Mobile Applications Made Easy with ColdFusion 11Mobile Applications Made Easy with ColdFusion 11
Mobile Applications Made Easy with ColdFusion 11
 
SP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
SP24S053 Introduction to PowerShell for SharePoint Developers and AdministratorsSP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
SP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
 
Everything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLEverything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPL
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
 

Similar to Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG

Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLColdFusionConference
 
CommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementCommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementOrtus Solutions, Corp
 
ITB2016 - ForgeBox 2 Package Management
ITB2016 - ForgeBox 2 Package ManagementITB2016 - ForgeBox 2 Package Management
ITB2016 - ForgeBox 2 Package ManagementOrtus Solutions, Corp
 
Command Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationCommand Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationColdFusionConference
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaGeorge Wilson
 
Introduction to Laravel
Introduction to LaravelIntroduction to Laravel
Introduction to LaravelEli Wheaton
 
ITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus SolutionsITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus SolutionsOrtus Solutions, Corp
 
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...Edward Wilde
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDAleksandr Maklakov
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO Christian Posta
 

Similar to Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG (20)

CommandBox at CFCamp 2014
CommandBox at CFCamp 2014CommandBox at CFCamp 2014
CommandBox at CFCamp 2014
 
Command box
Command boxCommand box
Command box
 
Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPL
 
ITB2017 - Keynote
ITB2017 - KeynoteITB2017 - Keynote
ITB2017 - Keynote
 
CommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementCommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package Management
 
ITB2016 - ForgeBox 2 Package Management
ITB2016 - ForgeBox 2 Package ManagementITB2016 - ForgeBox 2 Package Management
ITB2016 - ForgeBox 2 Package Management
 
Command Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationCommand Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, Automation
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
 
Into The Box 2016 Keynote
Into The Box 2016 KeynoteInto The Box 2016 Keynote
Into The Box 2016 Keynote
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
 
Securing Legacy CFML Code
Securing Legacy CFML CodeSecuring Legacy CFML Code
Securing Legacy CFML Code
 
Introduction to Laravel
Introduction to LaravelIntroduction to Laravel
Introduction to Laravel
 
ITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus SolutionsITB2015 - Keynote by Ortus Solutions
ITB2015 - Keynote by Ortus Solutions
 
Into The Box 2015 Keynote
Into The Box 2015 KeynoteInto The Box 2015 Keynote
Into The Box 2015 Keynote
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLD
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
 

More from Ortus Solutions, Corp

Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionOrtus Solutions, Corp
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Ortus Solutions, Corp
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfOrtus Solutions, Corp
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfOrtus Solutions, Corp
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfOrtus Solutions, Corp
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfOrtus Solutions, Corp
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfOrtus Solutions, Corp
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfOrtus Solutions, Corp
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfOrtus Solutions, Corp
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfOrtus Solutions, Corp
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfOrtus Solutions, Corp
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfOrtus Solutions, Corp
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfOrtus Solutions, Corp
 
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfOrtus Solutions, Corp
 
ITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfOrtus Solutions, Corp
 
Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfEnterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfOrtus Solutions, Corp
 

More from Ortus Solutions, Corp (20)

Ortus Government.pdf
Ortus Government.pdfOrtus Government.pdf
Ortus Government.pdf
 
Luis Majano The Battlefield ORM
Luis Majano The Battlefield ORMLuis Majano The Battlefield ORM
Luis Majano The Battlefield ORM
 
Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusion
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
 
ITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdfITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdf
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
 
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
 
ITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdf
 
Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfEnterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdf
 

Recently uploaded

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 

Recently uploaded (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 

Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG

  • 2. WHO AM I? • Luis Majano • Computer Engineer • Born in El Salvador ->Texas • CEO of Ortus Solutions • Adobe Community Professional • ColdFusion (CFML) Advocate • Adobe Advisory Committee • Lucee Language Committee • Sandals -> ESRI -> Ortus @lmajano @ortussolutions
  • 3. How do we work in CF A better way to work in CF What is CommandBox Features Demo Making CFML Huuugeee Again!
  • 4. HOW DO WE WORK IN CF? Code% App% Code Code Code Code Code Code Code
  • 7. CFML SHAMING • Lack of tooling • Package Management • CLI • OS Integrations • Applications • Legacy Hell • Way behind the cool kids
  • 8. LEGACY PROBLEM • Gives CFML a bad name • Security Issues • Performance Issues • Employee Issues • Development Issues • Finding Developer Issues • >35% No MVC • >60% No DI • >55% NoTesting
  • 9. How we should work! App#Package# Manager# CLI# REPL# Automa6on# OS#
  • 10. Take CFML Back to The Future
  • 11.
  • 12. Since 2015 Package Manager, REPL, CLI + More
  • 13. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 14. Who is this for? Any ColdFusion (CFML) Developer
  • 15. Free 4 All Java 8+ v4.2.0
  • 16. Professional Open Source • GitHub • https://github.com/Ortus-Solutions/commandbox • Services • On-SiteTraining • VirtualTraining • Mentoring • Custom Development • Security Services • Support
  • 17. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 18. Usage - CLI vs Shell box myapp.cfm Shell
  • 19. Usage - OS Execution OS 
 +
 CFML Execute CFML Files box myapp.cfm & Box Scripting: *Unix #!/usr/bin/env box
  • 20. Usage - Commands • How you get things done! • Built-in Help • command help • Command Namespaces • Commands • Aliases • Parameters/Arguments • Tab-Completion • History
  • 21. Usage - Parameters Named Params box execute file=test.cfm Positional box install coldbox Boolean Flags box coldbox create app —installColdBox Boolean Flags box coldbox create controller —!script Escape Input t,n, ”, ’
  • 22. Usage - History Command History box history REPL History box history type=scriptrepl box history type=tagrepl Clear History box history —clear
  • 23. Usage - OS Integration • Editing • sed • Output Manipulation • |, more, tail, grep • File Redirection • > Create, >> Append • Open • Files/Directories • Browser • Run OS Binaries • Grunt, Node, Git, Gulp, Etc.
  • 24. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 25. What’s a package? • A folder or zip/tar file that must contain: • box.json • It must be in the root! init name="My Package" version="1.0.0"
  • 26. Were do packages run? CFML 
 App $ CLI
  • 27. box.json • Package Descriptor • Declares package metadata • Name • Slug • Version • Author • Dependencies • DevDependencies • Installation Details • Custom Metadata • Package Scripts • Listen to CLI/Server/OS Events
  • 29. Working With Packages $ package help
  • 30. Where do they come from? • ForgeBox • File zip/tar • Directory • Git • Github • Bitbucket • HTTP/S • JAR Code Endpoints install coldbox@4.3.0 install coldbox@be install http://www.site.com/myPackage.zip install https://maven/myjar.jar install /var/libs/myPackage.zip install /var/libs/myPackage/ install username/repoName.git#v1.5.6
  • 31. Packaging Features • Can distribute without dependencies • Can have development dependencies • Dependencies Inception • “install” to initialize a project • “update” to update dependencies • “outdated” to check for versions • “list” to visualize dependencies • “uninstall” to uninstall dependencies
  • 32. Package Scripts • Interceptor-based CLI Scripts • Listen to CommandBox Events • Supports Expansions, CFML functions, piping, environment variables, etc. "scripts" : { "postVersion" : "package set location='gitUser/gitRepo#v`package version`'", "postPublish" : "!git push --follow-tags" } • Ad-hoc Scripts as well "scripts" : { "build" : "!grunt build && testbox run && run-script generateAPIDocs && bump --patch && publish", "generateAPIDocs" : "docbox generate" }
  • 33. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 34. Read - Eval - Print - Loop • Executes code • SupportTags or CFScript • History • Multi-line Statements • Declare closures, functions, etc • Keeps variables state • Developer’s best friend REPL
  • 35. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 36. Integrated Server • Lightweight servlet container: undertow • Startup ad-hoc servers in any folder • Keeps track of servers, no WEB-INF needed • Server Commands • start • stop • restart • status • log • open • forget • Lucee + Adobe CF + Any Java WAR
  • 38. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 39.
  • 40. What is ForgeBox • https://forgebox.io • ColdFusion (CFML) Code Directory • Foster Community • Works in Unison with CommandBox • Cloud Package Management • 500+ Packages and growing
  • 41. ForgeBox Registration • CLI or UI • Ask you a few questions • Ready to start publishing • Registers an API Key for you forgebox register https://forgebox.io/security/registration
  • 43. ForgeBox Identities • Login from CLI • forgebox login • Stores your API Key • ~user./CommandBox • Supports multiple logins • forgebox use username • Supports Who you are • forgebox whoami
  • 44. ForgeBox Publish • Publishes your public/private packages • Reads your box.json • Can push your readme files, changelogs, instructions • Make sure location key is set forgebox publish
  • 45. PRO ACCOUNTS • Monthly Subscription Service • Private Packages • S3 Storage • Unique Installation Strings • FREE for limited time
  • 46. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 47. ColdFusion Extensibility • Commands are all CFML • Create custom commands and modules • Register in ForgeBox • Favorite Commands • commandBox-Chuck-Norris • commandbox-docbox • commandbox-fusionreactor • commandbox-cflint CFML
  • 48. What is CommandBox? CLI Package
 Manager REPL Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFML ColdFusion AutomationForgeBox
  • 49. Automation Commands • execute • Executes cfml scripts like batch files • Can accept parameters • Task Runners • Analagous to gulp, ant, gradle, etc • CFC with execution targets • Recipes • Like a “Batch” file: !#/usr/bin/box • Runs multiple commands • Can accept parameters • my-recipe.boxr
  • 50. build.cfc Task run build task run build createZips task run build compileAssets task run build minimzeJS component { function run() { createZips(); compileAssets(); } function createZips() { print.line( 'Zips created!' ); } function compileAssets(){ print.line( 'Assets Compiled!' ); } function minimizeJS(){ print.line( 'JS Minimized!' ); } }
  • 51. # Init a repository mkdir $name init $name run git init # Create ColdBox App coldbox create app $name —installColdBox coldbox create handler $controller index,save,delete coldbox create module $module # Prepare for Testing install testbox package set defaultPort=“$port” package set testbox.runner=“localhost:$port/tests/runner” my-recipe.boxr recipe my-recipe.boxr MyApp
  • 52. What is CommandBox? CLI Package
 Manager REP L Read-Eval
 Print-Loop Integrated
 Server Scaffolding CFM L ColdFusion AutomationForgeBox
  • 53. Scaffolding Available For Any Framework or Application Preside CMS
  • 54. Scaffolding init coldbox create app “MyApp” —-installColdBox coldbox create handler contacts index,save,delete coldbox create module MyModule install testbox package set defaultPort=“90001” package set testbox.runner=“localhost:90001/tests/runner” testbox run
  • 55. Resources • Official Site • https://ortussolutions.com/products/commandbox • Documentation + Book • https://apidocs.ortussolutions.com/commandbox/current • https://commandbox.ortusbooks.com • Google Group • https://groups.google.com/a/ortussolutions.com/forum/#!forum/commandbox • Training • https://ortussolutions.com/services/training • Professional Support • https://ortussolutions.com/services/support @lmajano @ortussolutions
  • 56. ENTERPRISE • ForgeBox for Enterprise + Government • Downloadable Appliance • Encapsulated Dependencies • Unique URI entrypoint • Unique CommandBox Registrations forgebox register ortus http://fb.ortus.com install ortus:cfbox install ortus:@lmajano/cfbox
  • 57. Q & A