Add package.html, code formatting.
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@367739 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4a2a8c45ab
commit
cde8859e34
@ -21,8 +21,10 @@ import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParsePosition;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@ -48,11 +50,43 @@ import org.apache.maven.project.Project;
|
||||
*
|
||||
* @author mfranken@xebia.com
|
||||
*/
|
||||
public final class JiraDownloader {
|
||||
public final class JiraDownloader
|
||||
{
|
||||
/**
|
||||
* Log for debug output.
|
||||
*/
|
||||
private static Log log = LogFactory.getLog(JiraDownloader.class);
|
||||
private static Log log = LogFactory.getLog( JiraDownloader.class );
|
||||
|
||||
/** Mapping containing all JIRA status values. */
|
||||
private static Map statusMap = new HashMap();
|
||||
|
||||
/** Mapping containing all JIRA resolution values. */
|
||||
private static Map resolutionMap = new HashMap();
|
||||
|
||||
/** Mapping containing all JIRA priority values. */
|
||||
private static Map priorityMap = new HashMap();
|
||||
|
||||
static
|
||||
{
|
||||
statusMap.put( "Open", "1" );
|
||||
statusMap.put( "In Progress", "3" );
|
||||
statusMap.put( "Reopened", "4" );
|
||||
statusMap.put( "Resolved", "5" );
|
||||
statusMap.put( "Closed", "6" );
|
||||
|
||||
resolutionMap.put( "Unresolved", "-1" );
|
||||
resolutionMap.put( "Fixed", "1" );
|
||||
resolutionMap.put( "Won't Fix", "2" );
|
||||
resolutionMap.put( "Duplicate", "3" );
|
||||
resolutionMap.put( "Incomplete", "4" );
|
||||
resolutionMap.put( "Cannot Reproduce", "5" );
|
||||
|
||||
priorityMap.put( "Blocker", "1" );
|
||||
priorityMap.put( "Critical", "2" );
|
||||
priorityMap.put( "Major", "3" );
|
||||
priorityMap.put( "Minor", "4" );
|
||||
priorityMap.put( "Trivial", "5" );
|
||||
}
|
||||
|
||||
/** Output file for xml document. */
|
||||
private File output;
|
||||
@ -93,93 +127,92 @@ public final class JiraDownloader {
|
||||
/** Include a Jira roadmap. */
|
||||
private boolean roadmap;
|
||||
|
||||
|
||||
/** Mapping containing all JIRA status values. */
|
||||
private static Map statusMap = new HashMap();
|
||||
|
||||
/** Mapping containing all JIRA resolution values. */
|
||||
private static Map resolutionMap = new HashMap();
|
||||
|
||||
/** Mapping containing all JIRA priority values. */
|
||||
private static Map priorityMap = new HashMap();
|
||||
|
||||
static {
|
||||
statusMap.put("Open", "1");
|
||||
statusMap.put("In Progress", "3");
|
||||
statusMap.put("Reopened", "4");
|
||||
statusMap.put("Resolved", "5");
|
||||
statusMap.put("Closed", "6");
|
||||
|
||||
resolutionMap.put("Unresolved", "-1");
|
||||
resolutionMap.put("Fixed", "1");
|
||||
resolutionMap.put("Won't Fix", "2");
|
||||
resolutionMap.put("Duplicate", "3");
|
||||
resolutionMap.put("Incomplete", "4");
|
||||
resolutionMap.put("Cannot Reproduce", "5");
|
||||
|
||||
priorityMap.put("Blocker", "1");
|
||||
priorityMap.put("Critical", "2");
|
||||
priorityMap.put("Major", "3");
|
||||
priorityMap.put("Minor", "4");
|
||||
priorityMap.put("Trivial", "5");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a filter given the maven.jira parameters and some defaults.
|
||||
*
|
||||
* @return request parameters to be added to URL used for downloading the JIRA issues
|
||||
*/
|
||||
private String createFilter() {
|
||||
if (this.filter != null && this.filter.length() > 0) {
|
||||
if (this.filter.charAt(0) == '&') {
|
||||
return this.filter.substring(1);
|
||||
private String createFilter()
|
||||
{
|
||||
if ( ( this.filter != null ) && ( this.filter.length() > 0 ) )
|
||||
{
|
||||
if ( this.filter.charAt( 0 ) == '&' )
|
||||
{
|
||||
return this.filter.substring( 1 );
|
||||
}
|
||||
|
||||
return this.filter;
|
||||
}
|
||||
|
||||
StringBuffer localFilter = new StringBuffer();
|
||||
|
||||
// get the Status Ids
|
||||
if (statusIds != null) {
|
||||
String[] stats = statusIds.split(",");
|
||||
for (int i = 0; i < stats.length; i++) {
|
||||
String statusParam = (String) statusMap.get(stats[i]);
|
||||
if (statusParam != null) {
|
||||
localFilter.append("&statusIds=" + statusParam);
|
||||
if ( statusIds != null )
|
||||
{
|
||||
String[] stats = statusIds.split( "," );
|
||||
|
||||
for ( int i = 0; i < stats.length; i++ )
|
||||
{
|
||||
String statusParam = (String) statusMap.get( stats[i] );
|
||||
|
||||
if ( statusParam != null )
|
||||
{
|
||||
localFilter.append( "&statusIds=" + statusParam );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// get the Priority Ids
|
||||
if (priorityIds != null) {
|
||||
String[] prios = priorityIds.split(",");
|
||||
for (int i = 0; i < prios.length; i++) {
|
||||
String priorityParam = (String) priorityMap.get(prios[i]);
|
||||
if (priorityParam != null) {
|
||||
localFilter.append("&priorityIds=" + priorityParam);
|
||||
if ( priorityIds != null )
|
||||
{
|
||||
String[] prios = priorityIds.split( "," );
|
||||
|
||||
for ( int i = 0; i < prios.length; i++ )
|
||||
{
|
||||
String priorityParam = (String) priorityMap.get( prios[i] );
|
||||
|
||||
if ( priorityParam != null )
|
||||
{
|
||||
localFilter.append( "&priorityIds=" + priorityParam );
|
||||
}
|
||||
}
|
||||
}
|
||||
if (resolutionIds != null) {
|
||||
|
||||
if ( resolutionIds != null )
|
||||
{
|
||||
// get the Resolution Ids
|
||||
String[] resos = resolutionIds.split(",");
|
||||
for (int i = 0; i < resos.length; i++) {
|
||||
String resoParam = (String) resolutionMap.get(resos[i]);
|
||||
if (resoParam != null) {
|
||||
localFilter.append("&resolutionIds=" + resoParam);
|
||||
String[] resos = resolutionIds.split( "," );
|
||||
|
||||
for ( int i = 0; i < resos.length; i++ )
|
||||
{
|
||||
String resoParam = (String) resolutionMap.get( resos[i] );
|
||||
|
||||
if ( resoParam != null )
|
||||
{
|
||||
localFilter.append( "&resolutionIds=" + resoParam );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add all components
|
||||
if (component != null) {
|
||||
String[] components = component.split(",");
|
||||
for (int i = 0; i < components.length; i++) {
|
||||
if (components[i].length() > 0) {
|
||||
localFilter.append("&component=" + components[i]);
|
||||
if ( component != null )
|
||||
{
|
||||
String[] components = component.split( "," );
|
||||
|
||||
for ( int i = 0; i < components.length; i++ )
|
||||
{
|
||||
if ( components[i].length() > 0 )
|
||||
{
|
||||
localFilter.append( "&component=" + components[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add default sorting (by priority and then creation date)
|
||||
String sort = "&sorter/field=created&sorter/order=DESC" + "&sorter/field=priority&sorter/order=DESC";
|
||||
String sort =
|
||||
"&sorter/field=created&sorter/order=DESC"
|
||||
+ "&sorter/field=priority&sorter/order=DESC";
|
||||
|
||||
return localFilter + sort;
|
||||
}
|
||||
|
||||
@ -189,117 +222,158 @@ public final class JiraDownloader {
|
||||
* @throws Exception
|
||||
* on error
|
||||
*/
|
||||
public void doExecute() throws Exception {
|
||||
if (project == null) {
|
||||
throw new Exception("No project set.");
|
||||
public void doExecute()
|
||||
throws Exception
|
||||
{
|
||||
if ( project == null )
|
||||
{
|
||||
throw new Exception( "No project set." );
|
||||
}
|
||||
|
||||
if (project.getIssueTrackingUrl() == null) {
|
||||
throw new Exception("No issue tracking url set.");
|
||||
if ( project.getIssueTrackingUrl() == null )
|
||||
{
|
||||
throw new Exception( "No issue tracking url set." );
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
try
|
||||
{
|
||||
HttpClient cl = new HttpClient();
|
||||
HttpState state = new HttpState();
|
||||
HostConfiguration hc = new HostConfiguration();
|
||||
cl.setHostConfiguration(hc);
|
||||
cl.setState(state);
|
||||
|
||||
determineProxy(cl);
|
||||
cl.setHostConfiguration( hc );
|
||||
cl.setState( state );
|
||||
|
||||
determineProxy( cl );
|
||||
|
||||
// get the Jira URL and project id
|
||||
String url = project.getIssueTrackingUrl();
|
||||
|
||||
// chop off the parameter part
|
||||
int pos = url.indexOf("?");
|
||||
int pos = url.indexOf( "?" );
|
||||
|
||||
// and get the id while we're at it
|
||||
String id = null;
|
||||
if (pos >= 0) {
|
||||
|
||||
if ( pos >= 0 )
|
||||
{
|
||||
// url
|
||||
id = url.substring(url.lastIndexOf("=") + 1);
|
||||
id = url.substring( url.lastIndexOf( "=" ) + 1 );
|
||||
}
|
||||
|
||||
String jiraUrl = url.substring(0, url.lastIndexOf("/"));
|
||||
if (jiraUrl.endsWith("secure") || jiraUrl.endsWith("browse")) {
|
||||
jiraUrl = jiraUrl.substring(0, jiraUrl.lastIndexOf("/"));
|
||||
String jiraUrl = url.substring( 0, url.lastIndexOf( "/" ) );
|
||||
|
||||
if ( jiraUrl.endsWith( "secure" ) || jiraUrl.endsWith( "browse" ) )
|
||||
{
|
||||
jiraUrl = jiraUrl.substring( 0, jiraUrl.lastIndexOf( "/" ) );
|
||||
}
|
||||
log.info("Jira lives at: " + jiraUrl);
|
||||
doAuthentication(cl, jiraUrl);
|
||||
|
||||
log.info( "Jira lives at: " + jiraUrl );
|
||||
doAuthentication( cl, jiraUrl );
|
||||
|
||||
String projectPage = "";
|
||||
|
||||
if ( id == null || roadmap)
|
||||
if ( ( id == null ) || roadmap )
|
||||
{
|
||||
GetMethod gm = new GetMethod( url + "?report=com.atlassian.jira.plugin.system.project:roadmap-panel" );
|
||||
GetMethod gm =
|
||||
new GetMethod( url
|
||||
+ "?report=com.atlassian.jira.plugin.system.project:roadmap-panel" );
|
||||
|
||||
try
|
||||
{
|
||||
cl.executeMethod(gm);
|
||||
log.info("Succesfully reached JIRA.");
|
||||
cl.executeMethod( gm );
|
||||
log.info( "Succesfully reached JIRA." );
|
||||
}
|
||||
catch (Exception e)
|
||||
catch ( Exception e )
|
||||
{
|
||||
if (log.isDebugEnabled())
|
||||
if ( log.isDebugEnabled() )
|
||||
{
|
||||
log.error("Unable to reach JIRA project page:", e);
|
||||
log.error( "Unable to reach JIRA project page:", e );
|
||||
}
|
||||
else
|
||||
{
|
||||
log.error("Unable to reach JIRA project page. Cause is: " + e.getLocalizedMessage());
|
||||
log.error(
|
||||
"Unable to reach JIRA project page. Cause is: "
|
||||
+ e.getLocalizedMessage() );
|
||||
}
|
||||
}
|
||||
|
||||
projectPage = gm.getResponseBodyAsString();
|
||||
}
|
||||
|
||||
if ( id == null )
|
||||
{
|
||||
log.info("Jira URL " + url + " doesn't include a pid, trying to get it");
|
||||
int pidIndex = projectPage.indexOf("pid="); // @todo, a safer way to get the PID
|
||||
log.info( "Jira URL " + url
|
||||
+ " doesn't include a pid, trying to get it" );
|
||||
|
||||
if (pidIndex == -1)
|
||||
int pidIndex = projectPage.indexOf( "pid=" ); // @todo, a safer way to get the PID
|
||||
|
||||
if ( pidIndex == -1 )
|
||||
{
|
||||
// fail
|
||||
log.error("Unable to get JIRA pid using url " + project.getIssueTrackingUrl());
|
||||
log.error( "Unable to get JIRA pid using url "
|
||||
+ project.getIssueTrackingUrl() );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
NumberFormat nf = NumberFormat.getInstance();
|
||||
Number pidNumber = nf.parse(projectPage, new ParsePosition(pidIndex + 4));
|
||||
id = Integer.toString(pidNumber.intValue());
|
||||
Number pidNumber =
|
||||
nf.parse( projectPage, new ParsePosition( pidIndex + 4 ) );
|
||||
|
||||
id = Integer.toString( pidNumber.intValue() );
|
||||
}
|
||||
|
||||
// create the URL for getting the proper iussues from JIRA
|
||||
String fullURL = jiraUrl + "/secure/IssueNavigator.jspa?view=rss&pid=" + id;
|
||||
String fullURL =
|
||||
jiraUrl + "/secure/IssueNavigator.jspa?view=rss&pid=" + id;
|
||||
|
||||
fullURL += createFilter();
|
||||
fullURL += "&tempMax=" + nbEntriesMax + "&reset=true&decorator=none";
|
||||
fullURL += ( "&tempMax=" + nbEntriesMax
|
||||
+ "&reset=true&decorator=none" );
|
||||
|
||||
// execute the GET
|
||||
download(cl, fullURL, output);
|
||||
download( cl, fullURL, output );
|
||||
|
||||
if ( roadmap )
|
||||
{
|
||||
int fixforIndex = projectPage.indexOf("fixfor="); // @todo, a safer way to get the PID
|
||||
int fixforIndex = projectPage.indexOf( "fixfor=" ); // @todo, a safer way to get the PID
|
||||
|
||||
if (fixforIndex == -1)
|
||||
if ( fixforIndex == -1 )
|
||||
{
|
||||
// fail
|
||||
log.error("Unable to get JIRA roadmap using url " + project.getIssueTrackingUrl());
|
||||
log.error( "Unable to get JIRA roadmap using url "
|
||||
+ project.getIssueTrackingUrl() );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
NumberFormat nf = NumberFormat.getInstance();
|
||||
Number fixforNumber = nf.parse(projectPage, new ParsePosition(fixforIndex + 7));
|
||||
String fixfor = Integer.toString(fixforNumber.intValue());
|
||||
setFilter("&&fixfor=" + fixfor + "&sorter/field=status&sorter/order=ASC");
|
||||
fullURL = jiraUrl + "/secure/IssueNavigator.jspa?view=rss&pid=" + id;
|
||||
Number fixforNumber =
|
||||
nf.parse( projectPage, new ParsePosition( fixforIndex + 7 ) );
|
||||
String fixfor = Integer.toString( fixforNumber.intValue() );
|
||||
|
||||
setFilter( "&&fixfor=" + fixfor
|
||||
+ "&sorter/field=status&sorter/order=ASC" );
|
||||
fullURL =
|
||||
jiraUrl + "/secure/IssueNavigator.jspa?view=rss&pid=" + id;
|
||||
fullURL += createFilter();
|
||||
fullURL += "&tempMax=" + nbEntriesMax + "&reset=true&decorator=none";
|
||||
fullURL += ( "&tempMax=" + nbEntriesMax
|
||||
+ "&reset=true&decorator=none" );
|
||||
|
||||
String outFile = output.getAbsolutePath();
|
||||
int endIndex = outFile.lastIndexOf( '/' );
|
||||
outFile = outFile.substring( 0, endIndex ) + "/jira-roadmap.xml";
|
||||
// execute the GET
|
||||
download(cl, fullURL, new File( outFile ) );
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("Error accessing " + project.getIssueTrackingUrl(), e);
|
||||
outFile =
|
||||
outFile.substring( 0, endIndex ) + "/jira-roadmap.xml";
|
||||
|
||||
// execute the GET
|
||||
download( cl, fullURL, new File( outFile ) );
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
log.error( "Error accessing " + project.getIssueTrackingUrl(), e );
|
||||
}
|
||||
}
|
||||
|
||||
@ -311,38 +385,59 @@ public final class JiraDownloader {
|
||||
* @param jiraUrl
|
||||
* the JIRA installation
|
||||
*/
|
||||
private void doAuthentication(HttpClient client, final String jiraUrl) {
|
||||
private void doAuthentication( HttpClient client, final String jiraUrl )
|
||||
{
|
||||
// check and prepare for basic authentication
|
||||
if (webUser != null && webUser.length() > 0) {
|
||||
client.getState().setAuthenticationPreemptive(true);
|
||||
Credentials defaultcreds = new UsernamePasswordCredentials(webUser, webPassword);
|
||||
log.info("Using username: " + webUser + " for Basic Authentication against the webserver at " + jiraUrl);
|
||||
client.getState().setCredentials(null, null, defaultcreds);
|
||||
if ( ( webUser != null ) && ( webUser.length() > 0 ) )
|
||||
{
|
||||
client.getState().setAuthenticationPreemptive( true );
|
||||
|
||||
Credentials defaultcreds =
|
||||
new UsernamePasswordCredentials( webUser, webPassword );
|
||||
|
||||
log.info( "Using username: " + webUser
|
||||
+ " for Basic Authentication against the webserver at "
|
||||
+ jiraUrl );
|
||||
client.getState().setCredentials( null, null, defaultcreds );
|
||||
}
|
||||
|
||||
// log into JIRA if we have to
|
||||
String loginUrl = null;
|
||||
if (jiraUser != null && jiraUser.length() > 0 && jiraPassword != null) {
|
||||
StringBuffer loginLink = new StringBuffer(jiraUrl);
|
||||
loginLink.append("/login.jsp?os_destination=/secure/");
|
||||
loginLink.append("&os_username=").append(jiraUser);
|
||||
log.info("Login URL: " + loginLink + "&os_password=*******");
|
||||
loginLink.append("&os_password=").append(jiraPassword);
|
||||
|
||||
if ( ( jiraUser != null ) && ( jiraUser.length() > 0 )
|
||||
&& ( jiraPassword != null ) )
|
||||
{
|
||||
StringBuffer loginLink = new StringBuffer( jiraUrl );
|
||||
|
||||
loginLink.append( "/login.jsp?os_destination=/secure/" );
|
||||
loginLink.append( "&os_username=" ).append( jiraUser );
|
||||
log.info( "Login URL: " + loginLink + "&os_password=*******" );
|
||||
loginLink.append( "&os_password=" ).append( jiraPassword );
|
||||
loginUrl = loginLink.toString();
|
||||
}
|
||||
|
||||
// execute the login
|
||||
if (loginUrl != null) {
|
||||
GetMethod loginGet = new GetMethod(loginUrl);
|
||||
try {
|
||||
client.executeMethod(loginGet);
|
||||
log.info("Succesfully logged in into JIRA.");
|
||||
} catch (Exception e) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.error("Error trying to login into JIRA:", e);
|
||||
} else {
|
||||
log.error("Error trying to login into JIRA. Cause is: " + e.getLocalizedMessage());
|
||||
if ( loginUrl != null )
|
||||
{
|
||||
GetMethod loginGet = new GetMethod( loginUrl );
|
||||
|
||||
try
|
||||
{
|
||||
client.executeMethod( loginGet );
|
||||
log.info( "Succesfully logged in into JIRA." );
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
if ( log.isDebugEnabled() )
|
||||
{
|
||||
log.error( "Error trying to login into JIRA:", e );
|
||||
}
|
||||
else
|
||||
{
|
||||
log.error( "Error trying to login into JIRA. Cause is: "
|
||||
+ e.getLocalizedMessage() );
|
||||
}
|
||||
|
||||
// continue any way, probably will fail later if authentication was necesaaray afterall
|
||||
}
|
||||
}
|
||||
@ -354,28 +449,45 @@ public final class JiraDownloader {
|
||||
* @param client
|
||||
* the HttpClient
|
||||
*/
|
||||
private void determineProxy(HttpClient client) {
|
||||
private void determineProxy( HttpClient client )
|
||||
{
|
||||
// see whether there is any proxy defined in maven
|
||||
if (project == null) {
|
||||
log.error("No project set. No proxy info available.");
|
||||
if ( project == null )
|
||||
{
|
||||
log.error( "No project set. No proxy info available." );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
MavenJellyContext ctx = project.getContext();
|
||||
if (ctx == null) {
|
||||
log.error("Maven project has no context. No proxy info available.");
|
||||
|
||||
if ( ctx == null )
|
||||
{
|
||||
log.error( "Maven project has no context. No proxy info available." );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
String proxyHost = ctx.getProxyHost();
|
||||
|
||||
if (proxyHost != null) {
|
||||
if ( proxyHost != null )
|
||||
{
|
||||
String proxyPort = ctx.getProxyPort();
|
||||
client.getHostConfiguration().setProxy(proxyHost, Integer.parseInt(proxyPort));
|
||||
log.info("Using proxy: " + proxyHost + " at port " + proxyPort);
|
||||
|
||||
client.getHostConfiguration().setProxy( proxyHost,
|
||||
Integer.parseInt( proxyPort ) );
|
||||
log.info( "Using proxy: " + proxyHost + " at port " + proxyPort );
|
||||
|
||||
String proxyUser = ctx.getProxyUserName();
|
||||
if (proxyUser != null) {
|
||||
log.info("Using proxy user: " + proxyUser);
|
||||
|
||||
if ( proxyUser != null )
|
||||
{
|
||||
log.info( "Using proxy user: " + proxyUser );
|
||||
|
||||
String proxyPass = ctx.getProxyPassword();
|
||||
client.getState().setProxyCredentials(null, null, new UsernamePasswordCredentials(proxyUser, proxyPass));
|
||||
|
||||
client.getState().setProxyCredentials( null, null,
|
||||
new UsernamePasswordCredentials( proxyUser, proxyPass ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -387,51 +499,83 @@ public final class JiraDownloader {
|
||||
* the HttpClient
|
||||
* @param link
|
||||
* the JiraUrl
|
||||
* @param outFile
|
||||
* the output file
|
||||
* @return
|
||||
*/
|
||||
private void download(final HttpClient cl, final String link, final File outFile) {
|
||||
try {
|
||||
GetMethod gm = new GetMethod(link);
|
||||
log.info("Downloading " + link);
|
||||
gm.setFollowRedirects(true);
|
||||
cl.executeMethod(gm);
|
||||
private void download( final HttpClient cl, final String link,
|
||||
final File outFile )
|
||||
{
|
||||
try
|
||||
{
|
||||
GetMethod gm = new GetMethod( link );
|
||||
|
||||
log.info( "Downloading " + link );
|
||||
gm.setFollowRedirects( true );
|
||||
cl.executeMethod( gm );
|
||||
|
||||
final String strGetResponseBody = gm.getResponseBodyAsString();
|
||||
|
||||
// write the reponse to file
|
||||
PrintWriter pw = new PrintWriter(new FileWriter(outFile));
|
||||
pw.print(strGetResponseBody);
|
||||
PrintWriter pw = new PrintWriter( new FileWriter( outFile ) );
|
||||
|
||||
pw.print( strGetResponseBody );
|
||||
pw.close();
|
||||
|
||||
StatusLine sl = gm.getStatusLine();
|
||||
if (sl == null) {
|
||||
log.info("Unknown error validating link : " + link);
|
||||
|
||||
if ( sl == null )
|
||||
{
|
||||
log.info( "Unknown error validating link : " + link );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// if we get a redirect, do so
|
||||
if (gm.getStatusCode() == HttpStatus.SC_MOVED_TEMPORARILY) {
|
||||
Header locationHeader = gm.getResponseHeader("Location");
|
||||
if (locationHeader == null) {
|
||||
log.info("Site sent redirect, but did not set Location header");
|
||||
} else {
|
||||
if ( gm.getStatusCode() == HttpStatus.SC_MOVED_TEMPORARILY )
|
||||
{
|
||||
Header locationHeader = gm.getResponseHeader( "Location" );
|
||||
|
||||
if ( locationHeader == null )
|
||||
{
|
||||
log.info( "Site sent redirect, but did not set Location header" );
|
||||
}
|
||||
else
|
||||
{
|
||||
String newLink = locationHeader.getValue();
|
||||
log.debug("Following redirect to " + newLink);
|
||||
download(cl, newLink, outFile);
|
||||
|
||||
log.debug( "Following redirect to " + newLink );
|
||||
download( cl, newLink, outFile );
|
||||
}
|
||||
}
|
||||
|
||||
if (gm.getStatusCode() != HttpStatus.SC_OK) {
|
||||
log.warn("Received: [" + gm.getStatusCode() + "]");
|
||||
if ( gm.getStatusCode() != HttpStatus.SC_OK )
|
||||
{
|
||||
log.warn( "Received: [" + gm.getStatusCode() + "]" );
|
||||
}
|
||||
} catch (HttpException e) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.error("Error downloading issues from JIRA:", e);
|
||||
} else {
|
||||
log.error("Error downloading issues from JIRA. Cause is: " + e.getLocalizedMessage());
|
||||
}
|
||||
catch ( HttpException e )
|
||||
{
|
||||
if ( log.isDebugEnabled() )
|
||||
{
|
||||
log.error( "Error downloading issues from JIRA:", e );
|
||||
}
|
||||
} catch (IOException e) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.error("Error downloading issues from JIRA:", e);
|
||||
} else {
|
||||
log.error("Error downloading issues from JIRA. Cause is: " + e.getLocalizedMessage());
|
||||
else
|
||||
{
|
||||
log.error( "Error downloading issues from JIRA. Cause is: "
|
||||
+ e.getLocalizedMessage() );
|
||||
}
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
if ( log.isDebugEnabled() )
|
||||
{
|
||||
log.error( "Error downloading issues from JIRA:", e );
|
||||
}
|
||||
else
|
||||
{
|
||||
log.error( "Error downloading issues from JIRA. Cause is: "
|
||||
+ e.getLocalizedMessage() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -442,7 +586,8 @@ public final class JiraDownloader {
|
||||
* @param thisOutput
|
||||
* the output file
|
||||
*/
|
||||
public void setOutput(final File thisOutput) {
|
||||
public void setOutput( final File thisOutput )
|
||||
{
|
||||
this.output = thisOutput;
|
||||
}
|
||||
|
||||
@ -452,7 +597,8 @@ public final class JiraDownloader {
|
||||
* @param thisProject
|
||||
* The project to set
|
||||
*/
|
||||
public void setProject(final Object thisProject) {
|
||||
public void setProject( final Object thisProject )
|
||||
{
|
||||
this.project = (Project) thisProject;
|
||||
}
|
||||
|
||||
@ -462,7 +608,8 @@ public final class JiraDownloader {
|
||||
* @param nbEntries
|
||||
* The maximum number of Issues
|
||||
*/
|
||||
public void setNbEntries(final int nbEntries) {
|
||||
public void setNbEntries( final int nbEntries )
|
||||
{
|
||||
nbEntriesMax = nbEntries;
|
||||
}
|
||||
|
||||
@ -472,7 +619,8 @@ public final class JiraDownloader {
|
||||
* @param thisStatusIds
|
||||
* The id(s) of the status to show, as comma separated string
|
||||
*/
|
||||
public void setStatusIds(final String thisStatusIds) {
|
||||
public void setStatusIds( final String thisStatusIds )
|
||||
{
|
||||
statusIds = thisStatusIds;
|
||||
}
|
||||
|
||||
@ -482,7 +630,8 @@ public final class JiraDownloader {
|
||||
* @param thisPriorityIds
|
||||
* The id(s) of the priority to show, as comma separated string
|
||||
*/
|
||||
public void setPriorityIds(final String thisPriorityIds) {
|
||||
public void setPriorityIds( final String thisPriorityIds )
|
||||
{
|
||||
priorityIds = thisPriorityIds;
|
||||
}
|
||||
|
||||
@ -492,7 +641,8 @@ public final class JiraDownloader {
|
||||
* @param thisResolutionIds
|
||||
* The id(s) of the resolution to show, as comma separated string
|
||||
*/
|
||||
public void setResolutionIds(final String thisResolutionIds) {
|
||||
public void setResolutionIds( final String thisResolutionIds )
|
||||
{
|
||||
resolutionIds = thisResolutionIds;
|
||||
}
|
||||
|
||||
@ -502,7 +652,8 @@ public final class JiraDownloader {
|
||||
* @param thisWebPassword
|
||||
* The password of the webserver
|
||||
*/
|
||||
public void setWebPassword(final String thisWebPassword) {
|
||||
public void setWebPassword( final String thisWebPassword )
|
||||
{
|
||||
this.webPassword = thisWebPassword;
|
||||
}
|
||||
|
||||
@ -512,7 +663,8 @@ public final class JiraDownloader {
|
||||
* @param thisWebUser
|
||||
* The username of the webserver
|
||||
*/
|
||||
public void setWebUser(final String thisWebUser) {
|
||||
public void setWebUser( final String thisWebUser )
|
||||
{
|
||||
this.webUser = thisWebUser;
|
||||
}
|
||||
|
||||
@ -522,7 +674,8 @@ public final class JiraDownloader {
|
||||
* @param thisJiraPassword
|
||||
* The password for JIRA
|
||||
*/
|
||||
public void setJiraPassword(final String thisJiraPassword) {
|
||||
public void setJiraPassword( final String thisJiraPassword )
|
||||
{
|
||||
this.jiraPassword = thisJiraPassword;
|
||||
}
|
||||
|
||||
@ -532,7 +685,8 @@ public final class JiraDownloader {
|
||||
* @param thisJiraUser
|
||||
* The username for JIRA
|
||||
*/
|
||||
public void setJiraUser(final String thisJiraUser) {
|
||||
public void setJiraUser( final String thisJiraUser )
|
||||
{
|
||||
this.jiraUser = thisJiraUser;
|
||||
}
|
||||
|
||||
@ -542,7 +696,8 @@ public final class JiraDownloader {
|
||||
* @param thisFilter
|
||||
* The filter to query JIRA
|
||||
*/
|
||||
public void setFilter(final String thisFilter) {
|
||||
public void setFilter( final String thisFilter )
|
||||
{
|
||||
this.filter = thisFilter;
|
||||
}
|
||||
|
||||
@ -552,7 +707,8 @@ public final class JiraDownloader {
|
||||
* @param theseComponents
|
||||
* The id(s) of components to show, as comma separated string
|
||||
*/
|
||||
public void setComponent(final String theseComponents) {
|
||||
public void setComponent( final String theseComponents )
|
||||
{
|
||||
this.component = theseComponents;
|
||||
}
|
||||
|
||||
@ -560,8 +716,8 @@ public final class JiraDownloader {
|
||||
* Sets the roadmap property.
|
||||
* @param thisRoadmap The roadmap.
|
||||
*/
|
||||
public void setRoadmap(final boolean thisRoadmap) {
|
||||
public void setRoadmap( final boolean thisRoadmap )
|
||||
{
|
||||
this.roadmap = thisRoadmap;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
11
jira/src/main/org/apache/maven/jira/package.html
Normal file
11
jira/src/main/org/apache/maven/jira/package.html
Normal file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>org.apache.maven.jira</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Contains utility classes to perform operations on JIRA installations.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
x
Reference in New Issue
Block a user