Skip to main content

What We Talk About

Posted by editor on January 28, 2008 at 7:40 AM PST

A number of JSF-related items

After focusing so much of the front page's attention last week to mobile and embedded issues, apropos of the Mobile & Embedded Developer Days, it only seems fair to start the new week by turning our attention back to the server side. Today, we've got a couple of items of particular interest to the JSF developer.

Is it a good time to be a JSF developer? It sure seems like it, though just how good is a highly subjective subject. A recent article on JavaLobby is sure to draw both attention and controversy, as contributor rhightower cites historical job listing data to claim JSF catches Swing as the number one GUI component model for Java:

JSF did well in 2007. Let's put it this way: If job demand for the Struts framework and JSF were a stocks and you invested in it in April of 2005 by July of 2007 you would barely break even with Struts but with JSF your investment would have grown 700% as of July 2007. (According to

Struts continues to do really well; it is still number 1. Yet after Struts, JSF is doing well and Struts growth is as flat as EJBs.

The article's graphs also show JSF listings as compared with other Java enterprise frameworks, including WebWork and Wicket. However, JavaLobby founder Rick Ross isn't yet convinced:

I'm going to go out on a limb here and suggest that I have doubts about the "number of jobs" equals "market leadership" relationship that seems to be the underpinning of this post and many others we have all seen over the years. Couldn't it be the case that Swing is still stronger, but employers are not having as hard a time locating Swing talent, so they aren't needing to place job ads? Maybe the employers have invested in cultivating Swing skills in their existing teams through training programs, so they have the staff to meet their needs?

As Rick raises the question about job postings as a measure of a library's popularity, it does make you wonder if that's a truly useful barometer of popularity. Not only does it miss the possibility of finding help through means other than job listings, as Rick notes, it also overlooks the concept that libraries may be popular outside of work contexts. Are people building small business or personal websites with JSF? Are they building small, informally distributed GUI apps with Swing? These uses might not show up with this kind of analysis.

But then again, there's certainly a sense that JSF has been growing strongly over the past few years, so it's not like the job listing numbers are inconsistent with popular conceptions. Maybe it's just a matter of how far you're willing to take the numbers.

Another JSF-related item in Java Today offers help to those frustrated with the complexities of writing a JavaServer Faces component: with the help of's JSFTemplating and Woodstock projects, you can write a component with only two files. The SDN article JSFTemplating and Woodstock: Component Authoring Made Easy offers a step-by-step guide, and suggests that the Scales project will host more of these kinds of components in the future.

Meanwhile, the NetBeans team is putting out an invitation for Second Life users: "please join us in Sun's Developer Playground in Second Life on Thursday, January 31 at 10am PST as Brian Leonard and David Botterill, NetBeans Technology Evangelists, discuss NetBeans IDE 6.0. Learn how this latest release enables greater developer productivity with a faster, smarter editor, multi-language support, and a customizable IDE."

Of course, there will be lots of follow-up from last week's ME conference, starting with the latest Java Mobility Podcast. The episode Java Mobility Podcast 35: Live from Mobile and Embedded Developer Days
features voices from the first ever Java Mobile and Embedded Developer Days. "We talked to many of the people presenting poster sessions on Sun Microsystems' Santa Clara campus as well as some of the contestants trying to win one of four SunSPOTs."

This week's Spotlight is on the ROME Modules Subproject, which combines a number of contributed ROME plugins into a single distribution for users who want to work with feeds from major RSS sources. Included modules allow you to work with such feeds at iTunes podcasts, A9 OpenSearch, Slash-based blogs, Yahoo! Weather and more. The subproject's wiki page serves as a guide to module-makers, as well as providing guidance to users of the modules.

In today's Weblogs, Ben Galbraith blogs
Of Fonts and Java2D.
"A poorly-rendered typeface can really ruin my day. This entry describes my past and recent efforts to get beautiful type in my Java Swing applications."

Meeraj Kunnumpurath offers the first of a series of blogs
Introducing Service Component Architecture (SCA).
"For the past twelve months, I have been involved with the Service Component Architecture (SCA) specifications and two of the open source SCA implementations. Now that SCA is gaining industry traction, I would like to use my weblog here to introduce the technology and demonstrate how SCA can be used for building standards-based enterprise class applications using service oriented principles and paradigms, through a series of weblog entries covering both the theory and practical aspects of SCA."

The latest tip from Arun Gupta is
TOTD #22: Java SE client for a Metro endpoint.
"Metro is the Web services stack in GlassFish. It is your one-stop shop from a simple Hello World to Secure, Reliable,  Transactional and .NET 3.0 interoperable endpoint."

In today's Forums,
mragunath seems to yearn for the old #ifdef, in
Any idea abt how to modify a java source code @ compile time?
"I would like to modify the java source code @ compile time like removing certain statements in the source file (say for example all the System.out.println statements). Also i would like to have a copy of the modified source file (i.e. the source file with all the System.out.println statements removed). [...] Are there any libraries which could be used to modify the java source code (like javassist which modifies the bytecode)? Can any suggest any ways by which this could be done?"

stanar offers some guidance for ME sound recording and playback in
Re: Java Sound.
"If we are talking about Java ME (Micro Edition), you should use JSR-135 component for sound issues. See specification here. Here's code example for recording. After recording you may playback recorded sound. Normally, you don't playback while recording, because it will definitely interfere with what you are recording on such a small device like mobile phone. But it may be also possible on some JSR-135 implementations to start playback from the stream being used for recording at the same time."

Following up a question from last week, ahmetaa offers some lightweight persistence strategies in
Re: please recommend a small-scale replicated database.
"If it is that small amount of data, here is what would i do if there is NO JPA: 1- use an in memory data structure of your own. this is the fastest. 2- use an object database (easiest to query, but no SQL). 3- use H2 or a similar embedded db with a simple jdbc abstraction. if there is JPA required, that is a shame.. the lightest weight one is toplink i think. Hibernate requires 10+ jars.."

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

A number of JSF-related items