@Override public void start() { Server server = this.serverProvider.getServer(); if (server == null) throw new IllegalStateException(); if (!this.containsListener(server)) { server.addLifecycleListener(this); } if (this.init.compareAndSet(false, true)) { this.init(server); } if (this.start.compareAndSet(false, true)) { this.eventHandler.start(this.factory.createServer(server)); } }