You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2011/09/01 00:42:33 UTC

svn commit: r1163853 - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/main/java/org/apache/maven/plugin/assembly/ src/main/java/org/apache/maven/plugin/assembly/archive/ src/main/java/org/apache/maven/plugin/assembly/archive/phase/ src/main/java...

Author: jdcasey
Date: Wed Aug 31 22:42:32 2011
New Revision: 1163853

URL: http://svn.apache.org/viewvc?rev=1163853&view=rev
Log:
Switch to java5 annotations for plexus components

Modified:
    maven/plugins/trunk/maven-assembly-plugin/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/DefaultAssemblyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.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/archive/phase/FileSetAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfServicesHandler.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfSpringHandler.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/format/FileSetFormatter.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.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/FileFormatterTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.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=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Wed Aug 31 22:42:32 2011
@@ -197,6 +197,12 @@ under the License.
       <version>4.8.1</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-component-annotations</artifactId>
+      <version>1.5.5</version>
+      <scope>provided</scope>
+    </dependency>
   </dependencies>
 
   <build>
@@ -212,31 +218,15 @@ under the License.
     <plugins>
       <plugin>
         <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-maven-plugin</artifactId>
+        <artifactId>plexus-component-metadata</artifactId>
+        <version>1.5.5</version>
         <executions>
           <execution>
-            <id>create-component-descriptor</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>descriptor</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/generated-resources/plexus</outputDirectory>
-            </configuration>
-          </execution>
-          <execution>
-            <id>merge-metadata</id>
-            <phase>process-resources</phase>
-            <goals>
-              <goal>merge-descriptors</goal>
+          	<id>descriptors</id>
+          	<goals>
+              <goal>generate-metadata</goal>
+              <goal>generate-test-metadata</goal>
             </goals>
-            <configuration>
-              <!-- <output>${project.build.outputDirectory}/META-INF/plexus/components.xml</output> -->
-              <!-- <resources>
-                <resource>${project.build.outputDirectory}/META-INF/plexus/components.xml</resource>
-                <resource>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</resource>
-              </resources> -->
-            </configuration>
           </execution>
         </executions>
       </plugin>

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=1163853&r1=1163852&r2=1163853&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 Aug 31 22:42:32 2011
@@ -95,4 +95,6 @@ public interface AssemblerConfigurationS
     boolean isUseJvmChmod();
 
     boolean isIgnorePermissions();
+    
+    String getEncoding();
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java Wed Aug 31 22:42:32 2011
@@ -19,6 +19,16 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.io.StringReader;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.maven.plugin.DebugConfigurationListener;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.AssemblyContext;
@@ -48,6 +58,8 @@ import org.codehaus.plexus.archiver.mana
 import org.codehaus.plexus.archiver.tar.TarArchiver;
 import org.codehaus.plexus.archiver.tar.TarLongFileMode;
 import org.codehaus.plexus.archiver.war.WarArchiver;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.component.configurator.ComponentConfigurationException;
 import org.codehaus.plexus.component.configurator.ComponentConfigurator;
 import org.codehaus.plexus.component.configurator.ConfigurationListener;
@@ -64,16 +76,6 @@ import org.codehaus.plexus.util.xml.Xpp3
 import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Controller component designed to organize the many activities involved in creating an assembly archive. This includes
  * locating and configuring {@link Archiver} instances, executing multiple {@link AssemblyArchiverPhase} instances to
@@ -81,31 +83,23 @@ import java.util.Map;
  * activities.
  * 
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.archive.AssemblyArchiver"
  */
