Skip navigation
ANNOUNCEMENT: is currently Read only due to planned upgrade until 28-Sep-2020 9:30 AM Pacific Time. Any changes made during Read only mode will be lost and will need to be re-entered when the application is back read/write.

Hop A Plane Blog

Posted by kfarnham Jul 30, 2007

Packing or blogging, what to do?

OK, I'll level with you: I have to get up early tomorrow to catch a plane, it's 10 PM now, and I haven't even started packing.

Can you say "short blog day"? Excuse the expediency, but hopefully today's front page will speak for itself, 'cause I got nothing.

Will Enterprise Service Bus be the next big thing in enterprise integration? ESB is a highly ambitious standard, providing high levels of flexibility and extensive features. In our Feature Article,Exploring ESB Patterns with Mule, Igor Dayen shows how to implement a common enterprise integration pattern, the routing slip, by using Mule, a popular open-source messaging framework.

In Java Today, the San Diego JUG is announcing an appearance by Java founder James Gosling, at a special meeting on August 8. The meeting, held at 6PM at Intuit, has cleared out a two-hour block for "conversations with James", wrapped up with prize drawings and a mixer. Would-be guests are asked to RSVP in advance.

Java was prominent at this year's O'Reilly Open Source Convention, and slides of most of the presentations are now available. Among those with a particular appeal to readers are Kirill Grouchnikov's Advanced Effects in Java Desktop Applications, and Chet Haase on Beans Binding and the Swing Application Frameworks.

A new SDN Vodcast features an interview with Chet Haase, co-author of Filthy Rich Clients. In the 20-minute program, writer Ed Ort interviews Chet about what's new and cool for developing compelling desktop applications.

Today's Weblogsfeatures an all-jMaki theme, kicking off with Greg


Are You Ten Years Ago Blog

Posted by kfarnham Jul 30, 2007

How retro is your Java app?

Remember Java 5? Or are you looking forward to it? It's striking how much Java developers differ in how quickly or slowly they start using new versions of the language and its core libraries. While some people are bitterly complaining about Java 6's non-availability on the Mac, other major projects are targeting Java 5, the previous major version of the Java platform. For example, the Glossitope project recently announced it is moving from Java 6 to Java 5, so they'll be compatible with more end-user systems, the Mac situation being a major factor in that decision.

And some projects are on even older versions, wondering if now is the time to move ahead to Java 5, with Java 6 not even a consideration, even though it's the current version.

InfoQ is tracking an interesting debateamong participants in the jruby-dev listin its article JRuby: Java5 or not?. Noting that JRuby is currently Java 1.4-based, which appeals to the upgrade cycle of large companies, the article points out that "there are good arguments for breaking compatibility with 1.4 and using Java 5 features, besides allowing the JRuby team to use the new language features like Annotations or Enums. One would be the advanced concurrency libraries which were added to Java 5. Right now, a backport of the java.util.concurrentlibraries is shipped with JRuby, which means increased download size."

And if you think Java 1.4 is old, InfoQ also points out that "many projects, like Eclipse, opted to staying 1.4 compatible as long as possible, with basic technologies and libraries like OSGi or SWT even staying 1.1 or 1.2 compatible."

What works for you? What version's API do you target, and what do you stand to gain or lose with that choice? Is it different for server apps where you can control the runtime, versus libraries and end-user apps? And what about the option of coding to the older API's while potentially picking up VM improvements from newer versions of Java?

Also in Java Today, The latest in a series of SDN interviews is Meet Tom Marble, OpenJDK Ambassador for Sun Microsystems. In a conversation with Janice J. Heiss, he talks about the OpenJDK community and the projects it has spawned, including the Kitchen Sink Language project, RedHat's IcedTea project to replace JDK encumbrances with GNU Classpath equivalents, and a proposed, lightweight framebuffer-based peer implementation for AWT called fbtoolkit. He also discusses copyright concerns for open-source, benchmarking, and his interest in Tae Kwon Do.

In the NetBeans community article Welcome on Board NetBeans Air!, Tim Boudreau met the platform specialist Tom Wheeler to chat about Tom's latest "little" project: He ports applications that analyze mass properties of aircraft for Boeing. His Mass Toolkit project is expected to ultimately replace a native application running on Cray supercomputer, dispelling any concerns about Java performance.

The latest Java Mobility Podcast is Java Mobility Podcast 13: Mauricio Leal on Mobility and the Mobile and Embedded Community . In it, Mauricio Leal, Mobility Application Developer and Advocate, discusses the challenges and issues for Developers and Carriers, shares his insight on ever emerging role of mobile devices, and its impact to help bridge the digital divide in developing countries.



Today Blog

Posted by kfarnham Jul 27, 2007

Slightly delayed by podcast production

I'll be visiting family in Michigan for the next few weeks, so I spent this morning producing podcasts for today and for the next week and a half, so they'll be ready to go while I'm roving with the laptop. The production work isn't too difficult, but the steps required to load it onto the new download server and to prepare article records in our publishing system just takes a lot of time to work through.

And that's why the daily blog is late today.

Well, that and the fact I got a new phone, since the ear-speaker on my old one died, and I'm spending time personalizing it. The new one's Java-enabled, of course, but I've had to leave all my midlets behind on the old device. I could re-download some of them, but since my carrier is so hostile to letting midlets access the network, I don't even subscribe to their half-assed web access plan anymore. So it'll be a while since I re-equip with a suite of midlets. Still, I'll miss Galaga, at least until I decide to buy it again.

I just thought of something, though... I discovered some time ago that I could send e-mail to my phone (which arrives as SMS messages), and attach MIDI's and JPEG's for use as ringtones and wallpaper. I wonder if I could send a JAR file, store it to the phone, and run it? Am I just late to the party and is everyone already doing this? Or won't it work without a bunch of JAR-signing first?

Speaking of preparing ME apps, the first two messages in today'sForums, are from the same thread, addressing how to bundle up your code and all its dependencies for deployment to an ME user. In the first message from Re: ROMizing, Joe Bowbeer writes, "the problem you are trying to solve (adding classes from a 3rd party library to your MIDlet) is commonly solved by combining all the classes together and then using an obfuscator/compactor such as proguard to remove unused classes. The pieces of Ant script I sent previously show the basic steps. Linux is not an obstacle here and NetBeans is not a requirement."

As for the subject of the thread, terrencebarr has an explanation in his Re: ROMizing message. "The ROMizer is a tool that takes a list of class files, loads the classes and resolves them, and then takes a snapshot of the layout of all resulting data structures in memory and builds a set of C files that represent that state. This is now linked into the Java VM. The result is that all ROMized classes are immediately available for execution when the VM starts up thus reducing start-up time considerably It is an alternate means loading and resolving classes if these classes are known at the time the Java VM stack is built. But it is only an optimization and therefore I don't think is required for your situation."

Also in the ME forums, Christophe Planty voices his dissatisfaction with Java Verified in Re: Digital Signature for MIDlet? "Unfortunately the Java Verified initiative is not complete solution: - signature goes trough certification test, have a cost (150$ to 700$ per device) , can not be used for development & testing. - the level of signature is 'only' 3rd party, where some APIs can only be accessed. - limited number of devices. Even if some efforts are done to increase the device & manufacturers list, it's less than 10% of existing devices. (old devices can't be added in the list as it have to embed the jverified root certificate). - lack of prototypes. devices not yet on the market are not covered. (in the case of pre-embedding an application in a handset before it's on the market) Some testing house do have prototypes so there's sometime some tricky ways to perform test no those devices. But then there's no choice between testing houses for application developer. As application provider, I only use Java Verified for certification purpose, not for signing."

