Author: tchemit Date: Wed Jul 11 16:31:03 2012 New Revision: 1360280 URL: http://svn.apache.org/viewvc?rev=1360280&view=rev Log: [MCHANGELOG-129] use maven-plugin-tools' java 5 annotations
Modified: maven/plugins/trunk/maven-changelog-plugin/pom.xml maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/DeveloperActivityReport.java maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/FileActivityReport.java Modified: maven/plugins/trunk/maven-changelog-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changelog-plugin/pom.xml?rev=1360280&r1=1360279&r2=1360280&view=diff ============================================================================== --- maven/plugins/trunk/maven-changelog-plugin/pom.xml (original) +++ maven/plugins/trunk/maven-changelog-plugin/pom.xml Wed Jul 11 16:31:03 2012 @@ -157,6 +157,11 @@ under the License. <artifactId>maven-settings</artifactId> <version>${mavenVersion}</version> </dependency> + <dependency> + <groupId>org.apache.maven.plugin-tools</groupId> + <artifactId>maven-plugin-annotations</artifactId> + <version>3.1</version> + </dependency> <!-- shared --> <dependency> @@ -310,10 +315,34 @@ under the License. <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> - <version>3.0</version> + <version>${sitePluginVersion}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-plugin-plugin</artifactId> + <version>3.1</version> + <configuration> + <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> + </configuration> </plugin> </plugins> </pluginManagement> + + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-plugin-plugin</artifactId> + <executions> + <execution> + <id>mojo-descriptor</id> + <phase>process-classes</phase> + <goals> + <goal>descriptor</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> </build> <reporting> Modified: maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java?rev=1360280&r1=1360279&r2=1360280&view=diff ============================================================================== --- maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java (original) +++ maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java Wed Jul 11 16:31:03 2012 @@ -19,38 +19,13 @@ package org.apache.maven.plugin.changelo * under the License. */ -import java.io.BufferedOutputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.StringReader; -import java.io.UnsupportedEncodingException; -import java.io.Writer; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Properties; -import java.util.ResourceBundle; -import java.util.StringTokenizer; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.siterenderer.Renderer; import org.apache.maven.model.Developer; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.reporting.AbstractMavenReport; import org.apache.maven.reporting.MavenReportException; @@ -75,12 +50,40 @@ import org.codehaus.plexus.util.ReaderFa import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.WriterFactory; +import java.io.BufferedOutputStream; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.io.Writer; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Properties; +import java.util.ResourceBundle; +import java.util.StringTokenizer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /** * Generate a changelog report. * * @version $Id$ - * @goal changelog */ +@Mojo( name = "changelog" ) public class ChangeLogReport extends AbstractMavenReport { @@ -97,10 +100,10 @@ public class ChangeLogReport private static final String ISSUE_TOKEN = "%ISSUE%"; /** - * A special token that represents the SCM revision number. - * It can be used in <code>displayChangeSetDetailUrl</code> - * and <code>displayFileRevDetailUrl</code>. - */ + * A special token that represents the SCM revision number. + * It can be used in <code>displayChangeSetDetailUrl</code> + * and <code>displayFileRevDetailUrl</code>. + */ private static final String REV_TOKEN = "%REV%"; /** @@ -108,192 +111,161 @@ public class ChangeLogReport */ private static final int DEFAULT_RANGE = 30; + public static final String DEFAULT_ISSUE_ID_REGEX_PATTERN = "[a-zA-Z]{2,}-\\d+"; + /** * Used to specify the format to use for the dates in the headings of the * report. * - * @parameter expression="${changelog.headingDateFormat}" default-value="yyyy-MM-dd" * @since 2.1 */ + @Parameter( property = "changelog.headingDateFormat", defaultValue = "yyyy-MM-dd" ) private String headingDateFormat = "yyyy-MM-dd"; /** * Used to specify whether to build the log using range, tag or date. - * - * @parameter expression="${changelog.type}" default-value="range" - * @required */ + @Parameter( property = "changelog.type", defaultValue = "range", required = true ) private String type; /** * Used to specify the number of days of log entries to retrieve. - * - * @parameter expression="${changelog.range}" default-value="-1" */ + @Parameter( property = "changelog.range", defaultValue = "-1" ) private int range; /** * Used to specify the absolute date (or list of dates) to start log entries from. - * - * @parameter */ + @Parameter private List dates; /** * Used to specify the tag (or list of tags) to start log entries from. - * - * @parameter */ + @Parameter private List tags; /** * Used to specify the date format of the log entries that are retrieved from your SCM system. - * - * @parameter expression="${changelog.dateFormat}" default-value="yyyy-MM-dd HH:mm:ss" - * @required */ + @Parameter( property = "changelog.dateFormat", defaultValue = "yyyy-MM-dd HH:mm:ss", required = true ) private String dateFormat; /** * Input dir. Directory where the files under SCM control are located. - * - * @parameter expression="${basedir}" - * @required */ + @Parameter( property = "basedir", required = true ) private File basedir; /** * Output file for xml document - * - * @parameter expression="${project.build.directory}/changelog.xml" - * @required */ + @Parameter( defaultValue = "${project.build.directory}/changelog.xml", required = true ) private File outputXML; /** * Allows the user to make changelog regenerate the changelog.xml file for the specified time in minutes. - * - * @parameter expression="${outputXMLExpiration}" default-value="60" - * @required */ + @Parameter( property = "outputXMLExpiration", defaultValue = "60", required = true ) private int outputXMLExpiration; /** * Comment format string used for interrogating * the revision control system. * Currently only used by the ClearcaseChangeLogGenerator. - * - * @parameter expression="${changelog.commentFormat}" */ + @Parameter( property = "changelog.commentFormat" ) private String commentFormat; /** * The file encoding when writing non-HTML reports. - * - * @parameter expression="${changelog.outputEncoding}" default-value="${project.reporting.outputEncoding}" */ + @Parameter( property = "changelog.outputEncoding", defaultValue = "${project.reporting.outputEncoding}" ) private String outputEncoding; /** * The user name (used by svn and starteam protocol). - * - * @parameter expression="${username}" */ + @Parameter( property = "username" ) private String username; /** * The user password (used by svn and starteam protocol). - * - * @parameter expression="${password}" */ + @Parameter( property = "password" ) private String password; /** * The private key (used by java svn). - * - * @parameter expression="${privateKey}" */ + @Parameter( property = "privateKey" ) private String privateKey; /** * The passphrase (used by java svn). - * - * @parameter expression="${passphrase}" */ + @Parameter( property = "passphrase" ) private String passphrase; /** * The url of tags base directory (used by svn protocol). - * - * @parameter expression="${tagBase}" */ + @Parameter( property = "tagBase" ) private String tagBase; /** * The URL to view the scm. Basis for external links from the generated report. - * - * @parameter expression="${project.scm.url}" */ + @Parameter( property = "project.scm.url" ) protected String scmUrl; /** * Skip the Changelog report generation. Most useful on the command line * via "-Dchangelog.skip=true". * - * @parameter expression="${changelog.skip}" default-value="false" * @since 2.3 */ + @Parameter( property = "changelog.skip", defaultValue = "false" ) protected boolean skip; /** * The Maven Project Object - * - * @parameter expression="${project}" - * @required - * @readonly */ + @Component private MavenProject project; /** * The directory where the report will be generated - * - * @parameter expression="${project.reporting.outputDirectory}" - * @required - * @readonly */ + @Parameter( property = "project.reporting.outputDirectory", required = true, readonly = true ) private File outputDirectory; /** - * @component */ + @Component private Renderer siteRenderer; /** - * @parameter expression="${settings.offline}" - * @required - * @readonly */ + @Parameter( property = "settings.offline", required = true, readonly = true ) private boolean offline; /** - * @component */ + @Component private ScmManager manager; /** - * @parameter expression="${settings}" - * @required - * @readonly */ + @Component private Settings settings; /** * Allows the user to choose which scm connection to use when connecting to the scm. * Can either be "connection" or "developerConnection". - * - * @parameter default-value="connection" - * @required */ + @Parameter( defaultValue = "connection", required = true ) private String connectionType; /** @@ -310,9 +282,8 @@ public class ChangeLogReport * <strong>Note:</strong> If you don't supply the token in your template, * the path of the file will simply be appended to your template URL. * </p> - * - * @parameter expression="${displayFileDetailUrl}" default-value="${project.scm.url}" */ + @Parameter( property = "displayFileDetailUrl", defaultValue = "${project.scm.url}" ) protected String displayFileDetailUrl; /** @@ -320,11 +291,11 @@ public class ChangeLogReport * Bugzilla and alike in the SCM commit messages. Any matched patterns * are replaced with <code>issueLinkUrl<code> URL. The default * value is a JIRA-style issue identification pattern. - * - * @parameter expression="${issueIDRegexPattern}" default-value="[a-zA-Z]{2,}-\\d+" - * @required + * <p/> + * <strong>Note:</strong> Default value is [a-zA-Z]{2,}-\d+ * @since 2.2 */ + @Parameter( property = "issueIDRegexPattern", defaultValue = DEFAULT_ISSUE_ID_REGEX_PATTERN, required = true ) private String issueIDRegexPattern; /** @@ -333,17 +304,16 @@ public class ChangeLogReport * URL. If %ISSUE% is found in the URL it is replaced with the matched issue ID, * otherwise the matched issue ID is appended to the URL. * - * @parameter expression="${issueLinkUrl}" default-value="http://jira.codehaus.org/browse/%ISSUE%" - * @required * @since 2.2 */ + @Parameter( property = "issueLinkUrl", defaultValue = "http://jira.codehaus.org/browse/%ISSUE%", required = true ) private String issueLinkUrl; /** * A template string that is used to create the changeset URL. - * + * <p/> * If not defined no change set link will be created. - * + * <p/> * There is one special token that you can use in your template: * <ul> * <li><code>%REV%</code> - this is the changeset revision</li> @@ -357,9 +327,9 @@ public class ChangeLogReport * the revision will simply be appended to your template URL. * </p> * - * @parameter expression="${displayChangeSetDetailUrl}" * @since 2.2 */ + @Parameter( property = "displayChangeSetDetailUrl" ) protected String displayChangeSetDetailUrl; /** @@ -368,11 +338,11 @@ public class ChangeLogReport * When a report contains both file and file revision information, as in the * Change Log report, this template string can be used to create a revision * aware URL to the file details. - * + * <p/> * If not defined this template string defaults to the same value as the * <code>displayFileDetailUrl</code> and thus revision number aware links will * not be used. - * + * <p/> * There are two special tokens that you can use in your template: * <ul> * <li><code>%FILE%</code> - this is the path to a file</li> @@ -387,26 +357,25 @@ public class ChangeLogReport * the path of the file will simply be appended to your template URL. * </p> * - * @parameter expression="${displayFileRevDetailUrl}" * @since 2.2 */ + @Parameter( property = "displayFileRevDetailUrl" ) protected String displayFileRevDetailUrl; /** * List of developers to be shown on the report. * - * @parameter expression="${project.developers}" * @since 2.2 */ + @Parameter( property = "project.developers" ) protected List developers; /** * List of provider implementations. - * - * @parameter */ + @Parameter private Map providerImplementations; - + // temporary field holder while generating the report private String rptRepository, rptOneRepoParam, rptMultiRepoParam; @@ -421,9 +390,8 @@ public class ChangeLogReport /** * The system properties to use (needed by the perforce scm provider). - * - * @parameter */ + @Parameter private Properties systemProperties; /** {@inheritDoc} */ Modified: maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/DeveloperActivityReport.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/DeveloperActivityReport.java?rev=1360280&r1=1360279&r2=1360280&view=diff ============================================================================== --- maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/DeveloperActivityReport.java (original) +++ maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/DeveloperActivityReport.java Wed Jul 11 16:31:03 2012 @@ -20,6 +20,7 @@ package org.apache.maven.plugin.changelo */ import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.scm.ChangeFile; import org.apache.maven.scm.ChangeSet; import org.apache.maven.scm.command.changelog.ChangeLogSet; @@ -36,8 +37,8 @@ import java.util.ResourceBundle; * Generate a developer activity report. * * @version $Id$ - * @goal dev-activity */ +@Mojo( name = "dev-activity" ) public class DeveloperActivityReport extends ChangeLogReport { Modified: maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/FileActivityReport.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/FileActivityReport.java?rev=1360280&r1=1360279&r2=1360280&view=diff ============================================================================== --- maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/FileActivityReport.java (original) +++ maven/plugins/trunk/maven-changelog-plugin/src/main/java/org/apache/maven/plugin/changelog/FileActivityReport.java Wed Jul 11 16:31:03 2012 @@ -20,6 +20,7 @@ package org.apache.maven.plugin.changelo */ import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.scm.ChangeFile; import org.apache.maven.scm.ChangeSet; import org.apache.maven.scm.command.changelog.ChangeLogSet; @@ -38,8 +39,8 @@ import java.util.ResourceBundle; * Generate a file activity report. * * @version $Id$ - * @goal file-activity */ +@Mojo( name = "file-activity" ) public class FileActivityReport extends ChangeLogReport {