I'm taking over the task(s) Bob described at the beginning of this post.
I've identified that we need to add the following 4 new jars to the repository:
And we also need to upgrade commons-collections.jar and commons-httpclient.jar from version 2.1 & 2.0.2 to version 3.1 & 3.0 respectively.
3.1 commons-collections.jar and 3.0.1 commons-httpclient.jar already exist in the repository, so I modified build/build-thirdparty.xml to include them. However, this caused compile errors in multiple testsuite modules.
Being new to this, I'd like to find out what is the standard procedure of handling this. Should I attempt to fix the testsuite to cope with the new version (not sure about the magnitude)? Or is it ok to include multiple versions of a jar file in the thirdparty directory (so only the admin-console's htmlunt test uses the new version, everything else remains the same)?
Any other suggestions?
Its not ok to include multiple versions of a library in the main build. If a component needs another incompatible version is needs to be pulled out the build and integrated as a binary component with its conflicting version isolated via class loader scoping.
If the error is due to changes in the commons httpclient, what are the changes causing problems? Updating the testsuite would make it incompatible with the 4.0 branch code.
The new HttpMethod.getResponseBody() now throws an IOException which needs to be caught or declared.
Taking your advice, we'll be maintaining the two incompatible jars under the project directory and load them from there. Since we're doing this, we'll probably also store the four new jars at the same location rather than add them into the the repository.