Our latest JavaOne Community Corner Podcast is j1-2k7-mtH07: Building your JUG on solid foundation . In this mini-talk from the JavaOne 2007 Community Corner, NLJUG leader Klaasjan Tukker describes techniques for building and fostering a successful Java User Group.

In Java Today, the latest Mobile & Embedded Community Podcast features Mauricio Leal on Mobility and the Mobile and Embedded Community. "Mauricio Leal, Mobility Application Developer and Advocate, discusses the challenges and issues for Developers and Carriers, shares his insight on ever emerging role of mobile devices, and its impact to help bridge the digital divide in developing countries."

The latest edition, issue 131, of the JavaTools Community Newsletter is available, with tool news from around the web, a new community project, and a Tool Tip on "JEditorPain" relief: "If you are using JEditorPane in your application to display html and you are suffering from the rendering limitations of this otherwise nice component, then you might consider Cobra as a replacement."

Despite still being incubated, the dcoat project's owner tells us it's "ripe" and ready for some attention. This ActiveRecord-inspired framework is a object-relation mapping layer, whose distinguishing features are its ease of learning and use, high performance, clean API's, and high productivity.

Touch-typist or hunt-and-peck-er? The latest Poll asks "How do you type your code?" Cast your vote on the front page, then visit the results page for current tallies and results.



Rocket Blog

Posted by kfarnham Jul 26, 2007

Some off-topic tools to speed up your webapp and clean up your code

A couple of interesting tools have been mentioned on some of our internal lists recently... they didn't really suit the Java Today section as front-page items, but they might be of use to many Java developers.

The first, mentioned by Mike [bondolo] Duigou on the Community Leaders list, is YSlow, a performance tool that analyzes web sites from a performance point of view. As described by its announcement, "YSlow measures web page performance based on the best practices evangelized by Yahoo!'s Exceptional Performance team. Since many of these best practices focus on the frontend, YSlow is integrated with Joe Hewitt's Firebug, the web development tool of choice for frontend developers."

Meanwhile, Google has released a Java static analysis tool called the Google Singleton Detector, which detects several types of global state: not just singletons, but some variants which Google engineers have given funny names to: mingletons, hingletons, and fingletons. And once you find them, you're supposed to eliminate them.

Say what? Everyone uses singletons, right? Well... not so much anymore, according to Google's Why Singletons Are Controversial:

The use of singletons is actually a fairly controversial subject in the Java community; what was once an often-used design pattern is now being looked at as a less than desirable coding practice. The problem with singletons is that they introduce global state into a program, allowing anyone to access them at anytime (ignoring scope). Even worse, singletons are one of the most overused design patterns today, meaning that many people introduce this possibly detrimental global state in instances where it isn't even necessary.

The document goes on to claim that this introduction of global state complicates testing (which in turn thrwarts agile development), and hides dependencies.

So while the Yahoo tool is focused on performance (and limited to webapps), the Google tool prescribes better programming practices to encourage testability and maintainability. They're two very different approaches to improving your code.

In Java Today, JSR review balloting is underway for JSR-317 (Java Persistence API 2.0) and JSR-318 (Enterprise JavaBeans 3.1). JPA 2.0 intends to add additional object/relational mapping functionality and query language capabilities, a criteria-based query API, and to standardize features that are currently optional. Meanwhile, EJB 3.1 aims to simplify the EJB architecture, with a focus on the core session bean and message-driven bean component models and their client API. Balloting for both JSR's ends on Monday, July 30.

The cq3G project is a suite of 48 tests based on 24 Test Cases for GSMNA Test Specifications for JAVA Micro Edition, Revision 1.0.3 February 20, 2007. The tests in the cq3G test suite are based on the Java Requirements of the Global System for Mobile Communications North America (GSMNA) - 3G Americas (3GA). This set of requirements delivers a defined and verifiable platform for the wireless community in the Americas.

The JDJ article Effective Development of Java Conformance Tests Meta-programming presents a case study of the use of meta-programming in Java compatibility testing. It shows how parts of the source code can be shared between different products and modified to generate programs targeting specific functions and describes the approach Sun Microsystems has used for building Technology Compatibility Kits (TCK) for more than five years.

Today's Weblogskicks off with showing how to make a Java Dock (Launch Bar). "With the timing framework and the glass panel, you can create almost any UI component. Offering cool and complex behaviors. In this blog I present a version of a launch bar (Dock)."

What's behind Nigel's Law? Nigel


Zero Blog

Posted by kfarnham Jul 25, 2007

Value of your supposedly reusable code: $0?!

We know that code reuse is important. Everyone's sick of writing the same things multiple times, wasting effort when surely there's some similar code that you wrote six months ago that could surely be refactored to serve both its old purpose and the new thing you're writing.

Or... not.

What if code reuse isn't all it's assumed to be? Maybe the reason we don't do it isn't that we're bad programmers or badly managed, but because code reuse isn't actually a good idea?

InfoQ quotes from a pair of essays on this topic in Code reuse highly overrated?. The first, Dennis Forbes' Internal Code Reuse Considered Dangerous from 2005, rails not against the abstract idea of code reuse, but rather against how it is typically practiced in the wild. A company will build up its own internal set of libraries, frameworks, components, etc., seemingly for reuse but in fact deeply tied into the company's own purposes, processes, and pathologies. When a new developer is told to just reuse this material, they often find it is nowhere close to reusable -- such internal products are typically shoddily documented, inadequately tested, and not really meant for reuse beyond the small number of projects already using it. Forbes says the key is an objective analysis:

The question every organization needs to ask itself, then, is what value they could sell their "reusable code" for - what, realistically, would competitors and new entrants in the field offer for it? The answer, in almost every case, is $0, and they wouldn't want it even at that price. There is extraordinarily little code theft in this industry (even though we're in the era of burnable DVDs and USB keys) because most code - above and beyond the industry-wide frameworks and libraries - has no value at all outside of a specific project with a specific group of developers. Trying to use it for other projects is often worse than starting with nothing at all.

In Is your code worthless?, Carl Lewis follows up with an anecdote about the reuse side of this equation. Tasked with integrating his company's code with a customer's, he found the customer jealously protective of its precious IP.

Since this customer was a big fish, I was sent to complete the integration at the customer


Bring the Light Blog

Posted by kfarnham Jul 24, 2007

Filthy Rich Clients now available on Safari

We've kept a close watch on Filthy Rich Clients, the GUI book that bloggers Chet Haase and Romain Guy have been working on for the last year or so. Along with the authors' prominence on the site, it's also high on our radar for being the first book to cover some of the cutting-edge projects in the Java Desktop community, such as the Timing Framework, which gets two chapters in FRC.

As you might imagine, the authors are relieved and overjoyed that the book is now available in its entirety. Printed copies will be available in a few weeks, and the online version is up now, as Chet reports in Final Filthy Content on Safari. "The publisher has posted the final content of Filthy Rich Clients to the Safari online book site. For anyone that was not satisfied with the typos and formatting of the Rough Cut and is eager for book before it's available in print in mid-August, have at it."

