Author: dennisl Date: Thu Dec 3 14:16:51 2009 New Revision: 886786 URL: http://svn.apache.org/viewvc?rev=886786&view=rev Log: [MCHANGES-138] Exception thrown when issueManagement section of pom is missing
Modified: maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/announcement/AnnouncementMojo.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=886786&r1=886785&r2=886786&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 3 14:16:51 2009 @@ -315,9 +315,16 @@ { ChangesXML changesXML = new ChangesXML( getXmlPath(), getLog() ); List changesReleases = changesXML.getReleaseList(); - List jiraReleases = getJiraReleases(); - List mergedReleases = mergeReleases( changesReleases, jiraReleases ); - doGenerate( mergedReleases ); + if ( validateIfIssueManagementComplete() ) + { + List jiraReleases = getJiraReleases(); + List mergedReleases = mergeReleases( changesReleases, jiraReleases ); + doGenerate( mergedReleases ); + } + else + { + throw new MojoExecutionException( "Something is wrong with the Issue Management section. See previous error messages." ); + } } else { @@ -588,11 +595,18 @@ public void doJiraGenerate() throws MojoExecutionException { - List releases = getJiraReleases(); + if ( validateIfIssueManagementComplete() ) + { + List releases = getJiraReleases(); - getLog().info( "Creating announcement file from JIRA releases..." ); + getLog().info( "Creating announcement file from JIRA releases..." ); - doGenerate( releases ); + doGenerate( releases ); + } + else + { + throw new MojoExecutionException( "Something is wrong with the Issue Management section. See previous error messages." ); + } } protected List getJiraReleases() @@ -700,6 +714,34 @@ return mergedReleases; } + /** + * 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 */