| 
   Mojos (org.apache.maven.plugin.assembly.mojo)
 | 
| 
   Uses:
 | 
| 
  AssemblyArchiver | 
| 
   Provides:
 | 
| 
   implementation of AssemblyConfigurationSource , for use in assembly components
 | 
| 
   Notes:
 | 
| 
  AssemblyConfigurationSource  transports build state given by mojo parameters to deeper assembly components
 | 
| 
  AssemblyArchiver  abstracts the business of creating the assembly artifact from the mojos
 | 
| 
   AssemblyArchiver (org.apache.maven.plugin.assembly.archive)
 | 
| 
   Uses:
 | 
| 
  ArchiverManager | 
| 
   the set of ArchiveAssemblyPhase  implementations
 | 
| 
  AssemblyDescriptorReader  and AssemblyInterpolator | 
| 
   Provides:
 | 
| 
   logic to discover and read assembly descriptors
 | 
| 
  AssemblyDescriptorReader  and AssemblyInterpolator  help with this task
 | 
| 
   logic to discover and add filters that merge container descriptor files
 | 
| 
   these are implementations of ContainerDescriptorHandler | 
| 
   Notes:
 | 
| 
  Archiver  instances are retrieved from the ArchiverManager | 
| 
  Archiver  instances are wrapped with AssemblyProxyArchiver , which adds global prefixing, dry-run, and duplicate detection features
 | 
| 
  ArchiveAssemblyPhases  execute the actual interaction with the (proxied) Archiver  instance to produce the assembly
 | 
| 
  AssemblyProxyArchiver  is the only one initialized as a POJO with the real Archiver  component instance passed into the constructor; all other classes used by the AssemblyArchiver  are components injected by Plexus
 | 
| 
  ArchiveAssemblyPhase  instances are injected via a Map which is keyed by their respective role-hints; I don't believe the ordering of keys in this map is deterministic.
 | 
| 
  ContainerDescriptorHandler  instances are components that are injected via a Map which is keyed by their respective role-hints. Custom implementations can be added via the plugin-level dependency configuration in the pom.xml
 | 
| 
   ArchiverAssemblyPhase (org.apache.maven.plugin.assembly.archive.phase)
 | 
| 
   Default Implementations:
 | 
| 
  ModuleSetAssemblyPhase | 
| 
  DependencySetAssemblyPhase | 
| 
  FileSetAssemblyPhase | 
| 
  FileItemAssemblyPhase | 
| 
  RepositoryAssemblyPhase | 
| 
   Uses:
 | 
| 
  ArchiverTask  implementations, as POJOs
 | 
| 
  FileFormatter  (FileItemAssemblyPhase )
 | 
| 
  RepositoryAssembler  (from maven-repository-builder; used by RepositoryAssemblyPhase )
 | 
| 
   Notes:
 | 
| 
   Initialized as Plexus components
 | 
| 
   generally, each implementation handles one top-level section of the assembly descriptor
 | 
| 
   phases share common logic in terms of how they interact with the Archiver  instance; this is captured in different ArchiverTask  implementations
 | 
| 
   ArchiverTask (org.apache.maven.plugin.assembly.archive.task)
 | 
| 
   Default Implementations:
 | 
| 
  AddArtifactTask | 
| 
  AddDependencySetsTask | 
| 
  AddDirectoryTask | 
| 
  AddFileSetsTask | 
| 
   Uses:
 | 
| 
  DependencyResolver  (AddDependencySetsTask )
 | 
| 
  FileSetFormatter  (AddFileSetsTask )
 | 
| 
   Notes:
 | 
| 
   Used as POJOs that are initialized then executed by different ArchiverAssemblyPhase  instances.
 | 
| 
   ContainerDescriptorHandler (org.apache.maven.plugin.assembly.filter)
 | 
| 
   Notes:
 | 
| 
   Added to the AssemblyProxyArchiver  as a filter and finalizer
 | 
| 
   Ability to cherry-pick files before they're added to the assembly archive, and process them (processing usually means aggregation/merging, but could be anything)
 | 
| 
   Ability to add a set of "virtual" files to the assembly archive just before it is closed.
 | 
| 
  ComponentsXmlArchiveFileFilter  (for plexus components.xml files) is always present during the assembly process.
 | 
| 
   DependencyResolver (org.apache.maven.plugin.assembly.artifact)
 | 
| 
   Uses:
 | 
| 
  ArtifactFactory  from maven-artifact
 | 
| 
  ArtifactRepository  from maven-artifact
 | 
| 
  MavenProjectBuilder  from maven-project
 | 
| 
  ArtifactResolver  from maven-artifact
 | 
| 
  MavenMetadataSource /ArtifactMetadataSource  from maven-project/maven-artifact
 | 
| 
   Notes:
 | 
| 
   Selects the best implementation of ArtifactResolver  it can find, based on a String-array of preferential role-hints. If none of the preferred resolvers can be found, it defaults to a lookup without any role-hint. This is necessary for compatibility with maven 2.0.x.
 | 
| 
   This component can take a List of remote repositories from the current build, append to this the List of remote repositories from the project passed in (avoiding duplicate entries, based on repository id), and use that as a basis for resolving dependency artifacts
 | 
| 
  AssemblyConfigurationSource.isUseTransitiveDependencies()  is used in calling components to control whether this component (the resolver) does a full transitive resolution of the project's dependencies, or just resolves the direct dependency artifacts
 | 
| 
   FileFormatter (org.apache.maven.plugin.assembly.format)
 | 
| 
   Uses:
 | 
| 
  AssemblyFileUtils  for line-ending normalization and temp-dir/temp-file management
 | 
| 
   Provides:
 | 
| 
   Interpolation of a given file's contents, based on project values and an optional Properties file or set of filter files (supplied by AssemblyConfigurationSource )
 | 
| 
   Normalization of line endings, using values: keep (don't change), dos (\r\n), crlf (\r\n), unix (\n), lf (\n)
 | 
| 
   Notes:
 | 
| 
   If line ending is not 'keep', the final line in the file will always  end with a newline string, regardless of whether this is the case in the original file. See MASSEMBLY-96.
 |