+@Component( role = AssemblyArchiver.class )
 public class DefaultAssemblyArchiver
     extends AbstractLogEnabled
     implements AssemblyArchiver, Contextualizable
 {
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArchiverManager archiverManager;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private DependencyResolver dependencyResolver;
 
-    /**
-     * @plexus.requirement role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase"
-     */
+    @Requirement( role = AssemblyArchiverPhase.class )
     private List<AssemblyArchiverPhase> assemblyPhases;
 
-    /**
-     * @plexus.requirement role="org.apache.maven.plugin.assembly.filter.ContainerDescriptorHandler"
-     */
+    @Requirement( role = ContainerDescriptorHandler.class )
     private Map<String, ContainerDescriptorHandler> containerDescriptorHandlers;
 
     private PlexusContainer container;
@@ -126,7 +120,6 @@ public class DefaultAssemblyArchiver
 
     /**
      * Create the assembly archive. Generally:
-     * 
      * <ol>
      * <li>Setup any directory structures for temporary files</li>
      * <li>Calculate the output directory/file for the assembly</li>
@@ -194,22 +187,22 @@ public class DefaultAssemblyArchiver
         catch ( final ArchiverException e )
         {
             throw new ArchiveCreationException( "Error creating assembly archive " + assembly.getId() + ": "
-                            + e.getMessage(), e );
+                + e.getMessage(), e );
         }
         catch ( final IOException e )
         {
             throw new ArchiveCreationException( "Error creating assembly archive " + assembly.getId() + ": "
-                            + e.getMessage(), e );
+                + e.getMessage(), e );
         }
         catch ( final NoSuchArchiverException e )
         {
             throw new ArchiveCreationException( "Unable to obtain archiver for extension '" + format
-                            + "', for assembly: '" + assembly.getId() + "'", e );
+                + "', for assembly: '" + assembly.getId() + "'", e );
         }
         catch ( final DependencyResolutionException e )
         {
             throw new ArchiveCreationException( "Unable to resolve dependencies for assembly '" + assembly.getId()
-                            + "'", e );
+                + "'", e );
         }
 
         return destFile;
@@ -218,9 +211,7 @@ public class DefaultAssemblyArchiver
     private void validate( final Assembly assembly )
         throws InvalidAssemblerConfigurationException
     {
-        if ( assembly.getId() == null || assembly.getId()
-                                                 .trim()
-                                                 .length() < 1 )
+        if ( assembly.getId() == null || assembly.getId().trim().length() < 1 )
         {
             throw new InvalidAssemblerConfigurationException( "Assembly ID must be present and non-empty." );
         }
@@ -231,8 +222,8 @@ public class DefaultAssemblyArchiver
         throws InvalidAssemblerConfigurationException
     {
         getLogger().debug( "All known ContainerDescriptorHandler components: "
-                                           + ( containerDescriptorHandlers == null ? "none; map is null." : ""
-                                                           + containerDescriptorHandlers.keySet() ) );
+                               + ( containerDescriptorHandlers == null ? "none; map is null." : ""
+                                   + containerDescriptorHandlers.keySet() ) );
 
         if ( requestedContainerDescriptorHandlers == null )
         {
@@ -255,11 +246,11 @@ public class DefaultAssemblyArchiver
                 {
                     throw new InvalidAssemblerConfigurationException(
                                                                       "Cannot find ContainerDescriptorHandler with hint: "
-                                                                                      + hint );
+                                                                          + hint );
                 }
 
                 getLogger().debug( "Found container descriptor handler with hint: " + hint + " (component: " + handler
-                                                   + ")" );
+                                       + ")" );
 
                 if ( config.getConfiguration() != null )
                 {
@@ -284,8 +275,7 @@ public class DefaultAssemblyArchiver
     /**
      * Creates the necessary archiver to build the distribution file.
      * 
-     * @param format
-     *            Archive format
+     * @param format Archive format
      * @param includeBaseDir
      * @param finalName
      * @param configSource
@@ -350,8 +340,7 @@ public class DefaultAssemblyArchiver
                                                       final AssemblerConfigurationSource configSource )
         throws InvalidAssemblerConfigurationException
     {
-        getLogger().debug( "Configuring handler: '" + handler.getClass()
-                                                             .getName() + "' -->" );
+        getLogger().debug( "Configuring handler: '" + handler.getClass().getName() + "' -->" );
 
         try
         {
@@ -359,14 +348,13 @@ public class DefaultAssemblyArchiver
         }
         catch ( final ComponentConfigurationException e )
         {
-            throw new InvalidAssemblerConfigurationException( "Failed to configure handler: " + handler.getClass()
-                                                                                                       .getName(), e );
+            throw new InvalidAssemblerConfigurationException( "Failed to configure handler: "
+                + handler.getClass().getName(), e );
         }
         catch ( final ComponentLookupException e )
         {
             throw new InvalidAssemblerConfigurationException( "Failed to lookup configurator for setup of handler: "
-                            + handler.getClass()
-                                     .getName(), e );
+                + handler.getClass().getName(), e );
         }
 
         getLogger().debug( "-- end configuration --" );
@@ -382,17 +370,18 @@ public class DefaultAssemblyArchiver
         }
         catch ( final XmlPullParserException e )
         {
-            throw new ArchiverException( "Failed to parse archiver configuration for: " + archiver.getClass()
-                                                                                                  .getName(), e );
+            throw new ArchiverException(
+                                         "Failed to parse archiver configuration for: " + archiver.getClass().getName(),
+                                         e );
         }
         catch ( final IOException e )
         {
-            throw new ArchiverException( "Failed to parse archiver configuration for: " + archiver.getClass()
-                                                                                                  .getName(), e );
+            throw new ArchiverException(
+                                         "Failed to parse archiver configuration for: " + archiver.getClass().getName(),
+                                         e );
         }
 
-        getLogger().debug( "Configuring archiver: '" + archiver.getClass()
-                                                               .getName() + "' -->" );
+        getLogger().debug( "Configuring archiver: '" + archiver.getClass().getName() + "' -->" );
 
         try
         {
@@ -400,14 +389,12 @@ public class DefaultAssemblyArchiver
         }
         catch ( final ComponentConfigurationException e )
         {
-            throw new ArchiverException( "Failed to configure archiver: " + archiver.getClass()
-                                                                                    .getName(), e );
+            throw new ArchiverException( "Failed to configure archiver: " + archiver.getClass().getName(), e );
         }
         catch ( final ComponentLookupException e )
         {
-            throw new ArchiverException( "Failed to lookup configurator for setup of archiver: " + archiver.getClass()
-                                                                                                           .getName(),
-                                         e );
+            throw new ArchiverException( "Failed to lookup configurator for setup of archiver: "
+                + archiver.getClass().getName(), e );
         }
 
         getLogger().debug( "-- end configuration --" );
@@ -468,8 +455,7 @@ public class DefaultAssemblyArchiver
          */
         try
         {
-            final Method getContainerRealm = container.getClass()
-                                                      .getMethod( "getContainerRealm" );
+            final Method getContainerRealm = container.getClass().getMethod( "getContainerRealm" );
             return new Object[] { getContainerRealm.invoke( container ), getContainerRealm.getReturnType() };
         }
         catch ( final NoSuchMethodException e )

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java Wed Aug 31 22:42:32 2011
@@ -29,6 +29,8 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.project.MavenProjectBuilder;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
@@ -36,22 +38,17 @@ import org.codehaus.plexus.logging.Logge
  * Handles the top-level &lt;dependencySets/&gt; section of the assembly descriptor.
  * 
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase"
- *                   role-hint="dependency-sets"
  */
+@Component( role = AssemblyArchiverPhase.class, hint = "dependency-sets" )
 public class DependencySetAssemblyPhase
     extends AbstractLogEnabled
     implements AssemblyArchiverPhase
 {
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private MavenProjectBuilder projectBuilder;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArchiverManager archiverManager;
 
     public DependencySetAssemblyPhase()

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=1163853&r1=1163852&r2=1163853&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 Wed Aug 31 22:42:32 2011
@@ -19,6 +19,10 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
@@ -30,18 +34,15 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * Handles the top-level &lt;files/&gt; section of the assembly descriptor.
  * 
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase" role-hint="file-items"
  */
+@Component( role = AssemblyArchiverPhase.class, hint = "file-items" )
 public class FileItemAssemblyPhase
     extends AbstractLogEnabled
     implements AssemblyArchiverPhase
@@ -76,7 +77,9 @@ public class FileItemAssemblyPhase
                 source = new File( basedir, sourcePath );
             }
 
-            source = fileFormatter.format( source, fileItem.isFiltered(), fileItem.getLineEnding() );
+            source =
+                fileFormatter.format( source, fileItem.isFiltered(), fileItem.getLineEnding(),
+                                      configSource.getEncoding() );
 
             String destName = fileItem.getDestName();
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileSetAssemblyPhase.java Wed Aug 31 22:42:32 2011
@@ -19,6 +19,8 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import java.util.List;
+
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
@@ -27,16 +29,15 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.model.FileSet;
 import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-import java.util.List;
-
 /**
  * Handles the &lt;fileSets/&gt; top-level section of the assembly descriptor.
  * 
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase" role-hint="file-sets"
  */
+@Component( role = AssemblyArchiverPhase.class, hint = "file-sets" )
 public class FileSetAssemblyPhase
     extends AbstractLogEnabled
     implements AssemblyArchiverPhase

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java Wed Aug 31 22:42:32 2011
@@ -19,6 +19,17 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
@@ -43,39 +54,26 @@ import org.apache.maven.project.MavenPro
 import org.apache.maven.project.MavenProjectBuilder;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 /**
  * Handles the &lt;moduleSets/&gt; top-level section of the assembly descriptor.
  * 
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase" role-hint="module-sets"
  */
+@Component( role = AssemblyArchiverPhase.class, hint = "module-sets" )
 public class ModuleSetAssemblyPhase
     extends AbstractLogEnabled
     implements AssemblyArchiverPhase
 {
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private MavenProjectBuilder projectBuilder;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArchiverManager archiverManager;
 
     public ModuleSetAssemblyPhase()
@@ -124,18 +122,18 @@ public class ModuleSetAssemblyPhase
         if ( moduleSet.isUseAllReactorProjects() && !moduleSet.isIncludeSubModules() )
         {
             getLogger().warn( "includeSubModules == false is incompatible with useAllReactorProjects. Ignoring."
-                                              + "\n\nTo refactor, remove the <includeSubModules/> flag, and use the <includes/> "
-                                              + "and <excludes/> sections to fine-tune the modules included." );
+                                  + "\n\nTo refactor, remove the <includeSubModules/> flag, and use the <includes/> "
+                                  + "and <excludes/> sections to fine-tune the modules included." );
         }
 
         final List<MavenProject> projects = configSource.getReactorProjects();
         if ( projects != null && projects.size() > 1 && projects.indexOf( configSource.getProject() ) == 0
-                        && moduleSet.getBinaries() != null )
+            && moduleSet.getBinaries() != null )
         {
             getLogger().warn( "[DEPRECATION] moduleSet/binaries section detected in root-project assembly."
-                                              + "\n\nMODULE BINARIES MAY NOT BE AVAILABLE FOR THIS ASSEMBLY!"
-                                              + "\n\n To refactor, move this assembly into a child project and use the flag "
-                                              + "<useAllReactorProjects>true</useAllReactorProjects> in each moduleSet." );
+                                  + "\n\nMODULE BINARIES MAY NOT BE AVAILABLE FOR THIS ASSEMBLY!"
+                                  + "\n\n To refactor, move this assembly into a child project and use the flag "
+                                  + "<useAllReactorProjects>true</useAllReactorProjects> in each moduleSet." );
         }
 
         if ( moduleSet.getSources() != null )
