Command Line Building of NSFs
To facilitate the building of NSF/NTF files from source code repositories, Domino Designer has provided a command line build system.
It is not a necessity to import source repositories into the Designer application to build NSF/NTF files.
This is aimed at supporting team based development using the Domino Designer.
To enable this functionality, one line needs to be added to the notes.ini file
The command line build can be run in two different ways
• Single Command
• Command File
The single command has the format:
designer -RPARAMS -vmargs -Dcom.ibm.designer.cmd=
The single command is made up of a number of comma seperated components, and is contained within double quotes.
The values for each of the components are:
• clean: true/false
• exit: true/false
• file name: String value containing the name of the NSF/NTF to be created. If no file extension if included then a type of NSF will be created.
• job name: the job to be run
• file path: the path to the .project file of the repository to be built
The Headless Designer supports a number of jobs:
imports the on-disk, creates the NSF, and begins the association. Processing of the next job does not wait for the sync or build to finish.
Note: this command will fail if the on-disk project already exists in the Designer workspace. Using clean will remove these when done processing. Specifying an already existing NSF file will not cause the build to fail.
wait <# of retries>
Waits for the given project to complete all build or sync operations. Since its not deterministic when (if) either event will start or finish, this loops a number of times looking before failing.
allows configuring some properties that control operation
deletes all projects create so far in this execution. Does NOT delete the project contents.
exit [# milli delay] [restart-true/false] [resume - true/false]
Exits Designer. restart will restart the Designer, and resume will tell Designer to continuing processing the command file if there are commands after this exit command.
An example command would be as follows
designer.exe -RPARAMS -vmargs -Dcom.ibm.designer.cmd="true,true,Discussion.nsf,importandbuild,C:\XPageApps\Discussion\.project,Discussion.nsf"
The output of the build can be viewed in a console by specifying the console as a program argument
designer -RPARAMS -console -vmargs -Dcom.ibm.designer.cmd=
The command line build also writes to its own log files
These files are stored in the Notes Data directory
For multiple commands, it is possible to pass a file path as a Java property to the command line build.
designer -RPARAMS -vmargs -Dcom.ibm.designer.cmd.file=
This file will contain one command per line, and a sample command file would be as follows:
Although this is a command line build system, the Designer is launched and immediately minimised. However, no user interaction is needed with the GUI. However, due care needs to be taken as with the existance of the GUI, there is potential for issues where some unexpected state could display a dialog, etc.
• import an on-disk-project and create an NSF
• remove any on-disk or NSF projects imported into the Designer since the beginning of a command-line session
• ability to restart Designer at any point in command - processing and resume where it left off.
• [possible IBM internal feature] expose Eclipse Update Manager command line syntax for installing/updating update sites, etc.
• [possible IBM internal feature?] extension points to allow adding commands
Update Manager Commands [internal]
These were added to allow some ability to update the Extension Library plugins using the command-line syntax.
where "command" is a standard Eclipse Update Manager command.
Also, if the [internal] Update Manager command interfaces are being used, it will probably be necessary to disable the Notes provisioning security, in order to allow "dropping" plugins into Designer.
At this point, testing has been limited to add a site and remove it. This required creating (unzipping) the site to the specified folder prior.
-command addSite -from local_site_dir
-command removeSite -to local_site_dir
An example command file, using a few Update Manager commands:
com.ibm.designer.domino.tools.userlessbuild.jobs.UpdateManagerJob,-command addSite -from C:\test\site
com.ibm.designer.domino.tools.userlessbuild.jobs.UpdateManagerJob,-command removeSite -to C:\test\site