What algorithm does isCOBOL use to load framework properties (runtime config variables)?

Question ID : 55
Created on 2009-08-31 at 5:55 PM
Author : Veryant Support [support@veryant.com]

Online URL : http://support.veryant.com/support/phpkb/question.php?ID=55

With isCOBOL, the runtime configuration file is a Java properties file and is referred to in the documentation as the isCOBOL framework properties file. 

The Java virtual machine allows you to specify properties with the -D command line option. The isCOBOL runtime properties file can be specified as the value of the iscobol.conf property.

For example:

java -Discobol.conf=myapp.cfg com.iscobol.rts.Isrun MYAPP 

(Note that isrun is simply a wrapper for java com.iscobol.rts.Isrun) 

or simply: 

java -Discobol.conf=myapp.cfg MYAPP 

isCOBOL uses the following algorithm for loading properties from the environment and/or the isCOBOL properties file. Properties read in each step override those read in previous steps:
  1. Read environment variables such as those set with SET VAR=VAL. In this case the prefix "iscobol." is stripped from the name before it is looked up in the environment.
  2. Read properties from /etc/iscobol.properties if it exists
  3. Read properties from %HOMEPATH%/iscobol.properties if it exists
  4. Read the first iscobol.properties found in CLASSPATH
  5. Read the file specified as the value of the iscobol.conf property if it exists. iscobol.conf cannot be set in the environment (i.e. isCOBOL does not read the CONF environment variable).
  6. Read properties specified directly with -Discobol.* on the java command line
In the above, %HOMEPATH% is the users home directory, and the iscobol.conf value can be the path of a regular disk file, a URL or the name of a class. When the name of a class is specified, isCOBOL searches for a file called iscobol.properties in the same directory or jar file that the class is located in.

Back to Original Question