Skip navigation

Sleep Through The Static Blog

Posted by kfarnham Dec 24, 2007

Wrapping up for the holidays

With the 2007 holidays here, it's time to put the front page to sleep for a week while most of us are away for the holidays. Don't worry: projects, forums, wikis, source-control, weblogs and the rest of the infrastructure will stay up and running. But with O'Reilly off for a week and Sun gone for two, we're going to post a single updated front page today and keep that around until we return on January 2, 2008.

As the year wraps up, I want to thank our group at O'Reilly for their work supporting the community and the feature articles, notably Sarah Kim, Jennifer Palm-Ensign, Rachel Thurow, Greg Dickerson, and our boss, Nancy Abila. Over at Collabnet, Jim Wright has been the Community Manager for for the last year, with Andrew Kelly now taking over that role. I also want to thank a number of Collab's support people, notably Padma Ramanujam and Mathangi Sathyanarayanan, the latter of whom I can always count on to delete blog-spammer accounts quickly (yes, e-mail me or anyone else on the Infrastructure Team if you get spammed; we try to delete spammer accounts quickly to stem the damage). Over at Sun, Marla Parker helps keep the communities hopping, with help from Gary Thompson and Sonya Barry. Thanks to all, and if I've forgotten someone, e-mail or IM me so I can edit this blog to include them.

While we're away, I thought it might make sense to use the Java Today space to point out a number of useful resources that, while they're all part of the ubiquitous left nav, are sometimes overlooked by many users. If you're looking for colleagues who share your interests, for help with your project, or for a job or an employee, then these are resources you'll want to check out often.

The help wanted section of is both for developers looking for an interesting project to work on and for those involved in a project who are looking for someone to fill a particular need. Listings are restricted to volunteer openings for non-commercial projects. Project listings remain live for 30 days, or until closed by the project owner, whichever comes first.

The Jobs Wiki are where you should go to post or look for available jobs, and where you should go to post or look for resumes. The JobPostingspage offers a place for employers to post available positions, while the ResumePostingspage is where you can post your resume to have it seen by potential employers. The pages are viewable by anyone, but to post a job or resume, you need to be a member.

Have you created or updated your people page? The People Wiki is a place where people can tell the community a little about themselves. Whether you are looking for help with your project or just someone with similar interests to spark a Java discussion, the People Wiki is the right place to introduce yourself to the community. Simply start your own page, or use the search function to find whom your looking for.

In today's Weblogs, Joshua


Times Like These Blog

Posted by kfarnham Dec 21, 2007

Maybe conference reviewers shouldn't also be speakers

Here's one to think about: if you're reviewing sessions for a conference, should you be allowed to submit sessions of your own to that same conference? On the one hand, this seems like an arbitrary restriction, and one that would harm the conference: you're apt to lose either good sessions or good reviewers if the people who know what they're talking about can't participate in one role or the other.

But on the other hand, being part of the review committee gives would-be speakers an advantage over others. Even if they don't vote on their own proposals, someone wearing two hats may know the other reviewers and have a chance to lobby them. When I was on this year's OSCON committee, I gave a low rating and pretty harsh review to a talk whose submitter was later added to the committee, and who was therefore able to see my comments. I didn't change my vote or comments -- I wouldn't want to say things behind colleagues' backs that I wouldn't say to their face -- but still, would I have graded it differently if I knew the submitter was or would later be a committee member?

Cay Horstmann faced a nearly identical issue recently, in reviewing JavaOne proposals:

I am a reviewer for Java One. I have about 350 project proposals to plow through and not enough time to give each of them justice.

One submitter proposed a talk on "Doing your own language". The outline talked about parsing, abstract syntax trees, and generating code. I flippantly commented "A DSL is not a DYOL. You use a DSL precisely because you DON'T want to write another parser."

Of course, what I had in mind was the recent trend of embedding DSLs in programming languages such as Groovy and Scala. (See this blog for Groovy.)

The submitter happened to be a reviewer in another Java One track, so he was able to see my comment, and he was not happy. He emailed me: "I feel strongly that this is mistaken. Most DSL's originate with domain experts, who become weary of using general-purpose languages to work within their domain concepts and patterns. Many of us are the beneficiaries of such efforts, but DSL's don't spring forth from nothingness."

In his blog, DSLs--Standalone or Embedded?, Cay then gets into the substance of the debate: "Now here is my thinking. Technically speaking, the submitter is right. A DSL is simply a domain-specific language, and the term does not imply an implementation strategy. [...] I just think that the embedded approach should be the approach of choice when it is at all feasible."

Also in today's Weblogs, Sergey


Never Know Blog

Posted by kfarnham Dec 19, 2007

Apple's JDK 6 returns to the stage... what's up with that?

Apple has finally releasedan updated developer preview of Java SE 6 for Mac OS X 10.5 Leopard, making it available to all Apple Developer Connection members. A few notes on the release are available on Apple's Java page:

