Improvement of performance on http deployment
---------------------------------------------
Key: MNG-4857
URL: http://jira.codehaus.org/browse/MNG-4857
Project: Maven 2 & 3
Issue Type: Improvement
Components: Deployment
Affects Versions: 2.2.1
Environment: Any
Reporter: Andre Doherty
To my understanding, the current mecanism of deployment stands as :
- DeployMojo uses DefaultArtifactDeployer
- The latest relies on Wagon (mainly LightweightHttpWagon) to do the http
deployment.
- The deployment of one single file is implemented as HTTP PUT, done using the
HTTP client stack provided by the JDK.
When deploying an artifact to a remote repository, DefaultArtifactDeployer
first deploys the file itself, then the metadata (pom mainly + .md5 etc).
The drawback stands in the HTTP conversation (as implemented in the Sun HTTP
stack) : if the http headers doesn't contain the "Authorization" header
(assuming the remote part require basic authentication), then the remote will
return a 201 HTTP code, asking for a authentication, and therefore for a second
try.
Of course if we are dealing with a large artifact (war, ear) on a single
deployment it will have to be sent twice. (In a chain of deployment on the same
remote server, only the first one is impacted).
I see several tracks to improve the performance :
- set Autorization as a header (we know in advance that the HTTP will require
authentication, according to settings.xml, however, this assets that we do
basic authentication.
- reverse order on publication : publish the pom before the jar/war/ear itself
: if we need to retry, at least we dont have to resend dozens of megabytes.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira