private boolean saveBSimServerInfo(BSimServerInfo info) {
		GProperties properties = new GProperties("BSimServerInfo");
		properties.putString("DBType", info.getDBType().name());
		properties.putString("Name", info.getDBName());
		if (!info.hasDefaultLogin()) {
			// save specified username - but not password
			properties.putString("User", info.getUserName());
		}
		properties.putString("Host", info.getServerName());
		properties.putInt("Port", info.getPort());

		File settingsDir = Application.getUserSettingsDirectory();
		File serversDir = new File(settingsDir, "bsim");
		int hash = info.hashCode();
		File serverFile = new File(serversDir, "bsim" + hash + ".server.properties");
		try {
			properties.saveToJsonFile(serverFile);
			return true;
		}
		catch (IOException e) {
			Msg.showError(this, null, "Error Saving",
				"Error saving Bsim Server Info to file " + serverFile.getAbsolutePath(), e);
			return false;
		}

	}
Get list of defined servers.  Method must be invoked from swing thread only.
@return list of defined servers
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/gui/BSimServerManager.java