final ArtifactFilter... additionalFilters )
throws InvalidAssemblerConfigurationException
{
final List<ArtifactFilter> allFilters = new ArrayList<ArtifactFilter>();
final AndArtifactFilter filter = new AndArtifactFilter();
if ( additionalFilters != null && additionalFilters.length > 0 )
{
for ( final ArtifactFilter additionalFilter : additionalFilters )
{
if ( additionalFilter != null )
{
filter.add( additionalFilter );
}
}
}
if ( !includes.isEmpty() )
{
final ArtifactFilter includeFilter = new PatternIncludesArtifactFilter( includes, actTransitively );
filter.add( includeFilter );
allFilters.add( includeFilter );
}
if ( !excludes.isEmpty() )
{
final ArtifactFilter excludeFilter = new PatternExcludesArtifactFilter( excludes, actTransitively );
filter.add( excludeFilter );
allFilters.add( excludeFilter );
}
// FIXME: Why is this added twice??
// if ( additionalFilters != null && !additionalFilters.isEmpty() )
// {
// allFilters.addAll( additionalFilters );
// }
for ( final Iterator<Artifact> it = artifacts.iterator(); it.hasNext(); )
{
final Artifact artifact = it.next();
if ( !filter.include( artifact ) )
{
it.remove();
if ( logger.isDebugEnabled() )
{