1 package org.apache.maven.plugin.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.HashSet;
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.plugin.dependency.fromConfiguration.ArtifactItem;
28 import org.apache.maven.plugin.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
64 public Set filter( Set artifacts )
65 throws ArtifactFilterException
66 {
67 Set<Artifact> result = new HashSet<Artifact>();
68
69 for ( Artifact artifact : (Set<Artifact>) artifacts )
70 {
71 if ( isArtifactIncluded( new ArtifactItem( artifact ) ) )
72 {
73 result.add( artifact );
74 }
75 }
76 return result;
77 }
78
79 public boolean isArtifactIncluded( ArtifactItem item )
80 throws ArtifactFilterException
81 {
82 Artifact artifact = item.getArtifact();
83
84 boolean overWrite = ( artifact.isSnapshot() && this.overWriteSnapshots )
85 || ( !artifact.isSnapshot() && this.overWriteReleases );
86
87 handler.setArtifact( artifact );
88
89 try
90 {
91 return overWrite || !handler.isMarkerSet() || ( overWriteIfNewer && handler.isMarkerOlder( artifact ) );
92 }
93 catch ( MojoExecutionException e )
94 {
95 throw new ArtifactFilterException( e.getMessage(), e );
96 }
97 }
98
99
100
101
102 public boolean isOverWriteReleases()
103 {
104 return this.overWriteReleases;
105 }
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
128 public void setOverWriteSnapshots( boolean overWriteSnapshots )
129 {
130 this.overWriteSnapshots = overWriteSnapshots;
131 }
132
133
134
135
136 public boolean isOverWriteIfNewer()
137 {
138 return this.overWriteIfNewer;
139 }
140
141
142
143
144
145 public void setOverWriteIfNewer( boolean overWriteIfNewer )
146 {
147 this.overWriteIfNewer = overWriteIfNewer;
148 }
149 }