docs: public void run(String[] args) throws Exception {
      ServerConfiguration.Builder configBuilder = ServerConfiguration.newBuilder();
      ServerConfiguration config;
      try {
        config = configBuilder.build(args);
      } catch (Exception e) {
        System.out.println(e.getMessage());
        configBuilder.printUsage();
        return;
      }
  
      final Server server = newServer(config);
      server.start();
  
      System.out.println("QPS Server started on " + config.address);
  
      Runtime.getRuntime().addShutdownHook(new Thread() {
        @Override
        @SuppressWarnings("CatchAndPrintStackTrace")
        public void run() {
          try {
            System.out.println("QPS Server shutting down");
            server.shutdown();
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      });
      server.awaitTermination();
    }