1 package org.apache.maven.plugin.checkstyle.rss;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23
24 import org.apache.maven.plugin.MojoExecutionException;
25 import org.apache.maven.plugin.checkstyle.CheckstyleReport;
26 import org.apache.maven.plugin.checkstyle.exec.CheckstyleResults;
27 import org.apache.maven.reporting.MavenReportException;
28 import org.apache.velocity.VelocityContext;
29 import org.apache.velocity.context.Context;
30 import org.apache.velocity.exception.ResourceNotFoundException;
31 import org.apache.velocity.exception.VelocityException;
32 import org.codehaus.plexus.component.annotations.Component;
33 import org.codehaus.plexus.component.annotations.Requirement;
34 import org.codehaus.plexus.util.StringUtils;
35 import org.codehaus.plexus.velocity.VelocityComponent;
36
37 import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
38
39
40
41
42
43 @Component( role = CheckstyleRssGenerator.class, hint = "default" )
44 public class DefaultCheckstyleRssGenerator
45 implements CheckstyleRssGenerator
46 {
47 @Requirement
48 private VelocityComponent velocityComponent;
49
50
51
52
53 public void generateRSS( CheckstyleResults results, CheckstyleRssGeneratorRequest checkstyleRssGeneratorRequest )
54 throws MavenReportException
55 {
56
57 VelocityTemplate vtemplate = new VelocityTemplate( velocityComponent, CheckstyleReport.PLUGIN_RESOURCES );
58 vtemplate.setLog( checkstyleRssGeneratorRequest.getLog() );
59
60 Context context = new VelocityContext();
61 context.put( "results", results );
62 context.put( "project", checkstyleRssGeneratorRequest.getMavenProject() );
63 context.put( "copyright", checkstyleRssGeneratorRequest.getCopyright() );
64 context.put( "levelInfo", SeverityLevel.INFO );
65 context.put( "levelWarning", SeverityLevel.WARNING );
66 context.put( "levelError", SeverityLevel.ERROR );
67 context.put( "stringutils", new StringUtils() );
68
69 try
70 {
71 vtemplate.generate( checkstyleRssGeneratorRequest.getOutputDirectory().getPath() + "/checkstyle.rss",
72 "checkstyle-rss.vm", context );
73 }
74 catch ( ResourceNotFoundException e )
75 {
76 throw new MavenReportException( "Unable to find checkstyle-rss.vm resource.", e );
77 }
78 catch ( MojoExecutionException | IOException | VelocityException e )
79 {
80 throw new MavenReportException( "Unable to generate checkstyle.rss.", e );
81 }
82 }
83
84 }