protected function execute(InputInterface $input, OutputInterface $output)
    {
        /** @var MessageInterface $message */
        $message = $this->getContainer()->get($this->serviceAlias);

        if (get_class($message) !== $this->serviceClass) {
            throw new InvalidArgumentException(sprintf(
                'The specified service alias (%s) and class (%s) do not correspond to each other.',
                $this->serviceAlias,
                $this->serviceClass
            ));
        }

        $message->setCliCommand($this);
        $message->setInput($input);
        $message->setOutput($output);
        $this->getCommandBus()->handle($message);
    }