public static RepositoryServerAdapter getServerAdapter(File serverRoot, String[] users)
			throws IOException {

		RepositoryServerAdapter rsa = null;

		boolean success = false;
		try {

			createServer(serverRoot.getAbsolutePath(), GHIDRA_TEST_SERVER_PORT, users);

			waitUntilServerAvailable(GHIDRA_TEST_SERVER_PORT);

			rsa = ClientUtil.getRepositoryServer(LOCALHOST, GHIDRA_TEST_SERVER_PORT);
			rsa.connect();
			success = true;
		}
		catch (NotConnectedException e) {
			// note: this will trigger a popup dialog
		}
		finally {
			if (!success) {
				disposeServer();
			}
		}

		return rsa;
	}
Start new server instance and return server adapter.
This method blocks until server is started and adapter is connected.  
@param serverRoot root directory
@param users list of server users
@return server adapter
@throws IOException if there are any IOExceptions starting the server
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/server/remote/ServerTestUtil.java