@@ -144,13 +142,13 @@ public class ModuleSetAssemblyPhase
             if ( isDeprecatedModuleSourcesConfigPresent( sources ) )
             {
                 getLogger().warn( "[DEPRECATION] Use of <moduleSources/> as a file-set is deprecated. "
-                                                  + "Please use the <fileSets/> sub-element of <moduleSources/> instead." );
+                                      + "Please use the <fileSets/> sub-element of <moduleSources/> instead." );
             }
             else if ( !sources.isUseDefaultExcludes() )
             {
                 getLogger().warn( "[DEPRECATION] Use of directoryMode, fileMode, or useDefaultExcludes "
-                                                  + "elements directly within <moduleSources/> are all deprecated. "
-                                                  + "Please use the <fileSets/> sub-element of <moduleSources/> instead." );
+                                      + "elements directly within <moduleSources/> are all deprecated. "
+                                      + "Please use the <fileSets/> sub-element of <moduleSources/> instead." );
             }
         }
     }
@@ -200,7 +198,7 @@ public class ModuleSetAssemblyPhase
             else
             {
                 getLogger().debug( "Processing binary attachment: " + classifier + " for module project: "
-                                                   + project.getId() );
+                                       + project.getId() );
 
                 @SuppressWarnings( "unchecked" )
                 final List<Artifact> attachments = project.getAttachedArtifacts();
