public void reconfigure(ServerConfigurator serverConfigurator) {
        requireNonNull(serverConfigurator, "serverConfigurator");
        final ServerBuilder sb = builder();
        serverConfigurator.reconfigure(sb);
        final ImmutableList<ServerPort> serverPorts;
        lock.lock();
        try {
            serverPorts = ImmutableList.copyOf(activePorts.values());
        } finally {
            lock.unlock();
        }
        final DefaultServerConfig newConfig = sb.buildServerConfig(serverPorts);
        newConfig.setServer(this);
        config.updateConfig(newConfig);
        // Invoke the serviceAdded() method in Service so that it can keep the reference to this Server or
        // add a listener to it.
        config.serviceConfigs().forEach(cfg -> ServiceCallbackInvoker.invokeServiceAdded(cfg, cfg.service()));
        hasWebSocketService = hasWebSocketService(config);
    }
Reconfigure Server configuration. This feature is only available once a server is configured
and started. We do not allow ports to be reconfigured.
core/src/main/java/com/linecorp/armeria/server/Server.java