ReportNG Updated – Version 0.9.2
ReportNG, the reporting plug-in for TestNG, is now up to version 0.9.2. The JUnit XML reporter introduced previously is now complete and there are also a few minor enhancements to the HTML report.
Maven Revisited: Fallacies and usefulness
The eternal love/hate debate around Maven has resurfaced again recently, triggered by Howard Lewis Ship’s denouncement of Maven following his experiences on the Tapestry project (InfoQ has a summary of the recent discussions). I’ve touched on this previously with a brief echoing of Charles Miller’s sentiments.
Meanwhile, Don Brown recently announced his one-man crusade to inject some much-needed common sense into how Maven works (just addressing the first 4 items on his list would make things much better). Don followed this up by applying yet more common sense, this time to how Maven works with plugins.
All of this activity and debate prompted me to reconsider exactly what it is about Maven that makes me avoid it wherever possible. It’s certainly not the convention over configuration. Maven’s conventions might not be to everyone’s taste, but the reasoning is sound (I employ a similar convention-over-configuration approach to Ant builds, using macros). The lack of documentation is definitely a contributing factor, and it’s certainly buggier than Ant. But in the end it all comes down to the dependency management and Charles Miller’s inescapable conclusion that it is “broken by design”.
Maven’s fondness for project dependencies scattered across continents fails to take into account many of the 8 Fallacies of Distributed Computing. Even ignoring the trust issues stemming from the outsourcing of your dependency-management, the more dependencies you have, the less likely you are to be able to access all of them at any given point in time. There will be failures beyond your control at some point.
Assuming that all of the repositories are available, you’ve then got to hope that somebody doesn’t upgrade a library that you depend on and introduce a bug into your application. If you haven’t taken the precautions to specify an exact version number, you could be in trouble. And if you have taken the precautions, why persist with this fragile nonsense? Why not just put the JAR files in the version control repository and remove most of the potential failure points? The same question occurred to Don Brown and he’s doing something about it (it’s point number 4 on his list).
So far, so negative. Are there any redeeming features of Maven? Well there is one use case where the dependency management actually makes a fair bit of sense: internal dependencies. By internal dependencies, I mean dependencies within an organisation. If your development team has multiple projects and there are dependencies between them, the Maven approach could be the solution. In this scenario, everything is within your control. The software is written by your developers and hosted on your servers that are managed by your admins.
This dynamic approach to dependency management is more flexible than copying and pasting different versions of source and/or binaries between projects. And if you limit it to internal projects, you can eliminate most of the downsides. Of course, you don’t have to use Maven for this. You may want to look at Ivy instead.
Finally back online
Well, after 2 and a half weeks, I’ve finally got a proper Internet connection again. The Pipex nightmare that I described previously carried on for nearly another week. Pipex’s assurances that my phone line had been released, allowing me to use another ADSL provider were, it seems, entirely fictional. This became clear 2 days after signing up with the new ISP. One final call to Pipex, this time to the more helpful people at the “Customer Retention” office, severed my association with them.
I had to wait 3 and half days after this to receive the vital MAC number that would allow the new ISP to take control of the phone line. This delay and the subsequent 7 days to connect with the new ISP were both due to the major bottle neck in the entire UK ADSL network, BT Wholesale. All the while that BT maintains its laggard monopoly on the infrastructure, the barriers to changing providers are too high for most people to bother. This provides little incentive for ADSL providers to compete on customer service since customer retention is all but guaranteed unless they really mess up.
Ofcom, the toothless regulator, recommends not to bother complaining if the switch-over takes less than 20 days. In the 21st century, when broadband Internet is a basic utility and is used by people to work from home, to buy their weekly groceries, and to communicate with friends and family, is such a delay really the best that we can do? I’m not sure that it would be considered acceptable in a less apathetic country.