But what if you're not a Safari customer? Never fear. Visit Safari site for a 10-day-or-50-pages trial. That'll give you a deep dig into Filthy Rich Clients, and from there you can either sign up for Safari and read the whole book now, or order the paper version for delivery when it's ready.

And once again, congrats to Chet and Romain. 552 pages...dang!

Also in today's Weblogs, James

You might have noticed my use of a new term,user-facing, in some of my editor's blogs. Since Josh made a big deal of distinguishing between clientsoftware and desktop software in his recent blog about upcoming Java GUI awesomeness, I thought I'd take a minute to discuss why I'm in search of a new term.

First, Josh is right: "desktop" is a wholly inadequate term for a lot of the things we mean by the term. Now that the GUI toolkits originally meant for desktop applications are running on phones -- like Swing on the SavaJe (or whatever its successors will be called) to Cocoa on the iPhone -- the idea of associating the API with its typical real-world environment has been completely broken. The concept had other flaws as well, such as application baggage (presumptions of installers and double-clickables) that didn't make sense for scenarios like applets and Java WebStart. So "desktop" just isn't a term that does a lot of good for its intended uses anymore.

Josh uses "client" to cast a broader net, to include non-PC runtime environments like phones, set-top boxes, etc., that would also offer a visual interface to the user. Good. But my problem with the idea of calling these "clients" is the implication that there is a corresponding "server" somewhere. Coming from the company that makes the net work, the one that put the dot in dot com, that's a perfectly understandable bias. But I think its still inaccurate.

There are lots of apps we use every day that aren't networked, "clients" that don't have a server. Even if they do, in the context of describing API's and programming practices, "client" doesn't capture the essence of what's involved. If I talk about an e-mail "client", sure, the concept of that application interacting with a server is useful. But if I say I'm a "client-side programmer" who worked on an e-mail app, you'll rightly assume that my focus and speciality is on the buttons, lists, tables, and other components that make up the GUI. Maybe I did the networking too, but at the moment that I stop talking about Swing and start talking about sockets, I've temporarily stopped being a "client" programmer and started being a "network" programmer, even though I'm still working on an e-mail "client".

Lately, in the context of describing the field of developing GUI's, I've started using the term user-facing, as inuser-facing software, user-facing API's, etc. It's a mouthful, and I'm not entirely satisfied with it, but I think it has the advantage of accuracy across a broad range of technologies. A Swing programmer, a Flash author, and an Ajax JavaScript developer all have something important in common: their focus is on the code that presents information to the user and lets them interact with it through various facilities (buttons, menus, touch-screens, game controllers, speech recognition, etc.). The point is that these people are writing the code that the user is in direct, face-to-face contact with. Hence, "user-facing".

Also, it's a term that's biased and loaded in useful ways. A "client" is a balloon in a flow diagram on a whiteboard. Calling something "user facing" reminds us that there are real people working with our stuff, and reminds us that it had better not suck, you know, as if people mattered.

So, that's my case for a new term... maybe this one, and maybe another. But I'm consciously avoiding both "desktop" and "client" except in those cases where they are clearly accurate. When describing the broader concept of GUI code that is the user's point of access to a system, I'm trying to develop better terminology.


Doomsday Clock Blog

Posted by kfarnham Jul 23, 2007

Java to kill Flash, or Ajax to kill both, by next year?

Joshua Marinacci is sounding very re-energized about client Java, as he describes in his blog Java FX updated, and a visit to the future of client Java:

I've spent the last week in the bay area at secret clandestine meetings secretly planning the amazing top secret future of client Java and Java FX! Okay, that makes an endless week of meetings sound a lot more interesting than it really is, but there's some truth to it. We promised a lot of things at JavaOne, from designer tools to the consumer release of the JRE, and based on what I've seen in the last week I can say that we are really making all of this stuff happen. In fact, I'm going to come out here and make a bold (and not approved by my employer) statement:

2008 will be the year that client Java starts taking market share from Flash.

There, I said it. By JavaOne we will have completely re-energized client Java. And I mean client Java, not justdesktop Java. Everything will be faster, prettier, easier to use, and easier to deploy. We will be better in the browser. We will be better on the desktop. We will be better on the phones. Existing technologies are being updated and new technologies will see their debut at JavaOne, if not earlier.