The Java SE 6 release for Leopard is targeted at Java developers. This version of Java for Mac OS X requires an Intel-based Mac capable of running 64-bit applications, including computers with Core 2 Duo processors and any Mac Pro computer. Java SE 6 takes advantage of Leopard's 64-bit capabilities to offer unique performance capabilities for current and future generations of Macs. Please see the release notes included with the Java SE 6 download for additional information about this preview release.

The specifics of the release, including its change/fix list, are part of a release notes document only available to ADC members and therefore technically NDA (even though anyone can join ADC at the free "online" level). Still, there's plenty to discuss with this release only being made available for 10.5 "Leopard" systems (not 10.4 "Tiger" or earlier), and then only on 64-bit Intel systems. PowerPC and 32-bit Intel are out of luck for this release, even though both were supported by the nearly-finished JDK b88 Apple released in late 2006. Those interested to speculate on Apple's development might also wonder if the final version will also be 64-bit only, and what side-effects that might have. To wit, a 64-bit JVM won't run inside a 32-bit process, so what does this mean for applets inside 32-bit browsers? Or is it time for browser makers to offer 64-bit builds for recent Macs?

And what is the future of Java on the Mac platform? For the first time in a long time, there are two completely different JVMs on the Mac: Apple's not-yet-production-quality JDK 6, and Landon Fuller's Soy Latte port of the BSD JDK 6 to Mac OS X, also a work in progress. Which one will go final first? Which will go on to Java 7? Which will work better... or does it even matter? Is the target audience Mac end-users running apps and applets, or Mac-based Java developers writing server side apps that they'll then deploy on Linux, Solaris or Windows (meaning that compiling Java 6 code on the Mac may be more important than actually running it, unit tests notwithstanding)?

At least, this release should diminish some of the rancor over the Java-on-Mac issue, though it's certainly possible the critics still won't be satisfied with Apple's opacity and secrecy, and the fact that their JDK 6 still isn't final more than a year after the official JDK 6 was released.

Now if you'll excuse me, I have to go put JDK 6 on my wife's Mac. She's got a Core 2 Duo (an aftermarket hack I did to her Mac Mini), and I've got dual G5s, meaning her computer can run JDK 6 and mine can't. Enjoy the irony.

Also in Java Today, InfoQ summarizes recent developments around the Direct Web Remoting project in their article DWR: State of the Union. "There is a lot going on in the Direct Web Remoting world.  First and foremost is DWR joining the Dojo Foundation, and secondly is that Joe Walker, creator of DWR, has joined SitePen, Ltd. as Director of Support and Development. For DWR users, the move to the Dojo Foundation might cause some anxiety as to the future of the project.  Alex Russel has the same concerns, and has reassured the community with the following comment..."

Mark Reinhold has posted Slides from "OpenJDK: The First Year" @ JavaPolis 2007. "I've posted the slides from the talk I presented at JavaPolis 2007last week, OpenJDK: The First Year. The video version will eventually be available online at My thanks to Stephan Janssen and the entire team for putting on another great show, which this year sold out at 3,200 attendees. It was well worth the trip!"

In today's Forums,hardcode asks about deploying DLLs in Enterprise Application. "I'm working on enterprise application (EAR), which is deployed on Sun Java Application Server 9.1. Modules are run via Web Start. I want my app using some DLLs (jdic from ). Where should I add these DLLs to the EAR, and how to make them available for other modules? I have found information that using native code by deployed enterprise application is possible only when this code is placed in RAR module, but I don't know how to create it properly. I only want to have access to DLLs, I don't provide my own native code."

John Clingan updates the ongoing call for GlassFish feedback inCOMMUNITY HELP: GlassFish V3 & Java EE 6 Verifier. "Thanks again for the feedback to date. I don't respond to every comment, but I am tracking them and posting them to the GlassFish V3 Requirements page. How many of you use the verifier in GlassFish? Is it a "nice to have" or has it become a core part of your deployment processes? Is it a differentiating feature for using GlassFish? Does it ease migration from other application servers?"

Finally, rranjan08 asks How to make JavaFX libraries a part of local JRE? "I am running an applet (Jukka's example) with JavaFX, but loading all the signed jars and script interpretation all do take some time with JRE 1.6.0_02 that I have on the desktop where I am running the browser. Is there a way to add the JavaFX jars to the JRE on the desktop on which I run the browser and make the applet use the jars from local directory rather than loading all of them on web? If this is not possible, when can one expect a JRE release including JavaFX?"

Today's Weblogsstart off with some Telecommuting tips from James

Is it about closures, or about any further language changes?

It sounds like some of the biggest news to come out of last week's JavaPolis was a frank discussion of the competing closure proposals for Java 7. Java Champion Michael Hutterman described the event in his recent blog, Back from JavaPolis 2007...

