Skip navigation

Misunderstood Blog

Posted by kfarnham Jan 30, 2009

Why do you do open source?

Earlier this week, Kirill Grouchnikov blogged on Why I Do Open Source:

Curiosity, community and control are my answer to the question why i do open source. Combined together, they provide a unique and ever changing blend of intellectual satisfaction from the ever expanding sea of knowledge that is waiting at your fingertips. Open your mind and be free to learn.

Kirill tagged some friends to prod them into saying why they develop OSS. Andres Almiray writes:

I basked in open source goodness for many years while staying on passive mode, pretty much every paid work I did during those years had a big percentage of open source software/tools/languages as constituent. It eventually hit me 3 years ago: no man is an island. We all are connected somehow, either through action or inaction. It is so easy to stay on the receiving end of the open source movement (nothing wrong with that), but it is much more fun when you get involved with it in any way, be it participating in forums/discussions, sending patches/suggestions, being a developer or just by simply being an advocate.

And in the weblogs section of yesterday's front page, Eitan Suezoffered his reasons:

In the end, it's more fun to construct software that you can share with others. It's fun to be and feel like you are a part of a community. I like belonging to a group where what everyone has in common is a passion. In this world, we are often categorized by our ethnicity, our birth. This is better.

And how about you? Why do you do open source?

In Java Today,The Aquarium passes along word of a new community event coming in March. "The day before CommunityOne East, Tuesday 17th March 2009, the OpenSSO Community will be gathering just a couple of miles down Broadway at New York University's Kimmel Center for the very first OpenSSO Community Day. This is a unique opportunity for OpenSSO contributors, deployers and users to get together for a whole day of presentations and discussion in an 'unconference' format - the only fixed agenda item right now is to figure out the agenda."

The latest Core Java Tech Tip illustrates Making Progress With Swing's Progress Monitoring API. Author Jennie Hall writes, "in this tip, you'll learn how to use Swing's progress indicator support to monitor and report on the progress of long-running operations. It is a good practice to keep users informed as they interact with an application; one way to do this is with a progress bar."

What challenges are businesses facing in identity federation? How does OpenSSO's virtual federation capability tackle them so that your identity and federation infrastructure is simple, secure, and standardized? The SDN article Enabling Virtual Federation With OpenSSO, Part 1: Introductionelaborates on the challenges businesses are facing with identity federation. The article introduces OpenSSO's virtual-federation capability and its benefits, along with an example of the process flow.

The latest Poll asks "What do you think of the current JSR-316 (Java EE 6) proposal?" Cast your vote on the front page, then visit theresults page for current tallies and discussion.

In today's Weblogs, Xuan Yun looks at how to Pass Parameters to Painters of Synth Look And Feel. "A painter class is still a Java class, we need to compile it every time once we need to change a little details in the class, so it is better to design a painter class that can accept parameters, which can be easily changed in the XML."

In JSP on GrizzlyWebServer, Sebastien Dionne shows "how to use JSP with GrizzlyWebServer. The jsp compilation is handle by JSPC."

Marina Sum has a few more details about the pre-CommunityOne event in March 17 is OpenSSO Community Day in New York City. "Organized by Sun identity architect Pat Patterson, OpenSSO Community Day will take place in New York City on Tuesday, March 17, starting at 9:00 a.m. It's an unconference setting and attendance is free."

In today's Forums,kschaefe makes the case for enumeratating valid behavior constants, in Re: The SwingConstants Problem. "I do believe that some kind of limiting metaphor, such as enum, is the correct thing. This is API developers giving API users a limited, defined set of constants to use to specify object constraints. It's not a perfect solution, nothing is going to be. We have to balance API developer needs with API user needs. In this case, I see nothing wrong with closing the loop and preventing API users from inventing their own types. The advantage for the API user is clarity. It's more clear when I specify that classes take Box constants or Page constants, than taking an int. It's self-documenting."

tjwolf asks about the future of SwingX and its Java version compatibility in Re: swingx problems with Nimbus L&F? "Any idea when you'll be looking at 1.6 compatibility? With the recent postings regarding Sun not supporting swingx much (at all?) anymore, I'm curious when/how newer versions will come out. Even when Sun was actively supporting swingx, there really never seemed to be a "stake in the ground" (i.e. a 1.0 release) that one could use as a stable product. That's probably why I encountered that API change just by going from one weekly build to a more recent one."

jmelvin explains how, when, and why Java QuickStarter runs, in the followup Re: Java Quick Starter IO activity question. "I can confirm that JQS is disabled for Vista by default, as we see no benefit. SuperFetch in Vista is much more efficient than the prefetching on XP. I can also confirm that the decision to implement JQS was not a marketing decision, but rather a engineering to improve the cold/warm start times forJava applications and applets. We've carefully considered how much to prefetch to the disk cache to keep Java fresh for the next invocation."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Why do you do open source?  

No Regrets Blog

Posted by kfarnham Jan 29, 2009

Is using lots of static methods a form of functional programming, or just wrong?

After a long absence, our "(Not So) Stupid Questions" series returns with an entry that could be pretty controversial.

We often tease out these questions with some "first thoughts" to frame where the question is coming from and what the submitter has done to work through the problem by him- or herself. In this case, we were working with a pretty significant language barrier, and chose to leave it shorter and, perhaps, more wide open.

We have one application that uses Struts.

In the DAO, where we write the business logic, we made all the methods static.

By definition, statics are called by their class name, so in our Action and DAO classes, we just call these static methods.

Presumably, one quick answer is that this is just wrong, considering that the "O" in DAO is "object", and using all class methods literally means that you're not using the object, per se. But is this the only answer? After we've seen functional programming gain momentum in the last few years, along with screeds about rants about how Java wants you to make everything a noun, then is it at least possible that a verb-only approach might be appropriate in some contexts?

Or, going meta, does the fact that the question is even being asked suggest something wrong with our enterprise patterns? Are they not easy enough to follow? Do they not provide obvious value?

Please let us know what you think in the comments to this Feature Article, (Not So) Stupid Questions 21: All Statics . And if you've got a not-so-stupid question you'd like to see featured, send it to  

In Java Today,Real Invaders, a project, is a game where you physically move your phone to put the target on the spacecraft to fire. The game does not use the accelerometer; instead, it uses the camera for motion tracking. Real Invaders works on Nokia mobile phones that have Symbian OS series 60 and 240x320 screen resolution pixels, like the N95, N73, 6120 classic, 6110 navigator, etc.

More than a year on after release of version 1.1, EoD SQL has been released. EoD SQL is "a super light-weight Object <-> Relational mapping layer. Based originally on the java.sql features of Java 6 beta (features later removed), EoD SQL has grown enormously from where is began, but has stuck to it's core principal of 'Get out of my way and let me talk to my database'."

The Aquarium has posted details about this week's Webinar on Sailfin. "This week's GlassFish webinar is on Friday, Jan 30th,9:30 am PT (note the different date and time). Binod PG and Sreeram Duvur will provide an overview of SailFin, the Open Source Communications Server in GlassFish that supports the converged web built on HTTP and SIP. The presentation will include background material on the SIP world."

In today's Weblogs, Eitan Suez Why I do Open Source. "First Kirill blogged on "Why I do open source" and then invited Andres and Alex to do the same. So a chain reaction is in motion. Andres published his version, and tagged me and three others. So here's my entry,... "

Xuan Yun shows how to create Embedded Objects in Synth Look And Feel. "We can embed Java objects into Synth XML file, the embeded objects can be referred as properties."

Sadly, Marina Sum says Goodbye For a While. "I'm no longer with Sun: It was a wonderful ride. Will keep posting once in a while."

In today's Forums,kschaefe spells out the limitations and hazards of int constants in Re: The SwingConstants Problem. "I guess my introduction was a little wonky. Let me reexplain. How about JTabbedPane.setTabPlacement(int)? It only takes SwingConstants TOP, BOTTOM, LEFT, and RIGHT. It throws an IllegalArgumentException if the value is not one of those constants, but the code compiles and without looking at the JavaDoc how do I know that any integer isn't valid. It's the standard problem of int-constants. It's easy to replace such constants with a single enum."

akarl16 weighs in against 6u10's "Quick Starter" inRe: Java Quick Starter IO activity question. "I agree with the complaint here. I have turned JQS off on most of my systems now (Windows XP) due to the massive number of page faults that it causes. From the documentation I've read and what I've observed, Java is essentially launching itself constantly so that launching it in the future is faster. This makes me slightly angry. If Java is pulled out of RAM by the operating system then it probably was in the overall system's best interest to have it pulled out of RAM. I don't agree that Java runtimes are privileged enough that they should begin overriding what my operating system is working hard to accomplish."

Finally, Glen Mazza offers some ideas for SOAP logging in Re: Is it possible to send parameters/variables to a Handler. "If you really want it SOAP call-specific, perhaps placing an implicit SOAP header for "logging" in the SOAP request message would be a good solution. You can have wsimport generate an extra parameter for you to place the logging value in."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Is using lots of static methods a form of functional programming, or just wrong?  

Never Touch That Switch Blog

Posted by kfarnham Jan 28, 2009

Switch on string, multi-exception catch, and other sweet small changes

One of the Java 7 features announced by Mark Reinhold at Devoxx '08 is a yet-to-be-numbered "small language changes" JSR. This is the catch-all for a lot of the little stuff many of us have wanted for ages: a switch statement that works with strings, the ability to combine multiple Exception types into a single catch if we're going to handle them all the same way... little things that don't have a high potential for breakage and would improve productivity. Still, what's going into that JSR, and even the process for getting there, has dangled as a to-do for months.

But the process takes another step forward today, as the doors are being opened to change proposals. In his blog, Joe Darcy announces the opening of the "Small Language Changes for Java 7" project in Project Coin: Small Language Change Proposal Form Available.

The name of the OpenJDK project hosting small language changes for JDK 7 will be Project Coin. Besides a coin literally being small change, to "coin a phrase" is to create a little bit of new language. The website for the project and its mailing lists will come into being this February. In the mean time, the initial form to use to propose a language change is listed below. If you have an idea for a change, please work on the form and post it the Project Coin mailing list once that gets started.

If you're proposing a change, be sure to keep in mind the criteria for small language changes announced earlier. In general, changes that get into the JSR will be those that can't be accomplished through other means (tooling, libraries, etc.), and whose benefits far outweigh their implementation costs.

Also in Java Today, the JCP has announced that a Special Election will be held next month to fill an open seat on the ME executive committee. The seat is for a term ending in 2010, replacing Intel. Nominations will be open from February 3 to 17 to all JCP members. Would-be nominees should investigate the JCP's Executive Committee Info page to understand the process and responsibilities, The election itself will take place later in February, after the nominations period.

Ed Ort and Carol McDonald continue their SDN series on enterprise application development in GlassFish and MySQL, Part 3: Creating and Using a Web Service. "In Part 3, you'll learn how easy it is to convert the controller layer of the web application, that is, the layer of the application that performs the CRUD operations -- into a web service. You'll also learn how to create a client for the web service. As was the case for the web application discussed in Part 2, the web service discussed in Part 3 uses GlassFish, MySQL, and the Java Persistence API."

The latest Java Mobility Podcast is Java Mobility Podcast 69: Live from Mobile, Media & eMbedded Developer Days, for which Daniel Steinberg did a walk about the floor at the Mobile, Media and eMbedded Developer Days, soliciting comments from the various attendees.

In today's Weblogs, John Reynolds wonders if BPM is Programming or Software Engineering? "There's an interesting thread going on over at InfoQ regarding the relationship between BPM and Software Engineering. One subtext of this discussion raises a wider question - When is it "Programming" and when is it "Software Engineering"?"

In Networking: Ensure data integrity in a decentralized storage system, Alois Cochard wonders "How to ensure data integrity in a public decentralized storage system? This article describe a possible solution, this concept gonna be implemented in my java decentralized computing platform project."

