public static JavaApplication<SimpleJavaApplication> startAdmin(Properties properties)
			throws IOException, InterruptedException {
		Assert.state(properties.containsKey("zk.client.connect"),
				"Property 'zk.client.connect' required");
		Assert.state(properties.containsKey("server.port"),
				"Property 'server.port' required");

		JavaApplication<SimpleJavaApplication> adminServer =
				launch(AdminServerApplication.class, false, properties, null);
		logger.debug("waiting for admin server");
		waitForAdminServer("http://localhost:" + properties.getProperty("server.port"));
		logger.debug("admin server ready");

		return adminServer;
	}
Start an instance of the admin server. This method will block until
the admin server is capable of processing HTTP requests. Upon test
completion, the method {@link com.oracle.tools.runtime.java.JavaApplication#close()}
should be invoked to shut down the server.

@param properties system properties to pass to the container; at minimum
                  must contain key {@code zk.client.connect} to indicate
                  the ZooKeeper connect string and key {@code server.port}
                  to indicate the admin server port

@return admin server application reference
@throws IOException            if an exception is thrown launching the process
@throws InterruptedException   if the executing thread is interrupted
spring-xd-distributed-test/src/main/java/org/springframework/xd/distributed/util/ServerProcessUtils.java