1   package org.apache.maven.plugin.assembly.archive.phase;
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
23  import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
24  import org.apache.maven.plugin.assembly.archive.task.AddFileSetsTask;
25  import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
26  import org.apache.maven.plugin.assembly.model.Assembly;
27  import org.apache.maven.plugin.assembly.model.FileSet;
28  import org.codehaus.plexus.archiver.Archiver;
29  import org.codehaus.plexus.component.annotations.Component;
30  import org.codehaus.plexus.logging.AbstractLogEnabled;
31  
32  import javax.annotation.Nonnull;
33  import java.util.List;
34  
35  
36  
37  
38  
39  
40  @Component( role = AssemblyArchiverPhase.class, hint = "file-sets" )
41  public class FileSetAssemblyPhase
42      extends AbstractLogEnabled
43      implements AssemblyArchiverPhase, PhaseOrder
44  {
45  
46      
47  
48  
49      public void execute( @Nonnull final Assembly assembly, final Archiver archiver,
50                           final AssemblerConfigurationSource configSource )
51          throws ArchiveCreationException, AssemblyFormattingException
52      {
53          final List<FileSet> fileSets = assembly.getFileSets();
54  
55          if ( ( fileSets != null ) && !fileSets.isEmpty() )
56          {
57              final AddFileSetsTask task = new AddFileSetsTask( fileSets );
58  
59              task.setLogger( getLogger() );
60              task.execute( archiver, configSource );
61          }
62      }
63  
64  
65      public int order()
66      {
67          
68          return 20;
69          
70      }
71  }