0

We use maven-changes-plugin to generate release announcement. Unfortunately, "mvn changes:jira-report" commands returns "Falling back to RSS for issue download: This JIRA server does not support version 2 of the REST API, which maven-changes-plugin requires.". Please see command error log below:

[INFO] Falling back to RSS for issue download: This JIRA server does not support version 2 of the REST API, which maven-changes-plugin requires.
[WARNING] Unable to respond to any of these challenges: {oauth=OAuth realm="https%3A%2F%2Fjira.myjira.com%3A8443"}
[INFO] Downloading from JIRA at: https://jira.myjira.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?tempMax=100&reset=true&jqlQuery=project+%3D+CP+AND+fixVersion+%3D+%223.2.1-alpha-4%22+AND+status+in+%28Closed%29+AND+resolution+in+%28Fixed%29+ORDER+BY+priority+DESC%2C+created+DESC
[WARNING] Unable to respond to any of these challenges: {oauth=OAuth realm="https%3A%2F%2Fjira.myjira.com%3A8443"}
[WARNING] Downloading from JIRA failed. Received: [401]
[WARNING] JIRA file /Users/jay/3.2.1-alpha/marketplace/target/jira-results.xml doesn't exist.
[WARNING]
org.apache.maven.plugin.MojoExecutionException: Couldn't find any issues for the version '3.2.1-alpha-4' among the supplied issues: []
        at org.apache.maven.plugin.issues.IssueUtils.getIssuesForVersion(IssueUtils.java:119)
        at org.apache.maven.plugin.jira.JiraMojo.executeReport(JiraMojo.java:387)
        at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:255)
        at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:210)
        at org.apache.maven.plugin.changes.AbstractChangesReport.execute(AbstractChangesReport.java:207)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

Environment info

JIRA Standalone 5.2.5
maven-changes-plugin v2.11

pom.xml excerpt

<issueManagement>
    <system>JIRA</system>
    <url>https://jira.myjira.com:8443/browse/CP</url>
  </issueManagement>
<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>2.11</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>announcement-generate</goal>
                </goals>
                <id>announcement-generate</id>
            </execution>
            <execution>
                <phase>deploy</phase>
                <goals>
                    <goal>announcement-mail</goal>
                </goals>
                <id>announcement-mail</id>
            </execution>
        </executions>
        <configuration>
            <useJql>true</useJql>
          <jiraUser>xxx</jiraUser>
            <jiraPassword>xxx</jiraPassword>
            <webUser>xxx</webUser>
            <webPassword>xxx</webPassword>
          <onlyCurrentVersion>true</onlyCurrentVersion>
            <smtpHost>relay.edsmtp.net</smtpHost>
          <smtpPort implementation="java.lang.Integer">25</smtpPort>
          <toAddresses>
            <toAddress implementation="java.lang.String">to@email.com</toAddress>
          </toAddresses>
          <mailSender>
            <name>Release Notification</name>
            <email>projectupdates@email.com</email>
          </mailSender>
          <issueManagementSystems>
            <issueManagementSystem>JIRA</issueManagementSystem>
          </issueManagementSystems>
        </configuration>
      </plugin>
<reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>2.11</version>
        <configuration>
          <useJql>true</useJql>
          <jiraUser>xxx</jiraUser>
            <jiraPassword>xxx</jiraPassword>
            <webUser>xxx</webUser>
            <webPassword>xxx</webPassword>
          <onlyCurrentVersion>true</onlyCurrentVersion>
          <resolutionIds>Unresolved</resolutionIds>
          <statusIds>Open</statusIds>
          <typeIds>Bug, New Feature, Improvement</typeIds>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>jira-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

Appreciate any pointers.

Thanks

drecute
  • 708
  • 4
  • 10
  • 29

1 Answers1

1

You get that error because the first REST method it tries to access (https://myjiraserver/rest/api/2/serverInfo) did not return HTTP 200 when trying to access the resource.

Your JIRA version should support v2 of the REST API, so you are likely getting that error because of one of the following reasons:

  1. you provided the wrong URL to Maven (perhaps missing the context path?), or
  2. could you be using a self-signed SSL certificate on the server that might interfere with the ability of the client to connect?

In the latter case, you could try pointing Maven at the non-SSL port for JIRA (if you still have that <Connector> accessible in JIRA's conf/server.xml), or else see if you can fix it by adding the cert to the trust store used by Maven.

I think option #2 is less likely since I would expect the WebClient library to throw an exception if there were a cert validation problem, but I admit that I haven't dug into its API to figure out exactly what it does in that scenario.

From https://maven.apache.org/plugins/maven-changes-plugin/xref/org/apache/maven/plugin/jira/RestJiraDownloader.html:

105         Map<String, String> urlMap = JiraHelper.getJiraUrlAndProjectName( project.getIssueManagement().getUrl() );
106         String jiraUrl = urlMap.get( "url" );
107         jiraProject = urlMap.get( "project" );
108 
109         // This classloader juggling is a workaround for a classic Maven 2 class loader management bug.
110         ClassLoader ccl = Thread.currentThread().getContextClassLoader();
111         try
112         {
113             Thread.currentThread().setContextClassLoader( WebClient.class.getClassLoader( ) );
114             WebClient client = setupWebClient( jiraUrl );
115 
116             // We use version 2 of the REST API, that first appeared in JIRA 5
117             // Check if version 2 of the REST API is supported
118             // http://docs.atlassian.com/jira/REST/5.0/
119             // Note that serverInfo can always be accessed without authentication
120             client.replacePath( "/rest/api/2/serverInfo" );
121             client.accept( MediaType.APPLICATION_JSON );
122             Response siResponse = client.get();
123             if ( siResponse.getStatus() != Response.Status.OK.getStatusCode() )
124             {
125                 throw new NoRest(
126                     "This JIRA server does not support version 2 of the REST API, which maven-changes-plugin requires." );
127             }
128 
Community
  • 1
  • 1
Scott Dudley
  • 2,976
  • 1
  • 15
  • 27
  • Thanks @scott-dudley. I actually encountered option #2. And I fixed it by adding the cert to the trust store. I've edited my post above to also include the necessary JIRA entries. The URL provided to Maven looks correct to me. – drecute Oct 17 '14 at 17:55
  • Does that mean that you got it to work via option #2? (Or you did that before posting, and it's still broken?) – Scott Dudley Oct 17 '14 at 21:45
  • Did option #2 before posting. – drecute Oct 17 '14 at 22:13
  • Found out the issue was incorrect password. Sorry for taking you through this. This is really dump of me :) – drecute Oct 17 '14 at 23:15