Originally planned as a "Effective Java Reloaded" session (Josh is working on the second edition of his book as you know) it was revised short-hand to be "the closures controversy" session. Wow!! Javapolis managed it to break the freeze between Josh Block and Neil Gafter, keep in mind both are working for Google. Josh discussed Neil's proposal and pointed out what James Gosling said ten years ago: Java is a consolidation language. It is not a science language but includes many "useful" facets from other language to be easy used and widely spread. Generics did had the problem to add much complexity to Java especially because its inclusion of wildcards (done a bit quick on the trigger). And this is the problem Josh sees in Neil's proposal. It is pretty complex and only very few guys will ever need the new functionality. So his suggestion is to include only as much new complexity and functionality into the programming language needed to solve the original problems: in his opinion one problem is "function methods" (you already have a solution with anonymous classes more or less), the second is resource management.

Stephen Colebourne described the insta-session from a different POV in The Javapolis Experience 2007:

The other big topic of the conference was again closures. The first talk on the topic was a well-attended BOF from Neal Gafter discussing the current status of BGGA. The second was a last minute change - something you'd never see at JavaOne! Josh Bloch gave a talk on 'The Closures Controversy', where he showed some examples of complexity added to the language with BGGA closures. He also showed the syntax proposals of CICE and ARM. This talk went down well with the audience, however it should be born in mind that Neal had no opportunity to respond directly to the points made.

So, with competing proposals out there for what we might call "simple" or "minimal" closures, and "full" closures, what's winning? According to the whiteboard poll, neither enjoys a clear lead. Of those casting a whiteboard vote, 30 chose full closures, 24 opted for a simpler enhancement based on inner classes, and 19 voted for no closures at all.

This latter group is the focus of two of today's Weblogs. In Luddites - Watch Your Back, Bruce


Talk Of The Town Blog

Posted by kfarnham Dec 17, 2007

The last few bits from JavaPolis

JavaPolis is done for another year, and attendees are again blogging about how great it was. Consider Fabrizio Giudici's warning that JavaPolis' coolness has exceeded its facility's capacity:

Guys, JavaPolis is better and better each year. Remember: this year it was sold out and you can bet it will be next year: Stephan told us clearly that changing the venue for a larger one isn't an option (he's right, having large screens and cinema setup is cool). So remember to buy your ticket early.

Wow, so awesome that demand exceeds supply. Verily the Nintendo Wii of Java conferences. Congrats to all involved.

Now let's look at some of the news coming out of JavaPolis. We had announcements last week, like the PDF renderer project. But sometimes, attendees make the news, as is the case with a report back from the JavaPolis whiteboards. To wit, Stephen Colebourne reports on the results of informal whiteboard balloting from JavaPolis in Voting on Java 7 language changes. "This year at JavaPolis, I again looked after the whiteboards. In this post, I'll discuss theresults. The whiteboardsplay an important part at Javapolis in bringing people together to discuss ideas and future trends. This year, I chose to focus the whiteboard debate around a number of specific topics. This was achieved by having votes on 10 language changes proposals, plus areas for new ideas for Spring, JSF, JavaEE and JavaSE. I'm going to discuss the language change votes here."

So what won and what lost? If you want improved generics, aswitch that takes Strings, or the fabled "multi-catch", then the results should make you happy. Type aliasing and extension methods... not so much. Now let's see if this informal JavaPolis poll has any bearing on how Java 7 plays out.

Also in Java Today, JavaFX Mobile was another prominent topic at JavaPolis, as James Weaver discusses in JavaFX Mobile Addressed in JavaPolis 2007 Keynotes: " James Gosling addressed JavaFX Mobile in his keynote entitled The State of the Java Universe, and Tim Cramer (Sun's Executive Director of Consumer Solutions) gave a keynote address entitledJava in the Client, in which he spent some of the time talking about JavaFX Mobile.  Here are some of the JavaFX Mobile-related points that they discussed, with the help of Sun Java "Evangelist" Angela Caicedo."

Mark Reinhold has announced the approval of the OpenJDK Community's JDK 7 Project. "The primary goal of this project is to produce an open-source implementation of the next major revision of the Java SE Platform. Initially this project will just host the JDK 7 Mercurial repositories. Over time, as more of the JDK development process moves out into the open, additional information such as integration and build schedules, milestone definitions and dates, and development tasks and status will be made available. Proposals for specific features will also be welcome."

I cited Fabrizio


Throw Me A Rope Blog

Posted by kfarnham Dec 14, 2007

What's the next format to open up to Java?

Following yesterday's announcement of the PDF Renderer project, a natural question occurred to me: what other formats do you want to use in your Java applications? I adapted this for today's poll question, with some concern about how the question might be nitpicked.

What, after all, does it mean to "work with" a file format? The PDF renderer, for example, not only opens the file -- anyone can open a file and start blindly reading bytes with aFileInputStream -- but parses the data, builds up a model of that data, and renders it to a Java2DGraphics2D. On the other hand, it doesn't offer the ability to edit the contents of a PDF file or save to the PDF format.

