ShowTable of Contents
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.
Setup
To enable this functionality, one line needs to be added to the notes.ini file
DESIGNER_AUTO_ENABLED=true
Running
The command line build can be run in two different ways
- Single Command
- Command File
Single Command
The single command has the format:
designer -RPARAMS -vmargs -Dcom.ibm.designer.cmd= single command
The single command is made up of a number of comma seperated components, and is contained within double quotes.
clean,exit,file name,job name,file path,file name
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:
importandbuild
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.
waitproject name# 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.
configstop on error - true/falseexit on error - true/false
allows configuring some properties that control operation
clean
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
Example:
designer.exe -RPARAMS -vmargs -Dcom.ibm.designer.cmd="true,true,Discussion.nsf,importandbuild,C:\XPageApps\Discussion\.project,Discussion.nsf"
Console
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=single command
Logging
The command line build also writes to its own log files
- HEADLESS0.log
- HEADLESSJOB0.log
These files are stored in the Notes Data directory
Command File
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=path to command file
This file will contain one command per line, and a sample command file would be as follows:
config,true,true
importandbuild,C:\test\XPagesExt\.project,testXPages
wait,testXPages,20
importandbuild,C:\test\XPagesSBT\.project,testSBT
wait,testSBT,20
clean
exit
Notes
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.
General features
- 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
These were added to allow some ability to update the Extension Library plugins using the command-line syntax.
com.ibm.designer.domino.tools.userlessbuild.jobs.UpdateManagerJobcommand
where "command" is a standard Eclipse Update Manager command.
See:
http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fupdate_standalone.html
Setup:
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.
- command install -from jar:file:file_url -to file:/workspace_applications -featureIdfeatureId -versionversion
- command enable -to file:/workspace_applications -featureIdfeatureId -versionversion
- command disable -to file:/workspace_applications -featureIdfeatureId -versionversion
- command uninstall -to file:/workspace_applications -featureIdfeatureId -versionversion
An example command file, using a few Update Manager commands:
config,true,true
com.ibm.designer.domino.tools.userlessbuild.jobs.UpdateManagerJob,-command install -from jar:file:C:/UDS/com.ibm.sbt.domino.updatesite.zip!/ -to file:/C:/Notes90/Data/workspace/applications -featureId com.ibm.sbt.domino.feature -version 1.0.0.20131121-0623
exit,18000,true,true
com.ibm.designer.domino.tools.userlessbuild.jobs.UpdateManagerJob,-command enable -to file:/C:/Notes90/Data/workspace/applications -featureId com.ibm.sbt.domino.feature -version 1.0.0.20131121-0623
exit,18000,true,true
importandbuild,C:\test\XPagesExt\.project,UMtest
wait,UMtest,20
com.ibm.designer.domino.tools.userlessbuild.jobs.UpdateManagerJob,-command enable -to file:/C:/Notes90/Data/workspace/applications -featureId com.ibm.sbt.domino.feature -version 1.0.0.20131121-0623
exit,18000,true,true
com.ibm.designer.domino.tools.userlessbuild.jobs.UpdateManagerJob,-command enable -to file:/C:/Notes90/Data/workspace/applications -featureId com.ibm.sbt.domino.feature -version 1.0.0.20131121-0623
clean
exit,12000