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 Req Field name Use I console.apps Space separated list of Java class names to instantiate as applications when running in console mode. Services implement the NetLoadableConsoleApp interface. (Read by the infrastructure.) I console.initialapp App 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 Req Field name Use * dataxferraw.server.baseport Lowest numbered of the four ports used by the DataXferRawService. * dataxferrpc.maxlength Maximum size data transfer allowed when using RPC communication. Log Req Field name Use debug.enable 0 → supress all Log output; 1 → don't supress. Default: 1 debug.level Suppress output below this level: v:2 d:3 i:4 w:5 e:6. Default: 3 Net.Base Req Field name Use * net.host.ip The 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.) I net.host.name Up 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.ip The 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. I net.services Space 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.granularity How often to check for application termination while waiting for a timeout period to expire. (An interval, in msec.) * net.timeout.serversocket Default timeout to use when waiting for connections on a server socket. (In msec.) * net.timeout.socket Default timeout when reading from a socket. (In msec.) Net.RPC Req Field name Use * rpc.persistence.timeout Idle time threshold (in msec.) afer which a persistent connection is closed. * rpc.server.port Local 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 Req Field name Use * tcpmessagehandler.maxmsglength The 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. Req Field name Use * test.team Names of the team members for the project.