protected List<String> processArgs(String[] args) {
		List<String> commandLineArgs = new ArrayList<String>();
		int ix = 0;
		Hashtable<String,String> opts = new Hashtable<String,String>();
		
		while (ix < args.length){
			if (args[ix].startsWith("--")) {
				String option = args[ix++].substring(2);
				if (ix==args.length || args[ix].startsWith("--")) 
					severe("Missing argument for --"+option+" option.");
				else if (opts.containsKey(option))
					severe("Option \""+option+"\" already set.");
				else 
					opts.put(option, args[ix++]);					
			} else {
				commandLineArgs.add(args[ix++]);
			}
		}
		/*
		 * Overrides of values from configuration file.
		 */
		Enumeration<String> keys = opts.keys();
		while (keys.hasMoreElements()) {
			String k = keys.nextElement();
			if ("host".equals(k))
				host = opts.get("host");
			else if ("http".equals(k))
				httpPort = Integer.parseInt(opts.get("http"));
//			else if ("rmi".equals(k))
//				rmiPort = Integer.parseInt(opts.get("rmi"));
			else if ("id".equals(k))
				nodeId = Integer.parseInt(opts.get("id"));
			else
				severe("Unrecognized option: --"+k);
		}
		
		return commandLineArgs;
	}