blob: 1d35b130c0d2a5b58d974d428631c869a0c04c91 [file] [log] [blame]
package org.apache.maven.plugin.assembly.testutils;
/*
* 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 java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
import org.codehaus.plexus.archiver.ArchiveEntry;
import org.codehaus.plexus.archiver.ArchivedFileSet;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.FileSet;
import org.codehaus.plexus.archiver.ResourceIterator;
import org.codehaus.plexus.components.io.resources.PlexusIoResource;
import org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.codehaus.plexus.util.StringUtils;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import javax.annotation.Nonnull;
public class TrackingArchiverStub
implements Archiver
{
private static final Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
private File destFile;
public final List<Addition> added = new ArrayList<Addition>();
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, -1 ) );
}
public void addDirectory( final @Nonnull File directory, final String prefix )
throws ArchiverException
{
added.add( new Addition( directory, prefix, null, null, -1 ) );
}
public void addDirectory( final @Nonnull File directory, final String[] includes, final String[] excludes )
throws ArchiverException
{
added.add( new Addition( directory, null, includes, excludes, -1 ) );
}
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, -1 ) );
}
public void addFileSet( final @Nonnull FileSet fileSet )
throws ArchiverException
{
added.add( new Addition( fileSet, null, null, null, -1 ) );
}
public void addFile( final @Nonnull File inputFile, final @Nonnull String destFileName )
throws ArchiverException
{
added.add( new Addition( inputFile, destFileName, null, null, -1 ) );
}
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, -1 ) );
}
public void addArchivedFileSet( final @Nonnull File archiveFile, final String prefix )
throws ArchiverException
{
added.add( new Addition( archiveFile, prefix, null, null, -1 ) );
}
public void addSymlink( String s, String s2 )
throws ArchiverException
{
added.add( new Addition( s, null, null, null, -1 ) );
}
public void addSymlink( String s, int i, String s2 )
throws ArchiverException
{
added.add( new Addition( s, null, null, null, -1 ) );
}
public void addArchivedFileSet( final File archiveFile, final String[] includes, final String[] excludes )
throws ArchiverException
{
added.add( new Addition( archiveFile, null, includes, excludes, -1 ) );
}
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, -1 ) );
}
public void addArchivedFileSet( final ArchivedFileSet fileSet )
throws ArchiverException
{
added.add( new Addition( fileSet, null, null, null, -1 ) );
}
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, -1 ) );
}
public File getDestFile()
{
return destFile;
}
public void setDestFile( final File destFile )
{
this.destFile = destFile;
}
public void setFileMode( final int mode )
{
}
public int getFileMode()
{
try
{
return TypeConversionUtils.modeToInt( "0644", logger );
}
catch ( final AssemblyFormattingException e )
{
throw new IllegalStateException( "Failed to parse mode 0644", e );
}
}
public int getOverrideFileMode()
{
try
{
return TypeConversionUtils.modeToInt( "0644", logger );
}
catch ( final AssemblyFormattingException e )
{
throw new IllegalStateException( "Failed to parse mode 0644", e );
}
}
public void setDefaultFileMode( final int mode )
{
}
public int getDefaultFileMode()
{
try
{
return TypeConversionUtils.modeToInt( "0644", logger );
}
catch ( final AssemblyFormattingException e )
{
throw new IllegalStateException( "Failed to parse mode 0644", e );
}
}
public void setDirectoryMode( final int mode )
{
}
public int getDirectoryMode()
{
try
{
return TypeConversionUtils.modeToInt( "0755", logger );
}
catch ( final AssemblyFormattingException e )
{
throw new IllegalStateException( "Failed to parse mode 0755", e );
}
}
public int getOverrideDirectoryMode()
{
try
{
return TypeConversionUtils.modeToInt( "0755", logger );
}
catch ( final AssemblyFormattingException e )
{
throw new IllegalStateException( "Failed to parse mode 0755", e );
}
}
public void setDefaultDirectoryMode( final int mode )
{
}
public int getDefaultDirectoryMode()
{
try
{
return TypeConversionUtils.modeToInt( "0755", logger );
}
catch ( final AssemblyFormattingException e )
{
throw new IllegalStateException( "Failed to parse mode 0755", e );
}
}
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 NotImplementedException();
}
@SuppressWarnings( "rawtypes" )
public Map<String, ArchiveEntry> getFiles()
{
return new HashMap<String, ArchiveEntry>();
}
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 java.lang.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;
}
}