You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2014/10/22 06:02:00 UTC
svn commit: r1633510 - in /maven/plugins/trunk/maven-assembly-plugin: ./
src/it/projects/dependency-sets/dependencySet-unpackedExcludingMetaInf/
src/it/projects/file-sets/multimodule-unix-lineEndings/
src/it/projects/file-sets/multimodule-unix-lineEndi...
Author: krosenvold
Date: Wed Oct 22 04:01:59 2014
New Revision: 1633510
URL: http://svn.apache.org/r1633510
Log:
Added in-place filtering with p-archiver 2.8
Modified:
maven/plugins/trunk/maven-assembly-plugin/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/child/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-win-lineEndings/pom.xml
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/PrefixedArchivedFileSet.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.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/main/java/org/apache/maven/plugin/assembly/utils/LineEndings.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.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/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Wed Oct 22 04:01:59 2014
@@ -62,7 +62,7 @@ under the License.
<properties>
<mdoVersion>1.1.2</mdoVersion>
<mavenArchiverVersion>2.5</mavenArchiverVersion>
- <mavenFilteringVersion>1.2</mavenFilteringVersion>
+ <mavenFilteringVersion>1.3</mavenFilteringVersion>
<mavenVersion>2.2.1</mavenVersion>
<testOutputToFile>true</testOutputToFile>
<mavenPluginVersion>3.2</mavenPluginVersion>
@@ -128,7 +128,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
- <version>2.7.1</version>
+ <version>2.8</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
@@ -147,6 +147,11 @@ under the License.
<version>1.1</version>
</dependency>
<dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-filtering</artifactId>
<version>${mavenFilteringVersion}</version>
@@ -154,7 +159,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-io</artifactId>
- <version>2.2</version>
+ <version>2.3</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml Wed Oct 22 04:01:59 2014
@@ -25,6 +25,7 @@ under the License.
<groupId>org.apache.maven.plugin.assembly.test</groupId>
<artifactId>it-project-parent</artifactId>
<version>1</version>
+ <relativePath>../../../it-project-parent/pom.xml</relativePath>
</parent>
<groupId>test</groupId>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/child/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/child/pom.xml?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/child/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/child/pom.xml Wed Oct 22 04:01:59 2014
@@ -25,6 +25,7 @@ under the License.
<groupId>org.apache.maven.plugin.assembly.test</groupId>
<artifactId>it-project-parent</artifactId>
<version>1</version>
+ <relativePath>../../../../it-project-parent/pom.xml</relativePath>
</parent>
<artifactId>child</artifactId>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/pom.xml?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-unix-lineEndings/pom.xml Wed Oct 22 04:01:59 2014
@@ -25,6 +25,7 @@ under the License.
<groupId>org.apache.maven.plugin.assembly.test</groupId>
<artifactId>it-project-parent</artifactId>
<version>1</version>
+ <relativePath>../../../it-project-parent/pom.xml</relativePath>
</parent>
<artifactId>filtered-multimodule-parent</artifactId>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-win-lineEndings/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-win-lineEndings/pom.xml?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-win-lineEndings/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/file-sets/multimodule-win-lineEndings/pom.xml Wed Oct 22 04:01:59 2014
@@ -25,6 +25,7 @@ under the License.
<groupId>org.apache.maven.plugin.assembly.test</groupId>
<artifactId>it-project-parent</artifactId>
<version>1</version>
+ <relativePath>../../../it-project-parent/pom.xml</relativePath>
</parent>
<artifactId>filtered-multimodule-parent</artifactId>
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=1633510&r1=1633509&r2=1633510&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 Wed Oct 22 04:01:59 2014
@@ -24,6 +24,7 @@ import org.apache.maven.artifact.reposit
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;
import java.util.List;
@@ -180,6 +181,11 @@ public interface AssemblerConfigurationS
MavenFileFilter getMavenFileFilter();
/**
+ * Maven shared filtering utility.
+ */
+ MavenReaderFilter getMavenReaderFilter();
+
+ /**
* @return Update only yes/no.
*/
boolean isUpdateOnly();
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java Wed Oct 22 04:01:59 2014
@@ -23,6 +23,7 @@ import static org.apache.maven.plugin.as
import org.codehaus.plexus.archiver.ArchivedFileSet;
import org.codehaus.plexus.components.io.fileselectors.FileSelector;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
import java.io.File;
@@ -120,4 +121,9 @@ public class PrefixedArchivedFileSet
return fileSet.isUsingDefaultExcludes();
}
+ public InputStreamTransformer getStreamTransformer()
+ {
+ return fileSet.getStreamTransformer();
+ }
+
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java Wed Oct 22 04:01:59 2014
@@ -21,6 +21,7 @@ package org.apache.maven.plugin.assembly
import org.codehaus.plexus.archiver.FileSet;
import org.codehaus.plexus.components.io.fileselectors.FileSelector;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
import java.io.File;
@@ -145,4 +146,8 @@ public class PrefixedFileSet
return fileSet.getDirectory();
}
+ public InputStreamTransformer getStreamTransformer()
+ {
+ return fileSet.getStreamTransformer();
+ }
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java Wed Oct 22 04:01:59 2014
@@ -25,6 +25,7 @@ import org.apache.maven.plugin.assembly.
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.util.DefaultFileSet;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
import java.io.File;
import java.util.ArrayList;
@@ -39,6 +40,8 @@ public class AddDirectoryTask
private final File directory;
+ private final InputStreamTransformer transformer;
+
private List<String> includes;
private List<String> excludes;
@@ -51,9 +54,15 @@ public class AddDirectoryTask
private int fileMode = -1;
- public AddDirectoryTask( final File directory )
+ public AddDirectoryTask( final File directory, InputStreamTransformer transformers )
{
this.directory = directory;
+
+ this.transformer = transformers;
+ }
+ public AddDirectoryTask( final File directory )
+ {
+ this( directory, null);
}
public void execute( final Archiver archiver, final AssemblerConfigurationSource configSource )
@@ -130,6 +139,9 @@ public class AddDirectoryTask
fs.setDirectory( directory );
fs.setIncludes( includesArray );
fs.setExcludes( excludesArray );
+ if (transformer != null){
+ fs.setStreamTransformer( transformer );
+ }
archiver.addFileSet( fs );
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java Wed Oct 22 04:01:59 2014
@@ -21,19 +21,27 @@ package org.apache.maven.plugin.assembly
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.apache.commons.io.input.ReaderInputStream;
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.FileSetFormatter;
+import org.apache.maven.plugin.assembly.format.FileFormatter;
import org.apache.maven.plugin.assembly.model.FileSet;
import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
+import org.apache.maven.plugin.assembly.utils.LineEndings;
+import org.apache.maven.plugin.assembly.utils.LineEndingsUtils;
import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
+import org.codehaus.plexus.components.io.resources.PlexusIoResource;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
@@ -99,8 +107,6 @@ public class AddFileSetsTask
// throw this check in just in case someone extends this class...
checkLogger();
- final FileSetFormatter fileSetFormatter = new FileSetFormatter( configSource, logger );
-
if ( project == null )
{
project = configSource.getProject();
@@ -133,18 +139,7 @@ public class AddFileSetsTask
if ( fileSetDir.exists() )
{
- try
- {
- fileSetDir = fileSetFormatter.formatFileSetForAssembly( fileSetDir, fileSet );
- }
- catch ( final IOException e )
- {
- throw new ArchiveCreationException( "Error fixing file-set line endings for assembly: "
- + e.getMessage(), e );
- }
-
- logger.debug( "Adding file-set from directory: '" + fileSetDir.getAbsolutePath()
- + "'\nassembly output directory is: \'" + destDirectory + "\'" );
+ InputStreamTransformer fileSetTransformers = getFileSetTransformers( configSource, fileSetDir, fileSet );
if ( fileSetDir.getPath().equals( File.separator ) )
{
@@ -152,7 +147,7 @@ public class AddFileSetsTask
+ File.separator
+ ", which is your *entire* file system.\nThese are not the files you are looking for" );
}
- final AddDirectoryTask task = new AddDirectoryTask( fileSetDir );
+ final AddDirectoryTask task = new AddDirectoryTask( fileSetDir, fileSetTransformers );
final int dirMode = TypeConversionUtils.modeToInt( fileSet.getDirectoryMode(), logger );
if ( dirMode != -1 )
@@ -180,6 +175,69 @@ public class AddFileSetsTask
}
}
+ private InputStreamTransformer getFileSetTransformers( final AssemblerConfigurationSource configSource, File fileSetDir,
+ final org.apache.maven.plugin.assembly.model.FileSet set )
+ throws AssemblyFormattingException
+ {
+ final String lineEndingHint = set.getLineEnding();
+
+ String lineEnding = LineEndingsUtils.getLineEndingCharacters( lineEndingHint );
+
+ if ( ( lineEnding != null ) || set.isFiltered() )
+ {
+ InputStreamTransformer isf = new InputStreamTransformer()
+ {
+ public InputStream transform( PlexusIoResource plexusIoResource, InputStream inputStream )
+ throws IOException
+ {
+ FileFormatter fileFormatter = new FileFormatter( configSource, logger );
+
+ if ( set.isFiltered() )
+ {
+ final String encoding = configSource.getEncoding();
+
+ Reader source = encoding != null ? new InputStreamReader( inputStream, encoding )
+ : new InputStreamReader( inputStream ); // wtf platform encoding ?
+ try
+ {
+ Reader filtered = fileFormatter.doReaderFilter( source, plexusIoResource.getName(),
+ configSource.getEncoding(),
+ configSource.getEscapeString(),
+ configSource.getDelimiters() );
+ final ReaderInputStream readerInputStream = encoding != null ? new ReaderInputStream( filtered, encoding)
+ : new ReaderInputStream( filtered );
+
+ LineEndings lineEnding = LineEndingsUtils.getLineEnding( lineEndingHint );
+ if ( !LineEndings.keep.equals( lineEnding ) )
+ {
+ return LineEndingsUtils.lineEndingConverter( readerInputStream, lineEnding );
+
+ }
+ return readerInputStream;
+
+ }
+ catch ( AssemblyFormattingException e )
+ {
+ throw new IOException( e );
+ }
+
+ }
+ else
+ {
+ return inputStream;
+ }
+ }
+ };
+ return isf;
+ }
+ else
+ {
+ logger.debug( "NOT reformatting any files in " + fileSetDir );
+ return null;
+ }
+ }
+
+
protected File getFileSetDirectory( final FileSet fileSet, final File basedir, final File archiveBaseDir )
throws ArchiveCreationException, AssemblyFormattingException
{
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java Wed Oct 22 04:01:59 2014
@@ -36,6 +36,7 @@ import org.apache.maven.plugin.assembly.
import org.apache.maven.plugin.assembly.utils.LineEndingsUtils;
import org.apache.maven.shared.filtering.MavenFileFilterRequest;
import org.apache.maven.shared.filtering.MavenFilteringException;
+import org.apache.maven.shared.filtering.MavenReaderFilterRequest;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
@@ -144,6 +145,54 @@ public class FileFormatter
}
}
+ public Reader doReaderFilter( @Nonnull Reader source, String sourceName, String encoding, String escapeString,
+ List<String> delimiters )
+ throws AssemblyFormattingException
+ {
+ try
+ {
+ // @todo this test can be improved
+ boolean isPropertiesFile = sourceName.toLowerCase( Locale.ENGLISH ).endsWith( ".properties" );
+
+ MavenReaderFilterRequest filterRequest =
+ new MavenReaderFilterRequest( source, true, configSource.getProject(), configSource.getFilters(),
+ isPropertiesFile, encoding, configSource.getMavenSession(), null );
+ filterRequest.setEscapeString( escapeString );
+
+ // if these are NOT set, just use the defaults, which are '${*}' and '@'.
+ if ( delimiters != null && !delimiters.isEmpty() )
+ {
+ LinkedHashSet<String> delims = new LinkedHashSet<String>();
+ for ( String delim : delimiters )
+ {
+ if ( delim == null )
+ {
+ // FIXME: ${filter:*} could also trigger this condition. Need a better long-term solution.
+ delims.add( "${*}" );
+ }
+ else
+ {
+ delims.add( delim );
+ }
+ }
+
+ filterRequest.setDelimiters( delims );
+ }
+ else
+ {
+ filterRequest.setDelimiters( filterRequest.getDelimiters() );
+ }
+
+ filterRequest.setInjectProjectBuildFilters( configSource.isIncludeProjectBuildFilters() );
+ return configSource.getMavenReaderFilter().filter( filterRequest );
+ }
+ catch ( MavenFilteringException e )
+ {
+ throw new AssemblyFormattingException( "Error filtering file '" + source + "': " + e.getMessage(), e );
+ }
+ }
+
+
private File formatLineEndings( LineEndings lineEnding, File source, File tempRoot, String encoding )
throws AssemblyFormattingException
{
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=1633510&r1=1633509&r2=1633510&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 Wed Oct 22 04:01:59 2014
@@ -44,6 +44,7 @@ import org.apache.maven.plugins.annotati
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectHelper;
import org.apache.maven.shared.filtering.MavenFileFilter;
+import org.apache.maven.shared.filtering.MavenReaderFilter;
import org.codehaus.plexus.configuration.PlexusConfiguration;
/**
@@ -226,6 +227,12 @@ public abstract class AbstractAssemblyMo
private MavenFileFilter mavenFileFilter;
/**
+ * Maven shared filtering utility.
+ */
+ @Component
+ private MavenReaderFilter mavenReaderFilter;
+
+ /**
* The Maven Session Object
*/
@Parameter( defaultValue = "${session}", readonly = true, required = true )
@@ -868,6 +875,11 @@ public abstract class AbstractAssemblyMo
return mavenFileFilter;
}
+ public MavenReaderFilter getMavenReaderFilter()
+ {
+ return mavenReaderFilter;
+ }
+
public boolean isUpdateOnly()
{
return updateOnly;
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndings.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndings.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndings.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndings.java Wed Oct 22 04:01:59 2014
@@ -35,6 +35,13 @@ public enum LineEndings
this.lineEndingCharacters = lineEndingCharacters;
}
+ public boolean isNewLine(){
+ return this== unix || this == lf;
+ }
+ public boolean isCrLF(){
+ return this== windows || this == crlf || this == dos;
+ }
+
public String getLineEndingCharacters()
{
return this.lineEndingCharacters;
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java Wed Oct 22 04:01:59 2014
@@ -19,22 +19,22 @@ package org.apache.maven.plugin.assembly
* under the License.
*/
+import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
+import org.codehaus.plexus.util.IOUtil;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
-import org.codehaus.plexus.util.IOUtil;
-
/**
* Line Ending class which contains convenience methods to change line endings.
*/
@@ -49,15 +49,15 @@ public final class LineEndingsUtils
/**
* Converts the line endings of a file, writing a new file. The encoding of reading and writing can be specified.
*
- * @param source The source file, not null
- * @param dest The destination file, not null
+ * @param source The source file, not null
+ * @param dest The destination file, not null
* @param lineEndings This is the result of the getLineEndingChars(..) method in this utility class; the actual
- * line-ending characters, not null.
+ * line-ending characters, not null.
* @param atEndOfFile The end-of-file line ending, if true then the resulting file will have a new line at the end
- * even if the input didn't have one, if false then the resulting file will have no new line at the end
- * even if the input did have one, null to determine whether to have a new line at the end of the file
- * based on the input file
- * @param encoding The encoding to use, null for platform encoding
+ * even if the input didn't have one, if false then the resulting file will have no new line at the end
+ * even if the input did have one, null to determine whether to have a new line at the end of the file
+ * based on the input file
+ * @param encoding The encoding to use, null for platform encoding
*/
public static void convertLineEndings( @Nonnull File source, @Nonnull File dest, LineEndings lineEndings,
Boolean atEndOfFile, String encoding )
@@ -147,6 +147,21 @@ public final class LineEndingsUtils
}
}
+ /**
+ * Converts the line endings of a file, writing a new file. The encoding of reading and writing can be specified.
+ *
+ * @param in The source reader
+ * @param lineEndings This is the result of the getLineEndingChars(..) method in this utility class; the actual
+ * line-ending characters, not null.
+ * @param in with proper line endings.
+ */
+ public static InputStream lineEndingConverter( @Nonnull InputStream in, LineEndings lineEndings )
+ throws IOException
+ {
+ return lineEndings.isNewLine() ? new LinuxLineFeedInputStream( in, false )
+ : lineEndings.isCrLF() ? new WindowsLineFeedInputStream( in, false ) : in;
+ }
+
public static LineEndings getLineEnding( @Nullable String lineEnding )
throws AssemblyFormattingException
{
@@ -165,8 +180,7 @@ public final class LineEndingsUtils
return result;
}
- @Nullable
- public static String getLineEndingCharacters( @Nullable String lineEnding )
+ @Nullable public static String getLineEndingCharacters( @Nullable String lineEnding )
throws AssemblyFormattingException
{
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Wed Oct 22 04:01:59 2014
@@ -19,22 +19,7 @@ package org.apache.maven.plugin.assembly
* under the License.
*/
-import static org.easymock.EasyMock.expect;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
import junit.framework.Assert;
-
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.model.Model;
@@ -45,7 +30,6 @@ import org.apache.maven.plugin.assembly.
import org.apache.maven.plugin.assembly.artifact.DependencyResolver;
import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
import org.apache.maven.plugin.assembly.model.Assembly;
-import org.apache.maven.plugin.assembly.resolved.ResolvedAssembly;
import org.apache.maven.plugin.assembly.testutils.MockManager;
import org.apache.maven.plugin.assembly.testutils.TestFileManager;
import org.apache.maven.project.MavenProject;
@@ -72,9 +56,19 @@ import org.codehaus.plexus.util.FileUtil
import org.easymock.MockControl;
import org.junit.AfterClass;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+import static org.easymock.EasyMock.expect;
+import static org.junit.Assert.*;
+
public class DefaultAssemblyArchiverTest
// extends PlexusTestCase
{
@@ -878,7 +872,6 @@ public class DefaultAssemblyArchiverTest
throws ArchiverException
{
}
-
public void addArchivedFileSet( final File arg0, final String[] arg1, final String[] arg2 )
throws ArchiverException
{
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java?rev=1633510&r1=1633509&r2=1633510&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/ConfigSourceStub.java Wed Oct 22 04:01:59 2014
@@ -28,6 +28,7 @@ import org.apache.maven.execution.MavenS
import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.filtering.MavenFileFilter;
+import org.apache.maven.shared.filtering.MavenReaderFilter;
public class ConfigSourceStub
implements AssemblerConfigurationSource
@@ -186,6 +187,12 @@ public class ConfigSourceStub
return null;
}
+ public MavenReaderFilter getMavenReaderFilter()
+ {
+ return null;
+ }
+
+
public void setProject( final MavenProject mavenProject )
{
project = mavenProject;