1   package org.apache.maven.plugins.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.plugins.assembly.AssemblerConfigurationSource;
23  import org.apache.maven.plugins.assembly.archive.ArchiveCreationException;
24  import org.apache.maven.plugins.assembly.archive.task.AddFileSetsTask;
25  import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
26  import org.apache.maven.plugins.assembly.model.Assembly;
27  import org.apache.maven.plugins.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      @Override
50      public void execute( @Nonnull final Assembly assembly, final Archiver archiver,
51                           final AssemblerConfigurationSource configSource )
52          throws ArchiveCreationException, AssemblyFormattingException
53      {
54          final List<FileSet> fileSets = assembly.getFileSets();
55  
56          if ( ( fileSets != null ) && !fileSets.isEmpty() )
57          {
58              final AddFileSetsTask task = new AddFileSetsTask( fileSets );
59  
60              task.setLogger( getLogger() );
61              task.execute( archiver, configSource );
62          }
63      }
64  
65  
66      @Override
67      public int order()
68      {
69          
70          return 20;
71          
72      }
73  }