commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Fortner" <>
Subject [CLI] Usage Patterns Question
Date Sat, 22 Mar 2008 15:09:23 GMT
I've been using CLI 1 for a while and I noticed that there's been renewed
interest in developing CLI2.  I was wondering how people are currently using
CLI, and whether I'm using it properly?

Most of the command line apps that I've developed do more than one thing.
In order to make it easier to plugin more functionality I use a basic
Command pattern.  Each plugin interface looks something like this:

+ isValid(options: Options):boolean
+ getDescription():String
+ execute(options:Options):void
+ getPrimaryOption():Option

Each command has a primaryOption which uniquely identifies the command from
the command line.  For example, if you have a command which scales images,
then it might be identified by the --scale option.

The main application is responsible for discovering and loading all plugins
at runtime (using the SPI mechanism), determining which plugin to execute,
and printing out help information.  It also invokes the command by first
invoking the command's isValid method to validate the input before invoking
its execute method.

I'm curious if other people are using CLI in a similar manner, or if people
create separate CLI applications for each piece of functionality?


Mark Fortner


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message