Java, much like any other open source system, suffers from the paradox of choice - too many choices confuse people and makes them like the overall product or system less. There are numerous Java packages out there that do a number of things and it sometimes becomes very difficult for a developer starting on a project to figure out which combination of libraries are needed to meet the requirements.

Here's a list of interesting and useful projects that I have come across so far, ordered by the specific business need. While there are a number of comparison sites for libraries within a particular group, this is more of a subjective view of the libraries that I prefer.

Business Need Package
Validate US postal information (City, State, Zip) JPostal
Unit testing module JUnit
System or Integration testing with a Wiki-like interface - very helpful for transactional systems Fitnesse
Application framework without the overhead of J2EE Spring
Logging mechanism Log4J
Process Microsoft Office Documents Apache POI
PDF creator / generator iText
Reporting Engine Jasper Reports
Database mapping Hibernate
Search Engine Lucene