1 package org.apache.maven.plugins.dependency.utils.filters;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.LinkedHashSet;
23 import java.util.Set;
24
25 import org.apache.maven.artifact.Artifact;
26 import org.apache.maven.plugin.MojoExecutionException;
27 import org.apache.maven.plugins.dependency.fromConfiguration.ArtifactItem;
28 import org.apache.maven.plugins.dependency.utils.markers.MarkerHandler;
29 import org.apache.maven.shared.artifact.filter.collection.AbstractArtifactsFilter;
30 import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException;
31
32
33
34
35
36 public class MarkerFileFilter
37 extends AbstractArtifactsFilter
38 implements ArtifactItemFilter
39 {
40
41 private boolean overWriteReleases;
42
43 private boolean overWriteSnapshots;
44
45 private boolean overWriteIfNewer;
46
47 protected final MarkerHandler handler;
48
49 public MarkerFileFilter( boolean overWriteReleases, boolean overWriteSnapshots, boolean overWriteIfNewer,
50 MarkerHandler handler )
51 {
52 this.overWriteReleases = overWriteReleases;
53 this.overWriteSnapshots = overWriteSnapshots;
54 this.overWriteIfNewer = overWriteIfNewer;
55 this.handler = handler;
56 }
57
58
59
60
61
62
63 @Override
64 public Set<Artifact> filter( Set<Artifact> artifacts )
65 throws ArtifactFilterException
66 {
67 Set<Artifact> result = new LinkedHashSet<Artifact>();
68
69 for ( Artifact artifact : artifacts )
70 {
71 if ( isArtifactIncluded( new ArtifactItem( artifact ) ) )
72 {
73 result.add( artifact );
74 }
75 }
76 return result;
77 }
78
79 @Override
80 public boolean isArtifactIncluded( ArtifactItem item )
81 throws ArtifactFilterException
82 {
83 Artifact artifact = item.getArtifact();
84
85 boolean overWrite = ( artifact.isSnapshot() && this.overWriteSnapshots )
86 || ( !artifact.isSnapshot() && this.overWriteReleases );
87
88 handler.setArtifact( artifact );
89
90 try
91 {
92 return overWrite || !handler.isMarkerSet() || ( overWriteIfNewer && handler.isMarkerOlder( artifact ) );
93 }
94 catch ( MojoExecutionException e )
95 {
96 throw new ArtifactFilterException( e.getMessage(), e );
97 }
98 }
99
100
101
102
103 public boolean isOverWriteReleases()
104 {
105 return this.overWriteReleases;
106 }
107
108
109
110
111 public void setOverWriteReleases( boolean overWriteReleases )
112 {
113 this.overWriteReleases = overWriteReleases;
114 }
115
116
117
118
119 public boolean isOverWriteSnapshots()
120 {
121 return this.overWriteSnapshots;
122 }
123
124
125
126
127 public void setOverWriteSnapshots( boolean overWriteSnapshots )
128 {
129 this.overWriteSnapshots = overWriteSnapshots;
130 }
131
132
133
134
135 public boolean isOverWriteIfNewer()
136 {
137 return this.overWriteIfNewer;
138 }
139
140
141
142
143 public void setOverWriteIfNewer( boolean overWriteIfNewer )
144 {
145 this.overWriteIfNewer = overWriteIfNewer;
146 }
147 }