Package org.codehaus.plexus.archiver

Examples of org.codehaus.plexus.archiver.Archiver


    protected void packFromLocation( final File location, final File file ) throws MojoExecutionException
    {
        try
        {
            getLog().info( "Packing " + location + " to\n               " + file );
            Archiver archiver = archiverManager.getArchiver( file );
            archiver.setDestFile( file );
            archiver.setIncludeEmptyDirs( true );
            archiver.addDirectory( location );
            archiver.createArchive();
        }
        catch ( NoSuchArchiverException e )
        {
            throw new MojoExecutionException( "Unknown archiver type", e );
        }
View Full Code Here


    protected void packFromLocation( final File location, final File file ) throws MojoExecutionException
    {
        try
        {
            getLog().info( "Packing " + location + " to\n               " + file );
            Archiver archiver = archiverManager.getArchiver( file );
            archiver.setDestFile( file );
            archiver.setIncludeEmptyDirs( true );
            archiver.addDirectory( location );
            archiver.createArchive();
        }
        catch ( NoSuchArchiverException e )
        {
            throw new MojoExecutionException( "Unknown archiver type", e );
        }
View Full Code Here

    protected void packFromLocation( final File location, final File file ) throws MojoExecutionException
    {
        try
        {
            getLog().info( "Packing " + location + " to\n               " + file );
            Archiver archiver = archiverManager.getArchiver( file );
            archiver.setDestFile( file );
            archiver.setIncludeEmptyDirs( true );
            archiver.addDirectory( location );
            archiver.createArchive();
        }
        catch ( NoSuchArchiverException e )
        {
            throw new MojoExecutionException( "Unknown archiver type", e );
        }
View Full Code Here

    protected void packFromLocation( final File location, final File file ) throws MojoExecutionException
    {
        try
        {
            getLog().info( "Packing " + location + " to\n               " + file );
            Archiver archiver = archiverManager.getArchiver( file );
            archiver.setDestFile( file );
            archiver.setIncludeEmptyDirs( true );
            archiver.addDirectory( location );
            archiver.createArchive();
        }
        catch ( NoSuchArchiverException e )
        {
            throw new MojoExecutionException( "Unknown archiver type", e );
        }
View Full Code Here

    }

    protected Archiver createArchiver()
        throws ArchiverException
    {
        Archiver archiver = new JarArchiver();

        if ( project.getBuild() != null )
        {
            List resources = project.getBuild().getResources();

            for ( Iterator i = resources.iterator(); i.hasNext(); )
            {
                Resource r = (Resource) i.next();

                if ( r.getDirectory().endsWith( "maven-shared-archive-resources" ) )
                {
                    archiver.addDirectory( new File( r.getDirectory() ) );
                }
            }

            //archiver.setDotFileDirectory( new File( project.getBuild().getDirectory() ) );
        }
View Full Code Here

    public File archive(String sourcePath, String destPath, Artifact artifact) throws ArchiverException, IOException {
        File source = serverInfo.resolve(sourcePath);
        File dest = serverInfo.resolve(destPath);
        String serverName = artifact.getArtifactId() + "-" + artifact.getVersion();
        dest = new File(dest, serverName + "-bin." + artifact.getType());
        Archiver archiver;
        if ("tar.gz".equals(artifact.getType())) {
            archiver = new TarArchiver();
            TarArchiver.TarCompressionMethod tarCompressionMethod = new TarArchiver.TarCompressionMethod();
            tarCompressionMethod.setValue("gzip");
            ((TarArchiver) archiver).setCompression(tarCompressionMethod);
            TarLongFileMode fileMode = new TarLongFileMode();
            fileMode.setValue(TarLongFileMode.GNU);
            ((TarArchiver) archiver).setLongfile(fileMode);
        } else if ("zip".equals(artifact.getType())) {
            archiver = new ZipArchiver();
        } else {
            throw new IllegalArgumentException("Unknown target type: " + artifact.getType());
        }
        archiver.setIncludeEmptyDirs(true);
        archiver.setDestFile(dest);
/* see if using plexus-archiver 1.0-alpha-7 same as maven lets us share code.  Following is for 1.0-alpha-9
        DefaultFileSet all = new DefaultFileSet();
        all.setDirectory(source);
        archiver.addFileSet(all);
*/
       
        // add in all files and mark them with default file permissions
        Map<File, Boolean> emptyDirs = new HashMap<File, Boolean>();
        Map<String, File> all = IOUtil.listAllFileNames(source);
        removeExcludes(source, all);
        for (Map.Entry<String, File> entry : all.entrySet()) {
            String destFileName = serverName + "/" + entry.getKey();
            File sourceFile = entry.getValue();
            if (sourceFile.isFile()) {
                archiver.addFile(sourceFile, destFileName, UnixStat.DEFAULT_FILE_PERM);
                // mark parent directories non-empty
                for (File parentDir = sourceFile.getParentFile();
                     parentDir != null && !parentDir.equals(source);
                     parentDir = parentDir.getParentFile()) {              
                    emptyDirs.put(parentDir, Boolean.FALSE);
                }
               
            } else if (sourceFile.isDirectory()) {                          
                Boolean isEmpty = emptyDirs.get(sourceFile);               
                if (isEmpty == null) {      
                    emptyDirs.put(sourceFile, Boolean.TRUE);
                    // mark parent directories non-empty
                    for (File parentDir = sourceFile.getParentFile();
                         parentDir != null && !parentDir.equals(source);
                         parentDir = parentDir.getParentFile()) {              
                        emptyDirs.put(parentDir, Boolean.FALSE);
                    }
                }             
            }
        }
       
        if (!all.isEmpty()) {
            emptyDirs.put(source, Boolean.FALSE);
        }
               
        String sourceDirPath = source.getAbsolutePath();
        for (Map.Entry<File, Boolean> entry : emptyDirs.entrySet()) {
            if (entry.getValue().booleanValue()) {               
                String emptyDirPath = entry.getKey().getAbsolutePath();
                String relativeDir = emptyDirPath.substring(sourceDirPath.length());
                relativeDir = relativeDir.replace('\\', '/');
                archiver.addDirectory(entry.getKey(), serverName + relativeDir);
            }
        }
        emptyDirs.clear();
       
        all.clear();
       
        // add execute permissions to all non-batch files in the bin/ directory
        File bin = new File(source, "bin");
        if (bin.exists()) {
            Map<String, File> includes = IOUtil.listAllFileNames(bin);
            for (Map.Entry<String, File> entry : includes.entrySet()) {
                String destFileName = serverName + "/bin/" + entry.getKey();
                File sourceFile = entry.getValue();
                if (!destFileName.endsWith(".bat") && sourceFile.isFile()) {
                    archiver.addFile(sourceFile, destFileName, UnixStat.DEFAULT_DIR_PERM);
                }
            }
        }
       
        archiver.createArchive();
        return dest;
    }
View Full Code Here

        {
            narFile.delete();
        }
        try
        {
            Archiver archiver = archiverManager.getArchiver( NarConstants.NAR_ROLE_HINT );
            archiver.addDirectory( dir, new String[] { include }, null );
            archiver.setDestFile( narFile );
            archiver.createArchive();
        }
        catch ( NoSuchArchiverException e )
        {
            throw new MojoExecutionException( "NAR: cannot find archiver", e );
        }
View Full Code Here

                                FileUtils.copyFile(extractedFile, artifactFile);
                            }
                            else if (extractedFile.isDirectory()
                                    && artifactItem.isRepack())
                            {
                                Archiver archiver = archiverManager.getArchiver(artifactFile);
                                archiver.setDestFile(artifactFile);
                                archiver.addDirectory(extractedFile);
                                archiver.createArchive();
                            }
                            else
                            {
                                // checksum verification failed, throw error
                                throw new MojoFailureException(
View Full Code Here

            }

            final List<ContainerDescriptorHandler> containerHandlers =
                selectContainerDescriptorHandlers( assembly.getContainerDescriptorHandlers(), configSource );

            final Archiver archiver =
                createArchiver( format, assembly.isIncludeBaseDirectory(), basedir, configSource, containerHandlers, recompressZippedFiles);

            archiver.setDestFile( destFile );

            final AssemblyContext context = new DefaultAssemblyContext();

            dependencyResolver.resolve( assembly, configSource, context );

            for ( final Iterator<AssemblyArchiverPhase> phaseIterator = assemblyPhases.iterator(); phaseIterator.hasNext(); )
            {
                final AssemblyArchiverPhase phase = phaseIterator.next();

                phase.execute( assembly, archiver, configSource, context );
            }

            archiver.createArchive();
        }
        catch ( final ArchiverException e )
        {
            throw new ArchiveCreationException( "Error creating assembly archive " + assembly.getId() + ": "
                + e.getMessage(), e );
View Full Code Here

    protected Archiver createArchiver(final String format, final boolean includeBaseDir, final String finalName,
                                      final AssemblerConfigurationSource configSource,
                                      final List<ContainerDescriptorHandler> containerHandlers, boolean recompressZippedFiles)
        throws ArchiverException, NoSuchArchiverException
    {
        Archiver archiver;
        if ( format.startsWith( "tar" ) )
        {
            archiver = createTarArchiver( format, 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 )
        {
            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(), configSource.isDryRun() );

        archiver.setUseJvmChmod( configSource.isUpdateOnly() );
        archiver.setIgnorePermissions( configSource.isIgnorePermissions() );
        archiver.setForced( !configSource.isUpdateOnly() );

        return archiver;
    }
View Full Code Here

TOP

Related Classes of org.codehaus.plexus.archiver.Archiver

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.