in src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java [83:126]
public AssemblyProxyArchiver(
final String rootPrefix,
final Archiver delegate,
final List<ContainerDescriptorHandler> containerDescriptorHandlers,
final List<FileSelector> extraSelectors,
final List<ArchiveFinalizer> extraFinalizers,
final File assemblyWorkDir) {
this.rootPrefix = rootPrefix;
this.delegate = delegate;
assemblyWorkPath = assemblyWorkDir.getAbsolutePath().replace('\\', '/');
if (!"".equals(rootPrefix) && !rootPrefix.endsWith("/")) {
this.rootPrefix += "/";
}
final List<FileSelector> selectors = new ArrayList<>();
FinalizerEnabled finalizer = (delegate instanceof FinalizerEnabled) ? (FinalizerEnabled) delegate : null;
if (containerDescriptorHandlers != null) {
for (final ContainerDescriptorHandler handler : containerDescriptorHandlers) {
selectors.add(handler);
if (finalizer != null) {
finalizer.addArchiveFinalizer(handler);
}
}
}
if (extraSelectors != null) {
selectors.addAll(extraSelectors);
}
if ((extraFinalizers != null) && finalizer != null) {
for (ArchiveFinalizer extraFinalizer : extraFinalizers) {
finalizer.addArchiveFinalizer(extraFinalizer);
}
}
if (!selectors.isEmpty()) {
this.selectors = selectors.toArray(new FileSelector[0]);
}
}