in src/main/java/org/apache/maven/plugins/jira/ClassicJiraDownloader.java [339:433]
private void download( final HttpClient cl, final String link )
{
InputStream in = null;
OutputStream out = null;
try
{
GetMethod gm = new GetMethod( link );
getLog().info( "Downloading from JIRA at: " + link );
gm.setFollowRedirects( true );
cl.executeMethod( gm );
StatusLine sl = gm.getStatusLine();
if ( sl == null )
{
getLog().error( "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 )
{
getLog().warn( "Site sent redirect, but did not set Location header" );
}
else
{
String newLink = locationHeader.getValue();
getLog().debug( "Following redirect to " + newLink );
download( cl, newLink );
}
}
if ( gm.getStatusCode() == HttpStatus.SC_OK )
{
in = gm.getResponseBodyAsStream();
if ( !output.getParentFile().exists() )
{
output.getParentFile().mkdirs();
}
// write the response to file
out = new FileOutputStream( output );
IOUtil.copy( in, out );
out.close();
out = null;
in.close();
in = null;
getLog().debug( "Downloading from JIRA was successful" );
}
else
{
getLog().warn( "Downloading from JIRA failed. Received: [" + gm.getStatusCode() + "]" );
}
}
catch ( HttpException e )
{
if ( getLog().isDebugEnabled() )
{
getLog().error( "Error downloading issues from JIRA:", e );
}
else
{
getLog().error( "Error downloading issues from JIRA url: " + e.getLocalizedMessage() );
}
}
catch ( IOException e )
{
if ( getLog().isDebugEnabled() )
{
getLog().error( "Error downloading issues from JIRA:", e );
}
else
{
getLog().error( "Error downloading issues from JIRA. Cause is " + e.getLocalizedMessage() );
}
}
finally
{
IOUtil.close( out );
IOUtil.close( in );
}
}