Author: krosenvold
Date: Wed Nov 12 20:03:48 2014
New Revision: 1639022
URL: http://svn.apache.org/r1639022
Log:
[MASSEMBLY-580] Fix
Added:
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/main/
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/main/assembly/
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/main/assembly/release.xml
Modified:
maven/plugins/trunk/maven-assembly-plugin/pom.xml
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.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=1639022&r1=1639021&r2=1639022&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Wed Nov 12 20:03:48 2014
@@ -125,7 +125,7 @@ under the License.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
- <version>2.8.2</version>
+ <version>2.8.3-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
Added:
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/pom.xml?rev=1639022&view=auto
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/pom.xml
(added)
+++
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/pom.xml
Wed Nov 12 20:03:48 2014
@@ -0,0 +1,49 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>com.sulake.maven</groupId>
+ <artifactId>directory-mode-ignored</artifactId>
+ <version>10-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+ <!-- bunch of wars defined here, random commons artifact for testing
-->
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.2.2</version>
+ <!--type>war</type-->
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>${testVersion}</version>
+ <configuration>
+ <finalName>project-deploy</finalName>
+ <appendAssemblyId>false</appendAssemblyId>
+ <descriptors>
+ <descriptor>src/main/assembly/release.xml</descriptor>
+ </descriptors>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id> <!-- this is used for
inheritance merges -->
+ <phase>package</phase> <!-- bind to the packaging
phase -->
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
Added:
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/main/assembly/release.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/main/assembly/release.xml?rev=1639022&view=auto
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/main/assembly/release.xml
(added)
+++
maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-580/src/main/assembly/release.xml
Wed Nov 12 20:03:48 2014
@@ -0,0 +1,20 @@
+<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>release</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <dependencySets>
+ <dependencySet>
+
<outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
+ <outputDirectory>webapps</outputDirectory>
+ <useTransitiveDependencies>true</useTransitiveDependencies>
+ <unpack>false</unpack>
+ <scope>runtime</scope>
+ <fileMode>0644</fileMode>
+ <directoryMode>0750</directoryMode>
+ </dependencySet>
+ </dependencySets>
+</assembly>
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java?rev=1639022&r1=1639021&r2=1639022&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
Wed Nov 12 20:03:48 2014
@@ -101,125 +101,136 @@ public class AddArtifactTask
artifactProjectInterpolator( project ) );
- if ( unpack )
+ boolean fileModeSet = false;
+ boolean dirModeSet = false;
+
+ final int oldDirMode = archiver.getOverrideDirectoryMode();
+ final int oldFileMode = archiver.getOverrideFileMode();
+
+ if ( fileMode != -1 )
{
- String outputLocation = destDirectory;
+ archiver.setFileMode( fileMode );
+ fileModeSet = true;
+ }
- if ( ( outputLocation.length() > 0 ) && !outputLocation.endsWith(
"/" ) )
+ if ( directoryMode != -1 )
+ {
+ archiver.setDirectoryMode( directoryMode );
+ dirModeSet = true;
+ }
+ try
+ {
+
+ if ( unpack )
{
- outputLocation += "/";
+ unpacked( archiver, destDirectory );
+ }
+ else
+ {
+ asFile( archiver, configSource, destDirectory );
+ }
+ }
+ finally
+ {
+ if ( dirModeSet )
+ {
+ archiver.setDirectoryMode( oldDirMode );
}
- String[] includesArray = TypeConversionUtils.toStringArray(
includes );
- if ( includesArray == null )
+ if ( fileModeSet )
{
- includesArray = DEFAULT_INCLUDES_ARRAY;
+ archiver.setFileMode( oldFileMode );
}
- final String[] excludesArray = TypeConversionUtils.toStringArray(
excludes );
+ }
- final int oldDirMode = archiver.getOverrideDirectoryMode();
- final int oldFileMode = archiver.getOverrideFileMode();
+ }
- boolean fileModeSet = false;
- boolean dirModeSet = false;
+ private void asFile( Archiver archiver, AssemblerConfigurationSource
configSource, String destDirectory )
+ throws AssemblyFormattingException, ArchiveCreationException
+ {
+ final String tempMapping =
+ AssemblyFormatUtils.evaluateFileNameMapping(
outputFileNameMapping, artifact, configSource.getProject(),
+ moduleArtifact,
configSource,
+
moduleProjectInterpolator( moduleProject ),
+
artifactProjectInterpolator( project ) );
- try
- {
- if ( fileMode != -1 )
- {
- archiver.setFileMode( fileMode );
- fileModeSet = true;
- }
+ final String outputLocation = destDirectory + tempMapping;
- if ( directoryMode != -1 )
- {
- archiver.setDirectoryMode( directoryMode );
- dirModeSet = true;
- }
+ try
+ {
+ final File artifactFile = artifact.getFile();
- final File artifactFile = artifact.getFile();
- if ( artifactFile == null )
- {
- logger.warn( "Skipping artifact: " + artifact.getId()
- + "; it does not have an associated file
or directory." );
- }
- else if ( artifactFile.isDirectory() )
- {
- logger.debug( "Adding artifact directory contents for: " +
artifact + " to: " + outputLocation );
+ logger.debug( "Adding artifact: " + artifact.getId() + " with
file: " + artifactFile + " to assembly location: " + outputLocation + "." );
- DefaultFileSet fs = DefaultFileSet.fileSet( artifactFile);
- fs.setIncludes(includesArray);
- fs.setExcludes(excludesArray);
- fs.setPrefix( outputLocation);
- fs.setStreamTransformer(transformer);
- archiver.addFileSet(fs);
- }
- else
- {
- logger.debug( "Unpacking artifact contents for: " +
artifact + " to: " + outputLocation );
- logger.debug( "includes:\n" + StringUtils.join(
includesArray, "\n" ) + "\n" );
- logger.debug( "excludes:\n"
- + ( excludesArray == null ? "none" :
StringUtils.join( excludesArray, "\n" ) )
- + "\n" );
- DefaultArchivedFileSet afs =
DefaultArchivedFileSet.archivedFileSet(artifactFile);
- afs.setIncludes(includesArray);
- afs.setExcludes(excludesArray);
- afs.setPrefix(outputLocation);
- afs.setStreamTransformer(transformer);
- archiver.addArchivedFileSet( afs );
- }
- }
- catch ( final ArchiverException e )
+ if ( fileMode != -1 )
{
- throw new ArchiveCreationException( "Error adding file-set for
'" + artifact.getId() + "' to archive: "
- + e.getMessage(), e );
+ archiver.addFile( artifactFile, outputLocation, fileMode );
}
- finally
+ else
{
- if ( dirModeSet )
- {
- archiver.setDirectoryMode( oldDirMode );
- }
-
- if ( fileModeSet )
- {
- archiver.setFileMode( oldFileMode );
- }
+ archiver.addFile( artifactFile, outputLocation );
}
}
- else
+ catch ( final ArchiverException e )
{
- final String tempMapping =
- AssemblyFormatUtils.evaluateFileNameMapping(
outputFileNameMapping, artifact,
-
configSource.getProject(), moduleArtifact, configSource,
-
moduleProjectInterpolator( moduleProject ),
-
artifactProjectInterpolator( project ) );
+ throw new ArchiveCreationException( "Error adding file '" +
artifact.getId() + "' to archive: " + e.getMessage(), e );
+ }
+ }
+ private void unpacked( Archiver archiver, String destDirectory )
+ throws ArchiveCreationException
+ {
+ String outputLocation = destDirectory;
- final String outputLocation = destDirectory + tempMapping;
+ if ( ( outputLocation.length() > 0 ) && !outputLocation.endsWith( "/"
) )
+ {
+ outputLocation += "/";
+ }
- try
- {
- final File artifactFile = artifact.getFile();
+ String[] includesArray = TypeConversionUtils.toStringArray( includes );
+ if ( includesArray == null )
+ {
+ includesArray = DEFAULT_INCLUDES_ARRAY;
+ }
+ final String[] excludesArray = TypeConversionUtils.toStringArray(
excludes );
- logger.debug( "Adding artifact: " + artifact.getId() + " with
file: " + artifactFile
- + " to assembly location: " + outputLocation +
"." );
+ try {
- if ( fileMode != -1 )
- {
- archiver.addFile( artifactFile, outputLocation, fileMode );
- }
- else
- {
- archiver.addFile( artifactFile, outputLocation );
- }
- }
- catch ( final ArchiverException e )
+ final File artifactFile = artifact.getFile();
+ if ( artifactFile == null )
{
- throw new ArchiveCreationException( "Error adding file '" +
artifact.getId() + "' to archive: "
- + e.getMessage(), e );
+ logger.warn( "Skipping artifact: " + artifact.getId() + "; it
does not have an associated file or directory." );
+ }
+ else if ( artifactFile.isDirectory() )
+ {
+ logger.debug( "Adding artifact directory contents for: " +
artifact + " to: " + outputLocation );
+
+ DefaultFileSet fs = DefaultFileSet.fileSet( artifactFile );
+ fs.setIncludes( includesArray );
+ fs.setExcludes( excludesArray );
+ fs.setPrefix( outputLocation );
+ fs.setStreamTransformer( transformer );
+ archiver.addFileSet( fs );
+ }
+ else
+ {
+ logger.debug( "Unpacking artifact contents for: " + artifact +
" to: " + outputLocation );
+ logger.debug( "includes:\n" + StringUtils.join( includesArray,
"\n" ) + "\n" );
+ logger.debug( "excludes:\n" + ( excludesArray == null ? "none"
: StringUtils.join( excludesArray, "\n" ) )
+ + "\n" );
+ DefaultArchivedFileSet afs =
DefaultArchivedFileSet.archivedFileSet( artifactFile );
+ afs.setIncludes( includesArray );
+ afs.setExcludes( excludesArray );
+ afs.setPrefix( outputLocation );
+ afs.setStreamTransformer( transformer );
+ archiver.addArchivedFileSet( afs );
}
}
+ catch ( final ArchiverException e )
+ {
+ throw new ArchiveCreationException(
+ "Error adding file-set for '" + artifact.getId() + "' to
archive: " + e.getMessage(), e );
+ }
}
private File moveArtifactSomewhereElse(AssemblerConfigurationSource
configSource) throws ArchiveCreationException {