Finally, Fabrizio Giudici proclaims God bless Stephan Janssen and BeJUG :-) "The 2009 edition of Devoxx (former JavaPolis) will be held in November (16-20) instead of December, as shown in the web site of the conference (and announced in the latest newsletter)."

In today's Forums,jacobspd describes a Java2d Hardware Scaling Visual Artifact Problem w/Bilinear Interpolation. "When drawing an image to a Graphics2d using the Direct Draw / Direct 3d pipeline, I'm encountering an odd issue with bilinear interpolation: the bilinear interpolation seems to be applied to every 256x256 block of the source image separately. This results in a "seaming" artifact at the borders of each 256x256 block. Within each block, the interpolation makes sense, but there's a sharp discontinuity where the blocks meet. The artifact is always present where the 256x256 block boundaries occur in the source image, regardless of how large or small the image is scaled on screen. Disabling the DirectDraw pipeline eliminates the artifact. Is this a known problem? Is there an easy workaround?"

kamre has a Java Quick Starter IO activity question. "My question is about jqs.exe IO activity: it seems that it reads about 8Mb from disk every 30 seconds, is this the intended behaviour? Just look at the history graphics (after several minutes of idle): All this IO peaks were from jqs.exe. So it is the only process in the system with such IO activity when computer is idle. And that is rather strange. Probably this not a question for desktop computer, but for laptop this IO activity is not acceptable (I have to turn off JQS on laptop)."

Finally, apena has some Doubts about LWUIT & MHP STB. "I saw the demo of your javatv project and I think it


Let Me Entertain You Blog

Posted by kfarnham Jan 27, 2009

A strong outside review for JavaFX

The Java world could use some good news this week, and just might have gotten some from eWeek's Chief Technology Analyst Jim Rapoza. The abstract for his review, Sun Muscles into RIA Space with JavaFX, begins:

Sun Microsystems rolls out JavaFX to challenge Adobe AIR and Flex, as well as Microsoft Silverlight, in the highly competitive rich Internet application space. Java has always had many of the aspects of RIAs, and JavaFX offers several benefits, including use of the Java run-time and the underlying Java code.

Pretty good for a source that's anything but a Java lackey (indeed, this week they're also wondering aloud whether Java is to blame for Sun's recent layoffs). So what makes for the good review of JavaFX? Actually trying it out, apparently:

To get started developing with JavaFX, I went to and downloaded all of the different free tools for building JavaFX applications. These tools include NetBeans IDE 6.5 for JavaFX 1.0, the JavaFX 1.0 Production Suite and, of course, the JavaFX 1.0 SDK.


In general, I found NetBeans IDE 6.5 for JavaFX 1.0 to be a handy tool for learning how to build and edit JavaFX applications. Working hand in hand with the included sample code and the tutorials available at, I was able to build several simple JavaFX applications.

The JavaFX script code itself is a fairly clean declarative syntax that should be familiar to any developer who has worked in other RIA platforms, who develops AJAX Web code or who works with other advanced Web development systems. The broad set of tools also makes it easier for graphics-oriented developers to work in conjunction with classic Java developers.

It's not all hugs and kisses. He notes the obvious absence of JavaFX Mobile, and dismisses FX's audio and video capabilities as "very basic when compared with the much more robust and flexible media capabilities in the Adobe platforms." Still, in the big picture, eWeek concludes that JavaFX is genuinely competitive: "The JavaFX platform shows promise of being a very important player in the burgeoning RIA category, and it compares very well with the 1.0 releases of Adobe's and Microsoft's RIA platforms."

Also in Java Today, Kirill Grouchnikov has announced the release candidate of Substance 5.1 and the release candidate of Flamingo 4.0. The new version of the Substance look-and-feelreworks the Office Blue and Office Silver skins, improves support for disabled and themed icons and for very large fonts, extends tracing of EDT violations and more. The new version of the Flamingo Component Suiteprovides deep improvements to the ribbon, among other improvements. Both projects expect to reach their final release on February 6.

We mentioned it yesterday, but it's important enough for a re-ping: JSR 316, the "container JSR" for Java EE 6, has entered public review, and is available for download. This JSR defines both the full set of JSRs in the EE 6 platform, as well as a "web profile" subset. Roberto Chinnici provides an overview of the proposed spec and the reasoning behind it in his blog. The public review started on January 22 and will continue through February 23.

In today's Weblogs, Sergey Malenkov answers the important question How to format a string? "Sometimes users need to prepare their data for output. Java provides support for layout justification and alignment, common formats for numeric, string, and date/time data, and locale-specific output. However, the JavaFX language reference just briefly mentions this functionality."

Ricardo Liyushiro Chikasawa briefly recaps Campus Party 2009 in Brazil. "The campus party last year, brought together a large number of Internet users, developers, bloggers, adding more than 4,000 subscribers. This year we more than 6,000 participants in one event."

Finally, Xuan Yun shows how to Integrate Your UI Class into Synth Look And Feel. "Synth look and feel provides the flexibility to customize the component's rendering and behavior. We can implement our own UI class and integrate it into Synth look and feel."

In today's Forums,woel hopes to develop a EJB application as REST client. "I have developed a small rest client which consumes a rest service and writes to db. Now I would like to move this rest client into a ejb application so it can be triggered by for example a timer event. I could easily take all my code and call from a stateless ejb. What I cannot really figure out is how to best configure the webservice url. I wouldn't want to put it in a constant and even within the ejb.xml it seems a bit static. Should I create some kind of custom jndi resource that hands me the connection to the rest server?"

Jacob Kessler explains when not to worry about GC, in Re: Garbage Collection in GlassFish. "As long as you aren't having Out of Memory errors, or spending an excessive amount of time collecting garbage (to the point where service quality is degraded), everything is working as intended. The garbage collector will allow the heap to fill up before cleaning out unreachable objects, so reaching the full 1024MB of heap isn't a problem. The point to be worried is if you are either leaking memory (so that eventually the entire heap is filled and you get an OOM error), or if the garbage collector ends up degrading performance. Are either of those happening?"

sdv0967 is looking for information on WSIT transactions. "Could someone point me to the resource where I can get a full picture about WSAT/WSCOOR services: how they're implemented in GlassFish, when and how they invoked by other GF/WSCOOR instances in distributed WS transactions? If there is no such resource, could someone provide more info on how to use WS transactions?"

Finally, rogerd_dev bemoans the challenges of getting ME apps to users in some parts of the world, in the followup Re: Do you guys agree that J2ME is dying?. "It troubles me that J2ME in the U.S. depends on the carrier supporting down-loadable apps. My Sprint phone runs (free) Java apps from many different sites, and also apps I can write on my own. I don't give up on Sprint for this reason, although they might go out of service soon! My family runs with Verizon, and none of their phones can take new Java apps. All they can do is purchase apps from the carrier app store, and I do not actually know if they are Java or native code. When I show off Java Google Maps in their store, they admit that their phones do not allow such a downloaded app."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

A strong outside review for JavaFX  

Phoenix From The Flames Blog

Posted by kfarnham Jan 26, 2009

Glazed Lists are back, but did they ever leave?

Got a great e-mail over the weekend from the Glazed Lists guys, Jesse Wilson and James Lemieux. They alerted me to a new release of Glazed Lists, the Swing lists and tables library that a lot of Java Desktop developers absolutely swear by, and here's the front page blurb I adapted from their release announcement:

The Glazed Listsproject has released version 1.8.0 of the popular library for list sorting and filtering. "The release has better integration with Swing, SWT, Hibernate, OSGi, Maven and SwingX. Filtering has been refined, with improved support for international languages and matching support for regex and search-engine style qualifiers. Some EventLists have new features, including runtime manipulation of the FunctionList function and GroupingList comparator. There are new classes for working with user input, including TransactionList and undo/redo support. The release fixes several bugs."

Now here's the discussion point. 1.8.0 is the first release of GL since 1.7 way back in August 2006. Jesse writes:

James and I just released v1.8 of Glazed Lists. This was the first release since 2006. A lot has happened in that time: SwingX got really big, then got quiet, JavaFX was announced and released, the beans bindings JSR came to life and subsequently died.

So there's all this buzz for all of these new projects, and we're still sort of chugging along, quietly kicking ass. What do we do to generate buzz when our project is stable, and the number of new features we add is diminishing from release to release?

When a project hasn't released for two years, does that mean that it's abandoned? How do developers deal with projects that are stable?

They make a really good point. GL has a lot of fans, and has been a stable technology for a long time now. The guys aren't going to throw in a bunch of ancillary "features" if they've largely completed what they set out to accomplish. In other words, they haven't had a release since 2006 because they didn't needa release in that time, and neither apparently did their users.

But given that, how do you tell a successful, stable project from one that's been abandoned? A few months back, when Sun's Sonya Barry was looking for abandoned projects to archive and get out of the way of more active projects, she found that it took a combination of metrics -- last checkin date, activity on lists or forums, number of downloads, history of previous releases -- to be able to make a good call on whether a given project was mature or abandoned. And obviously, that's not something you want to get wrong!

Do we reward projects that do lots of little releases, and neglect those that don't need to? What other projects, mature and not needing a lot of new work, are out there and deserving of some attention?

Also in Java Today, the latest edition, issue 189 of the JavaTools Community Newsletter is out, with tool-related news from around the web, a new community project (Hex-Editor), a graduation (FindBugs-IDEA), and a Tool Tip about creating project dashboard with Sonar.

The Aquariumpasses along the announcement that WebBeans is Dead. Long Live Java Contexts and Dependency Injection!"WebBeans is no more; the specification created by the JSR 299 Expert Group (under Gavin King) has been revised substantially and has been renamed to Java Context and Dependenty Injection. Perhaps a less catchy name but, as Gavin indicates, this has been done... better reflect the fact that the focus of 299 is the definition of services that apply to all EE component types, rather than the creation of a new component model. Check out Gavin's announcement for an overview and download the draft from the PRD page."

The big changes in JSR-299 are just part of the status updates summarized in Roberto Chinnici's Java EE 6 Platform Public Review, topping today's Weblogs. "The public review for JSR-316, the Java EE 6 Platform JSR, started yesterday. The review will last 30 days, ending on February 23. The email address for feedback hasn't changed: it's"

Masood Mortazavi uses his blog to take a look at The Apache OFBiz Book "Every once in a while I get asked to review a book. This time it's Apache OFBiz Development: The Beginner's Tutorial by Jonathan Wong and Rupert Howell."

Finally, Raghavan "Rags" Srinivas considers Cloud Computing and Java, saying, "I am a beneficiary (or victim?) of the cloud computing hype (or reality?)."

This week's Spotlightis on Zero, a port of OpenJDK that uses no assembler and therefore can trivially be built on any system. The goal of this project is be to be able to build a TCK-compliant OpenJDK of reasonable performance on any platform with no additional porting work. The interpreter part of Zero is known to work on PowerPC (32- and 64-bit), x86-64, IA-64, ARM and zSeries. Zero is currently Linux- and GCC-specific, but supporting other operating systems and compilers is one area in which contributions are particularly welcome. Work is currently under way on an LLVM-based JIT known as Shark.

In today's Forums, Ryan de Laplante wonders when he'll see a GlassFish v3 embedded in Maven? "Will I be able to add a dependency line in a maven web project for GlassFish v3, and configure a plugin that enables people to start glassfish and run my application like they can do with Jetty today? I want someone to be able to check out my project from subversion and run a single command to download dependencies, compile, package, and deploy into an embedded GlassFish v3, and open a web browser pointed to my app."

shagus complains of some JavaFX missing components. "Hi. I heard that JavaFX 1.1 will be released in February. I was wondering whether or not the following components would be included: TextArea, Table, PanelGid, BookPanel. The current version is useless for any kind of development, except for toy apps."

