protected function checkIfMandatoryOptionsExist()
    {
        if (!$this->hasOption('version')) {
            throw new InvalidConfigurationException('"version" option needs to be defined. Example: 1.0.0-beta2', 1314187396);
        }
        if (!$this->hasOption('projectName')) {
            throw new InvalidConfigurationException('"projectName" option needs to be defined. Example: Neos Flow', 1314187397);
        }

        if ($this->hasOption('enableSourceforgeUpload') && $this->getOption('enableSourceforgeUpload') === true) {
            if (!$this->hasOption('sourceforgeProjectName')) {
                throw new InvalidConfigurationException('"sourceforgeProjectName" option needs to be specified', 1314187402);
            }
            if (!$this->hasOption('sourceforgePackageName')) {
                throw new InvalidConfigurationException('"sourceforgePackageName" option needs to be specified', 1314187406);
            }
            if (!$this->hasOption('sourceforgeUserName')) {
                throw new InvalidConfigurationException('"sourceforgeUserName" option needs to be specified', 1314187407);
            }
        }

        if ($this->hasOption('releaseHost')) {
            if (!$this->hasOption('releaseHostSitePath')) {
                throw new InvalidConfigurationException('"releaseHostSitePath" option needs to be specified', 1321545975);
            }
        }
        if ($this->hasOption('releaseHost') && $this->hasOption('enableSourceforgeUpload') && $this->getOption('enableSourceforgeUpload') === true) {
            if (!$this->hasOption('releaseDownloadLabel')) {
                throw new InvalidConfigurationException('"releaseDownloadLabel" option needs to be specified', 1321545965);
            }
            if (!$this->hasOption('releaseDownloadUriPattern')) {
                throw new InvalidConfigurationException('"releaseDownloadUriPattern" option needs to be specified', 1321545985);
            }
        }
    }