> > |
If we allow parallel VR Juggler installations, then we need to allow parallel VR Juggler configurations. This is necessary because configurations may not be compatible between releases. This would happen if new definition versions are added in a newer Juggler release or if new configurable components are added.
As with conventions set up for installing parallel releases of VR Juggler, a convention would have to be chosen for how to have parallel VR Juggler configurations. A reasonable approach on Linux would be to put Juggler configuration files in /etc/vrjuggler. The versioning could come into play in one of two ways:
- Versioning on the
vrjuggler directory: /etc/vrjuggler-2.0
- A version-specific sub-directory:
/etc/vrjuggler/2.0
Either approach ought to be equally easy to handle in the Juggler software.
Where would configuration files go on Windows?
Extended Configuration File Search Path
Currently, VR Juggler uses a search path to find .jconf files when no path is provided to said files. The search order is the following:
- The local directory (i.e., the current working directory)
-
$VJ_BASE_DIR/share/vrjuggler/data/configFiles
We could extend this to include more directories to allow for finding site-specific configurations more easily. A possible new default search path could be the following:
- The current working directory
-
$HOME/.vrjuggler
- On Windows and Mac OS X, this should probably use the platform-specific convention for application data file storage. On Windows, the directory would be
Application Data\VR Juggler Configuration (or similar) in the user's profile directory. On Mac OS X, the directory would be $HOME/Library/VRJugglerConfiguration (or similar). The Configuration part of the directory name could probably be dropped since the proposed .vrjuggler directory does not have this substring.
- It might be wise to include version-specific information for this directory on all platforms. As with the system-wide directory name, the version number could go into the base directory name, or there could be a version-specific subdirectory. The same convention should be used for both cases.
- The versioned site-wide Juggler configuration directory
-
$VJ_BASE_DIR/share/vrjuggler/data/configFiles
This could almost be achieved right now using VJ_CFG_PATH except that the new directories are inserted into the middle of the search path.
Default Configuration
For easy launching of a VR Juggler application, it would be beneficial if users did not have to know the specifics of a given site's configuration. A default VR Juggler configuration file would make this possible. For example, this file could be default.jconf, and it could be looked up using the default search path and VJ_CFG_PATH just as would any other .jconf file.
Currently, many (most?) VR Juggler applications are written to require one or more configuration files to be given on the command line. The logic for a default configuration would probably go into the VR Juggler kernel, but existing applications would have to be modified to allow launching without a configuration file.
Cluster Configuration Management
The VR Juggler clustering infrastructure has been designed to allow the same configuration to be used on all the nodes of the cluster. This was done for ease of maintenance, but it is only easy to maintain this single configuration if there is in fact one installation. If the configuration is duplicated on all the cluster nodes, then changes have to be propagated. In general, exporting /etc or a subdirectory thereof using NFS (or other networked file system) is probably undesirable. However, mounting the configuration directory in /etc (or making a symlink from /etc to the mounted configuration) is not unreasonable. Of course, symbolic links are not an option on Windows.
|