Finally stottle figures out some BD-J drawing concepts in Re: Question on how Paint() and layers work in BD-J. "I think I answered my own question. The requirements/documentation for BD-J state that there are multiple planes for content. The background plane, for a background image or animation, a video plane, which holds both video and presentation graphics, and a graphics plane for menus and stuff. So the api's, which I still don't have a good handle on, will be specific to one or another plane. The text/button/UI stuff created by java ME will be painted on the graphics plane. The player (or player software, in the case of TMT) will control the creation of the single buffer displayed, but in order to follow the BD-J requirements, will combine the information on the three buffers to generate the display buffer."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Glazed Lists are back, but did they ever leave?  

Sooner Than You Think Blog

Posted by kfarnham Jan 23, 2009

A first look at JavaFX Mobile

When JavaFX debuted last fall, JavaFX Mobile was absent from the ceremony, with a FAQexplaining that "JavaFX 1.0 platform includes support for developing JavaFX Mobile applications only for the mobile emulator. The JavaFX runtime for mobile devices will be released in Spring 2009."

Well, Spring's not that far off. Are we getting closer? As a matter of fact, yes. In fact, this week, we got our first real look at JavaFX Mobile on the device.

In his blog WidgetFX @ M3DD Conference, Stephen Chin recaps the JavaFX Mobile presentations at this week's Mobile, Media, and eMbedded Developer Days. Posting pictures of presenters running JavaFX Mobile on actual devices, he writes, "the official release is due out in February, which will include full support for deploying JavaFX applications that use the common profile to mobile devices. The JavaFX Mobile team has been super busy cranking out the last few bits for the upcoming release, but were at the conference in force, armed with a myriad of devices to show the platform capabilities."

So, it's real, and it's coming. The next thing to watch for is a more complete idea of how far JavaFX Mobile will take you. We'll keep an eye out for more blogs, videos, and/or slides.

Also in Java Today, the incubated Rakshak Network Protocol Analyzer project is a GUI based project based on network packet analysis. The project provides analysis of all the network packets transfered from/to your system. The filteration of Packets can be done by source or destination IP address, source or destination port, etc. The project supports many interfaces, including ethernet, PPPoE, wifi, USB, WLAN, etc. 150 protocols are identified, including SCTP, TCP, UDP, ICMP, ARP. NetBIOS, IPX, Vines, GRE, OSPF and many others.

JSR 303: Bean Validation is currently in the middle of its public review. This JSR uses annotations (optionally overridden by XML descriptors) to define a metadata model and an API that extends the JavaBeans object model. "This work will address the need of the Java community for standardized validation meta-data and a standard validation API. This meta-data will be valuable across a number of application domains, from Swing desktop applications to web applications and the persistence layer." The public review ends February 9, with a public review ballot running from February 3 through 9.

Today's Forums, start out with some beginner questions, like embedded's From Windows Programming to Mobiles. "I have alot of programming experience in C#.NET (for Windows) and C (microcontrollers). I have been doing Java for Windows for some time (it is quite similar to C#.NET). I would like to start writing Java applications for mobile phones. I have no experience in programming for mobiles though. What tips do you suggest, and how steep is the learning curve?"

uckamello wants to get started with clustering inGlassfish cluster: how does it work? "I'm new glassfish user. I've created a new cluster with using of two machines and have deployed an application (with a lot of threads). Tell me please how can I define which part of these threats is performed with the first machine and which part is perfomed with the second machine if both of them work. Is there any such type information in logs?"

janmueller wants to improve the Glassfish v2 Output (logging) in Netbeans. "When developing EJB-Applications with Netbeans it is quite annoying that the server output is very detailed. After deploying you dont notice at once if the deployment was correct and the amount of Output isnt really helpfull. (Especially as we use Netbeans/Glassfish to teach EJB/WebServices and the students only use the software once in two weeks). Since Netbeans 6.5 Glassfish v3 is included, and there the output seems quite decent. Is there any way, to change the output of Glassfish v2 that it looks more glassfish v3'ish?"

Finally, saturon is thinking aloud about a way to lighten an LWUIT app in Internationalisation: Fonts: All-alphabets-in-one performance tip. "I was wondering if any of you have recommendations regarding the performance of bitmap fonts on different devices. I am facing the question, if I should group many european language alphabets into one Bitmap font and therefore ease the deployment/distribution or to make separte bundels for different alphabets and maybe improve performance."

Speaking of beginners, the latest Poll asks "Which Java specialization would you recommend to a new Java programmer?" Cast your vote on the front page, then visit the results pagefor current tallies and discussion.

Today's Weblogsbegin with A Call to Fix the JCP Oberver Status from Cay Horstmann. "In this blog, I report on my disappointing experience with the JCP observer status, and suggest that another dose of glasnost is needed to fix the process."

In Mirroring to external Maven2 repository fixed, Kohsuke Kawaguchi reports that the " Maven2 repository is back to normal."

Finally, Sebastien Dionne shows how to block the bad guys in Grizzly : Drop connection for banned IP. "I want to show you how you can block IPs in your Grizzly server. I pretty sure that you can found lot of reasons why you could want that. I'll use a list from as input for my demo. What you have to do to close the connection from client that isn't wanted is pretty simple."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

A first look at JavaFX Mobile  

Round and Round Blog

Posted by kfarnham Jan 22, 2009

Hudson phones home with usage statistics

You probably don't need us to tell you how impressive and how popular Hudson is. A 2008 Duke's Choice Award winner and currently a Top 10 project by membership, accesses, and hits, it's a widely-deployed continuous integration server used throughout the Java world.

But creator Kohsuke Kawaguchi was interested in knowing where and how people are using it:

Starting Hudson 1.264, Hudson has an option of sending usage statistics. This was released 12/16 last year, so it's been about a month. So I run some data analysis over the data that's collected so far.

First, data is filtered to eliminate one off installations that don't appear to be a long running installation. That is, I only counted installations that kept sending the usage data for more than 3 day span, within last 2 weeks.

This filtering left me with 2127 installations.

With access to about 16% of the active, installed Hudson base, Kohsuke mines the data in his new blog, Hudson usage analysis. In it, he reports on what versions people are using, how many jobs each instance is processing, whether people are using distributed builds, what plug-ins people are using, what operating systems and Java versions Hudson is most frequently run on, and more.

It's interesting data, and given Kohsuke's open and benign presentation, at least one user has replied in the comments that they're now willing to turn on the "phone home usage info" checkbox.

Also in today's Weblogs, Wolfgang Zitzelsberger stacks Swing widgets in Swing Internals: Paint Order. "Ever wondered how to control component paint order (within a container) without touching Z-Order? This article describes some internals and how to take over paint order control."

Sekhar Vajjhala works through a migration challenge in JBoss to GlassFish : taglib-location. "Recently, I came across the following JBoss -> GlassFish migration issue involving taglib-location in web.xml. Here is how I dealt with it."

In Java Today, Daniel Lopez follows up his look at implementing business logic in different JVM scripting languages with a new assessment of the performance of those approaches. In Separating Concerns: Business Logic Implementations Performance, he compares Groovy, JavaScript, JRuby, Jython, Scala, and Java (with a variety of persistence libraries), assessing startup time, performance when working through small and large result sets, and concurrency.

In a speedy reply to Tuesday's feature article, Javalobby has posted Andy Pemberton's In Response to JSR-286: The Edge of Irrelevance. "All-too-often portal is an after-thought: first came Spring MVC, then came Spring Portlet MVC; first came JSF, then came a new spec (JSR301 - the portlet bridge) to make JSF work in the portal environment. As frameworks like JBoss Seam are solving the truly challenging problems with web applications (contextual state management, back button, multiple browser windows), portal lags behind, requiring patchwork to support fundamental pieces of the new JavaEE."

TheServerSide provides strategies for connecting modern Java EE applications to legacy mainframe systems in Tom Laszewski's SOA and the Mainframe: Two Worlds Collide and Integrate. "So, why do you care about these outdated, primitive mainframe systems that are brittle and difficult to work with. You are a Java/J2EE developer using web services, BPEL process managers and ESBs to achieve you job on a daily basis. According to a survey by the Software Development Times "..mainframe applications show up in 47 percent of SOA applications...". This means if you are involved in an SOA project there is almost a fifty percent chance you will have to 'deal with' a legacy mainframe system."

In today's Forums, Shai Almog discusses the design and necessary compromises of LWUIT's media support in Re: Massive performance problems with mediaComponent / LWUIT & jsr 135. "Getting the video control is something you can open an RFE for. Chen is a bigger media expert than myself so I'll let him be the judge of that, however you will probably get back an Object and not the video control instance since we have ported LWUIT to platforms that don't have the MMAPI and need to maintain portability on these platforms. The reason I suggested trying box layout is so it would maintain the component size.. BorderLayout stretches the UI size which in some cases might affect performance."

Glen Mazza indicates JAX-WS customization points in Re: client stubs generated for WSDL. "That * JAX-WS generated class that hardcodes that local WSDL, I believe it has a few overloaded methods that allow your client to explicitly specify the location of the WSDL (which, being Java code, you can set via configuration or Spring DI or whatever. If you use that method of Service creation the fact that the hardcoded WSDL location is invalid shouldn't matter because it would never be activated.) However, I have not tested this so am unsure."

mrgamecube wants to go native on the server side, as explained in Glassfish and JNI. "Hey all. I have some Java code for my web server that is designed to load a native C library with a .so extension. I've done a few searches and I can see that other people are doing this but I'm missing a few pieces or something because I am still getting a no "NativeLibrary" found in in java.library.path error. I was wondering if anyone could point me to a tutorial that tells me how to set up Glassfish so the Java code can load the NativeLibrary or if someone knows how that would be great too."

Finally, cowwoc puts out a very surprising Flying Pigs Alert. "What's wrong with this picture? The Windows 7 Beta download site uses a Java Applet. Yes, you heard me: Microsoft is using a Java applet to distribute Windows! I'm keeping my eyes open for flying pigs."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Hudson phones home with usage statistics  

Ceremony Blog

Posted by kfarnham Jan 21, 2009

Mobile, Media, and eMbedded Developer Days begin in a changed world

The Mobile, Media, and eMbedded Developer Days begin today at 8:15 AM PST on Sun's Santa Clara campus. While I'm not there, I kind of wish I were, if only to behold a scene much changed from last year. Not all for the better, of course: the financial crash was half a year away when the first event was held last January. But this year, the whole mobile marketplace has been turned upside down by the iPhone, the other new smartphone platforms, like Android (a word which some presenters last year were apparently unwilling or unable to even pronounce) as well as the new Palm Pre, and the growing perception of mobile devices as full-blown computing and media platforms in their own right and not just phones.

A year ago, in a panel at the end of the first day of the conference, a marketing executive from one of the carriers scoffed at the romanticized idea of the bedroom developer making it big writing a mobile app all by him- or herself. "You have to go big time", she told us, "get a publisher or partner with us." In the intervening 12 months, the App Store for the iPhone has delivered 500 million applications, largely from small-time developers. On the one hand, it feels like developers were right to rail against the carriers for locking down their platforms (at least in North America) and thwarting the growth of Java ME by denying developers any real chance to distribute their work. On the other hand, being right and still being locked out is awfully cold comfort.

So are things going to be different today? Are the carriers ready to open up to the indie developers so we can all succeed? Or are they going to cling to the walled garden of content approach that's repeatedly failed to be even remotely interesting ("watch exclusive American Idol clips only on our network"... dude, why would I?) and let the iPhone eat their lunch, and the Mobile Java community's as well?

We're expecting announcements and blogs from the show, which we'll feature on tomorrow's front page. In the meantime, those not attending in person can view a live video stream via UStream and use the chat feature to interact with on-site attendees; check out the instructionsfor setting up your computer. Another resource available to remote viewers, the Developer Days Wiki will be used to track ideas, issues, to-do items, assignments, and organizational topics.

Also in Java Today, Kirill Grouchnikov has posted several blogs recently previewing new features for Substance look-and-feel 5.1. The release will extend support for very large fonts, ensuring it is suitable for use on "multiple devices spanning TV sets and mobile phones", and for purposes such as point of sale applications and presentation demoes. For more traditional desktop uses, Substance 5.1 is also reworking its Office Silver skin and its Office Blue skin. A release candidate for Substance 5.1 is expected January 26th, with final release February 9th.

