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
      */


Reply via email to