@@ -221,8 +219,8 @@ public class ModuleSetAssemblyPhase
                 if ( artifact == null )
                 {
                     throw new InvalidAssemblerConfigurationException( "Cannot find attachment with classifier: "
-                                    + classifier + " in module project: " + project.getId()
-                                    + ". Please exclude this module from the module-set." );
+                        + classifier + " in module project: " + project.getId()
+                        + ". Please exclude this module from the module-set." );
                 }
             }
 
@@ -244,7 +242,7 @@ public class ModuleSetAssemblyPhase
 
             // FIXME: This will produce unpredictable results when module dependencies have a version conflict.
             getLogger().warn( "NOTE: Currently, inclusion of module dependencies may produce unpredictable "
-                                              + "results if a version conflict occurs." );
+                                  + "results if a version conflict occurs." );
 
             for ( final Iterator<MavenProject> it = moduleProjects.iterator(); it.hasNext(); )
             {
@@ -318,8 +316,8 @@ public class ModuleSetAssemblyPhase
         if ( artifact.getFile() == null )
         {
             throw new ArchiveCreationException( "Artifact: " + artifact.getId()
-                            + " (included by module) does not have an artifact with a file. "
-                            + "Please ensure the package phase is run before the assembly is generated." );
+                + " (included by module) does not have an artifact with a file. "
+                + "Please ensure the package phase is run before the assembly is generated." );
         }
 
         final AddArtifactTask task = new AddArtifactTask( artifact, getLogger() );
@@ -346,10 +344,8 @@ public class ModuleSetAssemblyPhase
 
         if ( binaries.isUnpack() && binaries.getUnpackOptions() != null )
         {
-            task.setIncludes( binaries.getUnpackOptions()
-                                      .getIncludes() );
-            task.setExcludes( binaries.getUnpackOptions()
-                                      .getExcludes() );
+            task.setIncludes( binaries.getUnpackOptions().getIncludes() );
+            task.setExcludes( binaries.getUnpackOptions().getExcludes() );
         }
 
         task.execute( archiver, configSource );