Javier Paniza, of the OpenXava framework, has posted an article on using AspectJ to achieve Java Properties without Getters and Setters. "Properties are already first-class elements of many modern languages, so this lack in Java 7 will be felt by many developers accustomed to other languages' property support. At the same time, Java developers can resort to a handful of other techniques in working with property-like Java attributes, and some of the possible techniques work even in Java 1.4."

In today's Weblogs, Sekhar Vajjhala looks at GlassFish Migration: Java EE Module Loading Order (I). "Loading of Java EE modules in an ear file is a migration issue. I have highlighted some aspects of loading order of Java EE modules in GlassFish v2."

Jim Driscoll presents a compilation of previous posts in JSF 2.0 PR Released, my blog posts updated. "With the release of the JSF 2.0 PR, along with the corresponding release in Mojarra, it's time to quickly review my recent posts."

Finally, Bruno F. Souza blogs on The birth of a Community. "Lots of interesting community discussions happening on Campus Party, a 7x24 event happening in Brazil."

In today's Forums,nagkumar asks for LWUIT with support of CSS and XML for UI. "LWUIT is very impressive for support on Local Fonts and the features as provided by Resource Editor, though it is limited CLDC 1.1 devices. However, it would be nice to see LWUIT supporting css as alertnate approach to look control (like the kuix) and XML for UI description (like in Android and Kuix). Are there any plans for such support in future."

Jim Graham discusses the factors that determine where the pixels go, in Re: [JAVA2D] Is there a bug with clipping and affine transforms? "Note that, in Java 2D, a shape cannot "know" its outline design because that depends on another graphics attribute - the Stroke object. The default implementation of that interface is a BasicStroke object with a line width of 1.0f, but that is just the default for the Graphics objects you get from images and components. A different implementation of Stroke may behave entirely differently and a graphics retrieved from a different context may have a different default setting."

David Van Couvering points out that clustering might be overkill for some, in Re: which is the best database which i could use with gf cluster? "That's a short question to a very long discussion. There are many ways to move up to multiple database servers. One is clustering, but that's a pretty heavy solution when you want to move from one database server to say just two. There are lots of solutions out there, some you need to implement yourself (e.g. sharding or using replication) and there are a number of vendors out there (Continuent, HiveMind, HSCALE to name a few) that will help to do this for you."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Mobile, Media, and eMbedded Developer Days begin in a changed world  

Regret Blog

Posted by kfarnham Jan 20, 2009

Has time left the portlet API behind?

Our Feature Articles return today after a hiatus with a look at the Porlet API that might not be what you expect. Rather than offer a tutorial introduction to Portlets (ONJava covered that a few years back), Eric Spiegelberg looks at the history and architecture of portlets and asks a tough question: is this API even viable anymore?

With nearly 10 years of professional experience with both web and portal based projects and having done multiple portal projects as recently as 2007 and 2008, I've spent the last few months evaluating JSR-286 and the portal architecture and unfortunately it is my opinion that for many reasons JSR-286, and the portal architecture in general, is a layer of complexity over servlets that doesn't provide enough benefits or technical "bang for your buck" to warrant an increase in adoption or have a large scale impact on the Java landscape.

What happened? Well, for one thing, Spring happened, and that prompted changes across the enterprise Java landscape, most obviously in EJB 3. While EJB changed with the times, Eric argues that Portlets haven't:

In many ways, the the portal architecture reminds me of EJB in that both can be viewed as a monolithic all-or-nothing approach that dictates an overly large portion of each application layer's design. While EJB was once king in the last half decade, Java itself has undergone a tremendous amount of change. There has been a fundamental design shift (which, rightly or wrongly, is largely credited to the Spring framework) toward layering, separation of concerns, simplification, and most importantly an a la carte "use only as much as you need or want" attitude toward technology. Gone are the days where just because you wanted to wrap your business logic in a stateless session bean you need to use a full Java EE application server, embrace JNDI, and create local, home, and remote interfaces as part of your domain model. Similarly, the portal architecture -- where the integration, service, and presentation tiers have been designed and built for you -- has not caught on as has the usage of frameworks and tools focused and specialized to each specific tier. If you are willing to acknowledge that it was this monolithic all-or-nothing design philosophy that lead to EJB being essentially rejectedby the Java community, it is also reasonable to think that the same philosophy has and always will significantly hinder the portal architecture.

Is there hope for portlets? Read the entirety of Eric's history and analysis is in the article JSR-286: The Edge of Irrelevance, and decide for yourself.

One area with fascinating long-term potential is the OpenJDK'sZero and Sharkprojects. We mentioned these last Summer in the context of a way to bring Java to the Mac, whether Apple likes it or not. The bigger picture is that they could bring Java to any platform: the whole point of Zero is to provide a zero-assembler Java interpreter that could be built on any system with a C compiler. Of course, that has obvious performance limitations, so the Shark project seeks to provide an LLVM-based JIT. In Java Today, Gary Benson has posted an interesting metric that gives a sense of the potential of these projects. In Porting Shark, he writes, "Shark when it's done will be great, a massive improvement over Zero, but LLVM only supports a couple of the platforms people use Zero on. I've wondered a few times how the task of porting LLVM to a new architecture compares with writing a full HotSpot port from scratch. This morning I realised I could get a rough idea by simple counting the lines of x86-specific code, the one port they share." Read on to find out what's the easier port: LLVM or HotSpot.

Eduardo Pelegri-Llopart announces Recordings from Jersey / JAX-RS webinars are now available. "I've been recording our weekly TheAquarium Online Webinars for the last few months using the uStream.TV facilities and I recently spent some time processing the material into different formats and organizing it in the Wiki pages. [...] The recordings for the Jan 15th, 2009 Webinar on JAX-RS, Jersey and REST are now available. This Webinar set included presentations by Marc Hadley and Paul Sandoz, a set of 5 short screencasts, and very good audience participation. The recordings are available in several formats, including FLV, Quicktime, iPod(320x240) and Audio only."

OpenDS is a Sun-sponsored, open-source directory-server project for developing a free and comprehensive next-generation directory service, written entirely in the Java programming language according to the Lightweight Directory Access Protocol (LDAP) and Directory Services Markup Language (DSML) standards. In the article Perspectives on Quality Assurance for OpenDS, QA lead Gary Williams elaborates on the project's testing aspect: opportunities, challenges, guidelines, practices, and measurements.

In today's Weblogs, John Ferguson Smart offers career guidance for the bust in Capital investement for developers - keep yourself marketable!"Software developers need to invest in their own productivity as well, in their own way. A developer skilled in an out-of-date technology, but ignorant of modern evolutions, may find his or her marketability limited in the future. On the other hand, a developer with up-to-date, well-honed skills will have a much brighter future, and be more likely to cope with hard times."

Jaroslav Tulach reads the reviews in Irresistible Expectations of Fearful Desire. "For a while I was desperately expecting an important moment. Day by day I've been watching whether it has already happened or not yet. I used to be afraid of the moment to happen. Yet I could not resist to expect it and desirably hope for it to happen soon. Today I've just realized, that the moment happened."

Finally, Curtis Cooley has posted Yet Another Refactoring Example. "Just in case there are not enough refactoring examples, I've written yet another. This is real code and the walk through is "live." That is, I wrote this while really refactoring the ugly code I had written. Enjoy."

In today's Forums,giorgos_gs thinks big on the eve of the M3DDs by saying that that the Mobile Developer Alliance should be just the beginning. "It would be great if all of us (The developers, companies and individuals), the Alliance, were united and made a "Developer Store" where we could sell our products straight to the customers without intermediates. I don't say to stop selling from all our cooperating companies, I just propose at the same time to unite and make something of our own."

eingfoan asks about the possible hazards of changing default charset of existing domain UTF to latin1? might be a prob? "Is the changing of the default charset e.g. by setting LANG environment variable on linux and rebooting the domain of any danger to ruin the domain? We have sadly installed our new gf instances in UTF-8 which we have not intended to do so because all our old instances are ISO-8859-1. can we change this on the fly?"

mattzyzy wants to know how to use the 64-bit support for Glassfish v3 Prelude. "How to configure 64-bit support Glassfish v3 Prelude ? which 64-bit JDK is recommended for Glassfish v3 Prelude, 5 or 6 ? I notice the need to set it in developer mode or cluster mode in order to fully support 64-bit , and how can this be done , what is the default then?"

Seems like 6u10's deployment features don't suitminka99, who writes in private jre - how to distribute / install?. "I have an app with a free trial windows distribution that has a suite of click and run examples. It uses java 6.0 update 11. Now I'd like to bundle the jre with the free trial. I want these examples to be easy easy easy. No version issues with java. I don't want to change the users default java installation.I also would like the download to be as small as possible, part of the easy, easy approach. I thought the java kernel installation would provide this. The small size was very attractive. But the kernel is a public not a private jre. If I set an INSTALLDIR for the kernel jre installation and there is a jre elsewhere of the same version it will ignore my kernal install. Then my click and run commands don't work, because the jre is not where they expect it to be. How do I get a private jre?"

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Has time left the portlet API behind?  

Blue Monday Blog

Posted by kfarnham Jan 19, 2009

A shake-out-the-cobwebs kind of week?

Populating the front page took a while this morning, as a number of our favorite sources have been light on updates lately. doesn't have anything new since last Tuesday, and the Planet JDK aggregator only picked up a few things over the weekend.

Hard to say why things would be slow now... maybe the initial rush of returning from the holidays are over and everyone's into long development cycles to start the new year.

Fortunately, a number of project owners and others used the publicize your project link on the left nav of the front page to let us know what they're up to.

To wit: the ROME team wrote to let us know, "The ROME team is happy to announce the release of ROME 1.0RC2, ROME Fetcher 1.0RC2 and ROME Modules 0.3. Highlights include: ROME is now built using Maven 2, ROME jars are now available in the Maven repository, more lenient handling of Number formats during parsing, and better date parsing for Atom dates. Complete change logs are available for ROME and the ROME Fetcher. Please see further information and downloads. "

We actually received a bunch of worthwhile project blurbs that we'll spread throughout the week. Plus, things will pick up Wednesday with the beginning of the Mobile, Media, and eMbedded Developer Days.

Also in Java Today, The Aquarium points out a New VisualVM 1.1 Release: "There is a New VisualVM 1.1 Release (Screencast). The Release Notes describe the new features but also notice the expanded Plugin API, the integration with Eclipse and IntelliJ, the support for IBM's JVM (via JMX), these new CLI commands, and its use of NB 6.5 RCP. VisualVM has been part of Sun's JDK since JDK 6 Update 7; together with the above changes, this makes it a good platform for writing performance analysis tools (e.g. see news)."

SDN published their Annual Developer Quiz during's holiday hiatus, and it's well worth going back and checking out. The 10-question quiz covers topics previously featured on, including JavaFX Script, draggable applets, Greenfoot, LWUIT, real-time Java, and more.

This week's Spotlightis on the Mobile, Media, and eMbeded Developer Days. The conference begins Wednesday, and even if you're not attending, you can follow along by way of a live stream of the event. During the conference, there will be two streams -- one of the main auditorium and another of an upstairs session room -- and logged-in users will be able to interact with attendees and other viewers by means of ustream's chat features. More information about the live broadcast is available in the Developer Days wiki.

In today's Weblogs, Osvaldo Pinali Doederlein checks out the new language on the block for himself and asses its performance in JavaFX: First programming (and performance) impressions. "I ported the JavaFX version of Bubblemark (a RIA benchmark) for JavaFX 1.0; tweaked it further, and evaluated its performance (with both good and bad findings)."

Tip-master Arun Gupta offers the latest in his long-running series, TOTD #66: GlassFish Eclipse Plugin 1.0.16 - Install v3 Prelude from the IDE. "GlassFish Plugins teamreleased ver 1.0.16 of Eclipse plugin for GlassFish. The team has maintained pretty good cadence in terms of adding features and fixing bugs in the plugin (16 releases in approx as many months). However this particular version has an exciting feature. It allows GlassFish v3 Prelude to be installed from within the IDE itself."

