in common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java [773:821]
protected TomcatManagerResponse invoke( String path, File data, long length )
throws TomcatManagerException, IOException
{
HttpRequestBase httpRequestBase = null;
if ( data == null )
{
httpRequestBase = new HttpGet( url + path );
}
else
{
HttpPut httpPut = new HttpPut( url + path );
httpPut.setEntity( new RequestEntityImplementation( data, length, url + path, verbose ) );
httpRequestBase = httpPut;
}
if ( userAgent != null )
{
httpRequestBase.setHeader( "User-Agent", userAgent );
}
HttpResponse response = httpClient.execute( httpRequestBase, localContext );
int statusCode = response.getStatusLine().getStatusCode();
switch ( statusCode )
{
// Success Codes
case HttpStatus.SC_OK: // 200
case HttpStatus.SC_CREATED: // 201
case HttpStatus.SC_ACCEPTED: // 202
break;
// handle all redirect even if http specs says " the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user"
case HttpStatus.SC_MOVED_PERMANENTLY: // 301
case HttpStatus.SC_MOVED_TEMPORARILY: // 302
case HttpStatus.SC_SEE_OTHER: // 303
String relocateUrl = calculateRelocatedUrl( response );
this.url = new URL( relocateUrl );
return invoke( path, data, length );
}
return new TomcatManagerResponse().setStatusCode( response.getStatusLine().getStatusCode() ).setReasonPhrase(
response.getStatusLine().getReasonPhrase() ).setHttpResponseBody(
IOUtils.toString( response.getEntity().getContent() ) );
}