@@ -425,13 +421,11 @@ public class ModuleSetAssemblyPhase
         {
             result = true;
         }
-        else if ( ( sources.getIncludes() != null ) && !sources.getIncludes()
-                                                               .isEmpty() )
+        else if ( ( sources.getIncludes() != null ) && !sources.getIncludes().isEmpty() )
         {
             result = true;
         }
-        else if ( ( sources.getExcludes() != null ) && !sources.getExcludes()
-                                                               .isEmpty() )
+        else if ( ( sources.getExcludes() != null ) && !sources.getExcludes().isEmpty() )
         {
             result = true;
         }
@@ -545,8 +539,7 @@ public class ModuleSetAssemblyPhase
                 moduleProjects = new LinkedHashSet<MavenProject>( configSource.getReactorProjects() );
             }
 
-            project = configSource.getReactorProjects()
-                                  .get( 0 );
+            project = configSource.getReactorProjects().get( 0 );
         }
 
         if ( moduleProjects == null )
@@ -560,7 +553,7 @@ public class ModuleSetAssemblyPhase
             catch ( final IOException e )
             {
                 throw new ArchiveCreationException( "Error retrieving module-set for project: " + project.getId()
-                                + ": " + e.getMessage(), e );
+                    + ": " + e.getMessage(), e );
             }
         }
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhase.java Wed Aug 31 22:42:32 2011
@@ -19,6 +19,10 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.AssemblyContext;
 import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
@@ -36,25 +40,20 @@ import org.apache.maven.shared.repositor
 import org.apache.maven.shared.repository.RepositoryBuilderConfigSource;
 import org.apache.maven.shared.repository.model.RepositoryInfo;
 import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase"
- *                   role-hint="repositories"
  */
+@Component( role = AssemblyArchiverPhase.class, hint = "repositories" )
 public class RepositoryAssemblyPhase
     extends AbstractLogEnabled
     implements AssemblyArchiverPhase
 {
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private RepositoryAssembler repositoryAssembler;
 
     public RepositoryAssemblyPhase()

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java Wed Aug 31 22:42:32 2011
@@ -19,6 +19,14 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
@@ -42,46 +50,32 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.utils.FilterUtils;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
 /**
  * @author jdcasey
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.artifact.DependencyResolver"
  */
+@Component( role = DependencyResolver.class )
 public class DefaultDependencyResolver
     extends AbstractLogEnabled
     implements DependencyResolver
 {
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactResolver resolver;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactMetadataSource metadataSource;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactFactory factory;
 
-    /**
-     * @plexus.requirement
-     */
+    @Requirement
     private ArtifactCollector collector;
 
     public DefaultDependencyResolver()
@@ -158,7 +152,7 @@ public class DefaultDependencyResolver
                 if ( getLogger().isDebugEnabled() )
                 {
                     getLogger().debug( "Failed to resolve: " + depArtifact.getId() + " for assembly: "
-                                                       + assembly.getId() );
+                                           + assembly.getId() );
                 }
                 missing.add( depArtifact );
             }
@@ -167,7 +161,7 @@ public class DefaultDependencyResolver
                 if ( getLogger().isDebugEnabled() )
                 {
                     getLogger().debug( "Failed to resolve: " + depArtifact.getId() + " for assembly: "
-                                                       + assembly.getId() );
+                                           + assembly.getId() );
                 }
                 missing.add( depArtifact );
             }
@@ -331,13 +325,13 @@ public class DefaultDependencyResolver
                     {
                         throw new DependencyResolutionException(
                                                                  "Failed to create dependency artifacts for resolution. Assembly: "
-                                                                                 + assembly.getId(), e );
+                                                                     + assembly.getId(), e );
                     }
                 }
 
                 requirements.addArtifacts( dependencyArtifacts );
                 getLogger().debug( "Dependencies for project: " + project.getId() + " are:\n"
-                                                   + StringUtils.join( dependencyArtifacts.iterator(), "\n" ) );
+                                       + StringUtils.join( dependencyArtifacts.iterator(), "\n" ) );
             }
         }
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfServicesHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfServicesHandler.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfServicesHandler.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfServicesHandler.java Wed Aug 31 22:42:32 2011
@@ -19,12 +19,10 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.components.io.fileselectors.FileInfo;
 
-/**
- * @plexus.component role="org.apache.maven.plugin.assembly.filter.ContainerDescriptorHandler"
- *                   role-hint="metaInf-services"
- */
+@Component( role = ContainerDescriptorHandler.class, hint = "metaInf-services" )
 public class MetaInfServicesHandler
     extends AbstractLineAggregatingHandler
 {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfSpringHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfSpringHandler.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfSpringHandler.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/MetaInfSpringHandler.java Wed Aug 31 22:42:32 2011
@@ -19,12 +19,10 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.components.io.fileselectors.FileInfo;
 
-/**
- * @plexus.component role="org.apache.maven.plugin.assembly.filter.ContainerDescriptorHandler"
- *                   role-hint="metaInf-spring"
- */
+@Component( role = ContainerDescriptorHandler.class, hint = "metaInf-spring" )
 public class MetaInfSpringHandler
     extends AbstractLineAggregatingHandler
 {

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=1163853&r1=1163852&r2=1163853&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 Aug 31 22:42:32 2011
@@ -25,6 +25,8 @@ import org.apache.maven.shared.filtering
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -49,21 +51,28 @@ public class FileFormatter
         this.logger = logger;
     }
 
-    public File format( File source, boolean filter, String lineEnding )
+    public File format( File source, boolean filter, String lineEnding, String encoding )
         throws AssemblyFormattingException
     {
-        return format ( source, filter, lineEnding, configSource.getTemporaryRootDirectory() );
+        return format ( source, filter, lineEnding, configSource.getTemporaryRootDirectory(), encoding );
     }
 
-    public File format( File source, boolean filter, String lineEnding, File tempRoot )
+    public File format( File source, boolean filter, String lineEnding, File tempRoot, String encoding )
         throws AssemblyFormattingException
     {
         AssemblyFileUtils.verifyTempDirectoryAvailability( tempRoot, logger );
 
         File result = source;
+        
+        if ( StringUtils.isEmpty( encoding ) && filter )
+        {
+            logger.warn(
+                           "File encoding has not been set, using platform encoding " + ReaderFactory.FILE_ENCODING
+                               + ", i.e. build is platform dependent!" );
+        }
 
         if ( filter )
-            result = doFileFilter( source, tempRoot );
+            result = doFileFilter( source, tempRoot, encoding );
 
         String lineEndingChars = AssemblyFileUtils.getLineEndingCharacters( lineEnding );
         if ( lineEndingChars != null )
@@ -74,7 +83,7 @@ public class FileFormatter
         return result;
     }
 
-    private File doFileFilter( File source, File tempRoot )
+    private File doFileFilter( File source, File tempRoot, String encoding )
         throws AssemblyFormattingException
     {
         try
@@ -85,7 +94,7 @@ public class FileFormatter
             boolean isPropertiesFile = source.getName().toLowerCase( Locale.ENGLISH ).endsWith( ".properties" );
 
             configSource.getMavenFileFilter().copyFile( source, target, true, configSource.getProject(),
-                    configSource.getFilters(), isPropertiesFile, null, configSource.getMavenSession() );
+                    configSource.getFilters(), isPropertiesFile, encoding, configSource.getMavenSession() );
 
             return target;
         }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java Wed Aug 31 22:42:32 2011
@@ -97,7 +97,7 @@ public class FileSetFormatter
                     File sourceFile = new File( fileSetDir, file );
                     try
                     {
-                        sourceFile = fileFormatter.format( sourceFile, set.isFiltered(), lineEndingHint, formattedDir );
+                        sourceFile = fileFormatter.format( sourceFile, set.isFiltered(), lineEndingHint, formattedDir, configSource.getEncoding() );
                         AssemblyFileUtils.copyFile( sourceFile, targetFile );
                     }
                     catch ( AssemblyFormattingException e )

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java Wed Aug 31 22:42:32 2011
@@ -19,6 +19,25 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -51,29 +70,10 @@ import org.codehaus.plexus.util.Director
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
 /**
  * @version $Id$
- * @plexus.component role="org.apache.maven.plugin.assembly.io.AssemblyReader"
  */
+@org.codehaus.plexus.component.annotations.Component( role = AssemblyReader.class )
 public class DefaultAssemblyReader
     extends AbstractLogEnabled
     implements AssemblyReader
@@ -150,12 +150,12 @@ public class DefaultAssemblyReader
                 final StackTraceElement frameZero = e.getStackTrace()[0];
 
                 if ( "org.codehaus.plexus.util.DirectoryScanner".equals( frameZero.getClassName() )
-                                && "scandir".equals( frameZero.getMethodName() ) )
+                    && "scandir".equals( frameZero.getMethodName() ) )
                 {
                     if ( getLogger().isDebugEnabled() )
                     {
                         getLogger().debug( "Caught filesystem error while scanning directories..."
-                                                           + "using zero-length list as the result.", e );
+                                               + "using zero-length list as the result.", e );
                     }
                 }
                 else
@@ -302,14 +302,14 @@ public class DefaultAssemblyReader
             if ( configSource.isIgnoreMissingDescriptor() )
             {
                 getLogger().debug( "Ignoring missing assembly descriptor with ID '" + spec
-                                                   + "' per configuration.\nLocator output was:\n\n"
-                                                   + locator.getMessageHolder().render() );
+                                       + "' per configuration.\nLocator output was:\n\n"
+                                       + locator.getMessageHolder().render() );
                 return null;
             }
             else
             {
                 throw new AssemblyReadException( "Error locating assembly descriptor: " + spec + "\n\n"
-                                + locator.getMessageHolder().render() );
+                    + locator.getMessageHolder().render() );
             }
         }
 
@@ -436,7 +436,7 @@ public class DefaultAssemblyReader
         catch ( final IOException e )
         {
             getLogger().debug( "Failed to print debug message with assembly descriptor listing, and message: "
-                                               + message, e );
+                                   + message, e );
         }
 
         getLogger().debug( message + "\n\n" + sWriter.toString() + "\n\n" );
@@ -502,12 +502,12 @@ public class DefaultAssemblyReader
             catch ( final IOException e )
             {
                 throw new AssemblyReadException( "Error reading component descriptor: " + location + " (resolved to: "
-                                + resolvedLocation.getSpecification() + ")", e );
+                    + resolvedLocation.getSpecification() + ")", e );
             }
             catch ( final XmlPullParserException e )
             {
                 throw new AssemblyReadException( "Error reading component descriptor: " + location + " (resolved to: "
-                                + resolvedLocation.getSpecification() + ")", e );
+                    + resolvedLocation.getSpecification() + ")", e );
             }
             finally
             {

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=1163853&r1=1163852&r2=1163853&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 Aug 31 22:42:32 2011
@@ -55,6 +55,12 @@ public abstract class AbstractAssemblyMo
     extends AbstractMojo
     implements AssemblerConfigurationSource
 {
+	/**
+     * The character encoding scheme to be applied when filtering resources.
+     *
+     * @parameter expression="${encoding}" default-value="${project.build.sourceEncoding}"
+     */
+    protected String encoding;
 
     /**
      * Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build.
@@ -828,4 +834,8 @@ public abstract class AbstractAssemblyMo
     {
         return ignorePermissions;
     }
+    
+    public String getEncoding() {
+    	return encoding;
+    }
 }

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=1163853&r1=1163852&r2=1163853&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 Wed Aug 31 22:42:32 2011
@@ -117,6 +117,8 @@ public class FileItemAssemblyPhaseTest
                                    TypeConversionUtils.modeToInt( "777", new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ) );
 
         assembly.addFile( fi );
+        
+        macCS.expectGetEncoding();
 
         mm.replayAll();
 
@@ -166,6 +168,8 @@ public class FileItemAssemblyPhaseTest
 
         assembly.addFile( fi );
 
+        macCS.expectGetEncoding();
+
         mm.replayAll();
 
         createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
@@ -242,6 +246,8 @@ public class FileItemAssemblyPhaseTest
         assembly.addFile( licenseFileItem );
         assembly.addFile( configFileItem );
 
+        macCS.expectGetEncoding();
+
         mm.replayAll();
 
         createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
@@ -321,6 +327,8 @@ public class FileItemAssemblyPhaseTest
         assembly.addFile( licenseFileItem );
         assembly.addFile( configFileItem );
 
+        macCS.expectGetEncoding();
+
         mm.replayAll();
 
         createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
@@ -398,6 +406,8 @@ public class FileItemAssemblyPhaseTest
         assembly.addFile( licenseFileItem );
         assembly.addFile( configFileItem );
 
+        macCS.expectGetEncoding();
+
         mm.replayAll();
 
         createPhase( macLogger.logger ).execute( assembly, macArchiver.archiver, macCS.configSource,
@@ -481,7 +491,13 @@ public class FileItemAssemblyPhaseTest
             configSource.getBasedir();
             control.setReturnValue( basedir, MockControl.ONE_OR_MORE );
         }
-    }
+
+        public void expectGetEncoding( )
+        {
+            configSource.getEncoding();
+            control.setReturnValue( "UTF-8", MockControl.ONE_OR_MORE );
+        }
+}
 
     private final class MockAndControlForLogger
     {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java Wed Aug 31 22:42:32 2011
@@ -78,7 +78,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, false, "dos" );
+        final File result = new FileFormatter( configSource, logger ).format( file, false, "dos", "UTF-8" );
 
         assertTrue( !file.equals( result ) );
 
@@ -106,7 +106,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, false, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, false, null, "UTF-8" );
 
         assertEquals( file, result );
 
@@ -125,7 +125,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, false, "dos" );
+        final File result = new FileFormatter( configSource, logger ).format( file, false, "dos", "UTF-8" );
 
         assertEquals( "This is a\r\ntest.\r\n", fileManager.getFileContents( result ) );
 
@@ -144,7 +144,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, false, "unix" );
+        final File result = new FileFormatter( configSource, logger ).format( file, false, "unix", "UTF-8" );
 
         assertEquals( "This is a\ntest.\n", fileManager.getFileContents( result ) );
 
@@ -162,7 +162,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "This is a test for project: artifact artifact.", fileManager.getFileContents( result ) );
 
@@ -186,7 +186,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         // expect: C:\\out\\deeper
         assertEquals( "out=C:\\\\out\\\\deeper", fileManager.getFileContents( result ) );
@@ -210,7 +210,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "project.basedirA=C:\\out\\deeper", fileManager.getFileContents( result ) );
 
@@ -230,7 +230,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "This is a test for project: Test Test.", fileManager.getFileContents( result ) );
 
@@ -249,7 +249,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "project: C:\\\\Test C:\\\\Test.", fileManager.getFileContents( result ) );
 
@@ -269,7 +269,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "This is a test for project: C:\\Test C:\\Test.", fileManager.getFileContents( result ) );
 
@@ -287,7 +287,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "testing ${bean.id} which used to resolve to project.id", fileManager.getFileContents( result ) );
 
@@ -313,7 +313,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "property: Test Test otherProperty: OtherValue OtherValue.", fileManager.getFileContents( result ) );
 
@@ -337,7 +337,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "property: OtherValue OtherValue.", fileManager.getFileContents( result ) );
 
@@ -360,7 +360,7 @@ public class FileFormatterTest
 
         mockManager.replayAll();
 
-        final File result = new FileFormatter( configSource, logger ).format( file, true, null );
+        final File result = new FileFormatter( configSource, logger ).format( file, true, null, "UTF-8" );
 
         assertEquals( "project artifact-id: Test Test.", fileManager.getFileContents( result ) );
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java?rev=1163853&r1=1163852&r2=1163853&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java Wed Aug 31 22:42:32 2011
@@ -139,6 +139,14 @@ public class FileSetFormatterTest
 
         final FileSetFormatter formatter = new FileSetFormatter( configSource, logger );
 
+        configSource.getTemporaryRootDirectory();
+        configSourceControl.setReturnValue( dir );
+
+        configSource.getEncoding();
+        configSourceControl.setReturnValue( "UTF-8", MockControl.ONE_OR_MORE );
+
+        mockManager.replayAll();
+        
         final File result = formatter.formatFileSetForAssembly( dir, fs );
 
         assertFalse( dir.equals( result ) );
@@ -173,6 +181,14 @@ public class FileSetFormatterTest
 
         final FileSetFormatter formatter = new FileSetFormatter( configSource, logger );
 
+        configSource.getTemporaryRootDirectory();
+        configSourceControl.setReturnValue( dir );
+
+        configSource.getEncoding();
+        configSourceControl.setReturnValue( "UTF-8", MockControl.ONE_OR_MORE );
+
+        mockManager.replayAll();
+        
         final File result = formatter.formatFileSetForAssembly( dir, fs );
 
         assertFalse( dir.equals( result ) );
@@ -207,6 +223,14 @@ public class FileSetFormatterTest
 
         final FileSetFormatter formatter = new FileSetFormatter( configSource, logger );
 
+        configSource.getTemporaryRootDirectory();
+        configSourceControl.setReturnValue( dir );
+
+        configSource.getEncoding();
+        configSourceControl.setReturnValue( "UTF-8", MockControl.ONE_OR_MORE );
+
+        mockManager.replayAll();
+        
         final File result = formatter.formatFileSetForAssembly( dir, fs );
 
         assertFalse( dir.equals( result ) );
@@ -239,6 +263,14 @@ public class FileSetFormatterTest
 
         final FileSetFormatter formatter = new FileSetFormatter( configSource, logger );
 
+        configSource.getTemporaryRootDirectory();
+        configSourceControl.setReturnValue( dir );
+
+        configSource.getEncoding();
+        configSourceControl.setReturnValue( "UTF-8", MockControl.ONE_OR_MORE );
+
+        mockManager.replayAll();
+        
         final File result = formatter.formatFileSetForAssembly( dir, fs );
 
         assertFalse( dir.equals( result ) );
@@ -321,6 +353,9 @@ public class FileSetFormatterTest
 
         configSource.getFilters();
         configSourceControl.setReturnValue( Collections.EMPTY_LIST, MockControl.ONE_OR_MORE );
+
+        configSource.getEncoding();
+        configSourceControl.setReturnValue( "UTF-8", MockControl.ONE_OR_MORE );
     }
 
 }

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=1163853&r1=1163852&r2=1163853&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 Aug 31 22:42:32 2011
@@ -201,5 +201,9 @@ public class ConfigSourceStub
     {
         return true;
     }
+    
+    public String getEncoding() {
+    	return null;
+    }
 
 }