The Java articles you wish you'd read sooner

Interested in JSF 2, Google App Engine for Java, or Apache Mahout? This article is for you!

Wondering what happened in the world of Java development in 2009? Whether it's finding out how JSF 2 has changed, if Google App Engine for Java is stable enough for development, or what the fuss is over the Criteria API in JPA 2, you'll find it here.


Jenni Aloi (, Java zone editor, IBM

Jenni AloiJenni Aloi has managed the developerWorks Java zone since November, 2000. Though she often complains (about nearly everything), she is truly happy to have spent the past nine years doing what she does best: herding cats.

15 December 2009

2009 is coming to a close, and it's been an eventful year here at developerWorks. We converted our entire content library (more than 11,000 files) to a new, more dynamic article template and launched My developerWorks, our very own professional networking site. We also celebrated our 10th birthday, which was quite a milestone for those of us who've been here in the trenches for the duration.

With such heavy promotion of those milestones, the staple of dW — the great content we publish week in, week out — may have seemed lost in the shuffle. I thought I'd take this opportunity to direct your attention to several great articles and a few articles series published this year in the Java™ zone that you might have missed amid the commotion:

  • Groovier Spring by Scott Leberknight: Spring and Groovy make a powerful combination. Spring provides architecture and infrastructure, while Groovy adds dynamic capabilities. But this flexibility comes with a price. Let Scott guide you around the pitfalls as you take your applications into unchartered territory.
  • Easier testing with EasyMock by Elliotte Rusty Harold: Testing with real classes is ideal, but if you can't reliably and automatically test with the real class for any reason, then testing with a mock is infinitely superior to not testing at all, and EasyMock is an excellent — and open source — framework for the task.
  • Google App Engine for Java by Rick Hightower: In this three-part article series, Java technology author and trainer Rick Hightower gets you started with this robust and fun platform for Java-based development. But App Engine for Java is not without its faults, and Rick pulls no punches in pointing them out. If you're considering using this platform, you need to read this series.
  • Introducing Apache Mahout by Grant Ingersoll: Mahout co-founder Grant Ingersoll introduces the basic concepts of machine learning and then demonstrates how to use Mahout to cluster documents, make recommendations, and organize content.
  • Thanks for the memory by Andrew Hall: Learn what native memory is, how the Java runtime uses it, what running out of it looks like, and how to debug a native OutOfMemoryError on Windows® and Linux®.
  • JSF 2 fu by David Geary: Interested in what's changed in JSF 2.0? This series is an excellent introduction to this substantially updated API, and being on the JSF Expert Group, David Geary knows what's what.
  • Dynamic, typesafe queries in JPA 2.0 by Pinaki Poddar: JPA 2.0 introduces the Criteria API, which brings the power of typesafe queries to Java applications for the first time and provides a mechanism for constructing queries dynamically at run time. This article describes how to write dynamic, typesafe queries using the Criteria API and the closely associated Metamodel API.

Of course, I like to think that everything in the Java library— old and new, cutting edge and evergreen — is worth at least a cursory look, so I encourage you to check out something new, or revisit an older piece you may have missed. Better yet, subscribe to the My dW Java Lovers group or the weekly developerWorks newsletter to stay current. And if you're not yet a My dW member, go build a profile now and stay in touch with your technology peers!

I wish you a relaxing end-of-year transition and look forward to next year ... when the Oracle acquisition of Sun is likely to be complete. Stay tuned!



developerWorks: Sign in

Required fields are indicated with an asterisk (*).

Need an IBM ID?
Forgot your IBM ID?

Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.


All information submitted is secure.

Dig deeper into Java technology on developerWorks

Zone=Java technology
ArticleTitle=The Java articles you wish you'd read sooner