Search in sources :

Example 1 with AbstractZipArchiver

use of org.codehaus.plexus.archiver.zip.AbstractZipArchiver in project maven-plugins by apache.

the class DefaultAssemblyArchiver method createArchiver.

/**
     * Creates the necessary archiver to build the distribution file.
     *
     * @param format                Archive format
     * @param includeBaseDir        the base directory for include.
     * @param finalName             The final name.
     * @param configSource          {@link AssemblerConfigurationSource}
     * @param containerHandlers     The list of {@link ContainerDescriptorHandler}
     * @param recompressZippedFiles recompress zipped files.
     * @param mergeManifestMode     how to handle already existing Manifest files
     * @return archiver Archiver generated
     * @throws org.codehaus.plexus.archiver.ArchiverException
     * @throws org.codehaus.plexus.archiver.manager.NoSuchArchiverException
     */
protected Archiver createArchiver(final String format, final boolean includeBaseDir, final String finalName, final AssemblerConfigurationSource configSource, final List<ContainerDescriptorHandler> containerHandlers, boolean recompressZippedFiles, String mergeManifestMode) throws NoSuchArchiverException {
    Archiver archiver;
    if ("txz".equals(format) || "tgz".equals(format) || "tbz2".equals(format) || format.startsWith("tar")) {
        archiver = createTarArchiver(format, TarLongFileMode.valueOf(configSource.getTarLongFileMode()));
    } else if ("war".equals(format)) {
        archiver = createWarArchiver();
    } else {
        archiver = archiverManager.getArchiver(format);
    }
    if (archiver instanceof AbstractZipArchiver) {
        ((AbstractZipArchiver) archiver).setRecompressAddedZips(recompressZippedFiles);
    }
    final List<FileSelector> extraSelectors = new ArrayList<FileSelector>();
    final List<ArchiveFinalizer> extraFinalizers = new ArrayList<ArchiveFinalizer>();
    if (archiver instanceof JarArchiver) {
        if (mergeManifestMode != null) {
            ((JarArchiver) archiver).setFilesetmanifest(JarArchiver.FilesetManifestConfig.valueOf(mergeManifestMode));
        }
        extraSelectors.add(new JarSecurityFileSelector());
        extraFinalizers.add(new ManifestCreationFinalizer(configSource.getMavenSession(), configSource.getProject(), configSource.getJarArchiveConfiguration()));
    }
    if (configSource.getArchiverConfig() != null) {
        configureArchiver(archiver, configSource);
    }
    String prefix = "";
    if (includeBaseDir) {
        prefix = finalName;
    }
    archiver = new AssemblyProxyArchiver(prefix, archiver, containerHandlers, extraSelectors, extraFinalizers, configSource.getWorkingDirectory(), getLogger());
    if (configSource.isDryRun()) {
        archiver = new DryRunArchiver(archiver, getLogger());
    }
    archiver.setUseJvmChmod(configSource.isUpdateOnly());
    archiver.setIgnorePermissions(configSource.isIgnorePermissions());
    archiver.setForced(!configSource.isUpdateOnly());
    return archiver;
}
Also used : AssemblyProxyArchiver(org.apache.maven.plugins.assembly.archive.archiver.AssemblyProxyArchiver) FileSelector(org.codehaus.plexus.components.io.fileselectors.FileSelector) JarSecurityFileSelector(org.codehaus.plexus.archiver.filters.JarSecurityFileSelector) ArrayList(java.util.ArrayList) JarSecurityFileSelector(org.codehaus.plexus.archiver.filters.JarSecurityFileSelector) DryRunArchiver(org.codehaus.plexus.archiver.diags.DryRunArchiver) ArchiveFinalizer(org.codehaus.plexus.archiver.ArchiveFinalizer) AssemblyProxyArchiver(org.apache.maven.plugins.assembly.archive.archiver.AssemblyProxyArchiver) AbstractZipArchiver(org.codehaus.plexus.archiver.zip.AbstractZipArchiver) JarArchiver(org.codehaus.plexus.archiver.jar.JarArchiver) TarArchiver(org.codehaus.plexus.archiver.tar.TarArchiver) Archiver(org.codehaus.plexus.archiver.Archiver) DryRunArchiver(org.codehaus.plexus.archiver.diags.DryRunArchiver) WarArchiver(org.codehaus.plexus.archiver.war.WarArchiver) JarArchiver(org.codehaus.plexus.archiver.jar.JarArchiver) AbstractZipArchiver(org.codehaus.plexus.archiver.zip.AbstractZipArchiver)

Aggregations

ArrayList (java.util.ArrayList)1 AssemblyProxyArchiver (org.apache.maven.plugins.assembly.archive.archiver.AssemblyProxyArchiver)1 ArchiveFinalizer (org.codehaus.plexus.archiver.ArchiveFinalizer)1 Archiver (org.codehaus.plexus.archiver.Archiver)1 DryRunArchiver (org.codehaus.plexus.archiver.diags.DryRunArchiver)1 JarSecurityFileSelector (org.codehaus.plexus.archiver.filters.JarSecurityFileSelector)1 JarArchiver (org.codehaus.plexus.archiver.jar.JarArchiver)1 TarArchiver (org.codehaus.plexus.archiver.tar.TarArchiver)1 WarArchiver (org.codehaus.plexus.archiver.war.WarArchiver)1 AbstractZipArchiver (org.codehaus.plexus.archiver.zip.AbstractZipArchiver)1 FileSelector (org.codehaus.plexus.components.io.fileselectors.FileSelector)1