I loved this question/answers: http://stackoverflow.com/questions/144568/learn-c-from-open-source-code Would love all those great answers/links with the Java language instead!
Just check out the AllTime favourites at SourceForge, there's lots of stuff you can learn there.
Or go to the SourceForge Software Map, pick a category you like and add a filter: Require
->Programming Language
->Java
.
Enjoy!
JGAP - Java genetic algoriths package is a well-written open source project to implement genetic algorithms. They also have a JGAP grid area. It's well-written way you can learn about both Java, GA and grid programming.
I was reading the Beautiful Code book and it has a chapter on FitNesse which was very interesting and informative.
Also take a look at the Google Collections
muCommander Since it is a desktop manager, the domain it pretty intuitive ( we all know file manager pretty well ) , you can add code and see the results immediately because you already know what to expect.
While this is not universally true, the JDK itself has some great examples of excellent Java programming. In particular, I would point you to the source for concurrent collections like ConcurrentHashMap or ConcurrentSkipListMap. The source itself has a large set of internal (non-javadoc) comments and handles a lot of tricky issues. Great stuff.
I'm using XStream for several projects, and I've been through its source code on a few occasions. It has a clean and organized design that makes it easy to understand and extend.
Because it focuses on the serialization/deserialization of plain old Java objects, it covers a lot of key integrations that any Java programmer would benefit from knowing:
- XML
- Reflection
- Java Persistence API
- Annotations
- JSON
I've heared - but cannot verify it - that Spring is very well written. Since Spring is huuuge, I'm not sure which part exactly but I'd check Spring core. And learning more about Spring will certainly pay off in any case :-)
Recently I found a library that helps me alot in my works, it has framework for connectiong to data base a framework for reflect , also it has a class for adding method at runtime
you can read more about it here : https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=4d8031a4-58d3-4270-a160-6795db7b6bb5