
org.codehaus.plexus.archiver.diags.TrackingArchiver Maven / Gradle / Ivy
package org.codehaus.plexus.archiver.diags;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.codehaus.plexus.archiver.*;
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
import org.codehaus.plexus.components.io.resources.PlexusIoResource;
import org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection;
import org.codehaus.plexus.util.StringUtils;
import javax.annotation.Nonnull;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* A diagnostic archiver that keeps track of stuff that has been added.
*/
public class TrackingArchiver
implements Archiver
{
private File destFile;
public final List added = new ArrayList();
private boolean useJvmChmod;
private boolean ignorePermissions;
public void createArchive()
throws ArchiverException, IOException
{
}
public void addDirectory( final @Nonnull File directory )
throws ArchiverException
{
added.add( new Addition( directory, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addDirectory( final @Nonnull File directory, final String prefix )
throws ArchiverException
{
added.add( new Addition( directory, prefix, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addDirectory( final @Nonnull File directory, final String[] includes, final String[] excludes )
throws ArchiverException
{
added.add( new Addition( directory, null, includes, excludes, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addDirectory( final @Nonnull File directory, final String prefix, final String[] includes,
final String[] excludes )
throws ArchiverException
{
added.add( new Addition( directory, prefix, includes, excludes,
PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addFileSet( final @Nonnull FileSet fileSet )
throws ArchiverException
{
added.add( new Addition( fileSet, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addFile( final @Nonnull File inputFile, final @Nonnull String destFileName )
throws ArchiverException
{
added.add( new Addition( inputFile, destFileName, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addFile( final @Nonnull File inputFile, final @Nonnull String destFileName, final int permissions )
throws ArchiverException
{
added.add( new Addition( inputFile, destFileName, null, null, permissions ) );
}
public void addArchivedFileSet( final @Nonnull File archiveFile )
throws ArchiverException
{
added.add( new Addition( archiveFile, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addArchivedFileSet( final @Nonnull File archiveFile, final String prefix )
throws ArchiverException
{
added.add( new Addition( archiveFile, prefix, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addSymlink( String s, String s2 )
throws ArchiverException
{
added.add( new Addition( s, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addSymlink( String s, int i, String s2 )
throws ArchiverException
{
added.add( new Addition( s, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addArchivedFileSet( final File archiveFile, final String[] includes, final String[] excludes )
throws ArchiverException
{
added.add( new Addition( archiveFile, null, includes, excludes,
PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addArchivedFileSet( final @Nonnull File archiveFile, final String prefix, final String[] includes,
final String[] excludes )
throws ArchiverException
{
added.add( new Addition( archiveFile, prefix, includes, excludes,
PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addArchivedFileSet( final ArchivedFileSet fileSet )
throws ArchiverException
{
added.add( new Addition( fileSet, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addArchivedFileSet( final ArchivedFileSet fileSet, Charset charset )
throws ArchiverException
{
added.add( new Addition( fileSet, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public void addResource( final PlexusIoResource resource, final String destFileName, final int permissions )
throws ArchiverException
{
added.add( new Addition( resource, destFileName, null, null, permissions ) );
}
public void addResources( final PlexusIoResourceCollection resources )
throws ArchiverException
{
added.add( new Addition( resources, null, null, null, PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE ) );
}
public File getDestFile()
{
return destFile;
}
public void setDestFile( final File destFile )
{
this.destFile = destFile;
}
public void setFileMode( final int mode )
{
}
public int getFileMode()
{
return Integer.parseInt( "0644", 8 );
}
public int getOverrideFileMode()
{
return Integer.parseInt( "0644", 8 );
}
public void setDefaultFileMode( final int mode )
{
}
public int getDefaultFileMode()
{
return Integer.parseInt( "0644", 8 );
}
public void setDirectoryMode( final int mode )
{
}
public int getDirectoryMode()
{
return Integer.parseInt( "0755", 8 );
}
public int getOverrideDirectoryMode()
{
return Integer.parseInt( "0755", 8 );
}
public void setDefaultDirectoryMode( final int mode )
{
}
public int getDefaultDirectoryMode()
{
return Integer.parseInt( "0755", 8 );
}
public boolean getIncludeEmptyDirs()
{
return false;
}
public void setIncludeEmptyDirs( final boolean includeEmptyDirs )
{
}
public void setDotFileDirectory( final File dotFileDirectory )
{
}
public
@Nonnull
ResourceIterator getResources()
throws ArchiverException
{
throw new RuntimeException("Not implemented");
}
@SuppressWarnings( "rawtypes" )
public Map getFiles()
{
return new HashMap();
}
public boolean isForced()
{
return false;
}
public void setForced( final boolean forced )
{
}
public boolean isSupportingForced()
{
return true;
}
public String getDuplicateBehavior()
{
return null;
}
public void setDuplicateBehavior( final String duplicate )
{
}
public class Addition
{
/**
* {@inheritDoc}
*
* @see Object#toString()
*/
@Override
public String toString()
{
return "Addition (\n resource= " + resource + "\n directory= " + directory + "\n destination= "
+ destination + "\n permissions= " + permissions + "\n includes= " + ( includes == null
? "-none-"
: StringUtils.join( includes, ", " ) ) + "\n excludes= " + ( excludes == null
? "-none-"
: StringUtils.join( excludes, ", " ) ) + "\n)";
}
public final Object resource;
public final File directory;
public final String destination;
public final int permissions;
public final String[] includes;
public final String[] excludes;
public Addition( final Object resource, final String destination, final String[] includes,
final String[] excludes, final int permissions )
{
this.resource = resource;
if ( resource instanceof FileSet)
{
final FileSet fs = (FileSet) resource;
directory = fs.getDirectory();
this.destination = fs.getPrefix();
this.includes = fs.getIncludes();
this.excludes = fs.getExcludes();
this.permissions = permissions;
}
else
{
if ( resource instanceof File && ( (File) resource ).isDirectory() )
{
directory = (File) resource;
}
else
{
directory = null;
}
this.destination = destination;
this.includes = includes;
this.excludes = excludes;
this.permissions = permissions;
}
}
}
public boolean isUseJvmChmod()
{
return useJvmChmod;
}
public void setUseJvmChmod( final boolean useJvmChmod )
{
this.useJvmChmod = useJvmChmod;
}
public boolean isIgnorePermissions()
{
return ignorePermissions;
}
public void setIgnorePermissions( final boolean ignorePermissions )
{
this.ignorePermissions = ignorePermissions;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy