public function getExtractor()
    {
        // we will have a phar extractor by default
        if (!isset($this->extractor)) {
            $configuration = $this->getSystemConfiguration()->getExtractors();
            if (isset($configuration[self::DEFAULT_EXTRACTOR_NAME])) {
                // create a new extractor with the default configuration
                $this->extractor = new PharExtractor($this->getInitialContext(), $configuration[self::DEFAULT_EXTRACTOR_NAME]);

            } else {
                $this->getInitialContext()->getSystemLogger()->warning(sprintf(
                    'Did not find configuration for default extractor %s nor was an extractor injected.',
                    self::DEFAULT_EXTRACTOR_NAME
                ));
                $this->extractor = null;
            }
        }

        return $this->extractor;
    }