This example is an RCP application that reads the key "Test" from the
system configuration file and puts it into a Text widget in the UI.

To make this work, you must supply a propertiesLocation.ini file.  It must
be placed next to the eclipse.exe of your running IDE and it must contain
a line of the form:

ConfigurationLocation=<URL>

For example:

ConfigurationLocation=file:///c:/configuration.ini

This specifies the location and name of the system configuration file.

The following substitution variables are recognized in this URL:

${install_location} - Where eclipse.exe lives
${user_location} - The current user's home directory
${workspace_location} - The RCP application's workspace location

In the general case, this file is simply a Java Properties file object.
For example:

Test=<some string>

The value of this key is what is read and placed into the user interface.