Wow. Strong words, and I don't think Josh would risk putting them out there if he didn't have something to back them up (even if he can't tell us what that is yet).

To be fair, though, client-side Java is facing two prominent rivals -- Flash and Ajax -- and they're not exactly standing still. Flash is the obvious rival now, as the Java community is generally on very good terms with Ajax (maybe because most of our community is on the server side and is thus somewhat client-agnostic). But Ajax is still a significant threat to client-side Java: I noticed that the Mac blog Daring Fireballrecently cited an opinion piece from Roughly Drafted called The iPhone Threat to Adobe, Microsoft, Sun, Real, BREW, Symbian, which claims that the iPhone's adoption of a full-blown browser and its ability to handle JavaScript-heavy Ajax web apps is a strategic weapon to keep Flash Mobile from gaining ground. As a bit of collateral damage, since the iPhone doesn't support Java ME, its popularity could also hurt the "run everywhere" side of Java's WORA promise. Moreover, the article argues that if iPhone starts a trend of putting a full-blown, JavaScript-ready, Ajax-supporting browser on all phones, then Java ME will lose ground in the mobile space. The Manageability blog also wonders about this scenario, backtracking on an early prediction that ME would solidify its position as the standard as a result of Google Maps legitimizing ME.

Of course, there's a lot of this "there can only be one" rhetoric flying around. Some sensible types reject this so-called "Highlander Theory" because it's rare for one size to truly fit all. While Ajax support on the phone would keep providers from having to develop mobile-only clients with technology like ME, it's a platform that's totally unsuitable for a lot of popular applications. Check out the ME game collection on your phone: do you really want someone to try to write "Bejeweled" -- or "Galaga", for Jove's sake -- as a JavaScript web app? And notice that Apple didn't use Ajax for its Mail, Maps, and other productivity apps on the iPhone? They recognize the value of a full-blown client GUI platform too.

So user-facing Java, on the desktop and the device, is finally poised to start doing some really great things? Well, that's good news, because the competition is not standing still, and Java will have to prove its value in 2008 against the capabilities of Flash and Ajax with another year of development and evolution under their belts too.

In other news, today kicks off the O'Reilly Open Source convention, and Arun Gupta has a look at jMaki and GlassFish @ OSCON in today's Weblogs. "Sun Microsystems is a platinum sponsor of OSCON 2007 (Jul 23-27, Portland, OR). There are tutorials, sessions, bofs, expo hall and other events. Sun's continued commitment to Open Source is reflected in its leadership and key contributions to the many projects including OpenSolaris,, GNOME, Grid Engine,, Jini, JXTA, GlassFish, NetBeans, and Mozilla."



Shiny Happy People Blog

Posted by kfarnham Jul 19, 2007

Great stuff in the forums and blogs today

For personal reasons, I needed to put together Friday morning's page late Thursday night, as I'll be AFK for much of Friday for personal reasons. I was worried that with barely half a day passed since the last time I browsed the feeds, that it would be harder to find great new stuff for the front page.

Much to my surprise, it's been a remarkably productive day, as the forums and weblogs in particular are hopping with activity. Today's forum items are particularly good, as they show the wide gamut of interesting topics that come up in our discussions, from the technical details of 64-bit Java, to the interesting possibilities of spatialized sound offered by JOAL, the Java wrapper around the OpenAL library. I had actually picked five can't-miss discussions from our internal RSS feed of the forums, and had a hard time cutting down to the usual three (and to think that we used to only use two!).

First among the topics making the cut in today's featured messages from the Forums is a surprising internationalization gotcha, aschriscorbell asks if there are Any known issues with 4-byte utf-8 characters and JAX-WS? "I have a webservice hosted in JBoss and recently upgraded to JAX-WS from JAX-RPC. Everything's working well except a bug has appeared which wasn't there under JAX-RPC when a UTF-8-encoded 4-byte (e.g. Japanese) character is in the SOAP message body. The server returns a "Bad request" fault, somewhere early in the stack. Is there any known issue with 4-byte utf-8 characters and JAX-WS? The byte sequence of the character I'm using to test is F0 A6 9F 8C. The character (assuming it renders correctly here) is 柌. It occurs in the text content of an element in the SOAP body (not in an attribute value or identifier)."

edwardx21 wants to know why he's disappointed by what he's seeing in terms of 64-bit double math performance. "I have a science application that uses double math almost exclusively for some pretty heavy duty and long-running analyses. I thought that by using a 64-bit OS and Java VM I would naturally see about a 2x performance boost, but this is NOT the case. Performance actually degrades a bit, as the Sun 64-bit FAQ explains is due to increased pointer size. Why is there no performance increase for double math on the 64-bit VM? Doubles are 64 bit in size and the underlying 64 bit machine has a 64 bit data path. I would imagine that there is now one memory fetch per value rather than two. What is going on here?"

Finally, kcr has some getting started advice in Re: JOAL and JavaSound. "The JOALMixer solution can be fully deployed via Java Web Start. The joal JNLP file used by the java3d-*-joal JNLP files includes the OpenAL native libraries for Windows, Linux, and Mac OS X. You should be able to test this by running one of our Java 3D sound examples on a system without OpenAL installed: for JavaSound support, the JOAL solution isn't applicable, since it is primarily a wrapper on top of JOAL, which has 3D spatialized sound. JavaSound does not, so there really isn't any way to port anything from the JOALMixer work. I think that any time spent on JavaSound would be better spent elsewhere, but if someone in the community wants to take a stab at it, then I wish them "best of luck"." 

Meanwhile, Amy


Pretty Pursuasion Blog

Posted by kfarnham Jul 19, 2007

Of feature articles, Swing, and the rest of Java

What interests you about Java? Are there a lot of API's you're fairly familiar with, or a few libraries where you have deep, intense knowledge? How about what you're interested in learning? Do you want to know more about the kinds of things you're already doing, or would you like to read about something completely new? If you're hacking away on the server-side, do you want to read more about persistence, business logic encapsulation, and webapps, or do you want to read about how to do GUI's on phones and set-top boxes? Of course, these are the questions asked by our current poll (if you haven't answered, you have until tomorrow!), and it's something that the editorial group keeps in mind as we acquire new feature articles.

Of course, we can't publish 'em if people won't write 'em, and we've gotten into an interesting situation where we seem to have more good proposals coming in for SE and ME articles lately than EE (or enterprise-oriented SE). And I'm not sure why that is. Our editorial focus is on the three core Java platforms (ME, SE, and EE), along with the 4,000+ projects on the site, and with such active GlassFish and Enterprisecommunities, it's a little surprising that I don't get more proposals about the many EE API's, enterprise projects, or the community itself.

Moreover, it seems like there are a lot of writers who have one project of interest -- not their own, just something the use and like -- and, thus have a single article in them. Surely there are developers out there who've worked with a variety of tools and libraries on different kinds of projects, or who are studying the great new stuff they wish they'd had a few years ago when they started some project, and can offer multiple proposals on the stuff they know.

Of course, this is a hint to all you enterprise guys and gals out there. Hint, hint.

As I said, there are several good GUI writers who write for on a regular basis, one of whom is Substance creator Kirill Grouchnikov. He contributes today's Feature Article,Adding Auto-Completion Support to Swing Comboboxes . Auto-completion, as seen in browser address bars (among other GUIs), can be a very useful and much appreciated trait for input fields in your GUI. However, all of the second-generation Java GUI toolkits provide the feature differently. In this article, Kirill shows how to add auto-completion to comboboxes in GlazedLists, SwingX, JIDE, and Laf-Widget.

In Java Today,JSR-316, Java EE 6, has been approved, but not without some controversy. As notedby JavaLobby, the Apache Software Foundation voted against the JSR as a protest over licensing issues. In its vote, Apache commented "The Apache Software Foundation's vote is based on the point of view that this spec lead -- Sun -- is in violation of the JSPA [Java Specification Participation Agreement] and therefore shouldn't be allowed to start another JSR [Java Specification Request] until the above matter is resolved." This brought a sharp rebuke from Bill Barker on Apache's JCP-OPEN mailing list: "And now we look like the FSF, playing politics with our vote..."

Few have been closer to the day-to-day processes involved in open sourcing the Java Platform, Standard Edition (Java SE) than Ray Gans, a manager at Sun Microsystems with a long history of working with Java compatibility programs. He currently manages the OpenJDK and Mobile & Embedded community programs, where he works to improve the collaboration between Sun and the open-source Java developer community. In A Conversation With Ray Gans of the OpenJDK Community Program, interviewer Janice J Heiss talks with him to gain a better understanding of how the open sourcing of the Java SE platform is going and where it is headed.

A new NetBeans tutorial shows you How to integrate the FindBugs plug-in for NetBeans. "FindBugs is an open source static analysis tool to search your code (exactly your compiled bytecode) for various bug patterns." The tutorial shows how to configure a new Update Center for the FindBugs-Plugin, install the plugin and start to find some bugs.

In today's Weblogs, Evan

Another status check on the mini-talk podcast audio

Last month, I did a daily blog that updated our progress playing through the mini-talks from our JavaOne booth. We've been putting two of these a week out as a podcast. As it turns out, discovering what we have, what we missed, what talks were never even presented (a few speakers never showed up), has required a bit of investigation. I can't find any evidence, for example, that the proposed Greenfoot mini-talk was ever presented, even though it was scheduled twice, and I know for a fact that a mini-talk on scaling PostgreSQL never happened, because I was in the booth with about 10 other people looking forward to it, and the speaker didn't show.

Anyways, yesterday, I went through the remaining audio files that I hadn't already marked as used or unusable, to figure out what talks are left for use in the feed. Counting this week's two podcasts, there are 13 viable files left to use, meaning the podcasts should be able to run through late August or early September. And that's pretty much the timing I wanted to achieve -- I didn't want talks to get more than a few months old for fear their tech specifics could get out of date.

By the way, if you're a speaker and you meant to post slides to the mini-talks page but haven't done so, please go ahead and do so. It will be helpful to podcast listeners to be able to follow along. And we know that more people get the talks via podcast than were in the booth at the time of the original presentation.

So, while we're on the topic, the latest JavaOne Community Corner Podcast is j1-2k7-mtH01: Open Source Business Opportunities. In this mini-talk from the Community Corner at JavaOne, Edgar Silva takes a very Brazilian perspective in a free-form discussion of business models and opportunities he's seen with the adoption of open-source software development.

In Java Today, the NetBeans Weekly Newsletter has hit a milestone with the release of the300th issue. Features of this edition include a celebration of the 300th issue, 300 Reasons to Read the NetBeans Weekly Newsletter, a look at which IDE Won the Cologne Shootout, a call to help shape the next plug-in portal, a Project Tango overview, using selection lsts in Rails, and more.

Ajax applications driven by asynchronous server-side events can be tricky to implement and difficult to scale. In Write scalable Comet applications with Jetty and Direct Web Remoting, Philip McCarthy shows an effective approach: The Comet pattern allows you to push data to clients, and Jetty 6's Continuations API lets your Comet application scale to a large number of clients. You can conveniently take advantage of both Comet and Continuations with the Reverse Ajax technology in Direct Web Remoting 2.

Java Content Repository 2.0 is now in public review as JSR-283, with a public review ballot scheduled to begin on September 4. The previous version, JSR-170is doing well, and that prompted InfoQ to do a JCR roundup article, in which they talk with David Nuescheler, CTO of Day Software and the spec lead for JSRs 283 and 170 about Java Content Repositories.

In today's Weblogs, Alexey

Blogs doom high-value online media. Or not.

A little diversion from the front page items today, one which gets at the very idea of the front page items. I'm looking at a little cognitive dissonance between two prominent reports that came across my browser recently (no, I don't do RSS; it's just never really suited me). Basically, one makes the case that in-depth articles are far more valuable than hastily-written blogs, while the other claims that the millions of blogs (and the Google ads that often keep them afloat) have depressed the online advertising market that keeps many of the article-driven sites afloat.

We'll start with Jakob Nielsen's Write Articles, Not Blog Postings. He says that to demonstrate leadership, build credibility and respect, and avoid commoditization, that you want to develop deep, value-added content, rather than taking the easier route of adding comments and pointers to content that already exists or is developing in the blogosphere.

In-depth content that takes much longer to create is beyond the abilities of the lesser experts. A thousand monkeys writing for 1,000 hours doesn't add up to Shakespeare. They'll actually create a thousand low-to-medium-quality postings that aren't integrated and that don't give readers a comprehensive understanding of the topic -- even if those readers suffer through all 1,000 blogs.

He also points out that with the massive number of blogs, even experts who write quality blog entries will get lost in the stack, and they'll frequently be outclassed by lesser semi-experts anyways. On the other hand, creating high-end content that only true experts could create offers far more value to the reader and to the host.

Buuuutttt... will anyone pay for it? Forbes notes how badly ad-supported content sites are doing, despite tech's current good times. Tech Boom, Media Bust starts off by noting that Red Herring faced a three-day eviction notice a few weeks back, and goes on to discuss falling ad revenue at other content-driven sites, with CNet and PC Magazine getting beat by blogs like GigaOm, TechCrunch and Valleywag.

So what does this matter to the reader? Fortunately, the site does not require (or accept) advertising, as it's supported by Sun, so we're not grasping for declining ad revenue. That lets us focus on quality content, ideally content that helps foster community and bring attention to the projects and activities on the site. The feature articles, podcasts, and blogs can focus on being good, and not feel the pressure to suit advertisers' goals. Of course, it's interesting to note that some of our bloggers effectively do write the kind of high-end piece that only an expert could write... and those of you doing so should e-mail me so we can pay you to write those as feature articles next time around.

It's also interesting that this discussion mirrors the results of a poll we did a few years back, asking What is your preferred source for learning about new products and projects?. Granted there is a self-selection bias here (an online poll will naturally tend towards answers that involve online activity), but the results still surprised people at O'Reilly that I've shown them to: after "formal online sources" (feature articles, white papers, etc.), the next most popular sources were "informal online sources" (blogs, forums, etc.). Books and magazines, represented as "formal offline sources", were a distant third. Lesson one that we drew from this was that online stomps offline. Lesson two, though, is that a significant number of people do find value in the informality (and sheer mass) of sources like blogs and forums. And this is something I'd like to understand better: are the people who like this kind of content thinking of the expert bloggers and sites with thoughtful article-length blogs (Ars Technica, Artima, etc.), or are they finding value in reading lots of shorter, pointer-and-comment blogs, and perhaps participating in the comments on those blogs?

There's value in getting the expert to go in depth. Is there also value in the online producer, copy-editor, and podcast producer? Or would you rather eliminate the production values and make everything be an article-length blog? Of course, you effectively vote with your mouse by choosing what you do and don't view or hear, and if you have more thoughts on how we can make more useful to you, please followup in the comments below...

Speaking of our bloggers, today's Weblogs section starts off with Kohsuke


Finest Worksong Blog

Posted by kfarnham Jul 15, 2007

People on the forums are working on some interesting stuff!

I've noted the traditional summer slowdown (with apologies to the Southern Hemisphere) before in this blog, typified by things like James Gosling's blognot updating for almost two months. But while some people are apparently taking the summer off, evidence abounds that there are outbursts of activity and creativity all around the Java community.

For example, consider today's Forums, in which we find developers working on barcode readers, speech recognition, and more. We start with akalos, who is apparently trying to do a speech-driven browser and needs to support HTML forms with a spoken interface, as explained in the post insert text in displayed page text field. "I am working on speech recognition field. i tried to navigate web with voice. i useorg.jdesktop.jdic.browser.WebBrowser as my web browser and control basic navigation like setURL(), back() and forward() with voice. it work just fine since i can directly control the function and pass the url. the problem is i also need to fill a textfield in the displayed page with voice. for example in, i need to fill the search texfield and doclick the search button."

On the ME side, jfallsen is trying to support Java-based barcode reading in using barcode reader on a PDA and have an application wake up and execute.. "I am trying to create a application which are to be running on a PDA and wakes up and execute when i use a barcode reader, similar to Push Registry which can execute an application on incoming connections. But i cannot use Push Registry through port connections only through web connections and i don't know if the barcode reader are to use USB port or bluetooth port yet. have you guys any suggestions what i can use in order to implement this, or have you any solutions to this problem? have J2ME any interfaces or services i can use in order to implement this?"

Finally, zjzzjc could use some guidance with a problem of invoking xjc in runtime. "I want to use xjc to compile schema to java source code in runtime. Now I am trying to use to invoke the xjc command. My problem is that after the application gets to that point,(after compiling the schema), the whole application breaks. How can I make the application keep running after that?"

The programming activity theme continues in today's Weblogs, as Kohsuke


Whenever You're Ready Blog

Posted by kfarnham Jul 12, 2007

Beyond the comfort zone, what do you want to do next?

With its three distinct platforms (ME, SE, EE) and thousands of classes between them, it's perfectly reasonable to carve out a comfort zone and make a good career out of a specific subset of the Java platform. Enterprise Java developers typically pick-and-choose from relevant EE API's as needed for their projects, and leave the rest alone. Or, in some cases, they use enterprise-ready alternatives to EE, like Spring, Hibernate, etc., effectively setting themselves up as "Enterprise SE" specialists. Meanwhile, others have careers in the desktop part of SE, which has enough to keep you busy for a while. And then there's ME in its various forms: cellphone, interactive TV, or something else?

A question for you then... have you wanted to try something else with Java? If you're a desktop person, do you feel pressure to move into enterprise? If you're a server-sider, do you mess around with Swing when nobody's looking?

Your editor is a long-time desktop specialist, but I've been playing with ME more this Summer... partially because the Mobile & Embedded community has been so generous with information since it was formed late last year, partially because I have a moth-to-the-flame attraction to interactive TV technologies (MHP, BD-J, etc.), and partially because the long-time resistance to Mac-based ME development has been whittled down by third-party all-Java emulators and development environments (among them Mpowerplayer and XleTView). It'd be nice if the home team would get with the all-Java program, but that's a rant for another time (about four years in the past, to be specific).

So, since the thought of branching out and trying new things is in the air, latest Poll asks "Which style of Java development would you like to learn more about?" Cast your vote on the front page, then check out the results pagefor current tallies and discussion. The results could be helpful in guiding the content mix on the site, as you can tell us what Java things you'd like to be doing more of.

In Java Today, the JDK community home page has linked to a blog from Roman Kennke, who expresses his frustration at OpenJDK's contribution review time in Contributing to OpenJDK, no thanks: "It is such a ridiculous pain to get a patch into OpenJDK, I get the feeling that this is not the kind of project, I would feel comfortable with. Both of the above linked patches have been rather trivial. Davids patch even came with a testcase. And still it has to go through a week-long process before it can show up in the build. This will scare off most voluntary contributors quickly I guess."

"Kicking Butt with MIDP and MSA is the latest in a string of technology books from the accomplished technical writer and author Jonathan Knudsen. As the title implies, his latest (yet to be released) book addresses the API's for MIDP devices that are included in JSR 248, aka Mobile Services Architecture (MSA)." In the interview Jonathan Knudsen is Kicking Butt, he talks about the books he's written, his current work on JavaFX Mobile, and his system for getting things done with small pockets of time.

Why are so many new API's still so bad? In the ACM Queue articleAPI: Design Matters, Michi Henning says "there seems to be something elusive about API design that, despite many years of progress, we have yet to master." He digs into the challenges of writing good API's, what the proper responsibilities of API's are, and the prospect of developers being held responsible, perhaps through legal means, for the quality of their work.

Those of you anxiously awaiting Chet Haase and Romain Guy's Filthy Rich Clients book will be delighted with Chet's report in today's Weblogs that it's been Sent to Print! "The book's been sent to the printers, so we're actually, finally done. We hope."



Going Out of my Head Blog

Posted by kfarnham Jul 12, 2007

Get it right, or get it done?

Do some concepts work better in theory than practice? Everyone who develops Java is implicitly a convert to the ideas of object-oriented programming... until you need to provide some functionality to disparate objects in a way that subclassing and delegation don't really suit (logging can be like this). And then suddenly, we're going outside the box to hand responsibility over to some supposed container (the inversion-of-control pattern) or dynamic insertion of code at runtime (e.g., aspect oriented programming). Sometimes it's enough to make you wonder if the 2% of your needs that don't suit OO are going to shake the foundation of the other 98%.

Similarly, let's consider the popular maxim of don't repeat yourself coding. On its face, it makes perfect sense: if you're writing the same (or substantially similar) code in many places, then you're presumably doing something wrong. After all, isn't the point of OO to encourage code reuse? Shouldn't you bereusing code instead of repeating it?

This is the thinking behind Feature Article, the latest in our ongoing series of not-so-stupid questions. In (Not So) Stupid Questions 17: Should Code be Clean or D.R.Y.?, we were asked to consider a case where a fancytoString() method is useful for different object hierarchies, but resists typical reuse strategies. Is it so wrong to repeat a dozen or so lines at the highest class level possible, or do we need to reorganize our class hierarchy just to better suit the custom toString()? Are there other approaches? We hope you'll join in with your thoughts on what's right and what's practical and whether they can really be the same thing.

In Java Today, the WSIT project has posted a comprehensive introduction to web services interoperability, Project Tango: An Overview (PDF, 624 KB). "This document provides an overview of Project Tango. Project Tango is an open source implementation from Sun Microsystems of the key enterprise Web services specifications, commonly known as WS-*, that provides interoperability with .NET 3.0. "

"If you've developed many applications using a Swing-based graphical user interface (GUI), you've probably solved some common problems over and over again. Those problems include managing the application life cycle, event handling, threading, localizable resources, and maybe even persistence." Ideally, these are the kinds of common concerns that can be better handled by a framework, namely the Swing Application Framework. In the SDN article Using the Swing Application Framework (JSR 296), John O'Conner introduces the project and shows how to dig into it.

Artima's Frank Sommers sets aside Steve Jobs' controversial comments about Java and asks a bigger question in What Will the iPhone Mean for Mobile Development?. Aside from raising user expectations and changing relationships between hardware vendors and mobile network providers, he notes the effect of bundling in a complete web browser and advocating Ajax web apps. "If other phone vendors follow suit and include in their devices a full-fledged Web browser, Ajax could emerge as the development platform of choice for mobile devices. That could potentially do away with many years' worth of attempts to establish mobile device-specific development platforms, such as BREW or WAP."



Just Out of Reach Blog

Posted by kfarnham Jul 11, 2007

...but tantalizingly closer to an unencumbered JDK

Back in May, we noted Red Hat's plans for OpenJDK, which involved using code from GNU Classpath in an effort to remove the remaining IP-encumbered code from OpenJDK, most obviously the graphics rasterizers we heard so much about at JavaOne 2007. Today, we've got an update on that, thanks to the OpenJDK community leaders, who came across the Fkung blog and started cross-posting its updates to the OpenJDK page.

It's not immediately obvious who Fkung is -- the blog's about page is empty, though a January entry indicates that he or she is an intern at Red Hat, working though the summer on Classpath -- but whoever's writing it has some pretty exciting developments to report. It starts with a "major milestone" on June 25, regarding IcedTea


Time of the Season Blog

Posted by kfarnham Jul 10, 2007

A late start, a chaotic rush of activity

Sorry the blog is so late today... it's been a weird day here. I blame long, lazy summer days.

Anyways, up late, get the kid to preschool, then distracted with technical issues (all right, I'll give: I was trying to get Maple Story running on Parallels and it apparently balked at the virtualized graphics card), and in the stack of things to do, I overlooked pushing the latest Mobile & Embedded Podcast to the front page until almost lunch-time.

And this isn't one you want to overlook. Java Mobility Podcast 11 features a conversation with Dalibor Topic, who's best known from his work on Kaffe and GNU Classpath, and is now a member of the OpenJDK Governance Board(he's also active on various forums, under the usernamerobilad). You might be wondering what someone so invested in Java SE is doing on the ME podcast, yet his conversation with Roger Brinkley is filled with relevance to both communities. Roger asks him about the focus within the ME community on application developers, and this leads to a discussion of the importance of distribution channels for software. Dalibor notes that while Microsoft and Apple largely control their channels, mobility potentially offers a greater opportunity for innovation. There are also interesting parallels to be drawn from the open-sourcing of the ME and SE implementations, both of which were announced together last November.

We also have a new Feature Articletoday, an introduction to Scalable Vector Graphics on Java ME. SVG Tiny Profile is spec'ed for Java ME in JSR 226, and it will be a requirement in upcoming ME handsets. In this article, Biswajit Sarkar has an introduction to drawing, loading, and animating SVG images in ME.

In Java Today, the Beans Bindingproject, which is developing both the spec and implementation of JSR-295, is making a major change of course by eliminating the required use of the the JSP Expression Language (EL). in a message to the beansbinding developer list, Shannon Hickey proposes a new API to bind properties together. "We all know the two current hot problems with JSR 295: the EL requirement, and the use of ad-hoc parameters rather than subclasses. [...] This is a proposal for resolving these issues, and a request for comments."

Continuing a series from earlier this year, Hibernate creator Gavin King has posted two more installments in his Java EE 6 Wish List series. Part II focuses on JSF. "I'm a fan of JSF, not because JSF is by any means perfect, but because I like the overall architecture, and judge its warts and limitations to be more "fixable" than those of other Web Framworks I've used." He calls for asynchronous partial submits and renders, an annotation-based programming model, improved orchestration and error handling, an enhanced lifecycle for non-faces requests, and more. In Part III, he turns his attention to the Expression Language (EL). "While a lot of effort was put into designing the Java-level APIs for working with Unified EL, the expression language itself hasn't changed much since the earliest days of JSP. It is now well past time for some new features."

Heard enough of REST vs. WS-*? David Chappell's blog declares the war over, citing REST adoption by the already WS-inclined Sun and Microsoft. "The war ended in a truce rather than crushing victory for one side--it's Korea, not World War II. The now-obvious truth is that both technologies have value, and both will be used going forward." Elliotte Rusty Harold stretches this analogy in North and South: "That's a nice analogy. Take it one step further though. WS-* is North Korea and REST is South Korea. While REST will go on to become an economic powerhouse with steadily increasing standards of living for all its citizens, WS-* is doomed to sixty+ years of starvation, poverty, tyranny, and defections..."



What More Can I Do? Blog

Posted by kfarnham Jul 9, 2007

Does the user care how you write your apps?

In his blog, David Herron digs into a comment from a previous blog, that said "Consumers dont care about programming languages, they just want solution." David goes off on a different direction, and we'll get back there, but let's expand on that comment.

Does someone using a web browser, a word processor, a music player, a game, etc., really care what language it's written in? Likely not; few end-users are aware that there are multiple computer languages, or what the differences between them are. This is even more opaque on the web: does your favorite web app use Java, Ruby, or .NET, and could you even tell? On the desktop or the small device, there are traits that may give away the language: a Swing L&F that differs slightly from native widgets on the platform, a script that can only be invoked from the command line (or that brings up an ugly DOS window when run on Windows), a Flash app that exists only within the context of a web page, a Java app that looks and runs the same way on all platforms. But chances are, the user is not interested in using these traits as a means of divining the implementation language; they're more likely focused on the traits themselves, enjoying the ability to cross platforms or cursing the ugly DOS window.

Seen another way, it's not the language, it's what you can deliver to the user with your choice of language. For example, if you want to deliver your app to all users, regardless of OS, you may well choose Java, not necessarily because you like Java (though we hope you do!) but because that delivers a value to your users.

It seems like this is true not only of language choice, but of many process decisions too. Is it intrinsically valuable to users that your app is open-source... are that many people really going to look at your code and possibly hack on it... or is the value that open-source is potentially better tested, better understood, more secure, etc.? Does the user care about your testing methodology? No, they just care that the app doesn't crash. Agile or waterfall? DKDC, just give us an app that works.

It can be tempting for us as developers to get into discussions that are so focused on our own needs -- closures and properties anyone? -- that it's easy to overlook the big picture: does this stuff help us deliver value to users?

Returning our attention to today's Weblogs section and the entryPeople don't care about the programming language used to write their apps?, David Herron writes: "Speaking for myself ... maybe I'm a strange weirdo, but I care a lot about the full wholistic picture of the products and services around me, and a lot more attributes than whether the resulting product is good quality or not." Read on to understand where this ling of thinking takes him.



Coming Up Blog

Posted by kfarnham Jul 6, 2007

Early candidates for JDK 7

Java SE 7 remains a reasonably long ways off -- the Java in Production blog gives 2009 as an approximate launch date -- yet it's not too early to see some of its pieces coming together. If the past is any guide, we'll see a feature freeze months before the final version, so we may have a clear view of its contents by, say, early next year.

Some of the pieces are already coming together through the JCP. A number of key API's are being developed in a process that develops the implementation in parallel with the specification. Two local examples of this are the Beans Binding and Swing Application Framework projects. Both of them have pre-JSR code you can check out and start working with now, with the caveat that it's a work in progress. There's also the OpenJDK Modules projects, which represent work on JSR-277 and JSR-294.

So there are a couple of pieces we can be reasonably certain will make SE 7 -- if they don't, it certainly won't be for lack of preparedness.

Meanwhile, the JCP site shows a number of JSR's currently in one of the review stages: JSR-275 (Units Specification), which we'll mention again in a minute, is in public review, as is JSR-225 (XQuery API for Java). Meanwhile, the SE-related JSR's JSR-113 (Java Speech API 2.0), JSR-196(Authentication Service Provider Interface for Containers), and JSR-263 (Fault Management API) all have final drafts available for review.

So, if you look around and dig in, you can see some of the pieces of Java SE 7 beginning to take shape. We'll have more to say on this as part of a special series that's still in development, but for now, if one of these topics interests you, why not take a look at the resources that are available? You can be the first among your peers to start preparing for SE 7.

And on the topic of looking through the upcoming JSR's, the latest Poll asks "How often do you read early drafts or public reviews of JSR's?" Cast your vote on the front page, then visit theresults page for current tallies and discussion.

The Java Todaystarts off with another item on digging into JSR drafts. Before the early draft review for JSR-275 (Units Specification) ends on July 8, there are several places interested developers can go for more information. The jsr-275 project is the home for the expert group's collaboration, and hosts the current draft spec (PDF, 296 KB). You can also check out, which is hosting the reference implementation for javax.measure.*.

World Wind is open-source software, developed by the National Aeronautics and Space Administration (NASA) that allows you to zoom from satellite altitude into any place on earth. But it's not just a toy. As the SDN article Using NASA's World Wind Component in Your Java Technologypoints out, "World Wind is a Java technology component that you can integrate into your applications to incorporate 3D earth modeling. World Wind does all the hard work for you, such as dynamic image selection and retrieval for images of the earth's topography. In addition, because the software is open source and written in the Java programming language, you can build into the NASA World Wind Java 3D visualization technology. You are also free to extend or embed the component architecture for business, research, or education. "

The latest issue of the JavaTools Community Newsletter is out, with tool news from around the web, announcements of new projects in the community (QN Plot and JavaDS), and a Tool Tip on creating Jasper Reports using NetBeans.

Today's Weblogsreturns to the topic of the Units Specification JSR (mentioned above) in Jody

Posse audio from our JavaOne booth

I was over in the mini-talk audience area when I first noticed that the Java Posse guys had stopped by the booth at JavaOne, complete with recording gear. "What's up with that?" I wondered.

Now we know. It turns out that they combed the pavilion floor a few times, grabbing people they knew or wanted to know and chatting about the show, the stuff on display, the various projects people were working on, etc. Edited together, it seems a pretty random mix, as they go from talking about IDE's to ME to robots to Flash, etc. But that's pretty much the impression that anyone gets from walking the pavilion floor at JavaOne... there's just that much going on. If code obfucators aren't your thing, look across the aisle and you'll probably see something completely different: object databases, Blu-Ray players, code coverage tools, etc.

So we kick off the Java Today section with the two podcasts they've released of their JavaOne Pavilion walkabouts. In Java Posse #129 - Walking around JavaOne 2007, Part 1, they stop by the booth and talk with Aaron Houston, Paul Webber, Mike Van Riper, Chris Maki, Felipe Gaucho, and Michael Hutterman about JUG's and Java Champions. In Java Posse #131 - Walking Around JavaOne 2007, Part 2, Posse member Joe Nuxoll returns to the booth to talk with Robotics Community leader Bruce Boyes and Eric Arceneaux about SunSpots, TrackBots, and other Java-based robotics technologies.

In XQuery Java API JSR 225 Available for Public Review, InfoQ reports "the first public review draft of JSR 225: XQuery API for Java has been posted for review. The spec (being led by Oracle) aims to provide standard programmatic access for XQuery implementations in Java. XQJ is a generic XQuery data access framework, which provides a uniform interface on top of a variety of different XQuery implementations." The article goes on to cover early feedback from industry experts and related JSRs.

A recent interview on, Martin Brehovsky - SVG and NetBeans, features a discussion of mobile tools in NetBeans and support for JSR-226 SVG in mobile devices. Martin, an engineer on the NetBeans mobility team, says "the coolest thing about SVG is not the fact it is vector, but the fact it is interactive and animated, so one can create very flashy UI with it. A great thing also is the graphics can be designed in designer's tools like Adobe Illustrator or Ikivo Animator and then brought to the NetBeans IDE and used in the visual designer."

Speaking of conferences, today's Weblogs feature two blogs with wrap-ups and reminisces of Jazoon '07. Fabrizio


Live and Let Die Blog

Posted by kfarnham Jul 4, 2007

Scratch JSR-313... EE 6 lives on as JSR-316

So it was a little weird in April when JSR-313, the JSR for Java EE 6, was withdrawn, with the comments on the review ballotindicating concerns over the licensing model. Many of us expected this would be resolved in time for JavaOne, but the conference came and went without a new formal JSR for EE 6. Instead, a few months later, JSR-316has just been submitted to the JCP for approval.

But enough politics and legalese... you're probably wonderingwhat's in it? According to the proposal, the top goals for JSR-316 are extensibility, a concept of "profiles" to deliver targeted subsets of EE 6, and a process for pruning obsolete API's from EE. The JSR also anticipates folding in JSR's 196, 236, 237, 299, and 311, as well as making updates to EJB, JPA, Servlets, JSF, JAX-WS, and the Java EE Connector API.

InfoQ has a roundup of the JSR, including extensive feedback quoted from a blog by Interface 21's Rod Johnson, who praises the customizability concepts in EE 6, which will allow vendors to focus their development and testing on only those parts of EE that make sense for them and their customers. "I believe that the enterprise Java community should welcome Java EE 6, and should welcome Sun's willingness to move with the times and take the choices that will strengthen the enterprise Java platform as a whole. There's a lot of good in J2EE/Java EE, but some of the problems have obscured it. Java EE 6 should change that!"

But what do you think? Do you need EE 6, or some particular subset of it? Are you ready to see obsolete API's like EJB CMP and JAX-RPC go away? Take a look at the JSR and let us know what you think.

Also in Java Today, the incubated Java Desktop Community project Swing Exploreroffers "visual exploring of Swing-based application internals. It finds all windows in explored Swing application and displays their component hierarchies as a tree. Each component in the tree can be displayed in the Swing Explorer's work area and visually inspected. Swing Explorer helps to determine sub-components when user moves mouse over them and provides additional information about currently selected component (layout, size, coordinates, border and other things)."

Although the contents of Java SE 7 are still in flux, early candidates of concurrency features for inclusion are are already taking shape: a fork/join framework and a transfer queue. In New Concurrency Features for Java SE 7, InfoQ's Geoffrey Wiseman details a discussion with Doug Lea about these features and concurrency in Java SE 7.

Our latest JavaOne Community Corner Podcast is j1-2k7-mtH02: Interview with Brian Behlendorf. In an interview from the JavaOne 2007 Community Corner, editor Chris Adamson interviews Brian Behlendorf about his early involvement with the Apache project, the creation and development of the Apache Foundation and CollabNet, his perspectives on the open-source community, and what his next big project could be.



Let Me Roll It Blog

Posted by kfarnham Jul 3, 2007

Taking control of your own web services

A couple of years ago, I remember sitting in the JavaOne keynote (er, "Sun General Session") as various speakers went over features coming in Java SE 6. One was an annotation for setting up a web service automatically, letting IoC figure out how to expose the method and letting the developer worry only about the implementation.

Thing was, this was the Java SE roadmap. And I'm thinking "why isn't this in the EE keynote? I'm a desktop guy; why do I care about web services?"

Time -- and a concrete implementation -- have cured my ignorance on this point. First, there's the matter that several important and viable enterprise stacks (Spring, for example) are built atop SE without being EE, per se. Providing web services in SE lifts all boats, EE or otherwise.

Moreover, web services are increasingly important as a distributed systems technology. Young Yang makes the case for this in today's Feature Article,JAX-WS Web Services Without Java EE Containers:

One justification for including JAX-WS 2.0 as part of Java SE 6.0 instead of Java EE 5 is that web service delivery with JAX-WS 2.0 does not require a servlet or EJB container. This makes HTTP more or less an equal peer of RMI as an intrinsic protocol for distributed computing on the Java platform, and further extends the reach of web services.

In the article, you'll see how to jump directly into package and provide your own endpoint and get access to the underlying HTTP server. Want to do peer-to-peer web services, mock web services, or something else we haven't thought of? Digging in at this level should open up lots of opportunities.

In Java Today, Milestone 10 of NetBeans 6.0 (M10) is now available for download. Milestone 10 comes up with many new features and improvements, including: New default color scheme and syntax coloring, Ruby Debugger enhancements (global vars, watch view, locals view), Redesigned Find / Replace dialog, Integrated Visual Design for Web Applications, and more. More details about all features can be found on the NetBeans Wiki. The overall report for M10 is available as well.

The still-incubated Notebook project shows a lot of promise, offering a simple program to organize notes, to-dos, lists, and anything else you need to jot down. "Notebook is designed to be small, fast, and portable. This makes it ideal to keep on a USB thumb drive, and use on any computer with Java 1.5 or higher installed. Notebook is also designed to be simple and easy to use. No extensive menus, no complicated options, and no fluff." The first release offers executables for Mac and Windows, as well as a plain JAR file.

InfoQ recently sat down with Sun CTO Bob Brewin to discuss the Eclipse Europa release and the future direction of Sun's Netbeans IDE. The summary article Sun CTO Bob Brewin on Eclipse 3.3 and the Future of Netbeans discusses Sun support for Eclipse projects (like the Glassfish Eclipse plugin and MyEclipse's use of Matisse). plugin development for NetBeans, and future NetBeans features targeted at JavaFX and Ruby developers.

In today's Weblogs. Brian


C Moon Blog

Posted by kfarnham Jul 2, 2007

Native enough, or not yet?

Desktop Java developers who've felt a little fear and loathing over the Flash's encroachment on the desktop, in the form of AIR (the "Adobe Integrated Runtime"), might breath a little easier after reading Tim Anderson's Personal Computer World opinion piece Adobe

Filter Blog

By date: