View Javadoc

1   package org.apache.maven.plugin.dependency.fromConfiguration;
2   
3   /* 
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   * http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.    
20   */
21  
22  import java.io.File;
23  
24  import org.apache.maven.artifact.Artifact;
25  import org.codehaus.plexus.util.StringUtils;
26  
27  /**
28   * ArtifactItem represents information specified in the plugin configuration
29   * section for each artifact.
30   * 
31   * @since 1.0
32   * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
33   * @version $Id: ArtifactItem.java 728546 2008-12-21 22:56:51Z bentmann $
34   */
35  public class ArtifactItem
36  {
37      /**
38       * Group Id of Artifact
39       * 
40       * @parameter
41       * @required
42       */
43      private String groupId;
44  
45      /**
46       * Name of Artifact
47       * 
48       * @parameter
49       * @required
50       */
51      private String artifactId;
52  
53      /**
54       * Version of Artifact
55       * 
56       * @parameter
57       */
58      private String version = null;
59  
60      /**
61       * Type of Artifact (War,Jar,etc)
62       * 
63       * @parameter
64       * @required
65       */
66      private String type = "jar";
67  
68      /**
69       * Classifier for Artifact (tests,sources,etc)
70       * 
71       * @parameter
72       */
73      private String classifier;
74  
75      /**
76       * Location to use for this Artifact. Overrides default location.
77       * 
78       * @parameter
79       */
80      private File outputDirectory;
81  
82      /**
83       * Provides ability to change destination file name
84       * 
85       * @parameter
86       */
87      private String destFileName;
88  
89      /**
90       * Force Overwrite..this is the one to set in pom
91       */
92      private String overWrite;
93  
94      /**
95       * Force Overwrite
96       */
97      private boolean needsProcessing;
98  
99      /**
100      * Artifact Item
101      */
102     private Artifact artifact;
103     
104     /**
105      * A comma separated list of file patterns to include when unpacking the
106      * artifact.
107      */
108     private String includes;
109 
110     /**
111      * A comma separated list of file patterns to exclude when unpacking the
112      * artifact.
113      */
114     private String excludes;
115 
116     public ArtifactItem()
117     {
118         // default constructor
119     }
120 
121     public ArtifactItem( Artifact artifact )
122     {
123         this.setArtifact( artifact );
124         this.setArtifactId( artifact.getArtifactId() );
125         this.setClassifier( artifact.getClassifier() );
126         this.setGroupId( artifact.getGroupId() );
127         this.setType( artifact.getType() );
128         this.setVersion( artifact.getVersion() );
129     }
130 
131     private String filterEmptyString( String in )
132     {
133         if ( in == null || in.equals( "" ) )
134         {
135             return null;
136         }
137         else
138         {
139             return in;
140         }
141     }
142 
143     /**
144      * @return Returns the artifactId.
145      */
146     public String getArtifactId()
147     {
148         return artifactId;
149     }
150 
151     /**
152      * @param artifactId
153      *            The artifactId to set.
154      */
155     public void setArtifactId( String artifact )
156     {
157         this.artifactId = filterEmptyString( artifact );
158     }
159 
160     /**
161      * @return Returns the groupId.
162      */
163     public String getGroupId()
164     {
165         return groupId;
166     }
167 
168     /**
169      * @param groupId
170      *            The groupId to set.
171      */
172     public void setGroupId( String groupId )
173     {
174         this.groupId = filterEmptyString( groupId );
175     }
176 
177     /**
178      * @return Returns the type.
179      */
180     public String getType()
181     {
182         return type;
183     }
184 
185     /**
186      * @param type
187      *            The type to set.
188      */
189     public void setType( String type )
190     {
191         this.type = filterEmptyString( type );
192     }
193 
194     /**
195      * @return Returns the version.
196      */
197     public String getVersion()
198     {
199         return version;
200     }
201 
202     /**
203      * @param version
204      *            The version to set.
205      */
206     public void setVersion( String version )
207     {
208         this.version = filterEmptyString( version );
209     }
210 
211     /**
212      * @return Classifier.
213      */
214     public String getClassifier()
215     {
216         return classifier;
217     }
218 
219     /**
220      * @param classifier
221      *            Classifier.
222      */
223     public void setClassifier( String classifier )
224     {
225         this.classifier = filterEmptyString( classifier );
226     }
227 
228     public String toString()
229     {
230         if ( this.classifier == null )
231         {
232             return groupId + ":" + artifactId + ":" + StringUtils.defaultString( version, "?" ) + ":" + type;
233         }
234         else
235         {
236             return groupId + ":" + artifactId + ":" + classifier + ":" + StringUtils.defaultString( version, "?" )
237                 + ":" + type;
238         }
239     }
240 
241     /**
242      * @return Returns the location.
243      */
244     public File getOutputDirectory()
245     {
246         return outputDirectory;
247     }
248 
249     /**
250      * @param location
251      *            The location to set.
252      */
253     public void setOutputDirectory( File outputDirectory )
254     {
255         this.outputDirectory = outputDirectory;
256     }
257 
258     /**
259      * @return Returns the location.
260      */
261     public String getDestFileName()
262     {
263         return destFileName;
264     }
265 
266     /**
267      * @param destFileName
268      *            The destFileName to set.
269      */
270     public void setDestFileName( String destFileName )
271     {
272         this.destFileName = filterEmptyString( destFileName );
273     }
274 
275     /**
276      * @return Returns the needsProcessing.
277      */
278     public boolean isNeedsProcessing()
279     {
280         return this.needsProcessing;
281     }
282 
283     /**
284      * @param needsProcessing
285      *            The needsProcessing to set.
286      */
287     public void setNeedsProcessing( boolean needsProcessing )
288     {
289         this.needsProcessing = needsProcessing;
290     }
291 
292     /**
293      * @return Returns the overWriteSnapshots.
294      */
295     public String getOverWrite()
296     {
297         return this.overWrite;
298     }
299 
300     /**
301      * @param overWriteSnapshots
302      *            The overWriteSnapshots to set.
303      */
304     public void setOverWrite( String overWrite )
305     {
306         this.overWrite = overWrite;
307     }
308 
309     /**
310      * @return Returns the artifact.
311      */
312     public Artifact getArtifact()
313     {
314         return this.artifact;
315     }
316 
317     /**
318      * @param artifact
319      *            The artifact to set.
320      */
321     public void setArtifact( Artifact artifact )
322     {
323         this.artifact = artifact;
324     }
325     
326     /**
327      * @return Returns a comma separated list of excluded items
328      */
329     public String getExcludes ()
330     {
331         return this.excludes;
332     }
333     
334     /**
335      * @param excludes 
336      * 			A comma seperated list of items to exclude 
337      * 			i.e.  **\/*.xml, **\/*.properties
338      */
339     public void setExcludes ( String excludes )
340     {
341         this.excludes = excludes;
342     }
343     
344     /**
345      * @return Returns a comma seperated list of included items
346      */
347     public String getIncludes()
348     {
349     	return this.includes;
350     }
351 
352     /**
353      * @param includes
354      * 			A comma seperated list of items to inmclude 
355      * 			i.e.  **\/*.xml, **\/*.properties
356      */
357     public void setIncludes ( String includes )
358     {
359         this.includes = includes;
360     }
361 }