Hi, Please try the latest 2.10-SNAPSHOT version of the plugin. It has a fix for an issue that sounds similar to yours.
On Mon, Mar 24, 2014 at 10:11 AM, Behrooz N <[email protected]> wrote: > Hello, > > I want to generate a JIRA report using Changes Plugin. I've managed to > re-produce a situation which is contradictory: > > 1. I use Maven and POM to generate the JIRA report. > 2. I checkout 2.9 source and use a JUnit test class to verify. > > In case (1), the following Maven configuration is used: > > <reporting> > <plugins> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-changes-plugin</artifactId> > <version>2.9</version> > <configuration> > <useJql>true</useJql> > <onlyCurrentVersion>true</onlyCurrentVersion> > <statusIds>Closed,Resolved</statusIds> > <webUser>USER</webUser> > <webPassword>PASS</webPassword> > </configuration> > </plugin> > </plugins> > </reporting> > > Then using mvn -X changes:jira-report, I get the following: > > --------------------------- > ID: 2 > Address: https://MYJIRA.COM/issuetracker/rest/api/2/status > Http-Method: GET > Content-Type: */* > Headers: {Accept=[application/json], Content-Type=[*/*]} > -------------------------------------- > [DEBUG] Accept: application/json > [DEBUG] Content-Type: */* > [DEBUG] No Trust Decider for Conduit > '{https://MYJIRA.COM/issuetracker}WebClient.http-conduit'. An > afirmative Trust Decision is assumed. > [DEBUG] Response Code: 200 Conduit: > {https://MYJIRA.COM/issuetracker}WebClient.http-conduit > [DEBUG] Content length: -1 > [DEBUG] Header fields: > null: [HTTP/1.1 200 OK] > Transfer-Encoding: [chunked] > Date: [Mon, 24 Mar 2014 08:23:14 GMT] > Keep-Alive: [timeout=15, max=99] > Via: [1.1 MYJIRA.COM] > Set-Cookie: > [atlassian.xsrf.token=AMUY-0X4J-KTOA-WYA4|faf5142cf78de245e3573fc6cd122b41d1a0fe8e|lout; > Path=/issuetracker] > Connection: [Keep-Alive] > Content-Type: [application/json;charset=UTF-8] > X-AUSERNAME: [anonymous] > X-AREQUESTID: [563x130866x1] > Server: [Apache-Coyote/1.1] > Cache-Control: [no-cache, no-store, no-transform] > > [DEBUG] Adding interceptor > org.apache.cxf.interceptor.LoggingInInterceptor@5af3a14 to phase > receive > [DEBUG] Chain org.apache.cxf.phase.PhaseInterceptorChain@574e6595 was > created. Current flow: > receive [LoggingInInterceptor] > > [DEBUG] Invoking handleMessage on interceptor > org.apache.cxf.interceptor.LoggingInInterceptor@5af3a14 > [INFO] Inbound Message > ---------------------------- > ID: 2 > Response-Code: 200 > Encoding: UTF-8 > Content-Type: application/json;charset=UTF-8 > Headers: {Cache-Control=[no-cache, no-store, no-transform], > connection=[Keep-Alive], > content-type=[application/json;charset=UTF-8], Date=[Mon, 24 Mar 2014 > 08:23:14 GMT], Keep-Alive=[timeout=15, max=99], > Server=[Apache-Coyote/1.1], > Set-Cookie=[atlassian.xsrf.token=AMUY-0X4J-KTOA-WYA4|faf5142cf78de245e3573fc6cd122b41d1a0fe8e|lout; > Path=/issuetracker], transfer-encoding=[chunked], Via=[1.1 > MYJIRA.COM], X-AREQUESTID=[563x130866x1], X-AUSERNAME=[anonymous]} > Payload: [] > > In the above note that HTTPS is used, result Payload is empty and "webUser" > is *ignored* (as anonymous) and Authorization Header is missing. > Additionally, Maven ends with the following exception which makes sense > based on the code: > > org.apache.maven.plugin.MojoFailureException: Could not find status Closed. > at > org.apache.maven.plugin.jira.RestJiraDownloader.resolveOneItem(RestJiraDownloader.java:276) > at > org.apache.maven.plugin.jira.RestJiraDownloader.resolveList(RestJiraDownloader.java:253) > at > org.apache.maven.plugin.jira.RestJiraDownloader.resolveIds(RestJiraDownloader.java:210) > at > org.apache.maven.plugin.jira.RestJiraDownloader.doExecute(RestJiraDownloader.java:128) > at > org.apache.maven.plugin.jira.AdaptiveJiraDownloader.doExecute(AdaptiveJiraDownloader.java:47) > at org.apache.maven.plugin.jira.JiraMojo.executeReport(JiraMojo.java:367) > at > org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:190) > > In case (2), the source for the plugin version 2.9 is checked out. A simple > unit test is written to simulate the same configuration: > > RestJiraDownloader d = new RestJiraDownloader(); > Log log = new DefaultLog(new ConsoleLogger(Logger.LEVEL_DEBUG, > "test")); > d.setLog(log); > d.project = new MavenProject(); > d.project.setIssueManagement(new IssueManagement()); > d.project.getIssueManagement().setUrl( > "https://MYJIRA.COM/issuetracker/browse/CSP"); > d.project.getIssueManagement().setSystem("JIRA"); > d.setWebUser("USER"); > d.setWebPassword("PASS"); > d.setUseJql(true); > d.setStatusIds("Resolved,Closed"); > > Map<String, String> params = JiraHelper > .getJiraUrlAndProjectName(d.project.getIssueManagement() > .getUrl()); > String jiraUrl = params.get("url"); > String project = params.get("project"); > System.out.println("JIRA: " + jiraUrl + " | project: " + project); > > Thread.currentThread().setContextClassLoader( > WebClient.class.getClassLoader()); > WebClient client = d.setupWebClient(jiraUrl); > d.doSessionAuth(client); > > d.resolveIds(client, project); > System.out.println(d.resolvedStatusIds); > > Some small tweaks are made to RestJiraDownloader to make this test > runnable. The output of the unit test is: > > Mar 24, 2014 9:17:53 AM org.apache.cxf.interceptor.LoggingOutInterceptor > INFO: Outbound Message > --------------------------- > ID: 1 > Address: https://MYJIRA.COM/issuetracker/rest/api/2/status > Http-Method: GET > Content-Type: */* > Headers: {Accept=[application/json], Content-Type=[*/*], > Authorization=[Basic ZmlsdGVyYWRtaW46ZmFzMTIz]} > -------------------------------------- > Mar 24, 2014 9:17:54 AM org.apache.cxf.interceptor.LoggingInInterceptor > INFO: Inbound Message > ---------------------------- > ID: 1 > Response-Code: 200 > Encoding: UTF-8 > Content-Type: application/json;charset=UTF-8 > Headers: {Cache-Control=[no-cache, no-store, no-transform], > connection=[Keep-Alive], content-type=[application/json;char > set=UTF-8], Date=[Mon, 24 Mar 2014 08:17:54 GMT], > Keep-Alive=[timeout=15, max=100], Server=[Apache-Coyote/1.1], Set-Cook > ie=[atlassian.xsrf.token=AMUY-0X4J-KTOA-WYA4|7e39037e80032fd269019a7440f2e98242ad1f59|lin; > Path=/issuetracker, JSESSIONI > D=B33D7C89B30F1A336D114CF9E9E159D3; Path=/issuetracker/; HttpOnly], > transfer-encoding=[chunked], Via=[1.1 MYJIRA.COM], > X-AREQUESTID=[557x130229x1], X-ASESSIONID=[13jqi4n], > X-AUSERNAME=[USER], X-Seraph-LoginReason=[OK]} > Payload: [{"self":"...."}] > > In this case, the Payload actually includes the JSON response for the > status ids. The Authorization Header is also visible. > > An interesting observation is that in case (1), the following line: > > No Trust Decider for Conduit > '{https://MYJIRA.COM/issuetracker}WebClient.http-conduit'. An > afirmative Trust Decision is assumed. > > can it be the root cause? And, if so, how can I fix this? > > I'd appreciate any help on this. > > Thanks, > Behrooz -- Dennis Lundberg --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
