Refactoring to Patterns

Joshua Kerievsky put in an amazing amount of work developing the refactorings he has published in his recent book "Refactoring to Patterns". The catalog evolved on the Industrial Logic web site for years (probably seemed like longer to him). Joshua has a deep understanding of Design Patterns but has the discipline to not employ a pattern before he knows it will benefit the project he is working on. The book is a compilation of many of the smells that leads him to know that his code will be improved by the introduction of a pattern. We are featuring an excerpt from the book on Introduce Null Object. Pick up a copy of the book and join us for a bookclub discussion of "Refactoring to Patterns" led by Joshua himself.

Graham Hamilton announces J2SE Compatibility Test Sources Released
in today's Weblogs. He writes " Sun has just released the complete source for the J2SE Compatibility Kit (JCK) under a simple evaluation license. Here's what we're doing and why."

Michael Nascimento Santos has been working with others on a project to ease the development of web applications. In Announcing genesis Michael writes " Developing enterprise applications and desktop systems with the Java platform has always been challenging tasks. genesis is aimed to solve exactly these problems."

Vincent Brabant reports in on Javapolis 2004 University Day 1: JDK 5.0 In Action. "The best part of the JDK 5.0 in action was when they show a very simple but complete test framework that run every methods of a class having a @test annotation and indicating how much methods failed or success."

In Also in Java Today , if you have many short lived tasks that require their own thread, rather than create a unique thread for each task, follow John Zukowski's advice in his recent Core Java Tech tip for Pooling threads to execute short tasks. He demonstrates how to take advantage of the new pre-built thread pooling framework that is included in J2SE 5.0 as part of the java.util.concurrent package.

Steven M. Rubin talks about the process of translating his Electric VLSI Design System in Jan Heiss' article The Java Electric CAD Tool. It took a lot to convince Rubin to translate his stable C code to Java, he explains "I was pressured and persuaded to convert Electric to Java code. I wasn't convinced it was the thing to do, and I didn't become convinced until I began to use it. It was hard to justify translating a stable, 20-year-old large pile of code into a new language. But many people insisted that Electric could be much better in the Java language. It took a while before I finally realized that there would be some use in translating it."

In Projects and
Communities, the JCK is the required Technology Compatibility Kit (TCK) for J2SE. You can now download the JCK source code from the jck project under read-only terms for evaluation and understanding by the larger Java development community.

The Java Enterprise Community's Java BluePrints Solutions Catalog project had a new release. The
href="https://bpcatalog.dev.java.net/servlets/NewsItemView?newsItemID=1549">announcement
for more details about the many new solutions and applications included.

Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using
our news submission
form. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the
href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News
RSS feed.

Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e"> events submission
form. All submissions go through an editorial review before being
posted to the site.

Archives and Subscriptions: This blog is delivered
weekdays as the
href="http://today.java.net/pub/q/java_today_rss?x-ver=1.0">Java
Today RSS feed. Also, once this page is no longer featured
as the front page of java.net it will be archived along with other past issues in the
href="http://today.java.net/today/archive/">java.net
Archive.