[MCHANGES-340] Support jira serverId configuration

Closes #18
diff --git a/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java b/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java
index 8766de6..a3a1197 100644
--- a/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java
+++ b/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java
@@ -48,6 +48,7 @@
 import org.apache.maven.plugins.trac.TracDownloader;
 import org.apache.maven.plugins.trac.TracIssueManagmentSystem;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Server;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.crypto.SettingsDecrypter;
 import org.apache.velocity.Template;
@@ -305,6 +306,14 @@
     private String jiraUser;
 
     /**
+     * The settings.xml server id to be used for authentication into a private JIRA installation.
+     *
+     * @since 3.0.0
+     */
+    @Parameter( property = "changes.jiraServerId" )
+    private String jiraServerId;
+
+    /**
      * Path to the JIRA XML file, which will be parsed.
      */
     @Parameter( defaultValue = "${project.build.directory}/jira-announcement.xml", required = true, readonly = true )
@@ -767,9 +776,17 @@
 
         jiraDownloader.setFilter( filter );
 
-        jiraDownloader.setJiraUser( jiraUser );
-
-        jiraDownloader.setJiraPassword( jiraPassword );
+        if ( jiraServerId != null )
+        {
+            final Server server = mavenSession.getSettings().getServer( jiraServerId );
+            jiraDownloader.setJiraUser( server.getUsername() );
+            jiraDownloader.setJiraPassword( server.getPassword() );
+        }
+        else
+        {
+            jiraDownloader.setJiraUser( jiraUser );
+            jiraDownloader.setJiraPassword( jiraPassword );
+        }
 
         jiraDownloader.setUseJql( useJql );
 
diff --git a/src/main/java/org/apache/maven/plugins/jira/JiraMojo.java b/src/main/java/org/apache/maven/plugins/jira/JiraMojo.java
index 1d9c317..a06053b 100644
--- a/src/main/java/org/apache/maven/plugins/jira/JiraMojo.java
+++ b/src/main/java/org/apache/maven/plugins/jira/JiraMojo.java
@@ -36,6 +36,7 @@
 import org.apache.maven.plugins.issues.IssuesReportGenerator;
 import org.apache.maven.plugins.issues.IssuesReportHelper;
 import org.apache.maven.reporting.MavenReportException;
+import org.apache.maven.settings.Server;
 import org.apache.maven.settings.Settings;
 
 /**
@@ -150,6 +151,14 @@
     private String jiraUser;
 
     /**
+     * The settings.xml server id to be used for authentication into a private JIRA installation.
+     *
+     * @since 3.0.0
+     */
+    @Parameter( property = "changes.jiraServerId" )
+    private String jiraServerId;
+
+    /**
      * Path to the JIRA XML file, which will be parsed.
      */
     @Parameter( defaultValue = "${project.build.directory}/jira-results.xml", required = true, readonly = true )
@@ -430,9 +439,17 @@
 
         issueDownloader.setJiraDatePattern( jiraDatePattern );
 
-        issueDownloader.setJiraUser( jiraUser );
-
-        issueDownloader.setJiraPassword( jiraPassword );
+        if ( jiraServerId != null )
+        {
+            final Server server = mavenSession.getSettings().getServer( jiraServerId );
+            issueDownloader.setJiraUser( server.getUsername() );
+            issueDownloader.setJiraPassword( server.getPassword() );
+        }
+        else
+        {
+            issueDownloader.setJiraUser( jiraUser );
+            issueDownloader.setJiraPassword( jiraPassword );
+        }
 
         issueDownloader.setTypeIds( typeIds );