private List selectContainerDescriptorHandlers()

in src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java [199:245]


    private List<ContainerDescriptorHandler> selectContainerDescriptorHandlers(
            List<ContainerDescriptorHandlerConfig> requestedContainerDescriptorHandlers,
            final AssemblerConfigurationSource configSource)
            throws InvalidAssemblerConfigurationException
                // CHECKSTYLE_ON: LineLength
            {
        LOGGER.debug("All known ContainerDescriptorHandler components: "
                + (containerDescriptorHandlers == null
                        ? "none; map is null."
                        : "" + containerDescriptorHandlers.keySet()));

        if (requestedContainerDescriptorHandlers == null) {
            requestedContainerDescriptorHandlers = new ArrayList<>();
        }

        final List<ContainerDescriptorHandler> handlers = new ArrayList<>();
        final List<String> hints = new ArrayList<>();

        if (!requestedContainerDescriptorHandlers.isEmpty()) {
            for (final ContainerDescriptorHandlerConfig config : requestedContainerDescriptorHandlers) {
                final String hint = config.getHandlerName();
                final ContainerDescriptorHandler handler = containerDescriptorHandlers.get(hint);

                if (handler == null) {
                    throw new InvalidAssemblerConfigurationException(
                            "Cannot find ContainerDescriptorHandler with hint: " + hint);
                }

                LOGGER.debug("Found container descriptor handler with hint: " + hint + " (component: " + handler + ")");

                if (config.getConfiguration() != null) {
                    LOGGER.debug("Configuring handler with:\n\n" + config.getConfiguration() + "\n\n");

                    configureContainerDescriptorHandler(handler, (Xpp3Dom) config.getConfiguration(), configSource);
                }

                handlers.add(handler);
                hints.add(hint);
            }
        }

        if (!hints.contains("plexus")) {
            handlers.add(new ComponentsXmlArchiverFileFilter());
        }

        return handlers;
    }