Author: krosenvold Date: Thu Oct 30 16:04:30 2014 New Revision: 1635529 URL: http://svn.apache.org/r1635529 Log: Switched entirely to reader based filtering
Added: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/PojoConfigSource.java Removed: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyExpressionEvaluatorTest.java maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblerConfigurationSource.java Thu Oct 30 16:04:30 2014 @@ -23,7 +23,6 @@ import org.apache.maven.archiver.MavenAr import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.execution.MavenSession; import org.apache.maven.project.MavenProject; -import org.apache.maven.shared.filtering.MavenFileFilter; import org.apache.maven.shared.filtering.MavenReaderFilter; import java.io.File; @@ -176,11 +175,6 @@ public interface AssemblerConfigurationS String getArchiverConfig(); /** - * @return The maven file filter. - */ - MavenFileFilter getMavenFileFilter(); - - /** * Maven shared filtering utility. * @ return the maven reader filter */ Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java Thu Oct 30 16:04:30 2014 @@ -999,14 +999,19 @@ public class AssemblyProxyArchiver public void addResource( final PlexusIoResource resource, final String destFileName, final int permissions ) throws ArchiverException { - inPublicApi.set( Boolean.TRUE ); - try + File file = new File(resource.getName()); // zOMG. + if ( acceptFile( file ) ) { - delegate.addResource( resource, destFileName, permissions ); - } - finally - { - inPublicApi.set( null ); + + inPublicApi.set( Boolean.TRUE ); + try + { + delegate.addResource( resource, destFileName, permissions ); + } + finally + { + inPublicApi.set( null ); + } } } Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java Thu Oct 30 16:04:30 2014 @@ -19,22 +19,36 @@ package org.apache.maven.plugin.assembly * under the License. */ -import java.io.File; -import java.util.List; - +import org.apache.commons.io.IOUtils; +import org.apache.commons.io.output.DeferredFileOutputStream; import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; import org.apache.maven.plugin.assembly.archive.ArchiveCreationException; import org.apache.maven.plugin.assembly.format.AssemblyFormattingException; -import org.apache.maven.plugin.assembly.format.FileFormatter; +import org.apache.maven.plugin.assembly.format.ReaderFormatter; import org.apache.maven.plugin.assembly.model.FileItem; import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly; import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils; import org.apache.maven.plugin.assembly.utils.TypeConversionUtils; import org.codehaus.plexus.archiver.Archiver; import org.codehaus.plexus.archiver.ArchiverException; +import org.codehaus.plexus.archiver.util.ArchiverAttributeUtils; import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.components.io.functions.InputStreamTransformer; +import org.codehaus.plexus.components.io.resources.PlexusIoFileResource; +import org.codehaus.plexus.components.io.resources.PlexusIoResource; +import org.codehaus.plexus.components.io.resources.PlexusIoSymlink; +import org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxyResource; +import org.codehaus.plexus.components.io.resources.proxy.PlexusIoProxySymlinkResource; import org.codehaus.plexus.logging.AbstractLogEnabled; +import javax.annotation.Nonnull; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; + /** * Handles the top-level <files/> section of the assembly descriptor. * @@ -56,7 +70,6 @@ public class FileItemAssemblyPhase final List<FileItem> fileList = assembly.getFiles(); final File basedir = configSource.getBasedir(); - final FileFormatter fileFormatter = new FileFormatter( configSource, getLogger() ); for ( final FileItem fileItem : fileList ) { final String sourcePath = fileItem.getSource(); @@ -73,9 +86,6 @@ public class FileItemAssemblyPhase source = new File( basedir, sourcePath ); } - source = fileFormatter.format( source, fileItem.isFiltered(), fileItem.getLineEnding(), - configSource.getEncoding() ); - String destName = fileItem.getDestName(); if ( destName == null ) @@ -103,16 +113,161 @@ public class FileItemAssemblyPhase target = outputDirectory + "/" + destName; } + final PlexusIoFileResource + res = new PlexusIoFileResource( source, ArchiverAttributeUtils.getFileAttributes( source )); + PlexusIoResource restoUse = res; try { - archiver.addFile( source, target, - TypeConversionUtils.modeToInt( fileItem.getFileMode(), getLogger() ) ); + final InputStreamTransformer fileSetTransformers = + ReaderFormatter.getFileSetTransformers( configSource, fileItem.isFiltered(), fileItem.getLineEnding() ); + + if (fileSetTransformers != null){ + restoUse = new Deferred( res ){ + @Override + protected InputStream getInputStream() + throws IOException + { + return fileSetTransformers.transform(res, res.getContents()); + } + + @Override + public String getName() + { return res.getName(); + } + }.asResource(); + } + + int mode = TypeConversionUtils.modeToInt( fileItem.getFileMode(), getLogger() ); + archiver.addResource( restoUse, target, mode ); } catch ( final ArchiverException e ) { throw new ArchiveCreationException( "Error adding file to archive: " + e.getMessage(), e ); } + catch ( IOException e ) + { + throw new ArchiveCreationException( "Error adding file to archive: " + e.getMessage(), e ); + } + } + } + + // Nicked from archiver until I can get a better solution. I am the author :) + abstract class Deferred + { + final DeferredFileOutputStream dfos; + + final PlexusIoResource resource; + + public Deferred( final PlexusIoResource resource ) + throws IOException + { + this.resource = resource; + dfos = new DeferredFileOutputStream( 1000000, "m-assembly-archiver", null, null ); + InputStream inputStream = getInputStream(); + IOUtils.copy( inputStream, dfos ); + IOUtils.closeQuietly( inputStream ); } + + protected abstract InputStream getInputStream() throws IOException; + + @Nonnull + public InputStream getContents() + throws IOException + { + if ( dfos.isInMemory() ) + { + return new ByteArrayInputStream( dfos.getData() ); + } + else + { + return new FileInputStream( dfos.getFile() ) + { + @Override + public void close() + throws IOException + { + super.close(); + dfos.getFile().delete(); + } + }; + } + } + + public long getSize() + { + if ( dfos == null ) + { + return resource.getSize(); + } + if ( dfos.isInMemory() ) + { + return dfos.getByteCount(); + } + else + { + return dfos.getFile().length(); + } + } + + public abstract String getName(); + + private PlexusIoResource asSymlinkResource() + { + return new PlexusIoProxySymlinkResource( resource ) + { + @Override + public String getName() + { + return Deferred.this.getName(); + } + + @Nonnull + @Override + public InputStream getContents() + throws IOException + { + return Deferred.this.getContents(); + } + + @Override + public long getSize() + { + return Deferred.this.getSize(); + } + }; + } + + public PlexusIoResource asResource() + { + if ( resource instanceof PlexusIoSymlink ) + { + return asSymlinkResource(); + } + + return new PlexusIoProxyResource( resource ) + { + @Override + public String getName() + { + return Deferred.this.getName(); + } + + @Nonnull + @Override + public InputStream getContents() + throws IOException + { + return Deferred.this.getContents(); + } + + @Override + public long getSize() + { + return Deferred.this.getSize(); + } + }; + } + } } Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java Thu Oct 30 16:04:30 2014 @@ -40,19 +40,17 @@ import java.util.List; public class ReaderFormatter { - private static Reader createReaderFilter( @Nonnull Reader source, String sourceName, String encoding, - String escapeString, List<String> delimiters, - AssemblerConfigurationSource configSource ) + private static Reader createReaderFilter( @Nonnull Reader source, String escapeString, List<String> delimiters, + AssemblerConfigurationSource configSource, boolean isPropertiesFile ) throws AssemblyFormattingException { try { - boolean isPropertiesFile = AssemblyFileUtils.isPropertyFile( sourceName ); MavenReaderFilterRequest filterRequest = new MavenReaderFilterRequest( source, true, configSource.getProject(), configSource.getFilters(), - isPropertiesFile, encoding, configSource.getMavenSession(), null ); - filterRequest.setInjectProjectBuildFilters(true); + isPropertiesFile, null, configSource.getMavenSession(), null ); +// filterRequest.setInjectProjectBuildFilters(true); filterRequest.setEscapeString( escapeString ); // if these are NOT set, just use the defaults, which are '${*}' and '@'. @@ -114,10 +112,10 @@ public class ReaderFormatter : new InputStreamReader( inputStream ); // wtf platform encoding ? TODO: Fix this try { + boolean isPropertyFile = AssemblyFileUtils.isPropertyFile( plexusIoResource.getName() ); Reader filtered = - createReaderFilter( source, plexusIoResource.getName(), configSource.getEncoding(), - configSource.getEscapeString(), configSource.getDelimiters(), - configSource ); + createReaderFilter( source, configSource.getEscapeString(), configSource.getDelimiters(), + configSource, isPropertyFile ); final ReaderInputStream readerInputStream = encoding != null ? new ReaderInputStream( filtered, encoding ) : new ReaderInputStream( filtered ); Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java Thu Oct 30 16:04:30 2014 @@ -224,12 +224,6 @@ public abstract class AbstractAssemblyMo * Maven shared filtering utility. */ @Component - private MavenFileFilter mavenFileFilter; - - /** - * Maven shared filtering utility. - */ - @Component private MavenReaderFilter mavenReaderFilter; /** @@ -856,11 +850,6 @@ public abstract class AbstractAssemblyMo return archiverConfig == null ? null : archiverConfig.toString(); } - public MavenFileFilter getMavenFileFilter() - { - return mavenFileFilter; - } - public MavenReaderFilter getMavenReaderFilter() { return mavenReaderFilter; Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java Thu Oct 30 16:04:30 2014 @@ -33,6 +33,7 @@ import org.apache.maven.plugin.assembly. import org.apache.maven.project.MavenProject; import org.codehaus.plexus.archiver.Archiver; import org.codehaus.plexus.archiver.ArchiverException; +import org.codehaus.plexus.components.io.resources.PlexusIoResource; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.console.ConsoleLogger; import org.easymock.classextension.EasyMockSupport; @@ -40,6 +41,8 @@ import org.easymock.classextension.EasyM import java.io.File; import java.io.IOException; +import static org.easymock.EasyMock.anyInt; +import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.expect; public class FileItemAssemblyPhaseTest @@ -93,8 +96,6 @@ public class FileItemAssemblyPhaseTest final File tempRoot = fileManager.createTempDir(); - macCS.expectGetTemporaryRootDirectory( tempRoot ); - macCS.expectGetProject( new MavenProject( new Model() ) ); macCS.expectGetFinalName( "final-name" ); @@ -118,8 +119,6 @@ public class FileItemAssemblyPhaseTest assembly.addFile( fi ); - macCS.expectGetEncoding(); - mm.replayAll(); createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource ); @@ -142,8 +141,6 @@ public class FileItemAssemblyPhaseTest final File tempRoot = fileManager.createTempDir(); - macCS.expectGetTemporaryRootDirectory( tempRoot ); - macCS.expectGetProject( new MavenProject( new Model() ) ); macCS.expectGetFinalName( "final-name" ); @@ -167,8 +164,6 @@ public class FileItemAssemblyPhaseTest assembly.addFile( fi ); - macCS.expectGetEncoding(); - mm.replayAll(); createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource ); @@ -195,8 +190,6 @@ public class FileItemAssemblyPhaseTest final File tempRoot = fileManager.createTempDir(); - macCS.expectGetTemporaryRootDirectory( tempRoot ); - macCS.expectGetProject( new MavenProject( new Model() ) ); macCS.expectGetFinalName( "final-name" ); @@ -244,8 +237,6 @@ public class FileItemAssemblyPhaseTest assembly.addFile( licenseFileItem ); assembly.addFile( configFileItem ); - macCS.expectGetEncoding(); - mm.replayAll(); createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource ); @@ -272,8 +263,6 @@ public class FileItemAssemblyPhaseTest final File tempRoot = fileManager.createTempDir(); - macCS.expectGetTemporaryRootDirectory( tempRoot ); - macCS.expectGetProject( new MavenProject( new Model() ) ); macCS.expectGetFinalName( "final-name" ); @@ -324,8 +313,6 @@ public class FileItemAssemblyPhaseTest assembly.addFile( licenseFileItem ); assembly.addFile( configFileItem ); - macCS.expectGetEncoding(); - mm.replayAll(); createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource ); @@ -352,8 +339,6 @@ public class FileItemAssemblyPhaseTest final File tempRoot = fileManager.createTempDir(); - macCS.expectGetTemporaryRootDirectory( tempRoot ); - macCS.expectGetProject( new MavenProject( new Model() ) ); macCS.expectGetFinalName( "final-name" ); @@ -402,8 +387,6 @@ public class FileItemAssemblyPhaseTest assembly.addFile( licenseFileItem ); assembly.addFile( configFileItem ); - macCS.expectGetEncoding(); - mm.replayAll(); createPhase( macLogger.logger ).execute( ResolvedAssembly.create( assembly), macArchiver.archiver, macCS.configSource ); @@ -432,7 +415,7 @@ public class FileItemAssemblyPhaseTest { try { - archiver.addFile( file, outputLocation, fileMode ); + archiver.addResource( ( PlexusIoResource) anyObject(), (String) anyObject(), anyInt() ); } catch ( final ArchiverException e ) { Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java Thu Oct 30 16:04:30 2014 @@ -1,23 +1,95 @@ package org.apache.maven.plugin.assembly.format; -import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; -import org.apache.maven.plugin.assembly.testutils.ConfigSourceStub; +import org.apache.commons.io.IOUtils; +import org.apache.maven.model.Model; +import org.apache.maven.plugin.assembly.testutils.PojoConfigSource; +import org.apache.maven.project.MavenProject; +import org.apache.maven.shared.filtering.DefaultMavenReaderFilter; +import org.codehaus.plexus.archiver.resources.PlexusIoVirtualFileResource; import org.codehaus.plexus.components.io.functions.InputStreamTransformer; -import org.junit.Ignore; +import org.codehaus.plexus.logging.console.ConsoleLogger; import org.junit.Test; -import static org.junit.Assert.*; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import static org.apache.maven.plugin.assembly.format.ReaderFormatter.getFileSetTransformers; +import static org.junit.Assert.assertEquals; + + +@SuppressWarnings( "ConstantConditions" ) public class ReaderFormatterTest { + @Test + public void lineDosFeed() + throws IOException, AssemblyFormattingException + { + final PojoConfigSource cfg = getPojoConfigSource(); + InputStreamTransformer fileSetTransformers = getFileSetTransformers( cfg, true, "dos" ); + InputStream fud = fileSetTransformers.transform( dummyResource(), payload( "This is a\ntest." ) ); + assertEquals( "This is a\r\ntest.", readResultStream( fud ) ); + } @Test - @Ignore - public void testGetFileSetTransformers() - throws Exception + public void lineUnixFeedWithInterpolation() + throws IOException, AssemblyFormattingException { - final AssemblerConfigurationSource assemblerConfigurationSource = new ConfigSourceStub(); - ReaderFormatter.getFileSetTransformers( assemblerConfigurationSource, true, "\r\n" ); + final PojoConfigSource cfg = getPojoConfigSource(); + InputStreamTransformer fileSetTransformers = getFileSetTransformers( cfg, true, "unix" ); + InputStream fud = fileSetTransformers.transform( dummyResource(), payload( "This is a test for project: ${artifactId} @artifactId@.") ); + assertEquals( "This is a test for project: anArtifact anArtifact.", readResultStream( fud ) ); } + + private MavenProject createBasicMavenProject() + { + final Model model = new Model(); + model.setArtifactId( "anArtifact" ); + model.setGroupId( "group" ); + model.setVersion( "version" ); + + return new MavenProject( model ); + } + + + private String readResultStream( InputStream fud ) + throws IOException + { + byte[] actual = new byte[100]; + int read = IOUtils.read( fud, actual ); + return new String( actual, 0, read); + } + + private ByteArrayInputStream payload( String payload ) + { + return new ByteArrayInputStream( payload.getBytes() ); + } + + private PojoConfigSource getPojoConfigSource() + { + final PojoConfigSource cfg = new PojoConfigSource(); + cfg.setEncoding( "UTF-8" ); + DefaultMavenReaderFilter mavenReaderFilter = new DefaultMavenReaderFilter(); + mavenReaderFilter.enableLogging( new ConsoleLogger( 2, "fud" ) ); + cfg.setMavenReaderFilter( mavenReaderFilter ); + cfg.setEscapeString( null ); + cfg.setMavenProject( createBasicMavenProject() ); + +/* expect( configSource.getFilters()).andReturn( filters ); + + expect( configSource.isIncludeProjectBuildFilters()).andReturn( includeProjectBuildFilters ); + + expect( configSource.getDelimiters()).andReturn( delimiters ); +*/ + return cfg; + } + + private PlexusIoVirtualFileResource dummyResource() + { + return new PlexusIoVirtualFileResource( new File( "fud" ) ) + { + }; + } } \ No newline at end of file Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyExpressionEvaluatorTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyExpressionEvaluatorTest.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyExpressionEvaluatorTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyExpressionEvaluatorTest.java Thu Oct 30 16:04:30 2014 @@ -25,7 +25,7 @@ import org.apache.maven.execution.MavenS import org.apache.maven.model.Build; import org.apache.maven.model.Model; import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; -import org.apache.maven.plugin.assembly.testutils.ConfigSourceStub; +import org.apache.maven.plugin.assembly.testutils.PojoConfigSource; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; import org.easymock.classextension.EasyMockSupport; @@ -39,7 +39,7 @@ public class AssemblyExpressionEvaluator extends TestCase { - private final ConfigSourceStub configSourceStub = new ConfigSourceStub(); + private final PojoConfigSource configSourceStub = new PojoConfigSource(); public void testShouldResolveModelGroupId() throws ExpressionEvaluationException @@ -50,7 +50,7 @@ public class AssemblyExpressionEvaluator model.setVersion( "1" ); model.setPackaging( "jar" ); - configSourceStub.setProject( new MavenProject( model ) ); + configSourceStub.setMavenProject( new MavenProject( model ) ); final Object result = new AssemblyExpressionEvaluator( configSourceStub ).evaluate( "assembly.${groupId}" ); @@ -71,7 +71,7 @@ public class AssemblyExpressionEvaluator model.setProperties( props ); - configSourceStub.setProject( new MavenProject( model ) ); + configSourceStub.setMavenProject( new MavenProject( model ) ); final Object result = new AssemblyExpressionEvaluator( configSourceStub ).evaluate( "assembly.${groupId}" ); @@ -131,7 +131,7 @@ public class AssemblyExpressionEvaluator model.setVersion( "1" ); model.setPackaging( "jar" ); - configSourceStub.setProject( new MavenProject( model ) ); + configSourceStub.setMavenProject( new MavenProject( model ) ); final Object result = new AssemblyExpressionEvaluator( configSourceStub ).evaluate( "assembly.${unresolved}" ); @@ -147,7 +147,7 @@ public class AssemblyExpressionEvaluator final Model model = new Model(); model.setBuild( build ); - configSourceStub.setProject( new MavenProject( model ) ); + configSourceStub.setMavenProject( new MavenProject( model ) ); final Object result = new AssemblyExpressionEvaluator( configSourceStub ).evaluate( "assembly.${project.build.finalName}" ); Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java?rev=1635529&r1=1635528&r2=1635529&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolatorTest.java Thu Oct 30 16:04:30 2014 @@ -19,12 +19,7 @@ package org.apache.maven.plugin.assembly * under the License. */ -import java.io.IOException; -import java.util.List; -import java.util.Properties; - import junit.framework.TestCase; - import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Build; @@ -32,12 +27,16 @@ import org.apache.maven.model.Model; import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; import org.apache.maven.plugin.assembly.model.Assembly; import org.apache.maven.plugin.assembly.model.DependencySet; -import org.apache.maven.plugin.assembly.testutils.ConfigSourceStub; +import org.apache.maven.plugin.assembly.testutils.PojoConfigSource; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.console.ConsoleLogger; import org.easymock.classextension.EasyMockSupport; +import java.io.IOException; +import java.util.List; +import java.util.Properties; + import static org.easymock.EasyMock.expect; public class AssemblyInterpolatorTest @@ -46,7 +45,7 @@ public class AssemblyInterpolatorTest private AssemblyInterpolator interpolator; - private final AssemblerConfigurationSource configSourceStub = new ConfigSourceStub(); + private final AssemblerConfigurationSource configSourceStub = new PojoConfigSource(); @Override public void setUp() Added: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/PojoConfigSource.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/PojoConfigSource.java?rev=1635529&view=auto ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/PojoConfigSource.java (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/PojoConfigSource.java Thu Oct 30 16:04:30 2014 @@ -0,0 +1,452 @@ +/* + * 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. + */ +package org.apache.maven.plugin.assembly.testutils; + +import org.apache.maven.archiver.MavenArchiveConfiguration; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.plugin.assembly.AssemblerConfigurationSource; +import org.apache.maven.project.MavenProject; +import org.apache.maven.shared.filtering.MavenReaderFilter; + +import java.io.File; +import java.util.List; + +public class PojoConfigSource implements AssemblerConfigurationSource +{ + String descriptor; + + private File basedir; + + private MavenProject mavenProject; + + private boolean isSitencluded; + + private File siteDirectory; + + private String decriptorId; + + private String finalName; + + private List<String> delimiters; + + private String escapeString; + + private String encoding; + + private boolean isUpdateOnly; + + private boolean isUseJvmChmod; + + private boolean isIgnorePermissions; + + private String archiverConfig; + + private boolean isAssemblyIdAppended; + + private String classifier; + + private String tarLongFileMode; + + private File workingDirectory; + + private MavenArchiveConfiguration jarArchiveConfiguration; + + private MavenReaderFilter mavenReaderFilter; + + private File outputDirectory; + + private String[] descriptors; + + private String[] descriptorReferences; + + private File descriptorSourceReference; + + private ArtifactRepository localRepository; + + private File temporaryRootDirectory; + + private File archiveBaseDirectory; + + private List<String> filters; + + private boolean isIncludeProjectBuildFilter; + + private List<MavenProject> reactorProjects; + + private List<ArtifactRepository> remoteRepository; + + private boolean isDryRun; + + private boolean isIgnoreDirFormatExtensions; + + private boolean isIgnoreMissingDescriptor; + + private MavenSession mavenSession; + + public String getDescriptor() + { + return descriptor; + } + + public String getDescriptorId() + { + return decriptorId; + } + + public String[] getDescriptors() + { + return descriptors; + } + + public String[] getDescriptorReferences() + { + return descriptorReferences; + } + + public File getDescriptorSourceDirectory() + { + return descriptorSourceReference; + } + + public File getBasedir() + { + return basedir; + } + + public MavenProject getProject() + { + return mavenProject; + } + + public boolean isSiteIncluded() + { + return isSitencluded; + } + + public File getSiteDirectory() + { + return siteDirectory; + } + + public String getFinalName() + { + return finalName; + } + + public boolean isAssemblyIdAppended() + { + return isAssemblyIdAppended; + } + + public String getClassifier() + { + return classifier; + } + + public String getTarLongFileMode() + { + return tarLongFileMode; + } + + public File getOutputDirectory() + { + return outputDirectory; + } + + public File getWorkingDirectory() + { + return workingDirectory; + } + + public MavenArchiveConfiguration getJarArchiveConfiguration() + { + return jarArchiveConfiguration; + } + + public ArtifactRepository getLocalRepository() + { + return localRepository; + } + + public File getTemporaryRootDirectory() + { + return temporaryRootDirectory; + } + + public File getArchiveBaseDirectory() + { + return archiveBaseDirectory; + } + + public List<String> getFilters() + { + return filters; + } + + public boolean isIncludeProjectBuildFilters() + { + return isIncludeProjectBuildFilter; + } + + public List<MavenProject> getReactorProjects() + { + return reactorProjects; + } + + public List<ArtifactRepository> getRemoteRepositories() + { + return remoteRepository; + } + + public boolean isDryRun() + { + return isDryRun; + } + + public boolean isIgnoreDirFormatExtensions() + { + return isIgnoreDirFormatExtensions; + } + + public boolean isIgnoreMissingDescriptor() + { + return isIgnoreMissingDescriptor; + } + + public MavenSession getMavenSession() + { + return mavenSession; + } + + public String getArchiverConfig() + { + return archiverConfig; + } + + public MavenReaderFilter getMavenReaderFilter() + { + return mavenReaderFilter; + } + + public boolean isUpdateOnly() + { + return isUpdateOnly; + } + + public boolean isUseJvmChmod() + { + return isUseJvmChmod; + } + + public boolean isIgnorePermissions() + { + return isIgnorePermissions; + } + + public String getEncoding() + { + return encoding; + } + + public String getEscapeString() + { + return escapeString; + } + + public List<String> getDelimiters() + { + return delimiters; + } + + public void setDescriptor( String descriptor ) + { + this.descriptor = descriptor; + } + + public void setBasedir( File basedir ) + { + this.basedir = basedir; + } + + public void setMavenProject( MavenProject mavenProject ) + { + this.mavenProject = mavenProject; + } + + public void setSitencluded( boolean isSitencluded ) + { + this.isSitencluded = isSitencluded; + } + + public void setSiteDirectory( File siteDirectory ) + { + this.siteDirectory = siteDirectory; + } + + public void setDecriptorId( String decriptorId ) + { + this.decriptorId = decriptorId; + } + + public void setFinalName( String finalName ) + { + this.finalName = finalName; + } + + public void setDelimiters( List<String> delimiters ) + { + this.delimiters = delimiters; + } + + public void setEscapeString( String escapeString ) + { + this.escapeString = escapeString; + } + + public void setEncoding( String encoding ) + { + this.encoding = encoding; + } + + public void setUpdateOnly( boolean isUpdateOnly ) + { + this.isUpdateOnly = isUpdateOnly; + } + + public void setUseJvmChmod( boolean isUseJvmChmod ) + { + this.isUseJvmChmod = isUseJvmChmod; + } + + public void setIgnorePermissions( boolean isIgnorePermissions ) + { + this.isIgnorePermissions = isIgnorePermissions; + } + + public void setArchiverConfig( String archiverConfig ) + { + this.archiverConfig = archiverConfig; + } + + public void setAssemblyIdAppended( boolean isAssemblyIdAppended ) + { + this.isAssemblyIdAppended = isAssemblyIdAppended; + } + + public void setClassifier( String classifier ) + { + this.classifier = classifier; + } + + public void setTarLongFileMode( String tarLongFileMode ) + { + this.tarLongFileMode = tarLongFileMode; + } + + public void setWorkingDirectory( File workingDirectory ) + { + this.workingDirectory = workingDirectory; + } + + public void setJarArchiveConfiguration( MavenArchiveConfiguration jarArchiveConfiguration ) + { + this.jarArchiveConfiguration = jarArchiveConfiguration; + } + + public void setMavenReaderFilter( MavenReaderFilter mavenReaderFilter ) + { + this.mavenReaderFilter = mavenReaderFilter; + } + + public void setOutputDirectory( File outputDirectory ) + { + this.outputDirectory = outputDirectory; + } + + public void setDescriptors( String[] descriptors ) + { + this.descriptors = descriptors; + } + + public void setDescriptorReferences( String[] descriptorReferences ) + { + this.descriptorReferences = descriptorReferences; + } + + public void setDescriptorSourceReference( File descriptorSourceReference ) + { + this.descriptorSourceReference = descriptorSourceReference; + } + + public void setLocalRepository( ArtifactRepository localRepository ) + { + this.localRepository = localRepository; + } + + public void setTemporaryRootDirectory( File temporaryRootDirectory ) + { + this.temporaryRootDirectory = temporaryRootDirectory; + } + + public void setArchiveBaseDirectory( File archiveBaseDirectory ) + { + this.archiveBaseDirectory = archiveBaseDirectory; + } + + public void setFilters( List<String> filters ) + { + this.filters = filters; + } + + public void setIncludeProjectBuildFilter( boolean isIncludeProjectBuildFilter ) + { + this.isIncludeProjectBuildFilter = isIncludeProjectBuildFilter; + } + + public void setReactorProjects( List<MavenProject> reactorProjects ) + { + this.reactorProjects = reactorProjects; + } + + public void setRemoteRepository( List<ArtifactRepository> remoteRepository ) + { + this.remoteRepository = remoteRepository; + } + + public void setDryRun( boolean isDryRun ) + { + this.isDryRun = isDryRun; + } + + public void setIgnoreDirFormatExtensions( boolean isIgnoreDirFormatExtensions ) + { + this.isIgnoreDirFormatExtensions = isIgnoreDirFormatExtensions; + } + + public void setIgnoreMissingDescriptor( boolean isIgnoreMissingDescriptor ) + { + this.isIgnoreMissingDescriptor = isIgnoreMissingDescriptor; + } + + public void setMavenSession( MavenSession mavenSession ) + { + this.mavenSession = mavenSession; + } +}