So let's focus on the idea of opening popular formats and working with their contents. What would be useful to your app? Opening office or ODF docs? Media formats? Compressed archives like RARs and TARs? SVGs? We'll kick around this idea in the new Poll, which asks "Which file formats would you most like to open in Java?" Cast your vote on the front page, then check out current tallies and discussion on the results page.

It'll be particularly interesting to see if people want to open these various formats in client-side or server-side applications. Do you want to open Word documents because you're writing a user-facing office suite in Java, or because you have a web application and you're converting the .doc-formatted data into something viewable in a browser? Or hey, maybe it's about mobile access...

Speaking of discussion we being today's Weblogs with Joshua


Little Favours Blog

Posted by kfarnham Dec 13, 2007

Java2D picks up another trick: PDF support

Well, we've been teasing Josh Marinacci's big surprise all week, and now it's out, by way of an announcement at JavaPolis: the SwingLabs PDF Renderer. The project is an open-source, all-Java library that renders PDF data to Java2D, meaning it can be used in Swing or any other Java code that works with Java2D grpahics (like, say, mapping a PDF to a 3D surface in Project Wonderland).

So, for the sake of argument, why does Java need to support PDF? As the project explains:

PDF is one of the core file formats of the Internet, so it is very important for Java programmers to be able to both read and write PDFs. Great open source libraries like iText have long handled the writing half, but until now there has not been a good way to read PDFs using open source Java libraries. We hope that the community will embrace this PDF Renderer in ways we've never thought of. It could be used to draw on top of PDFs, share them over a network, convert PDFs to PNG images, or maybe even project PDFs into a 3D scene.

A set of javadocs is online, as is a Java Web Start demo, which lets you open arbitrary PDFs. Here's a look at it rendering a real-world PDF document, the QC1 proofs from a book (click for full-size):


The SwingLabs PDF Renderer is licensed under the LGPL. Surely you have PDFs, so go try it out.

