2424import java .util .LinkedHashSet ;
2525import java .util .List ;
2626import java .util .Map ;
27- import java .util .Set ;
2827import java .util .regex .Pattern ;
2928
3029import org .apache .maven .artifact .Artifact ;
3534import aQute .bnd .header .Attrs ;
3635import aQute .bnd .header .OSGiHeader ;
3736import aQute .bnd .osgi .Instruction ;
38- import org .apache .maven .shared .dependency .graph .DependencyNode ;
39- import org .apache .maven .shared .dependency .graph .filter .ArtifactDependencyNodeFilter ;
40- import org .apache .maven .shared .dependency .graph .filter .DependencyNodeFilter ;
41- import org .apache .maven .shared .dependency .graph .traversal .BuildingDependencyNodeVisitor ;
42- import org .apache .maven .shared .dependency .graph .traversal .CollectingDependencyNodeVisitor ;
43- import org .apache .maven .shared .dependency .graph .traversal .DependencyNodeVisitor ;
44- import org .apache .maven .shared .dependency .graph .traversal .FilteringDependencyNodeVisitor ;
4537
4638
4739/**
@@ -54,19 +46,14 @@ public abstract class AbstractDependencyFilter
5446 private static final Pattern MISSING_KEY_PATTERN = Pattern .compile ( "(^|,)\\ p{Blank}*(!)?\\ p{Blank}*([a-zA-Z]+=)" );
5547 private static final String PLACEHOLDER = "$$PLACEHOLDER$$" ;
5648
57- /**
58- * Dependency Graph.
59- */
60- private final DependencyNode m_dependencyGraph ;
6149 /**
6250 * Dependency artifacts.
6351 */
6452 private final Collection <Artifact > m_dependencyArtifacts ;
6553
6654
67- public AbstractDependencyFilter ( DependencyNode dependencyGraph , Collection <Artifact > dependencyArtifacts )
55+ public AbstractDependencyFilter ( Collection <Artifact > dependencyArtifacts )
6856 {
69- m_dependencyGraph = dependencyGraph ;
7057 m_dependencyArtifacts = dependencyArtifacts ;
7158 }
7259
@@ -107,27 +94,6 @@ boolean matches( String text )
10794 }
10895 }
10996
110- private static class TrimmingDependencyNodeFilter implements DependencyNodeFilter
111- {
112- private DependencyNodeFilter dependencyNodeFilter ;
113-
114- public TrimmingDependencyNodeFilter ( DependencyNodeFilter dependencyNodeFilter )
115- {
116- this .dependencyNodeFilter = dependencyNodeFilter ;
117- }
118-
119- public boolean accept ( DependencyNode node )
120- {
121- boolean accepted = dependencyNodeFilter .accept ( node );
122- if ( !accepted )
123- {
124- List <DependencyNode > children = node .getChildren ();
125- children .clear ();
126- }
127- return accepted ;
128- }
129- }
130-
13197 protected final void processInstructions ( String header ) throws MojoExecutionException
13298 {
13399 Map <String ,Attrs > instructions = OSGiHeader .parseHeader ( MISSING_KEY_PATTERN .matcher ( header ).replaceAll ( "$1$2*;$3" ) );
@@ -297,40 +263,6 @@ else if ( "inline".equals( attr.getKey() ) )
297263
298264 private void filteredDependencies ( final ArtifactFilter artifactFilter , Collection <Artifact > filteredDependencies )
299265 {
300- CollectingDependencyNodeVisitor collectingDependencyNodeVisitor = new CollectingDependencyNodeVisitor ();
301- final Artifact rootArtifact = m_dependencyGraph .getArtifact ();
302- ArtifactFilter filter = new ArtifactFilter ()
303- {
304-
305-
306- public boolean include ( Artifact artifact )
307- {
308- return artifact .equals ( rootArtifact ) || artifactFilter .include ( artifact );
309- }
310-
311-
312- };
313- DependencyNodeFilter dependencyNodeFilter = new ArtifactDependencyNodeFilter ( filter );
314- dependencyNodeFilter = new TrimmingDependencyNodeFilter ( dependencyNodeFilter );
315- DependencyNodeVisitor dependencyNodeVisitor =
316- new FilteringDependencyNodeVisitor ( collectingDependencyNodeVisitor , dependencyNodeFilter );
317- dependencyNodeVisitor = new BuildingDependencyNodeVisitor ( dependencyNodeVisitor );
318- m_dependencyGraph .accept ( dependencyNodeVisitor );
319- List <DependencyNode > dependencyNodes = collectingDependencyNodeVisitor .getNodes ();
320- Set <String > ids = new LinkedHashSet <String >( dependencyNodes .size () );
321- for ( DependencyNode dependencyNode : dependencyNodes ) {
322- Artifact artifact = dependencyNode .getArtifact ();
323- String id = artifact .getId ();
324- ids .add (id );
325- }
326- for (Iterator <Artifact > iterator = filteredDependencies .iterator (); iterator .hasNext ();)
327- {
328- Artifact artifact = iterator .next ();
329- String id = artifact .getId ();
330- if (!ids .contains (id ))
331- {
332- iterator .remove ();
333- }
334- }
266+ filteredDependencies .removeIf ( artifact -> !artifactFilter .include ( artifact ) );
335267 }
336268}
0 commit comments