10 Typical Problems in Enterprise Java Applications by Eberhard Wolff

Just had a look through some nice slides done by Eberhard Wolff (there is also a video in German, but I haven’t had the time to watch it yet). As Eberhard mentioned on his blog post, depending on the audience many people seem to be already aware of those typical problems. Then on the other hand I have seen sooo many projects and source code violating common sense and introducing exactly those common mistakes…

My personal opinion; especially the use of AOP and comprehensive testing should get more emphasize in businesses and education. Not sure if people will ever learn to write (Java) code that is capable of handling multi threading and transactions appropriately. But some of the other issues can defiantly be tackled by better education of software developers.

Anyways, a quite nice presentation, and even if you aware of most of these problems, getting them back to your brain might help during your next project. Thanks Eberhard!

If your maven site build is too slow

Today I stumbled upon a very slow site generation with mvn site. To be honest I didn’t really bother about having a look into tho log messages at first. But these messages should have made me conscious that something was going wrong:

[ERROR] Unable to determine if resource batik:batik-util:jar:1.6-1:compile exists in https://repository.jboss.org/nexus/content/groups/public/
[ERROR] Unable to determine if resource com.google.appengine:appengine-api-stubs:jar:1.4.3:test exists in https://repository.jboss.org/nexus/content/groups/public/

The message is quite clear, one of the report plugins (namely the dependency report plugin) tries to determine if resources are located within a given repository. If that repository doesn’t exist anyomore or is just terribly slow, your site build will be as well.

Thanks to Andy I figured out that I can easily swith that part off by providing an extra parameter to mvn site -Ddependency.locations.enabled=false.

Enjoy your faster site build, and do check your repository configurations regualary!