Binod announces a MySQL-SailFin webinar. "On 21st January 2009, Alexander Yu and myself are giving a webinar on MySQL and SailFin."

In today's Forums,japotemp asks about load stats in Glassfish cpu usage 100%, what is exactly measured. "At the moment I am generating traffic via an application on glassfish. With different monitoring tools I see different cpu usage. visualvm 1.1 shows glassfish cpu usage of 100%, with top I see 35 %, with jconsole 35%. What does glassfish cpu usage exactly mean? The 100% is a bit worrying."

qu0ll asks Is there a bug with clipping and affine transforms? "Using Java 6 Update 11 (and probably earlier versions as well), I am finding that when rendering a shape and setting the clip region to that same shape, parts of the shape may "disappear" when certain scaling affine transforms are applied. For example, if I render a simple Rectangle2D.Float with the clip region set to that rectangle and then apply a series of scaling affine transforms where the aspect ratio is maintained, for some of those transforms one of the lines that make up the rectangle disappears, especially at smaller scale levels. It is not as simple as generalising that it only happens at smaller scale levels because it can appear, then disappear and then reappear as it is scaled down through a series of transforms. Is this the expected behaviour? If so, why? Is there any way around this?"

Pankaj Jairath provides some GlassFish set-up guidance in Re: How to install load balancer using apache web server? "Yes, this component is OS dependent. Regarding Apache 2.2 installation instructions for Windows platform, please refer to - mod_jk is the plugin support from Apache itself; whereas HTTP LB from GlassFish is an advanced Load Balancing solution with features like load balancing policies (round-robin, weighted, user defined), application quiescing, instance quiescing, custom error pages, idempotent URLs, health check, etc. You can choose to use GlassFish HTTP LB as an advanced software solution for load balancing."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

A shake-out-the-cobwebs kind of week?  

Just the Same Way Blog

Posted by kfarnham Jan 16, 2009

Aerith's components on the move

A few JavaOnes ago, Aerith was the belle of the ball, reasserting how polished and attractive a Swing GUI could be. It led directly to Chet and Romain's book Filthy Rich Clients, and in a roundabout way, even to JavaFX, given the realization that achieving the effects of Aerith required months of work from Swing's top engineers, implying that something more approachable was needed.

Still, what about Aerith itself, and the slick components created for it? The Aerith NetBeans project has split out those components and packaged them for reuse in NetBeans:

Want a filthy rich client without the hassles of Swing coding?

The Aerith Netbeans project provides the Aerith components as drag and drop widgets within Netbeans - so you can focus on what you really want.

There's one weird thing about the project, though. While Aerith lives on and NetBeans is one of our affiliated communities, the owner of aerithnetbeans chose to host it on Google Code. It's kind of worth asking: why? Not to make an editorial point or stoke some kind of rivalry; I'm just genuinely interested in what Google Code offers that doesn't. On the surface, Google seems to do less: no integrated mailing lists, forums, wikis, or web space, though you can cobble those pieces out of other Google offerings and link them together. There's also no community, and no effort to create one, over on Google Code. So is that maybe a good thing?

Seriously, if you want to do something -- or not do something -- please let us know.

Also in Java Today, Danny Coward passes along some impressive Java Runtime download numbers for December. "You'll remember Java SE 6u10 was released for manual download in October. But the followon update release Java SE 6u11(including some bug fixes) was pushed in the Java Updatemechanism (aka the popup-bubble-software-update-thingy-for-Java-on PCs-around-the-world) on December 2nd. The results are in. [...] There were 78m completed downloads of Java SE 6u11 in December. If you include downloads of older versions as well, you get a total 95 million completed downloads of the JRE."

The Java TV Developers project has been introduced to enable faster and smoother tools for creation of interactive TV applications . The project enables developers with best practices presentations, guidelines, and the latest tools for introducing applications for TV as well as provides tools for migration of available mobile & desktop applications to TV. New materials and forums for discussion of content creation for TV (high definition or standard definition TV ) leveraging JavaTV as the common denominator Java platform for blu-Ray players with BD-J, Cable STB with OCAP and MHP, BrazilJavaDTV, and the China DTMS.

