1 package org.apache.maven.plugin.coreit;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.AbstractMojo;
23 import org.apache.maven.plugin.MojoExecutionException;
24 import org.apache.maven.project.MavenProject;
25 import org.apache.maven.project.MavenProjectBuilder;
26
27 import java.io.File;
28 import java.io.FileOutputStream;
29 import java.io.IOException;
30 import java.util.Properties;
31
32
33
34
35 public abstract class AbstractPomMojo
36 extends AbstractMojo
37 {
38
39
40
41
42
43
44 protected MavenProjectBuilder builder;
45
46 protected void dump( Properties props, String key, MavenProject project )
47 {
48 put( props, key + "project.id", project.getId() );
49 put( props, key + "project.name", project.getName() );
50 put( props, key + "project.description", project.getDescription() );
51 if ( project.getArtifact() != null )
52 {
53 put( props, key + "artifact.id", project.getArtifact().getId() );
54 }
55 }
56
57 protected void put( Properties props, String key, Object value )
58 {
59 if ( value != null )
60 {
61 props.setProperty( key, value.toString() );
62 }
63 }
64
65 protected void store( Properties props, File file )
66 throws MojoExecutionException
67 {
68 try
69 {
70 file.getParentFile().mkdirs();
71
72 FileOutputStream os = new FileOutputStream( file );
73 try
74 {
75 props.store( os, "[MAVEN-CORE-IT-LOG]" );
76 }
77 finally
78 {
79 os.close();
80 }
81 }
82 catch ( IOException e )
83 {
84 throw new MojoExecutionException( "Failed to dump POMs: " + e.getMessage(), e );
85 }
86 }
87
88 }