Project Config File Entries

The value for each field is the string that follows on the same input line. A trailing " \" can be used as a line continuation indicator. (Note that a space precedes the backslash.) Comments must be entire lines, created by putting a '#' as the first character in a line.

Some of the fields are read by the infrastructure during startup and then exposed through several of its service and utility classes. These must be in the config file, but aren't normally read by your code. They're marked with an 'I' in the table.

Additionally, the configuration file contains fields provisioned as input to code you write. You must read and use them as intended if you want to be sure to pass our automated grading tests. Those entries are marked with a '*' below. All remaining entries are optional.

*
Console
ReqField nameUse
Iconsole.appsSpace separated list of Java class names to instantiate as applications when running in console mode. Services implement the NetLoadableConsoleApp interface. (Read by the infrastructure.)
Iconsole.initialappApp name of console application to launch once finished loading all other system components. Normally this is appmanager, a kind of console shell. (Read by the infrastructure.)
DataXfer
ReqField nameUse
*dataxferraw.server.baseportLowest numbered of the four ports used by the DataXferRawService.
*dataxferrpc.maxlengthMaximum size data transfer allowed when using RPC communication.
Log
ReqField nameUse
debug.enable0 → supress all Log output; 1 → don't supress. Default: 1
debug.levelSuppress output below this level: v:2 d:3 i:4 w:5 e:6. Default: 3
Net.Base
ReqField nameUse
net.host.ipThe IP address to use for this host. Typically not needed, but can be used if the infrastructure code is unable to reliably determine a unique "most useful IP" itself. (Read by the infrastructure.)
Inet.host.nameUp until you implement DDNS, this is simply an annotation that gives a name to the instance you're running. Once you build DDNS, this must be the DDNS full name of this host (Read by the infrastructure.)
*net.server.ipThe typical use scenario is client-server. This entry tells client applications where the server is, so that you don't have to type that information in every debugging run.
Inet.servicesSpace separated list of Java class names to instantiate as services. Services are loaded in the order given in the file, and there may be dependencies among services that will cause loading to fail if an incorrect order is given.
*net.timeout.granularityHow often to check for application termination while waiting for a timeout period to expire. (An interval, in msec.)
*net.timeout.serversocketDefault timeout to use when waiting for connections on a server socket. (In msec.)
*net.timeout.socketDefault timeout when reading from a socket. (In msec.)
Net.RPC
ReqField nameUse
*rpc.persistence.timeoutIdle time threshold (in msec.) afer which a persistent connection is closed.
*rpc.server.portLocal port on which the RPC service should listen for connections. If a root configuration, must match ddns.root.port. Otherwise need not be specified.
TCPMessageHandler
ReqField nameUse
*tcpmessagehandler.maxmsglengthThe maximum allowed length of the data portion of a received TCPMessageHandler message.
Test
All of these fields are designed for use by our testing code, and aren't used by code you write. You must set test.team, however.
ReqField nameUse
*test.teamNames of the team members for the project.