private Assembly addAssemblyFromDescriptor()

in src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java [217:253]


    private Assembly addAssemblyFromDescriptor(
            final String spec,
            final Locator locator,
            final AssemblerConfigurationSource configSource,
            final List<Assembly> assemblies)
            throws AssemblyReadException, InvalidAssemblerConfigurationException {
        final Location location = locator.resolve(spec);

        if (location == null) {
            if (configSource.isIgnoreMissingDescriptor()) {
                LOGGER.debug("Ignoring missing assembly descriptor with ID '" + spec
                        + "' per configuration.\nLocator output was:\n\n"
                        + locator.getMessageHolder().render());
                return null;
            } else {
                throw new AssemblyReadException("Error locating assembly descriptor: " + spec + "\n\n"
                        + locator.getMessageHolder().render());
            }
        }

        try (Reader r = XmlStreamReader.builder()
                .setInputStream(location.getInputStream())
                .get()) {
            File dir = null;
            if (location.getFile() != null) {
                dir = location.getFile().getParentFile();
            }

            final Assembly assembly = readAssembly(r, spec, dir, configSource);

            assemblies.add(assembly);

            return assembly;
        } catch (final IOException e) {
            throw new AssemblyReadException("Error reading assembly descriptor: " + spec, e);
        }
    }