Implementation of command line launchers depends on the type of the batch mode program (Core related or Plugin related).

Both modes provide two ways of implementation:

  • CommandLine and CommandLineAction (for Core and Plugin respectively) are general launchers meant for developers that will not be opening projects or needs full control of argument parsing and opening of projects.
  • ProjectCommandLine and ProjectCommandLineAction (for Core and Plugin respectively) are convenience launchers simplifying work with projects as they provide list of arguments that will be parsed and used to open one or more projects removing great deal of boilerplate code needed.

To create command line launcher:

  1. Core related batch program:
    • For general command line extend com.nomagic.magicdraw.commandline.CommandLine.

      • Override com.nomagic.magicdraw.commandline.CommandLine#parseArgs to parse your arguments
      • Override com.nomagic.magicdraw.commandline.CommandLine#execute to execute your action
    • For project command line action extend com.nomagic.magicdraw.commandline.ProjectCommandLine
      • Override com.nomagic.magicdraw.commandline.ProjectCommandLine#parseArguments to parse custom arguments you might be using
      • Override com.nomagic.magicdraw.commandline.ProjectCommandLine#execute(java.util.Properties, com.nomagic.magicdraw.core.Project) to execute your action. This method will be called for every project opened using available project command line arguments.
  2. Plugin related batch program:
    • For general command line implement com.nomagic.magicdraw.commandline.CommandLineAction
      • Override com.nomagic.magicdraw.commandline.CommandLineAction#execute to parse your arguments and do your action
    • For project command line action extend com.nomagic.magicdraw.commandline.ProjectCommandLineAction

      • Override com.nomagic.magicdraw.commandline.ProjectCommandLineAction#execute(java.lang.String[], java.util.Properties, com.nomagic.magicdraw.core.Project) to execute your action. This method will be called for every project opened using available project command line arguments. Full array of originally passed arguments and parsed project command line arguments specific for project (default arguments that were parsed from command line or project specific properties file) are also passed along with opened project.

Available parameters for project command line launcher:

  • project - Project name or path
  • projectDescriptor - Project descriptor
  • server - Server url
  • username - Username on server
  • password - Password for provided username
    • By default provided password should be encrypted.
      • To generate encrypted password run any command line launcher with single argument generateServerPassword=yourPassword or generateServerPassword without password for interactive prompt.
    • In order to use password in plain text form argument encryptPassword needs to be provided and set to true.
  • serverType - Type of server - twc for teamwork cloud server
  • enableSSL - To use ssl
  • encryptPassword - Set true if provided password is in plain text
  • properties - Path to properties file containing properties. Multiple properties files can be provided "properties=prop1.properties;prop2.properties"
  • projectPassword - Project password
  • version - Project version
  • branch - Project branch

All parameters for project command line launchers, both in command line and properties files, should be provided in format "property1=value1 property2=value2".

To open multiple projects properties for each project (in case of local project path or name is enough) must be defined in separate properties files that are passed as "properties" argument e.g. "properties=prop1.properties;prop2.properties".