Apropos of closures discussions that came out of the last poll (notably on JavaPosse #225), the latest Poll asks "How do you think the closures debate will eventually be resolved?" Cast your vote on the front page, then visit the results pagefor current tallies and discussion.

In today's Weblogs, James Gosling checks in for the first time in 2009 with NetBeans rocks the awards! "I apologize for not blogging much lately, but life has been seriously hectic. One tidbit has broken me out of my manic frenzy: The NetBeans crew ended up with an impressive stack of awards from They've totally changed the way I develop software."

Fabrizio Giudici introduces some Idioms for the NetBeans Platform. "DZone has just published my first post in the series "Idioms for the NetBeans Platform". It's a series focused on the idioms I've found useful during the development of blueMarine, and that I'd like to consolidate and catalog in a serious way in the NetBeans Wiki in the following months. The more feedback I get, the better."

Finally, Kohsuke Kawaguchi updates a nifty project in JAX-WS Commons VirtualBox module 2.1 posted. "I wrote a JAX-WS client module for VirtualBox some time ago for VirtualBox 1.6.0. Since then VirtualBox made numerous improvements, and so did their web services. So this morning, I updated this module to use the latest VirtualBox 2.1 WSDL."

In today's Forums, Glen Mazza offers some web service guidance in Re: How to configure Keystore on Server side at runtime. "I think the Metro team is going to be expanding WSIT configuration in their next (2.0) release to do what you want--or at least provide additional server-side configuration options. In the meantime, CXF can probably do that but you'll lose WS-SecurityPolicy functionality in the process."

Shai Almog has a recipe for dismissing a LWUIT dialog with a touch event in the reply Re: Context Menu in LWUIT. "I'm assuming you mean a touch device but the answer is the same regardless. The menu is implemented as a dialog and you can take a look at the code there. If you want to dismiss by clicking elsewhere on the touch screen you can derive from Dialog and override the pointerReleased call to dismiss your dialog if it is released outside of the bounds of the dialog itself."

Finally, Justin Lee points out a Grizzly Config one pager for review. "We're approaching what we hope is the final form for the grizzly config project for v3 and would like to solicit feedback before asarch review next week. Please look over the document at and reply with any feedback you might have. The schema is all but done as far we've been able to determine but if anyone finds something missing or out of place, please let us know. We're especially interested in feedback from the glassfish admin team for input as to impact and scope for these changes."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Aerith's components on the move  

Open Arms Blog

Posted by kfarnham Jan 15, 2009

Cable TV opens up to Java

In case you missed it last year, there were some interesting announcements about Tru2Way, the marketing name for OpenCable, which is a Java-baesd technology that obviates the cable TV box by providing a common platform that can be embedded directly into a television. OpenCable makes its home here on, in the OpenCable project.

In the latest Java Mobility Podcast, Java Mobility Podcast 68: OpenCable Project and Tru2Way, CableLabs' Phil Bender talks about the OpenCable project, its relationship to Tru2Way and his talk on the Tru2Way Roadmap and Mobile, Media, and Embedded Developer Days.

Speaking of the Mobile, Media, and eMbedded Developer Days, the conference begins next Wednesday, and with less than a week to go, the sixth countdown newsletter offers a few more speaker profiles -- including Phil Bender and Sun's Michael Legally -- along with updates to the agenda and the announcement of a $169/night rate at the Santa Clara Marriott. But hurry: registration for the conference closes on Monday.

Also in Java Today, the Portal Pack 3.0 Beta binaries for NetBeans are now available for download. This release has major bug fixes and a few enhancements, including directory deployment and debug support for Liferay Portal Server running on Tomcat. The following portal servers are now supported: Project WebSynergy, Liferay Portal Server 5.1.x and later, Sun Java System Portal Server 7.1/7.2, and OpenPortal Portlet Container.

Learn to leverage the NetBeans IDE and the JRuby-on-Rails framework to deploy MySQL-backed applications on GlassFish in a free, live technical webinar on Tuesday, January 27th. "Discover the fundamentals of JRuby and how the NetBeans IDE makes developing/debugging/deploying Rails applications quick, fun and cost-effective." The "Developing MySQL-Backed Applications with NetBeans and JRuby-on-Rails" webinar will be presented by Arun Gupta, Glass Evangelist, Sun Microsystems, and Jimmy Guerrero, Senior Product Marketing Manager, Sun Microsystems

In today's Forums,benglncy works through incompatibilities with the new plug-in, in Re: how-to switch-off "Next-Generation Java


Feeling That Way Blog

Posted by kfarnham Jan 14, 2009

Props to a prolific blogger

Just thought I'd pass along a bit of unsolicited fan mail for one of our bloggers that was sent recently to the main feedback address:

Hi. I just want to say that I love Arun Gupta's blog. It's the blog I read the most, and every post is always something interesting and relevant to my work. I think Sun has got great technology, and to me, Arun Gupta is the face of Sun.

It's fair to say we feel the same way: with Arun's prolific Tip Of The Day blogs that cover so much substantial ground, I sometimes have to juggle the blog layout to make sure his picture isn't on the page every day, which might make people think we haven't updated.

As for being the "face of Sun", you'll have to take that up with his employer (although the traditional voice of Sun has been conspicuously absent from his blog for quite some time now). If we're handing out titles, can we settle on "that crazy smart GlassFish guy"?

Seriously, though: thanks, Arun. The fan mail is well-earned.

As if to emphasize the point, Arun had two new blogs that I had to choose between for today's Weblogs section. For today, the front page features TOTD #63: jmx4r gem - How to manage/monitor your Rails/Merb applications on JRuby/GlassFish?, which continues a series of recent JMX tips. "TOTD #61 and TOTD #62 show how to use JMX APIs to locally/remotely manage/monitor your Rails/Merb applications. This Tip Of The Day extends TOTD #62 and shows how remote management can be done using jmx4r gem. This gem provides a clean mapping between JMX APIs and Ruby. It allows to write pure Ruby code to manage/monitor any Rails application."

Fabrizio Giudici invites you to get Into the Groovy at JUG Milano. "After the successful "JavaFX Circle" initiative, a series of informal meetings where a group of JUGgers met together and played with NetBeans and JavaFX (at the time early access), at JUG Milano we're doing it again, this time with Groovy."

Finally, Bruno F. Souza offers a sarcastic Thank you music industry!. "We are always trying to shine some light to our kids, and teach them about right and wrong. A few things are pretty hard to explain. Copyright for one is a pretty complicated thing."

In Java Today,The Aquarium passes along word that the JCP EC has approved the public review drafts of three JSRs slated for inclusinon in Java EE 6. "A quick update: the JCP SE/EE EC has approved all the Java EE 6 specs in the first batch of votes mentioned in our Jan 6th Report: Vote results for JSF 2.0 (Ed Burns & Roger Kitain, JSR 314, @TA), Vote results for Servlet 3.0 (Rajiv Mordani, JSR 315, @TA), [and] Vote results for JCA 1.6 (Binod PG & Sivakumar Thyagarajan, JSR 322, @TA). EJB 3.1 (results) and JPA 2.0 (results), were approved previously; Bean Validation, WebBeans will go to vote on Feb 3rd."

Join Elliotte Rusty Harold for a look into "new" features in the classic java.lang.Math class in the two-part article, "Java's New Math". Part 1 focused on more purely mathematical functions, while the just-posted Part 2 explores the functions designed for operating on floating-point numbers. Elliotte also covers the nature and limitations of binary representations of floats and doubles and how these differ from real numbers.

The latest edition, issue 188 of the JavaTools Community Newsletter is out, with New Year's greetings and an invitation to the Mobile, Media, and eMbedded Developer Days conference, tool-related news from around the web, announcements of new projects and new graduations in the community, and a Tool Tip on how to create build scripts in Groovy with Gant.

In today's Forums, Java 3D meets JavaFX!, at least according to a post byinteractivemesh. "Java3D seems to be able to provide 3D rendering capabilities for JavaFX applications. A JCanvas3D encapsulated by a subclass of 'javafx.ext.swing.SwingComponent' can be added as a resizeable Node to a JavaFX Scene. So, an Effect can be associated to a JCanvas3D by setting the Node.effect attribute respectivally a JCanvas3D can be content of a parent's Effect. A first sample is now available for launching and download at"

polmascot asks, Is it possible to use jxta in Java applet? "Hi , my name is Christopher. I want to make an on-line game and I want to make it in the Java applet, so user don't need to install anything on his side. But here is a problem. I can't make it client-server because the amount of information is to big for my server and my server connection. So I am looking for other possibilities like jxta. And again returning to my question: Is it possible to use jxta in Java applet ? (it is probably somewhere in documentation but I don't want to waste time if it is not possible)"

Finally, Dominic McGinnis expresses a GlassFish memory-use concern in the followup Re: GF and Mod_jk. "Thank you. On another note, what is the memory footprint difference of using the jasper JSR-199 compiler? We are in the processing of switching from a previous App container to Glassfish v2ur2 and have noticed that our application on Glassfish seems to consume memory more rapidly and do less aggressive Garbage Collecting, so I'm trying to find the delta's with regards to memory storage that may lead to this. One such change is that on our previous App container we were not using JSR-199 though we are using JDK 1.6, so I was looking for the overhead and also how to turn off (i.e. use the pre-JSR-199 compiler) so I can run some performance comparsions."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Props to a prolific blogger  

Any Way You Want It Blog

Posted by kfarnham Jan 13, 2009

Who seriously reads thousand-line dumps in forums?

Thanks, Kirill. Oh, for a lot of things, but this time for a forum post:

In general, less code you post equals higher chance the forum readers will look into it. My rule of thumb is that anything above 100 lines stands minimal chances of getting a response. Your original code was 220 lines. You'll need to bring it to the absolute minimum necessary to reproduce the problem. That includes removing unnecessary Java2D operations (no need to draw a dashed polygon, one line is enough to show the problem), removing usage of external images (duke), colored labels, control panel and any mouse interaction (that you state yourself is for the future).

Seriously, this is just such common sense: if you're not willing (or able) to reduce your bug to as small a block of code as possible -- a process that may very well reveal the problem -- then what makes you think that random members of a forum will do so for you? Reading the editor's RSS feed of all the forum activity, I groan when I see a post that basically says "Something broke, here's a 400-line thread dump", and I'm amazed when readers actually parse the dump and figure it out.

The "wisdom of crowds" only goes so far. Let's try to break things down and isolate problems as much as possible, OK?

Also in today's Forums,maxbowsher complains about the unavailability of Sun JDK source in Re: JDK 6 Source Code. "No source later than 6u3 ever appeared online as far as I know, and Sun appear to be completely ignoring repeated requests for clarification on what's happening in this "feedback" forum. Even the links to 6u3 seem to have vanished now, though apparently the original download is still accessible if you happen to have the URL recorded."

Danilo Levantesi is looking to speed things up in EJB deployment - Web Services endpoints creation. "I've noticed that every time I deploy an EJB module to Glassfish a lot of deployment time is spent generating Web Services endpoints from @WebService annotation. Are there any way to avoid this automatic creation? I thought something like: - offline automatic wsdl/xsd creation (eg ant task, maven plugin and so on), - disable Glassfish-side creation for already created endpoints which classes have the same serial uid."

thamizh needs guidance getting started building aRestful webservice in java. "I want to build (demo) a restful web service in java. To achieve this from where i need to start? What are the things to be downloaded from java web site? Can i deploy my developed web service in plain tomcat web server? Do i need to configure anything in web.xml?"

In Java Today,Jasper Potts has created a JavaFX Spline Editor for helping to calculate the values to pass tojavafx.animation.Interpolator.SPLINE(...). "[I] thought it was about time we had a JavaFX version, and it could not be too hard. So a couple hours and a couple hundred bind statements later we have a very cool little Spline Editor that lets you edit the spline and see the effect in real time then copy the code to paste into your JavaFX application."

The JavaFX Examples project has launched, with the goal of pfoviding "a repository of a lot of small javaFX examples, where you can learn and find out different ways of doing things in this early Java platform." Owner maxtrix has seeded the project with a single LogicLoopScoreBoard example, and seeks further contributions from the community.

Daniel Lopez exercises JVM scripting, as well as his own ability to keep business logic separate from the rest of his application, in Separating Concerns: Business Logic Implementations round-up. " how to decide between one language or another? Well, one of the best ways to do so is to test for yourself, and that's what I did. So, I'm here to share the different implementations I came up with in the various different languages. [...] The basic idea of the test is to write a function that returns a list of items from a database, reachable through a data source, table in the form of an XML document." Read on for results in Jython, Groovy, Scala, and more.

In today's Weblogs, Sergey Malenkov explains the Strange Sequences in JavaFX. "If you come across square brackets in JavaFX script, do not think that JavaFX supports arrays. These are sequences. Sequences are not arrays although they are similar. Before reading this blog post I recommend that you familiarize yourself with the tutorial."

Van Riper announces a user group group in JUG-USA: The Whole is Greater than the Sum of the JUGs. "We are officially launching JUG-USA today. It is an umbrella Java User Group (JUG) which local JUGs from all over the United States can affiliate with. It is my hope that a true synergy will emerge from this undertaking. Please see the full post for more information and the pertinent links. "

Finally, Terrence Barr passes along some evening plans in Reminder: JCP 10th Birthday Party - Tue, Jan 13th. "Just a quick note: Tomorrow, Tuesday (Jan 13th) the JCP will hold their 10th anniversary birthday party at the Computer History Museum in Mountain View, CA."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Who seriously reads thousand-line dumps in forums?  

Separate Ways Blog

Posted by kfarnham Jan 12, 2009

Is Java a lingua franca or a lure?

Alas, CodeMash is over for 2009, with its constituent factions (Java developers, .NET types, scripters, etc.) going their separate ways after meeting up and attending each others' sessions. One interesting example from late Friday was a session on reverse-engineering code. Presented mostly from a Microsoft world-view, it was interesting seeing that decompilers on that platform can convert from managed bytecode back to any of the various languages that create it. One tool (I don't recall its name... sorry, I just won't commit LTM neurons to anything on Windows) had a source code viewer with a pop-up menu that allowed you to switch between C++, C#, Visual Basic, and even Delphi as decompiled languages. I had to duck out to take a call just as the presenter was switching gears to Java decompilers (JAD and friends), and wondered if, with the rise of scripting languages on the JVM, we might see an equivalent capability to decompile Java bytecode back not only to Java, but Groovy, JRuby, Jython, Scala, and the various other languages we enjoy working with on the JVM.

One other Java note was the degree to which Java was cited by people who don't necessarily use it. It's common at this point to hear another language's feature described in terms of a Java equivalent: "Objective-C protocols are kind of like Java interfaces", "the .NET CLR is pretty much the same thing as the JVM", etc. Surely it speaks to the ubiquity of Java that you can assume most members of a crowd will get what you're talking about with such an analogy.

But there was also an element of Java being used as a lure. An interesting case of this could be found at Amazon's recruiting table -- apparently, they've had good results finding engineering talent from the Great Lakes region by sponsoring CodeMash -- where you could get "ninja coder" stickers (and pass your prequalification interview!) by figuring out puzzler-type programming questions on posters around the table. Some of these were written in C++ (really?), while a few of the others were in Java. One of the Java puzzlers was a red-herring-filled concurrency problem in which you had to identify a potential deadlock in thesynchronized methods (hint: forget the inner classes, this was plain old "A needs B's lock while B needs A's" stuff), while the other Java puzzlers tested your ability to read recursion in methods for counting Fibonacci numbers and for finding common divisors.

Anyways, CodeMash is certainly a unique conference... JavaOne certainly doesn't involve rubbing shoulders with the .NET crowd in a wave pool. They sold out this year and seem disinclined to reconfigure their room setup to accommodate a bigger crowd, so clueful would-be attendees will want to register early for 2010.

In Java Today,The Aquarium points out that an implementation for the latest JSF 2.0 is now in the GlassFish Update Center. "The JSF 2.0 team last month released an implementation of the new JSF 2.0 PRD (see JCP vote) and an updated JSF 1.2.11. The releases are available at the GFv3 Update Center (see, e.g., Mac) and can be installed using the stand-alone UpdateTool or the Admin Console. This implementation has all PRD features including the Declarative Events described by Jason, but the EG is still working on additional features like state management. A few others, like bookmarkable URLs, are still being discussed and may or not make it."

The spiritual successor to AB5K/Glossitope, WidgetFX offers a cross-platform environment for GUI widgets written in JavaFX Script. It's one of the most prominent earily applications of JavaFX, and Javalobby speaks with its creator in JavaFX In Practice - An Interview With Stephen Chin. He talks about WidgetFX's inspiration, code base, and history, its integration with Swing and Flash/Flex, his opinions on JavaFX, and where the project expects to go in 2009.

If you're interested in developing for Blu-Ray, follow along with Bruce Hopkins' series for the SDN. In the latest installment,Blu-ray Disc Application Development with Java ME, Part 2: Responding to User Input, he takes on the Java ME SDK 3.0 and digs into the specifics of handling user input in BD-J. "Since a Blu-ray player is a set-top device, you can't expect users to interact with it with a keyboard and mouse. We're going to look at the APIs involved in responding to input from a remote control, regardless of whether the user used an infrared remote control or Bluetooth remote control (such as the one used on the PS3 gaming console)."

Today's Weblogsbegin with Amy Fowler offering a Layout Primer for JavaFX1.0. "Since extolling the virtues of GridBagLayout at the first JavaOne in 96, perhaps its my just desserts that I find myself toiling over layout for the JavaFX platform. If you're curious to understand more (in somewhat gory detail) about how layout is handled in an FX scene graph, read on..."

In Reminder: JavaDay in Rome, Fabrizio Giudici writes, "let me remind interested people that on January 24 there will be the third edition of the Rome JavaDay. The JavaDay is an initiative held by several italian JUGs that organize a special meeting once in a year."

Finally, Sebastien Dionne takes another look at templating in Template Code Generator Part 2 : FreeMarker. "FreeMarker look like Velocity. You can even find converters : Velocity -> FreeMarker. I'll describe in this part how to create the same output but using FreeMarker."

In today's Forums,ixanos seeks the source in Re: JDK 6 Source Code. "Does anybody know where I can download the source code of java rel 6? On the official web site the available links allow the download of the binaries but the link to the source code seems not to be working when triggered from within the Netherlands. Can somebody let us know if the source code of java release 6 is going to be made available to the developers or not?< If it is already available, perhaps one of you could publish the link so we dont waste our time looking for one ourselves."

eric_arseneau stresses the "smallness" of Squawk in the followup Re: Is there any README.txt for the very beginners? "We will put up a doc as soon as we can. [...] As for what can be stripped away? EVERYTHING but the "squawk.exe", "squawk.suite". Take these two pieces away and you have a running Java application.< Try this after you've built squawk: squawk com.sun.squawk.Test This will run a simple set of tests from a class we have."

ponkin seems to have hit a size limit in Sun Java Application Server - Is There any restrictions on wsdl file size? "Hi everybody, have developed some web services and one of them have wsdl (and a bean according to that wsdl) with 5000 fields. So I can not deploy it, in server log there is "code too large public java.lang.Object doDeserialize(XMLReader reader," - so the question is "Is there any limitation on wsdl size or field count in class or something?""

Finally, vprise reminds us of where you might want to not use LWUIT, in Re: LWUIT for Games? "You can look at Display.setFramerate method but generally we don't recommend LWUIT for "in game graphics". People are using LWUIT for the graphics around the game (controls etc.) but generally game developers want finer control. You can try hacking the LWUITImplementation subclass to get direct access to whatever you want, this might be a problem though if you want to port your game to BlackBerry, CDC etc.."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Is Java a lingua franca or a lure?  

If Everyone Cared Blog

Posted by kfarnham Jan 9, 2009

Is lecturing users really going to help grow OSS?

jruhnke vents in today's forums:

Why is there such a disparity in the JREs in use these days. I can't write a descent application these days without having to include a bunch 3rd party libraries to deal with basic platform deficiencies. Take for example (Java Comm.) there is no one library (framework) that works for Windows, Linux, Solaris, and MacOS. Even the 3rd libraries don't work properly all the time.

This prompted a reply from peter__lawrey:

Open source libraries rely on people identifying a need for something and then implementing it. Java runs on many platforms, but that doesn't mean it will have all the functionality you need on every platform. There is often some bit you will need to invest in to make it happen. You could consider getting enterprise support and paying to get this functionality or writing an open source library yourself.

This is a pattern I'm sure you've seen before: someone asks on a forum for something, or complains that it doesn't seem to exist, and gets a reply that basically boils down to "you should write it yourself, and then contribute it to the community."

Does this strike anyone else as an anti-pattern? If the first person could easily write the thing they're asking for, or fund its development, they probably wouldn't be asking for it on a forum in the first place. And if someone is frustrated enough to go public complaining that the software out there doesn't do what they need, how effective is it to respond with a lecture about open source?

Seriously, whose needs are being met here? Not the person asking for the code they need. Instead, this rote OSS reply focuses on what the OSS community needs: more code. And if the person asking for a library is developing an end-user application, then even if you succeed in persuading them to go write the library themselves and then open-source it, a side-effect is that you've converted an application developer into a library developer. Doesn't it seem like there are more OSS libraries than applications, particularly in Java? Do you think that's an accident, or a natural result of what the community values and how it behaves?

One of the much-touted "seven habits of highly-effective people" is "win/win, or no deal". When we interact with others, inside and outside our community, we should probably think about whether or not we're offering them a "win".

Also in today's Forums,tjquinn asks you to Please review and comment on the GlassFish v3 deployment one-pager. "The one-pager for GlassFish v3 deployment is now available for review and comment. The official review period is one week, so please post your comments and feedback as replies to this forum thread by 15 Jan 2009. We will try to consider feedback that arrives after that but we cannot guarantee we will be able to do so. You can find the one-pager here:".

Glassfish mbean for controlling MDB, sppugazhwrites, "Is there any mbean interface with the functionality like controlling the MDB. My requirement is like the MDB consumes a queue but at times i might need to stop the MDB. Is there any other provision in glassfish to achieve this functionality.I found one document related to oc4j which has a mbean to control the mbean."

In Java Today,Substance project owner Kirill Grouchnikov is setting out his Substance goals for 2009. "A clear and well-defined set of goals is crucial for projects of all sizes, and Substance is no exception. The project goal has been refined and refocused to guide the project throughout the year 2009 and is: to provide a rock solid, fast and extensible library for creating visually appealing and consistent Swing applications"

In Repeating the JVM Language Summit Danny Coward recalls the first-ever event and points out how you can catch up. "Many of those who attended the first JVM Language Summit last September judged it to be a great success worth repeating. You can see video of the talks here, like Charlie Nutter's talk on the pain, in all the dirty details, of bringing Ruby to the Java platform. Or John Pampuch on the VM optimisations in HotSpot. Examples from Cliff Click on where languages from Scala to JavaScript can take advantage of optimisations in the JVM."

The jLab environmentaims to provide a Matlab/Scilab like scientific computing platform that is supported by scripting engines implemented in the Java language. The GroovySci language, an adaptation of Groovy allows compiled mathematical scripting that compares to Matlab's performance and is significantly faster from other open-source similar environments (e.g. Scilab, Octave). The project recently announced a split into a "kernel" version with just the scripting engine and a simpler UI, leaving out the many specialized scientific libraries of the full version.

In today's Weblogs, Jean-Francois Arcand slims the protypical app server down to just a few dozen lines of code, in Extending the Grizzly HTTP Runtime part V: Programatically configuring Servlet and GrizzlyAdapter. "A lot of applications/framework out there just consist of a single Servlet that dispatch requests to its appropriate internal components (like Hudson). In such case, a full blown Servlet Container might not be needed....but a tiny 800k Grizzly might be!"

Fabrizio Giudici reflects on the status and momentum of blueMarine in Bye bye 2008 and here it comes 2009. "Happy new year to everybody. Continuing an initiative that I started one year ago, I'd like to draw a summary of my 2008 and express my intended plans for 2009, just in case this can be inspiring for other people..."

Arun Gupta has resumed his tips series with a vengeance, posting three tips in the last day or so. In TOTD #61: How to locally manage/monitor your Rails/Merb applications on JRuby/GlassFish using JMX?, he writes, "GlassFish Gem can easily run both Rails and Merb application. Using JRuby, as opposed to MRI, allows you to use standard Java monitoring framework and tools. Java Management Extensions (JMX) is a standard management and monitoring solution for Java platform. This Tip Of The Day shows how to apply JMX techniques to monitor Rails/Merb applications."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Is lecturing users really going to help grow OSS?  

Rockstar Blog

Posted by kfarnham Jan 7, 2009

The scene from the first day of CodeMash

Day one of CodeMash is done... I'm talked out from giving eight hours of tutorial and duly chlorinated after a trip to the indoor waterpark. But even the waterpark wasn't as loud as the vendor area and hang space at the conference, where a couple vendors had set up Rock Band 2 games just a few feet apart, making it hard to get away from geeks mangling the Red Hot Chili Peppers and Foo Fighters.

Looking at today's schedule, Java's prominent by its absence, until you realize it's the stealth platform at this conference. Many of the talks that are Java based don't have Java in their name... because they're about Groovy, Spring, Jython, Grails, Scala, and more. All of these are Java- or JVM-based, but the casual owner wouldn't even know it.

And isn't that what we want? Solid solutions based on Java, rather than just concatenating "J" this, "ava" that, and a bunch of coffee puns onto marginally-related products and projects? Or does Java not get the credit it deserves when its best stuff doesn't tout its Java heritage?

Looking ahead to the next conference on the Java agenda, the Mobile, Media, and eMbedded Developer Days begin in just two weeks. The fifth M3DD countdown newsletter has profiles of speakers Jan Sterba, who'll be talking about JavaFX mobile, and Bill Foote, who will present on creating Blu-Ray games and menus with open-source tools. Also, Terrance Barr has announced that the event will again be streamed live, for free, via

Also in Java Today, Danny Coward tries to assess all the moving pieces of the Java world in his look at The year ahead for Java and JavaFX. "2009 promises to be an exciting year for Java: The Planetarium expects Java SE 7 to be mostly completed, with modularization, multiple languagesbeing a big deal, JavaFX will shipthe mobile profile, and preview (and possibly complete) version 2 including the TV edition, Java ME should finish or get close to finishing its next mobile edition, and we should continue to see lots of mobile frameworks andapp stores."

Eduardo Pelegri-Llopoart has posted a summary update of the JCP status of all the various parts of Java EE 6. "Below is a full list based on a pass through JCP (will adjust if I missed any); all of them are either in PRD or past it; the only exception is Java EE 6 itself (JSR 316) which, by definition, lags them all. [...] Some of these specs have already been voted on: EJB 3.1 (results) and JPA 2.0 (results); for some others the vote starts on Jan 6th: JCA 1.6, Servlet 3.0, JSF 2.0, and a last batch starts on Feb 3rd: Bean Validation, WebBeans."

In today's Weblogs, Chris Campbell embeds a demo applet into his latest blog, Effects in JavaFX: Quality. "The second installment in a new series on the filter effects package in JavaFX, focusing on how we maintain great visual quality in the rendering process..."

Osvaldo Pinali Doederlein takes a swing at Clearing the Java FX FUD. "I've been busy over the last weeks, evaluating and learning the Java FX platform. I'm between optimistic and enthusiastic about JFX, but wandering forums and blogs over the net, this doesn't seem to be the general impression - to date, most community feedback (ignoring official advocates like Sun engineers) seems to be negative."

Finally, format war victory notwithstanding, John O'Conner thinks Blu-Ray may be the shortest lived, most irrelevant format ever. "Maybe Blu-Ray technology is utterly irrelevant, and maybe Java's role there is therefore irrelevant too."

In today's Forums, Phillip Ross wants GlassFish to take on more responsibility, in Re: Load balancer. "And while I'm on the topic of load balancers... are there are talks, discussions, plans, ideas about a lightweight software based load balancer for glassfish that exists in a more standalone fashion? One that does not require an IIS, Apache, or SJS web server installation? One that is very small and easy to install and configure... maybe even builing on top of an embedded gfv3 architecture?"

csperle has a guide on How to build LWUIT with Eclipse. "if you are an Eclipse developer like me, than you are probably missing the possibility to build LWUIT with Eclipse. This small How-To describes what I did to get this done."

jsantos0000000 vents a little discouragement in Re: What is the status of the Java3d project. "So no new functionality will be added to Java3d version 1.6? Just performance issues? I think Java3D has already become a bit outdated, and if version 1.6 will be the last one, as it seems


How You Remind Me Blog

Posted by kfarnham Jan 6, 2009

Oh yeah, OpenJDK 6 came after OpenJDK 7! Now I get it!

If I had to explain the versioning and open-source status of Java to a total newbie, I think I'd probably have to draw a diagram.

When Java got GPL'ed, Java 6 was just out the gate, and the first drops of OpenJDK were of an extremely early JDK 7. But we couldn't just wait years and years for JDK 7 to come out, open source or not, so the OpenJDK team crafted a backport of their code back to the JDK 6 spec. And in this way, OpenJDK 6 came after OpenJDK 7, the first few drops of 7 anyways.

But Sun's JDK 6 continued along its own path, notably including all the "consumer JRE" goodness of Java 6 Update 10... which of course isn't in OpenJDK because it's from a different fork that hasn't been merged in.

Confused yet? David Herron tries to clear things up by saying It will be (Open)JDK7 where OpenJDK==JDK. "I'm listening to the 'holidays 2008ish' episode of Javaposse and in reviewing their last years predictions they have enough fumbling around the status of OpenJDK that I want to do a little bit of explaining."

Also in today's Weblogs, Ed Burns passes along a reminder and request for feedback in JSF 2.0 Public Review Ballot Starts Tomorrow. "Notice that JSF 2.0 is almost done. If you happen to have some kind of channel to one or more of the individuals on the Java EE Executive Committee, please share your thoughts with them to help inform their ballot vote."

Finally, in The Audacity of Hope: Thoughts on the JCP Van Riper writes, "December 2008 marks the 10th Birthday of the Java Community Process (JCP) Program. Java developers in Silicon Valley are invited to join the JCP Executive Committees and the Program Office in celebrating ten years of collaborative work from companies, academics, individual developers and not-for-profits from all over the world. The party will be at the Computer History Museum on January 13th in Mountain View, California."

In Java Today, The NetBeans team is happy to announce a relationship between the NetBeans and ICEfaces communities to facilitate migration for current Woodstock users. With the latest ICEface NetBeans plugin (v1.7.2SP1), you can add the ICEfaces framework to an existing project and begin to develop ICEface pages along side existing Woodstock pages.

An ambitious and key part of Java EE 6, the Web Beans specification spans JSF/EJB integration, context management, dependency injection and AOP. The specification is currently in public review and the review period has been extended into 2009. An Alpha build is also available. In Web Beans (JSR-299): Q&A with Specification Lead Gavin King, InfoQ talks to Gavin King to find out more about the state of play of the specification and progress to date.

Bruce Hopkins continues his introduction to the JSR-82 Bluetooth API in Working with Bluetooth and GPS: Part 2 - Parsing GPS Data and Rendering a Map. In this conclusion, he shows how to parse NMEA-formatted GPS data, request a map image from the Yahoo Maps API, and parse the received XML via the XML parsing API included in JSR-172 (J2ME Web Services).

In today's Forums,greeneyed explains app server preferences in Re: Newbie: Should I run Glassfish when Tomcat is enough? "I have to say also that I'm with Gili on that one, and ,in my case, I'm not using GF because it does not suit my "development style". I have many medium-sized applications and I change between them quite often so I need to be able to "mount" an application very easily, and for me easy means editing one line in a config file. I don't want need a GUI for that. Moreover, I don't package my applications as war files, for the memory problems already mentioned, so I need to "mount" directories. This option is usually not very well documented."

prashu_javanet discovers the hazards of hard coding variable values in private static final variable issue. "I came across one intersting bug in our application. We had declared one variable as private static final CURRENT_YEAR which holds the current year when the class is loaded. The application is up and runnning from last year 2008 but, when it changed to new year 2009, still the value of this variable was 2008. We had to undeploy and redeploy the application to take new year. How to tackle this kind of problems? Please advice."

Finally, cowwoc has some Questions about EffectsPlayground demo. "Looking at 1) Why is it that some effects such as motion blur will get choppy if you drag the slider back and forth but CPU usage remains low? What bottleneck is causing this choppiness? 2) When I drag the applet out of the browser I notice that the non-rectangular window drags very choppy over the desktop. Why is that? Does this problem affect all non-rectangular windows or is there some problem with this specific application?"

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Oh yeah, OpenJDK 6 came after OpenJDK 7! Now I get it!  

This Afternoon Blog

Posted by kfarnham Jan 6, 2009

Packing up for the drive to CodeMash

Finish the blog, then pack for the sold-out CodeMash. This is a conference I learned about at the from co-organizer Dianne Marsh of the Ann Arbor JUG, who (along with Maggie Longshore) has been fantasizing about Hemione Granger's use of time travel to attend simultaneous sessions.

She talked about CodeMash on JavaPosse 197(which also features Stephan Jansen explaining Javapolis/Devoxx and Bruce Eckel on open space conferences), and it looks to be seriously unlike most other Java conferences. Indeed, the biggest difference is that it's not a Java conference, per se, but a conference in which Java is one of many points of view, and the whole idea of the conference is to be exposed to other things. There are Java sessions, .NET sessions, Ruby and Python sessions, and a keynote by Eric Meyer entitled "JavaScript Will Save Us All".

OK, that last one is going to get a serious grain of salt.

This arrangement is highly appealing because the Java community is so big and sometimes so insular, you have to wonder if we miss things by talking amongst ourselves so much. Granted, there are some ideas coming over the wall -- we wouldn't have people crying out for closures if they hadn't enjoyed them elsewhere -- but when you get set in your ways, it's hard to see outside ideas on their own terms, rather than as just Java concepts going under different names. Is C# really a Java ripoff? Maybe, maybe not... I've never taken the time to learn. Is "delegation" in Cocoa the same thing as the observer pattern? No, not really even close, as it turns out. What can I use Ruby for other than Rails? Do I need to care about Scala yet? Has Groovy gotten its act together? Do I have to abandon OO and go functional to thrive in the multi-core era?

I'm willing to have my mind changed by a persuasive speaker. Newly-installed tires start rolling towards Sandusky at 1PM... more from CodeMash later in the week.

In Java Today,The Aquariumannounces a webinar on OpenMQfor later this week: "Our first webinar of 2009 is thisFriday (not Thursday!), Jan 9th, 11:00 am PT. Ed Bratt and Linda Schenider will provide an overview of the recent OpenMQ 4.3 release (to be included in GFv2.1 and GlassFish ESB) and will go into more details on the new Universal Messaging Service." showing examples of its use from AJAX, C# and Python.

Continuing the run-up to the Mobile, Media, and eMbedded Developer Days on January 21-22, the M3DD Newsletter #4 (PDF) continues its preview of the event with speaker and session previews for Sean Sheedy's Developer Panel, and Hinkmond Wong's "New Tricks for phoneME Advanced".

Sean Brydon and Aravindan Ranganathan's SDN article Protecting Java EE Applications With OpenSSO Policy Agents, Part 1: Basic Steps introduces OpenSSO's features for protecting web applications from unauthorized access. "By installing a Policy Agent at the application-server instance on which your applications are deployed and then configuring the Policy Agent, you can enforce authentication, single sign-on (SSO), and authorization. During installation, classes that can secure the deployed applications are added to your application-server instance. Subsequently, you can also enable Web-service security, personalize applications for users, and map to the Java EE security mechanisms."

... in today's Weblogs, Simon Morris discusses creating JavaFX in Style. "JavaFX aims to reduce the gap between coders and designers, to the extent that controls can be styled using CSS-like files. Examples are thin on the ground, however; so before the year ends (and on the assumption I'll be too hung over tomorrow to care/remember) here's a quick guide to creating your own styled controls."

Speaking of JavaFX, in Effects in JavaFX: The Basics, Chris Campbell offers "the first installment in a new series on the filter effects package in JavaFX."

Finally, Elie Levy implements a neat GUI feature in Freezable JTables (are they extreme?) "In this entry, I show how to implement a JTable that allows the user to freeze a column for the horizontal scrolling, similar that what common spreadsheet applications allows you to do. Let me know if you think this JTable is extreme..."

In today's Forums,sunil2rao would like to hand out Java FX on USB drive. "I am trying to build a cross platform (vista, xp, mac computers for now) and mobile phone in the future. The application needs to run from a usb flash drive. Is this something I can do with JavaFX? Currently I am thinking of a Swing application with an embedded jre (in the flash drive). Any thoughts? suggestions?"

lbon asks How to define HTTP proxy in a call to a Metro WS? "I designed a Web service that works very fine when the client is on a local area network and through the internet (without a web proxy server). His URL is so ready for the web (so no LAN or localhost URL) However, when I try to call this WS from a company LAN protected by proxy client, I've got the following error: "Failed to access the WSDL at: It failed with: Server returned HTTP response code: 407 for URL: HTTP Error 407 means Proxy authentication required."

In the Project Wonderland thread Re: jsr223 scripting languages, matty_x writes, "I'm not sure I understand why there is a need to support so many scripting languages. Is this necessary? Not trying to be contentious... just curious what the rationale is."

Finally, cowwoc offers some suggestions for GlassFish in the followup Re: Newbie: Should I run Glassfish when Tomcat is enough? "In my opinion, Glassfish still has a lot more to spend on ease-of-use (this includes documentation) and footprint/startup time. Tomcat is way ahead on both counts. I prefer Glassfish' community but it needs to pick up on the two points I brought up. Most of all I would recommend they focus on ease-of-use. The documentation looks like it was written by IBM. It is a huge tangled mess. It should be more obvious how to do things without referring to the documentation as well."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Packing up for the drive to CodeMash  

Next Go Round Blog

Posted by kfarnham Jan 5, 2009

Where's Java going in 2009?

OK, another lap of the Sun is done, and from all accounts, Java did pretty well in 2008. After all, JavaFX finally came out, as did the consumer JRE, which rolls together a set of much-wanted features for the Java runtime, including deployment enhancements, a completely rewritten plug-in, a hardware-accelerated graphics pipeline, and more.

Right near the end of the year, we got a better look at where Java's going. With the closures debate stalemated by a three-way tie between BGGA, other proposals, and the anti-closures camp, Sun announced that it is taking closures off the table entirely for Java 7, and instead focusing on modularizing the entire platform, as well as providing modularization for third-party Java applications and libraries.

So what's the biggest deal? At one point, I thought that iPhone-inspired "app stores" finally opening up the market for ME developers might be the story of the year, but looking at the above, there's some serious competition for the top story. With that in mind, the latest Poll asks "What was the most important Java news of 2008?" Cast your vote on the front page, then check out the results page for current tallies and discussion.

And one other thing, looking forward to 2009: our event list is looking mighty thin, and that's because we're waiting on organizers to post their events. If you're responsible for a Java-related event in the next few months (um, Java Posse Roundup... hello?), please use the form to let tell the community where and when your event is taking place.

In Java Today, JavaFX engineer and blogger Josh Marinacci has posted a guide (well, a hack, really...) on How to Use JavaFX in Your Swing Application. "The JavaFX samples page has an example of how to embed an existing Swing component or panel in your JavaFX application. However, we don't have an example of how to do the reverse: embed a JavaFX scene in your Swing application. I asked Rich and Jasper about this and they had the same need as well. After a long train ride to Devoxx this is the code they came up with."

Following up his earlier announcement of an upcoming JSR for Small language changes in JDK 7, Joe Darcy has posted some criteria for desirable small language changes. He points out that the onus will be on supporters to get a given changein, not on critics to keep it out. "When judging whether or not any change to the platform is worthwhile, a useful notion is estimating the feature's "thrust to weight ratio," that is estimating whether the benefits of making the change exceed the full cost of implementing the change. For language changes, this metric is improved by having a larger fraction of programs potentially benefiting from the change."

The latest edition, Issue 187 of the JavaTools Community Newsletter is out, with tool-related news from around the web, news from projects, new projects in the community and a graduation from the incubator (Kundo), and a Tool Tip on monitoring Hudson builds on Firefox.

The latest Java Mobility Podcast is Java Mobility Podcast 66: Sean Sheedy, JCP ME Executive Committee Feedback. Sean Sheedy was recently elected a JCP ME Executive Committee and is soliciting feedback on what developers think the EC should be addressing.

We're also putting this week's Spotlighton Sean's call for feedback to the ME EC. In a forum thread seeking feedback from the developer community about what the EC needs to be talking about, he writes, "I have my own ideas on what's needed, and plan to raise issues that have been stated previously. But the EC needs to hear what's on the mind of the general developer community, especially in light of newer mobile development platforms on the scene. What topics do you think the EC should be addressing?"

In today's Weblogs, Sergey Malenkov answers a question about How to drag nodes and windows? "Every JavaFX node is able to process mouse movement events. Thanks to this ability the user can easily drag nodes on the scene or move windows. However, there are some nuances worth mentioning..."

Sebastien Dionne looks at both sides of an NIO connection in Grizzly : Create a server and client with only few changes. "With Grizzly you can create a server and a client with just few changes. I'll describe how."

John Ferguson Smart asks Do you distribute your builds? "Distributed builds are actually more than just a "nice-to-have" - once you start using them, they become quite addictive!"

In today's Forums,ngterry wonders about a choice of app servers, in Newbie: Should I run Glassfish when Tomcat is enough? "If I have two applications running in one box (SUN X2100, Solaris 10 10/08, Postgresql): a) Adempiere ERP (, has EJB), b) a small Facebook application using JSP and servlet. Should I run these two applications separately using Glassfish and Tomcat? Should I run these two applications separately using two instances of Glassfish?"

Pankaj Jairath explains GlassFish's load balancing options in Re: Load balancer. "Load Balancing policies are round-robin, weighted and user defined. One can use the user-defined policy to build custom load balancing policy; for ex: MIME type based. LB does not specifically provide distribution based on CPU, memory availability. One could use weighted, in case of m/c with differential processing capabilities. For ex: m/c1 with two cpu's (with instance1) is more powerful than m/c2 (with instance2) then you could assign instance1 a weight of 2*weight-instance2; where weight-instance2 is the weight assigned to instance2."

Shai Almog warns about hazards of going around LWUIT rendering in Re: getKeyStates [Was: Re: Canvas in lwuit]. "The main problem with drawing directly on the canvas without going through LWUIT is in collision with LWUIT's own drawing. Since LWUIT uses the GameCanvas (which is something that currently we aren't changing but we might choose to) the flushGraphics call could cause a problem for you in some cases. Since you draw with a native graphics which expects flushing to occur when you finish."

Finally, tamir posts a Welcome to the new JavaTV thread. "Welcome everyone for our developer forum for discussing all related technologies and frameworks for developing Java applications for TV."

Current and upcoming Java Events :

Registered users can submit event listings for the Events Page using our 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 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 Archive.

Where's Java going in 2009?  

Filter Blog

By date: