I revised this for 2.0.10 (needs to be propagated to 2.0.x and 2.1.x branches still), and the revision works with all wagon classes that have a setHttpHeaders method and where the protocol.startsWith( "http" )...it also avoids the need for an improved shade plugin to merge component configurations.
That was in: https://svn.apache.org/repos/asf/maven/components/branches/maven-2.0.10-RC, revId: 678784
Also, I revised the User-Agent integration test to setup a small ServerSocket and record the HTTP headers that were sent from WagonManager.getArtifact(..) directed at that server socket. I then compare this User-Agent header to information collected by the plugin that triggers the WagonManager call, and written out to the touch file. This information includes maven version (since the System property "maven.version" isn't present when the unit test is run directly using the -Dtest=... surefire parameter), java version, O/S name, and O/S version.
The User-Agent string itself has also been improved to be more consistent with the values used by other engines. See: