use of org.apache.maven.plugins.assembly.filter.ContainerDescriptorHandler in project maven-plugins by apache.
the class DefaultAssemblyArchiver method selectContainerDescriptorHandlers.
// CHECKSTYLE_OFF: LineLength
private List<ContainerDescriptorHandler> selectContainerDescriptorHandlers(List<ContainerDescriptorHandlerConfig> requestedContainerDescriptorHandlers, final AssemblerConfigurationSource configSource) throws InvalidAssemblerConfigurationException // CHECKSTYLE_ON: LineLength
{
getLogger().debug("All known ContainerDescriptorHandler components: " + (containerDescriptorHandlers == null ? "none; map is null." : "" + containerDescriptorHandlers.keySet()));
if (requestedContainerDescriptorHandlers == null) {
requestedContainerDescriptorHandlers = new ArrayList<ContainerDescriptorHandlerConfig>();
}
final List<ContainerDescriptorHandler> handlers = new ArrayList<ContainerDescriptorHandler>();
final List<String> hints = new ArrayList<String>();
if (!requestedContainerDescriptorHandlers.isEmpty()) {
for (final ContainerDescriptorHandlerConfig config : requestedContainerDescriptorHandlers) {
final String hint = config.getHandlerName();
final ContainerDescriptorHandler handler = containerDescriptorHandlers.get(hint);
if (handler == null) {
throw new InvalidAssemblerConfigurationException("Cannot find ContainerDescriptorHandler with hint: " + hint);
}
getLogger().debug("Found container descriptor handler with hint: " + hint + " (component: " + handler + ")");
if (config.getConfiguration() != null) {
getLogger().debug("Configuring handler with:\n\n" + config.getConfiguration() + "\n\n");
configureContainerDescriptorHandler(handler, (Xpp3Dom) config.getConfiguration(), configSource);
}
handlers.add(handler);
hints.add(hint);
}
}
if (!hints.contains("plexus")) {
handlers.add(new ComponentsXmlArchiverFileFilter());
}
return handlers;
}
use of org.apache.maven.plugins.assembly.filter.ContainerDescriptorHandler in project maven-plugins by apache.
the class DefaultAssemblyArchiver method createArchive.
/**
* {@inheritDoc}
*/
@Override
public File createArchive(final Assembly assembly, final String fullName, final String format, final AssemblerConfigurationSource configSource, boolean recompressZippedFiles, String mergeManifestMode) throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException {
validate(assembly);
String filename = fullName;
if (!configSource.isIgnoreDirFormatExtensions() || !format.startsWith("dir")) {
filename += "." + format;
}
AssemblyFileUtils.verifyTempDirectoryAvailability(configSource.getTemporaryRootDirectory());
final File outputDirectory = configSource.getOutputDirectory();
final File destFile = new File(outputDirectory, filename);
try {
final String finalName = configSource.getFinalName();
final String specifiedBasedir = assembly.getBaseDirectory();
String basedir = finalName;
if (specifiedBasedir != null) {
basedir = AssemblyFormatUtils.getOutputDirectory(specifiedBasedir, finalName, configSource, AssemblyFormatUtils.moduleProjectInterpolator(configSource.getProject()), AssemblyFormatUtils.artifactProjectInterpolator(null));
}
final List<ContainerDescriptorHandler> containerHandlers = selectContainerDescriptorHandlers(assembly.getContainerDescriptorHandlers(), configSource);
final Archiver archiver = createArchiver(format, assembly.isIncludeBaseDirectory(), basedir, configSource, containerHandlers, recompressZippedFiles, mergeManifestMode);
archiver.setDestFile(destFile);
for (AssemblyArchiverPhase phase : sortedPhases()) {
phase.execute(assembly, archiver, configSource);
}
archiver.createArchive();
} catch (final ArchiverException e) {
throw new ArchiveCreationException("Error creating assembly archive " + assembly.getId() + ": " + e.getMessage(), e);
} catch (final IOException e) {
throw new ArchiveCreationException("Error creating assembly archive " + assembly.getId() + ": " + e.getMessage(), e);
} catch (final NoSuchArchiverException e) {
throw new ArchiveCreationException("Unable to obtain archiver for extension '" + format + "', for assembly: '" + assembly.getId() + "'", e);
} catch (final DependencyResolutionException e) {
throw new ArchiveCreationException("Unable to resolve dependencies for assembly '" + assembly.getId() + "'", e);
}
return destFile;
}
Aggregations