public static final void load_config(String path) {
		Properties config = new Properties();
		FileInputStream fis = null;
		try {
			fis = new FileInputStream(path);
			config.load(fis);
		} catch (Exception e ) {
			System.err.println("Error loading configuration file: " + path + "\n" + e.toString());
			System.exit(-1);
		} finally {
			try {
				if( fis != null ) {
					fis.close();
				}
			} catch( IOException e ) {}
		}
		Enumeration<String> params = (Enumeration<String>) config.propertyNames();
		while (params.hasMoreElements()) {
			String k = params.nextElement();
			System.setProperty(k, config.getProperty(k));
		}

		/**
		 * Now write out the revised JDBC properties file
		 */
		Properties jdbc = new Properties();

		jdbc.setProperty("jdbcdriver", "com.mysql.jdbc.Driver");
		jdbc.setProperty("url", "jdbc:mysql://" + System.getProperty("db.host") + ":" + System.getProperty("db.port") + "/" + System.getProperty("db.name"));
		jdbc.setProperty("username", System.getProperty("db.user"));
		jdbc.setProperty("password", System.getProperty("db.password"));
		jdbc.setProperty("usertable", "valid_accounts");
		jdbc.setProperty("usertablekey", "uid");
		jdbc.setProperty("usertableuserfield", "username");
		jdbc.setProperty("usertablepasswordfield", "password_hash");
		jdbc.setProperty("roletable", "roles");
		jdbc.setProperty("roletablekey", "role_id");
		jdbc.setProperty("roletablerolefield", "role");
		jdbc.setProperty("userroletable", "user_roles");
		jdbc.setProperty("userroletableuserkey", "uid");
		jdbc.setProperty("userroletablerolekey", "role_id");
		jdbc.setProperty("cachetime", "0");

		FileOutputStream outStream = null;
		try {
			outStream = new FileOutputStream(System.getProperty("jdbc.properties"));
			jdbc.store(outStream, null);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try { 
				outStream.close();
			} catch( Exception e ) {}
		}

	}