Also in Java Today, the project is migrating its repository from CVS ( to Mercurial (, and this change will effect all community members who are integrating code changes to repository. The migration to Mercurial is planned to be completed as soon as possible, but with a minimal impact on current development. A small team has been put in place to facilitate this migration. They will deliver documentation and training materials to the community before the switch is done. Expect messages on the NetBeans mailing lists with more detailed information during December and at the beginning of January. For more information, check out the NetBeans wiki pages on Reasons for the Move and the Migration Plan.

Kelly O'Hair has posted a set of answers to common Mercurial OpenJDK Questions. He takes on the topics of why Mercurial was chosen for OpenJDK, why no history was imported from the TeamWare or Subversion repositories, why multiple repositories are used for the project, and more. He goes on to say, "I'll add more to this as time goes on, assuming people find it useful. Add your questions to the comments, I'll try and answer them."

Today's Weblogssection focuses entirely on the Javapolis conference, starting with James Gosling's report @JavaPolis I had a great day at JavaPolis. Congratulations to Stephan Janssen, the Belgian Java Users Group, and everyone else involved: you all did a great job. It really was packed. The venue was a total mob scene.



Suddenly I See Blog

Posted by kfarnham Dec 12, 2007

Java2D gets a scene graph

So, why are we making a big deal about scene graphs today, with both a Java Today and a Weblogs item? Well -- bias alert -- I just think they're really handy. With all the complaints about Swing's complexity (wasn't it just last week that we had a forum question about repaint() versusrevalidate()?), it's nice to move further up the stack and give the application developer the ability to say "OK, take this image, make it this large, put it here, and make it the top of the z-order stack. And I don't want to have to deal with it again."

A consistent scene graph across multiple applications may even allow for higher level abstractions. How about if we just define the graphics and UI with markup? With a good scene graph, the mapping of markup elements to graph nodes can be straightforward. I'm thinking of SMIL and SVG and their relations, but I'm sure there are even better examples.

But enough generalizations. Let's get to the news. The Java Today section starts off by linking to the new Scene Graph project from SwingLabs, which supports JavaFX by providing a scene graph at runtime. By their definition, "a scene graph is a hierarchical representation of graphical objects in a scene. Scene graphs can handle input and they can be rendered, so Swing is an example of a simple scene graph. JavaFX Script defines a more general scene graph model, one that supports effects, arbitrary transforms, and animation. The new com.sun.scenario package provides the runtime support needed by JavaFX Script and it's a useful library for Java applications as well."

Josh Marinacci points out the value of this in his weblog Our new Java Scene Graph is open sourced:

A scene graph saves you the headache of caching, dealing with repaints, worrying about clipping rectangles, and many other annoying details of writing graphics code. It lets you focus on what your code should do, not how it does it. This makes writing graphically rich applications much easier. The scene graph also has built in support for filters like blurs, glows, and shadows. And it works seamlessly with Swing components.

He also explains the specific value of this implementation:

Java has needed a scene graph for a while. There have been several open source ones but not of them were terribly fast, and none of the could take advantage of pipeline hooks for hardware acceleration. Project Scene Graph, on the other hand, is built by the guys who work on Java2D, and we have the potential for all sorts of great acceleration (think pixel shaders). Since this scene graph supports the new JavaFX runtime, and my job is writing tools for JavaFX, I'm happy that it will be as fast as possible.

Josh has more in his blog, introducing both the ideas of scene graphs, and the importance of this particular project, not the least of which is the fact that it is being open-sourced from the start. So, if you're graphically-minded, do take a look.

And no, this isn't actually his big announcement. That's later in the week.

Also in Java Today, a recent Core Java Tech Tip by John Zukowski looks at Using Callable to Return Results From Runnables. He notes that while "the Runnable interface has been around since the beginning of time for the Java platform," it doesn't provide a straightforward way of getting back a value from the threadedrun() method. The Tech Tip shows you how to use theCallable interface, introduced in J2SE 5.0. "Instead of having a run() method, the Callableinterface offers a call() method, which can return anObject or, more specifically, any type that is introduced in [a] genericized form."

Sun has submitted JSR-322, Java EE Connector Architecture 1.6, to the JCP for consideration. "The purpose of the Java EE Connector Architecture 1.6 specification is to address areas in J2EE Connector Architecture 1.5 where further support has been requested by the Connector expert group and the public." The new spec intends to offer a generic inflow context, make general improvements to the 1.5 spec (possibly including quality of services, failure handling, message batching, and more), and developing helper classes to improve ease-of-development. Expert Group balloting for this JSR ends on December 17.

Further down in today's Weblogs, Masoud


Universe & U Blog

Posted by kfarnham Dec 11, 2007

JXTA-powered clustering for GlassFish

Is JXTA the secret sauce in some of the coolest Java stuff? We keep up with developments from the JXTA community and its various projects, but it's deceptively easy to focus just on the library and not on what people are doing with it. To wit, two of the projects on the page today are JXTA-powered, but don't make a big point of it -- they're content to focus on the value they provide rather than what bits they use to do so.

And maybe that's as it should be, but it's worth taking stock of the fact that lots of people are using JXTA for a variety of projects, even while a lot of developers have probably overlooked it since its big launch a number of years ago. Like Jini, it has loyal adherents who talk it up, and better yet, put it to use to provide effective self-networking.

The first JXTA-powered item on the page today is our latest Feature Article, Clustering with the Shoal Framework by Diego Naya and Juan Pedro Danculovic:

Shoal is an open source, Java-based generic clustering framework. It can be used in your applications to add clustering functionalities like load balancing, fault tolerance, or both. Applications using Shoal can share data, communicate via messages with other cluster nodes across the network, and notify of relevant events like the joining, shutdown, and failure of a node or group of nodes. You can take appropriate measures and perform monitoring tasks when these events occur; Shoal forwards a signal to your code to track these notifications.

Shoal is the clustering framework used by the Glassfish project to implement its application server clustering. One of the benefits to your application is that Shoal abstracts away network details and the network communication API. Under the hood, the default group communication provider uses JXTA for peer-to-peer reliability and scalability.

Join Diego and Juan Pedro as they show how to directly access the Shoal API to put clustering to work in your own application, whether or not you're using GlassFish or even EE. And as your nodes come online and work with each other, enjoy JXTA doing all the peering work for you.

JXTA also powers the networked concept-sharing features of theAieon-F project, which tops the Java Todaysection. This meta-information framework project has just announced its emergence from the incubator. "Aieon-F is a meta-information framework. Basically it defines units of information called concepts, or aieons when they point to something tangible, such as web links, documents, mp3 files and so on. Aieons can also define relationships with other aieons, and this way a knowledge base can be constructed that ties together unrelated information." Saight, a social bookmarking application based on Aieon-F, is also available for download as a beta version.

The OpenJDK project recently posted minutes from the August 23, 2007 meeting, in which the group discussed theOpenJDK Community TCK License (PDF, 128 KB), which had been announced two weeks prior. "The meeting was essentially a long question-and-answer session, with no agreed resolutions, so these minutes are structured in a Q&A format in the following sections: License-application process, License eligibility, Running the TCK, Certifying a platform implementation, Confidentiality, Miscellaneous."

Build processes in Java haven't evolved much since the introduction of Ant or Maven. With the ability to use scripting languages like Groovy and JRuby on the JVM, the power of a full language can be brought to bear on the build process. In the ONJava article Introducing Raven: An Elegant Build for Java, Matthieu Riou discusses Raven, a build system for Java that uses JRuby.

In today's Weblogs, Simon


Other Side of the World Blog

Posted by kfarnham Dec 10, 2007

Javapolis '07 opens

It's mid-morning here in Atlanta, so accounting for a six hour time difference between here and Antwerp, it's late afternoon on the first day of the Javapolis '07 conference. The scheduleshows today as being for BoFs, Quickies, and the Javapolis University, and looking at the university topic list, it looks like attendees are in for a deep dive to start the week, even if the conferencecontent, per se, doesn't even start until Wednesday.

As we do for JavaOne, Javapolis has flipped their front page into a densely-packed view of blogs from and about the conference, on the sure bet that attendees will be best able to cover all that's going on there. You'll notice several webloggers among the blogging attendees, including Jean-Francois Arcand, Fabrizio Guidici, and Sean Mullan.

We'll keep an eye out for interesting developments at the conference... after all, Joshua Marinacci did promise " a secret open source project that none of you have been expecting", and I have it on good authority (like, an IM from Josh two windows over) that this will be announced at Javapolis later this week.

We have one more bit of Javapolis-related news in the Java Today section: the JUG Community is meeting up for a Java User Groups BOF at JavaPolis 2007, Thursday, December 13th, 7.30-8.30 pm. Notable attendees/speakers include: Fabrizio ( JUG Community Leader), Stephan Janssen (Belgian JUG), Paris Apostolopoulos (Hellenic Greek JUG), Klaasjan Tukker (Dutch NL JUG), Bruno Bossola (JUG Torino), Van Riper (Silicon Valley Web Developer JUG), Michael Hüttermann (JUGC, JUG Community Leader), Radoslaw Holewa (Polish JUG), Christophe Jollivet and Eric Siber from, Aaron Houston (Program Coordinator) from Sun Microsystems, and many many many others.

Interview with Ludovic Champenois about GlassFish Tooling is the latest installment of the GlassFish podcast. In it, Ludo "discusses the general developer experience with GlassFish as well as with IDEs such as NetBeans and Eclipse. We go into the save/reload paradigm for web and Ajax apps (using jMaki for instance), incremental deployment possibilities, value and role of IDEs for Java EE 5, best OS for developers, and more."

A new edition, issue 150, of the JavaTools Community Newsletter is out, starting off with a link to the CommunityOne Call for Participation, summarizing tool-related news from around the web, welcoming a new project to the community, and offering a ToolTip on how to participate in the Open Source Community Innovation Awards Program.

Starting off today's Weblogs, Fabrizio


Inside Wants Out Blog

Posted by kfarnham Dec 7, 2007

Getting around to the Java conferences

Next week is the very popular Javapolis conference, held at the MetroPolis movie theaters business center in Antwerp, Belgium. The sold-out conference is probably the most popular Java conference in Europe, certainly the most buzz-worthy, with many of our own bloggers and project leaders among the 3,200 attendees.

If you take a look at our events list, you'll see that Javapolis and a few other conferences next week (notably The Spring Experience) are the last gasp before the conferences take a breather for the winter holidays. Starting in January, of course, we're right back into the thick of it, with CodeMash 2008, Sun Tech Day - Atlanta, and the inaugural Java Mobile & Embedded Developer Days. I'll be at the latter two, so come by and say hi.

Returning our focus to the present, several of our Weblogs are about plans for next week's Javapolis. Fabrizio


Vultures Blog

Posted by kfarnham Dec 6, 2007

Does open-source rob from the poor and give to the rich?

One of the Big Ideas to come out of this year's JavaOne was Rich Green's claim that open-source is Robin Hood in reverse: steal from the poor and give to the rich:

"It really is a worrisome social artifact... I think in the long term that this is a worrisome scenario [and] not sustainable. We are looking very closely at compensating people for the work that they do."

Green said at the time that "something" would need to be done to share revenues with the open-source community, but had no details.

Well, now we might be getting some details. In advance of an announcement at the FOSS.IN conference, Sun's Simon Phipps has posted a blog on Getting Paid To Develop, which says that Sun will be creating just such a program:

"Just to give you a glimpse of what's happening, Sun will be announcing a multi-year award program in support of fostering innovation and advancing open source within our open source communities. [...] This year's participants include OpenSolaris, GlassFish, OpenJDK, OpenSPARC, NetBeans, and This is a great opportunity for members of these open source communities to take their passion and creativity and push the innovation boundaries - and get paid in the process!"

As you've no doubt noticed, several of those projects are members of the community, and this is a great development for contributors to those projects. And don't think that the location of the announcement means the program is India-only (as several commenters claimed); Simon posted a follow-up to clarify that this is to be a global program. We'll let you know when more details of the program are announced.

Also in Java Today, to coincide with the launch of NetBeans 6.0, this latest issue of NetBeans Magazinefeatures 62 pages of in-depth articles. Features include Roman Strobl on "Dynamic Web Development with Ruby and NetBeans 6.0", Peter Liu on "Building RESTful Web Services in NetBeans", Fabrizio Giudici on "Creative Uses of the Visual Library", and more.

The Aquarium updates us on a name change within the GlassFish project, in Mojarra - New Name, Same Good Quality for the JSF Implementation from GlassFish. "The JSF team at GlassFish has announced a new name for the project: Mojarra(as in the fish- although La Mojarra is also an interesting linkage). Ryanand Jason provide details on the why, but in a nutshell: "Mojarra" is is much shorter than "the JSF Production-Quality Reference Implementation from GlassFish"."



Say Blog

Posted by kfarnham Dec 5, 2007

Should we try reviving the Book Club?

In the early years of, we had a Book Club forum, much in the style of other book clubs (yes, like Oprah's): we'd announce a book, anyone who was interested would go and get a copy, and then each week, group members would discuss one chapter of the book in the forum. As you can see, the titles we covered were:

  • Hackers and Painters
  • Tapestry in Action
  • The Mythical Man Month
  • Refactoring to Patterns
  • Java 1.5: A Developer's Notebook
  • Beyond Java

As you can see, we tried to pick topics with fairly broad appeal: many of these are about programming in general more than they are about a specific product or project. The first four were organized by Daniel when he was editor, the fifth hosted by author Brett McLaughlin, and I led the discussion of the sixth. I worried a little that Beyond Java was implicitly off-putting, if not insulting, to the potential membership here, but I thought there would be some who would want to look at the author's arguments and either distill some value out of them or shoot them down. Plus, it was possible to read the entire book for free with the two-week trial membership of Safari Books Online offered at that time, so you didn't have to actually give Bruce Tate any of your money.

Thing is, it didn't really fly. Readers objected to the book's points only by way of my chapter summaries, not by actually reading the book. It just wasn't something people wanted to participate in. And after that discussion, two years ago now, we didn't try another Book Club title.

Last week, while reorganizing the forums, I moved the entire Book Club category into the archive. But I thought: did it fail because of a poor choice of books, or because this just isn't something that the community wants to participate in? It could be both. Maybe there are titles that people already have or would want to buy for the sake of discussing them with peers, to really get into them and exchange ideas, inspirations, criticisms, whatever. And maybe the focus on meta-programming was a mistake: maybe what people want to talk about is a hardcore code book like Filthy Rich Clients or Java Concurrency in Practice.

So, tell us: would you like us to bring back the book club, and if so, what books would you be interested in discussing? Let's bang this out in the comments below. If a lot of you say, "that's just not something I would want to do," then we'll let it go. But if there's interest, and a viable title or two, maybe we'll give it another try.

In Java Today, Mark Reinhold has announced the completion of the OpenJDK team's hosting conversion, in Goodbye TeamWare, hello Mercurial! "I clearly recall my first days at Sun back in 1996, hacking on JDK 1.1 under intense deadline pressure and routinely cursing TeamWare as it ground through yet another thirty-minute bringover command on my poor little UltraSPARC workstation. [...] As of today I'm happy to be able to push those painful memories into long-term archival storage. The OpenJDK code base for JDK 7 now officially resides in our brand new Mercurial repositories, and the equivalent operation takes about a minute."

Speaking of Mercurial, you can use it to check out the just-posted build 24of JDK 7. Visit the Mercurial page to get the source, and the OpenJDK downloads pageto get the binary plugs and Jtreg binary. A summary of changes page for b24 has been created, but is empty because b24 should not differ from b23, except in being built from Mercurial-based sources rather than TeamWare-based.

The NetBeans 6.0 release includes significant enhancements and new features, including a completely rewritten editor infrastructure, support for additional languages, new productivity features, and a simplified installation process that allows you to easily install and configure the IDE to meet your exact needs. Take the video tour of the latest features in the screencasts section or from the video index page on

Keeping on the topic of NetBeans, Michael


In Repair Blog

Posted by kfarnham Dec 4, 2007

A rethink for the DWR/Spring Ajax connection

Earlier this year, Eric Speigelberg set out to provide server-side validation of client-side HTML forms using Ajax. There are a lot of good reasons to do this, not the least of which is being able to keep validation in one place (the server) and in one language (Java), rather than having a whole separate validation code base to run in the browser:

Although client-side validation, using JavaScript, provides immediate feedback and an enhanced user experience, it has many disadvantages such as being tedious and error-prone to develop, being hard to test, and leading to fragile code. Inconsistent implementations across different browsers and the fact that a user can disable JavaScript is enough to conclude that client-side validation alone is not sufficient. Although a hybrid approach of performing validation on both the client and server may seem like a good solution on the surface it doesn't take long to realize that the increased development time, duplication of logic, and inevitable maintenance and testing problems quickly outweigh the advantages.

So, in Ajax Form Validation Using Spring and DWR, Eric showed how to use Direct Web Remoting(DWR) as the heart of a system that could run server-side validation of each form element as the user enters data.

Now, after nine months, Eric has found that there are better ways to accomplish this, and in our Feature Article,Ajax Form Validation Using Spring and DWR, Revised, he shows off an improved approach:

Few non-trivial software designs get it right the first time. This design has been running in production systems for over a year (its publication is approaching the ten-month mark), and has shown some limitations. This article discusses the emerged limitations and then presents an improved design that not only addresses the limitations but provides added functionality.

In Java Today, Neal Gafter has updated his Closures for the Java Programming Language specification to version 0.5, and blogs about the most prominent change in the new spec, Restricted Closures. "The Closures for Java specification, version 0.5, contains a special marker interfacejava.lang.RestrictedClosure. When a closure is converted to an interface that extendsRestrictedClosure, this prevents the closure from doing certain operations. Specifically, it prevents accessing mutated local variables from an enclosing scope, or using abreak, continue, or returnto a target outside the closure. The idea is that APIs that are intended to be used in a concurrent setting would want to receive restricted rather than unrestricted closures to prevent programmers from shooting themselves in the foot."

Community members are encouraged to take the Mobile & Embedded Community survey. "It has been more than 12 months since the launch of the Community and we know that Community membership is up, there has been tremendous growth in new projects and the forums are active. But we won't know how well we're doing until we hear from you. So please take the Community survey and let us know!

The latest edition, issue 149 of the JavaTools Community Newsletter is out, with tool-related news from around the web, an invitation to join the Soy Latteproject to bring the BSD Java SE 6 to Mac OS X, an announcement of a new Tools community project, and a Tool Tip on checking out selected folders from Subversion.

Do you hear them? Do you hear The Winds of Change? In today's Weblogs, Joshua

Go for it: NetBeans 6.0 is final

Downloading NetBeans 6.0 for Mac OS X

It's been a little less than two years since NetBeans 5.0 came out (in February 2006), and in that time, the IDE has made significant gains in adoption and mindshare. It's been undergoing constant development in that time, with 5.5 released in August of last year, and lots of people happily using the 6.0 preview releases as they've come along.

We've also heard a lot about 6.0's features during its development, such as its deep support of Ruby and other non-Java programming languages. Tor Norbye of the Java Posse podcast is one of the guys responsible for this functionality, and has discussed it a number of times. The integrated profiler is also a highly-desirable feature, one whose usefulness prompted a poll question a few weeks back about profiler use.

So, after all the big build-up, today's the big day: NetBeans 6.0 has been released. We're giving over the entire Java Today section to NetBeans 6.0, just so we can point out all of its new features:

  • a completely rewritten editor infrastructure
  • Ruby/JRuby/Ruby on Rails support
  • a new Visual Game Designer
  • updated Data Binding support
  • integrated Profiling
  • new productivity features
  • a simplified installation process

You can downloada bundle appropriate to your OS and needed features, optionally including GlassFish, Tomcat, mobility, UML, SOA, C/C++, and/or Ruby support. Or, you can order a free NetBeans 6.0 DVD.

This week's Spotlight, to mark the release of NetBeans 6.0 we've launched a new NetBeans 6.0 forum to discuss experiences, issues and ideas with the popular IDE. The new forum is part of a re-freshening of our forums, which includes the archiving of older discussions, and the launch of new forums, including two new forums for OpenJFX, covering JavaFX Script and JavaFX Mobile.

Speaking of the many discussions on the site, today's Forumssection starts out with cowwoc talking about JNI use and re-use in applets, in Re: Using JNI in applets: impossible due to classloader limitations? "I don't think applet-launcher will help because there is a fundamental problem with the Applet architecture. I only know of two ways to make this work: 1) You can load the DLL into some shared parent classloader that crosses applet boundaries, or 2) You can force the JVM to unload the DLL when the applet terminates. I don't think either approach is technically possible with the existing Applet architecture. Even Tomcat's approach of loading the DLL into some parent classloader is somewhat of a hack. Ideally we want to be able to isolate each application (applet or webapp) into its own JVM but this isn't the case today. I suspect this is what JSR 121 was supposed to solve, but it never made it into JDK5 as was originally envisioned."

Pankaj Jairath points out what GlassFish's load balancing gives you for free, in Re: any plan to add active passive instances to glassfish load balancer plugin? "The auto apply admin feature of LB configuration, would take care of this. Any admin changes to the cluster setup (ex: addition/removal of instance..), being load balanced; would be reflected onto the load balancer configuration maintained at DAS. The auto apply functionality at DAS (would cause in background, regeneration of loadbalancer.xml) would take care of propagating these changes over HTTP to the fronting WebServer. When you create an instance of http Load Balancer at DAS, it identifies the WebServer on which LB runs via the WebServer instance host, port details. HTTP LB upon receiving such update message from DAS, would reconfigure itself."

drkeselj wrestles with a classic cause of AWT confusion in revalidate() or repaint() ??? "What is difference between repaint() and revalidate()? I`ve used one example for repaint() method, but when I replaced it with repaint(), it still works??? When should I use repaint() , but when revalidate()? Thanks."

In today's Weblogs, Fabrizio

Filter Blog

By date: