Author: dennisl Date: Thu Dec 30 21:20:11 2010 New Revision: 1054002 URL: http://svn.apache.org/viewvc?rev=1054002&view=rev Log: o Refactoring: move common (copied and pasted) code to a utility class
Added: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ProjectUtils.java (with props) Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/trac/TracMojo.java Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java?rev=1054002&r1=1054001&r2=1054002&view=diff ============================================================================== --- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java (original) +++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.java Thu Dec 30 21:20:11 2010 @@ -29,6 +29,7 @@ import java.util.Map; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.changes.ChangesXML; +import org.apache.maven.plugin.changes.ProjectUtils; import org.apache.maven.plugin.changes.ReleaseUtils; import org.apache.maven.plugin.jira.JiraAdapter; import org.apache.maven.plugin.jira.JiraXML; @@ -341,7 +342,7 @@ public class AnnouncementMojo { ChangesXML changesXML = new ChangesXML( getXmlPath(), getLog() ); List changesReleases = changesXML.getReleaseList(); - if ( validateIfIssueManagementComplete() ) + if ( ProjectUtils.validateIfIssueManagementComplete( project, "JIRA", "JIRA announcement", getLog() ) ) { List jiraReleases = getJiraReleases(); List mergedReleases = releaseUtils.mergeReleases( changesReleases, jiraReleases ); @@ -518,7 +519,7 @@ public class AnnouncementMojo public void doJiraGenerate() throws MojoExecutionException { - if ( validateIfIssueManagementComplete() ) + if ( ProjectUtils.validateIfIssueManagementComplete( project, "JIRA", "JIRA announcement", getLog() ) ) { List releases = getJiraReleases(); @@ -588,34 +589,6 @@ public class AnnouncementMojo } } - /** - * This method was copied from JiraMojo and modified. - */ - private boolean validateIfIssueManagementComplete() - { - if ( project.getIssueManagement() == null ) - { - getLog().error( "No Issue Management set. No JIRA announcement will be made." ); - - return false; - } - else if ( ( project.getIssueManagement().getUrl() == null ) - || ( project.getIssueManagement().getUrl().trim().equals( "" ) ) ) - { - getLog().error( "No URL set in Issue Management. No JIRA announcement will be made." ); - - return false; - } - else if ( ( project.getIssueManagement().getSystem() != null ) - && !( project.getIssueManagement().getSystem().equalsIgnoreCase( "jira" ) ) ) - { - getLog().error( "No JIRA Issue Management system configured. No JIRA announcement will be made." ); - - return false; - } - return true; - } - /* * accessors */ Added: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ProjectUtils.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ProjectUtils.java?rev=1054002&view=auto ============================================================================== --- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ProjectUtils.java (added) +++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ProjectUtils.java Thu Dec 30 21:20:11 2010 @@ -0,0 +1,68 @@ +package org.apache.maven.plugin.changes; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.project.MavenProject; + +/** + * A utility class for working with Project objects. + * + * @version $Id$ + */ +public class ProjectUtils +{ + /** + * Check if the issue management system has been properly configured in the Maven project. + * + * @param project The Maven project + * @param issueManagementSystem The name of the issue management system that is required + * @param mojoResult What the calling mojo produces, used in the error messages + * @param log A log + * @return <code>true</code> if the <issueManagement> element of the POM is complete, + * otherwise <code>false</code> + */ + public static boolean validateIfIssueManagementComplete( MavenProject project, String issueManagementSystem, + String mojoResult, Log log ) + { + if ( project.getIssueManagement() == null ) + { + log.error( "No Issue Management set. No " + mojoResult + " will be generated." ); + + return false; + } + else if ( ( project.getIssueManagement().getUrl() == null ) + || ( project.getIssueManagement().getUrl().trim().equals( "" ) ) ) + { + log.error( "No URL set in Issue Management. No " + mojoResult + " will be generated." ); + + return false; + } + else if ( ( project.getIssueManagement().getSystem() != null ) + && !( project.getIssueManagement().getSystem().equalsIgnoreCase( issueManagementSystem ) ) ) + { + log.error( "The " + mojoResult + " only supports " + issueManagementSystem + ". No " + mojoResult + + " will be generated." ); + + return false; + } + return true; + } +} Propchange: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ProjectUtils.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ProjectUtils.java ------------------------------------------------------------------------------ svn:keywords = Date Revision Author Id Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java?rev=1054002&r1=1054001&r2=1054002&view=diff ============================================================================== --- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java (original) +++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java Thu Dec 30 21:20:11 2010 @@ -25,6 +25,7 @@ import java.util.Locale; import java.util.ResourceBundle; import org.apache.maven.plugin.changes.AbstractChangesReport; +import org.apache.maven.plugin.changes.ProjectUtils; import org.apache.maven.reporting.MavenReportException; import org.apache.maven.settings.Settings; @@ -229,7 +230,7 @@ public class JiraMojo */ public boolean canGenerateReport() { - return validateIfIssueManagementComplete(); + return ProjectUtils.validateIfIssueManagementComplete( project, "JIRA", "JIRA Report", getLog() ); } public void executeReport( Locale locale ) @@ -335,29 +336,4 @@ public class JiraMojo jira.setSettings( settings ); } - - private boolean validateIfIssueManagementComplete() - { - if ( project.getIssueManagement() == null ) - { - getLog().error( "No Issue Management set. No JIRA Report will be generated." ); - - return false; - } - else if ( ( project.getIssueManagement().getUrl() == null ) - || ( project.getIssueManagement().getUrl().trim().equals( "" ) ) ) - { - getLog().error( "No URL set in Issue Management. No JIRA Report will be generated." ); - - return false; - } - else if ( ( project.getIssueManagement().getSystem() != null ) - && !( project.getIssueManagement().getSystem().equalsIgnoreCase( "jira" ) ) ) - { - getLog().error( "The JIRA Report only supports JIRA. No JIRA Report will be generated." ); - - return false; - } - return true; - } } Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/trac/TracMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/trac/TracMojo.java?rev=1054002&r1=1054001&r2=1054002&view=diff ============================================================================== --- maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/trac/TracMojo.java (original) +++ maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/trac/TracMojo.java Thu Dec 30 21:20:11 2010 @@ -28,6 +28,7 @@ import java.util.ResourceBundle; import org.apache.maven.doxia.siterenderer.Renderer; import org.apache.maven.plugin.changes.AbstractChangesReport; +import org.apache.maven.plugin.changes.ProjectUtils; import org.apache.maven.project.MavenProject; import org.apache.maven.reporting.MavenReportException; import org.apache.xmlrpc.XmlRpcException; @@ -92,7 +93,7 @@ public class TracMojo */ public boolean canGenerateReport() { - return validateIfIssueManagementComplete(); + return ProjectUtils.validateIfIssueManagementComplete( project, "Trac", "Trac Report", getLog() ); } public void executeReport( Locale locale ) @@ -265,30 +266,4 @@ public class TracMojo return ticket; } - - private boolean validateIfIssueManagementComplete() - { - if ( project.getIssueManagement() == null ) - { - getLog().error( "No Issue Management set. No Trac Report will be generated." ); - - return false; - } - else if ( ( project.getIssueManagement().getUrl() == null ) - || ( project.getIssueManagement().getUrl().trim().equals( "" ) ) ) - { - getLog().error( "No URL set in Issue Management. No Trac Report will be generated." ); - - return false; - } - else if ( ( project.getIssueManagement().getSystem() != null ) - && !( project.getIssueManagement().getSystem().equalsIgnoreCase( "trac" ) ) ) - { - getLog().error( "The Trac Report only supports Trac. No Trac Report will be generated." ); - - return false; - } - return true; - } - }