三月 2009 上个月 下个月

Famous Last Words Blog

发贴人 kfarnham 2009-3-31

A very big round of thanks.

Editing java.net for the last three years has been a process made infinitely more pleasant by the assistance and companionship of people from O'Reilly, Collabnet, and Sun that I've had the pleasure of working with. Indeed, those of us working on the site today are walking in the footsteps of those who originally created the site back in 2003. So, while all of them have moved on to other things, I'm indebted to people like Chris Cheline, Helen Chen, and Daniel Steinberg, who forged this site out of nothing but time, money, and bytes, and started building the thriving community.

I came along later, first as an associate editor, then started doing the front page and editor's blog in June 2005. Since then, I've worked with a number of great people, including Marla Parker, Miky Vacik, Rachel Thurow, Craig Palmer, Jim Wright, Padma Ramanujan, and Shilpa Vora. Currently, we enjoy guidance from Sun's Gary Thompson and Sonya Barry, and Collabnet's project-hosting services as overseen by Eric Renaud and Andrew Kelly. On the O'Reilly editorial and community-building side, it's a pleasure to work with producer Jennifer Palm, the seemingly-able-to-do-anything Sarah Kim, freelance editor Jamie Barnett, the O'Reilly graphics and department and tech support people, and our ever-available manager, Nancy Abila.

Tomorrow's front page is coming to you from O'Reilly editor Kevin Farnham. I think he's going to enjoy working with this team. I've enjoyed their friendship, and being able to rely on them.

In Java Today, John Rose is providing some details on JSR 292 support in javac. "In order to work with dynamic types, method handles, and invokedynamic I have made some provisional changes to javac as part of the Da Vinci Machine Project. The mlvm wiki has a full description for Project COIN. It is most desirable, of course, to program invokedynamic call sites as Java expressions, not just ASM code, and that's what those langtools patches are for."

The Warning: Applet Window message has long been criticized for confusing and scaring users, despite the importance of alerting users to the fact that such windows are spawned by untrusted applets and not their browser or other installed applications. In Exploring Security Warning Functionality, Anthony Petrov and Alla Redko discuss the evolving presentation of the applet window warning, and explore a new API,com.sun.awt.SecurityWarning, introduced in JDK 6u12 to give developers some control over the positioning of the warning icon.

Java Card 3 is a major evolution of the current Java Card 2 platform. In the SDN article Java Card 3: Classic Functionality Gets a Connectivity Boost, Peter Allenbach writes, "while Java Card 3 enhances the classic interoperability, security, and multiple-application support in the platform, it exploits such new hardware features as more memory, more processing power, and enhanced communication capabilities. In this way, Java Card 3 comprises both the Classic Edition and a new Connected Edition."

The latest Java Mobility Podcast is Java Mobility Podcast 75: Daniel Green on kids and computers, in which Daniel Green from Sun Microsystems talks about computers in education, getting kids excited, and computer clubs on thumb drives.

In today's Weblogs, Jan Haderka passes along the welcome announcement SwingX 0.9.6 Released. "Almost on the spot 3 months since the last release SwingX 0.9.6 is out. This release focuses on one last code API cleanup before 1.0 release."

Marina Sum links to A Visual Display of OpenDS Code Commits. "See a short video, called CodeSwarm, of the history of code commits for the OpenDS project, courtesy of community manager and architect Ludo Poitou. What an impressive picture!"

Next, a disappointed Felipe Gaucho reports that the QTI 2.1 draft specification has been removed from the IMS website. "A sad day for the global education community - the IMS Global Learning Consortium decided to withdraw the QTI 2.1 draft specification."

In today's Forums,dave_raymer is giving sockets a workout and reports aJDK1.6.0_07 and _03: Non-blocking socket "oddity". "I have the following situation (on both Linux and MacOS) -- A non-blocking connection established to a server for a long-term persistent message oriented exchange (request-response). I'm doing negative testing and see something very odd (at least to my somewhat experienced "C" socket programming eyes). When I pull the cable, the select does not wake up (this is good, and what what I expect). When I write to the socket while the cable is pulled, I expect to see an IOException, but I don't. When I plug the cable back in at the server, the select in the java application "breaks", and the recovery processing is initiated. So, is this normal expected behavior in Java? Shouldn't the SocketChannel.write( ByteBuffer src) call fail?"

Clive Brettingham-Moore offers some suggestions in the responseRe: Disabling ?WSDL "If request path needs changing you have no alternative beyond trying to avoid metro wsdl (maybe filter, trying to get load balancer to redirect ?wsdl, or try and rewrite the WSDL coming though (though that would be hard)). Otherwise you can try and get metro to have the correct URL: The address in the wsdl is derived from the servlet request enviroment. Hostname and port can be statically overridden using tomcat connector attributes. Alternatively if the request path (as opposed to host/port/protocol) is not changed, you could avoid request rewriting (can still do request routing or course) at the proxy so the web service sees the true URL via either http or ajp)."

Finally, iminar posts a feature request in Re: asadmin in v3: Requesting user feedback on functional spec... "First of all let me just say that I love all the proposed enhancements and new features. Given that as developers we spend a great deal of time working with asadmin, it's great to see that the tool is getting attention in v3 release. [...] One thing that has always bugged me was an inability to do a domain restart with one command. I don't know why such a simple, yet commonly needed feature is missing."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

If you've gotten this far, then maybe you remembered that I said yesterday that I'd be providing the answer key for the Daily Editor's Blog musical reference game.

First, a note about the history of the game: it was my Shakespeare lecturer in college who said that constraints make you more creative, not less. He pointed out that Shakespeare had to work with a rowdy mob in the frontmost seats that weren't above harassing the actors if they got bored, and female parts played by young men in drag. Instead of being frustrated by such limitations, Shakespeare used them to his advantage: he starts his plays with spectacle to win over the rowdies, and often had his female characters pose as men, thereby turning male actors back into male characters. Using a similar logic and self-discipline, Chuck Jones imposed hard rules on his Coyote and Roadrunner cartoons, and they were the better for it. Another inspiration: Tim Monroe's long-running QuickTime column for MacTech cleverly used only movie titles as the title of every installment. In fact, Tim once told me (the year that JavaOne and WWDC were the same week) that when he wrote an article about QuickTime for Java, he found that only one major movie title had ever used the word "Java", namelyKrakatoa, East of Java (fortunately, his followup was easier: Swing Time).

I wasn't really satisfied with my attempts to mimic Daniel Steinberg's personal and anecdotal style when I filled in for him for a few days in December, 2004, so when I started doing the front page and the blog full-time, I decided to latch on to musical references as a framing device that would challenge me to find a relationship to the items on that day's page. This happened around JavaOne 2005, which I arrived at just hours after attending the "Dear Friends" symphonic concert of Final Fantasy music in Atlanta, so I used songs from that series for the first set of titles (something I went back to a year later, after the Aerith project debuted at JavaOne 2006, named after the tragic heroine of Final Fantasy VII). I'd probably be doing it next month too, as I have tickets to the new tour, "Distant Worlds", here in Grand Rapids in two weeks.

Sometimes, people who don't read the blog regularly see their favorite band and comment "hey, are you an X fan too?" Actually, I used up most of my long-time favorite bands over the first year, and have had to do research (iTunes Genius, the KFOG 10@10 set lists, friends' Facebook favorite music lists [Robert Cooper reminded me of Pixies, and The Jam was inspired by Dick Wall]) to come up with new references, though in many cases this has led me to cool new music (still need to check out Von Bondies, now that I think of it). I think the only person who ever requested a band was Dalibor Topic, who asked for (and got) the Belgian rock band dEUS.

The history of musical references has a lot of in-jokes that only I get. Every time that I was working on java.net while taking my family to Disney World, I used Disney songs as the week's themes. I also kept using increasingly recent titles for these, so in February, I was forced to go with crazy-obscure end-credit songs from Bolt and Meet the Robinsons, which I'm sure nobody caught. Last Summer, when I moved to Grand Rapids, I did a couple weeks where all the artists were participants in the firstRothbury Music Festival, which takes place about 30 minutes from here (in fact, if you're coming, stop by the house... we're off exit 38 on I-96).

One other fixture of the blog band game was that the easiest way to bring people out of the woodwork was to use Rush. For whatever reason, the fanatical Rush devotees fell over themselves to acknowledge the appearance of the band's classic titles in the java.net editor's blog. It helped that their titles are often abstract concepts that are easy to match to items on the front page ("Mission", "Distant Early Warning", "Marathon", "Working Man", etc.). I think I went back to this particular well three times before deciding that it was just too easy. I also did The Who three times (one or two of these days were Daniel filling in while I travelled, and he cleverly kept with the theme), which is remarkable when you consider how few albums The Who actually put out (especially in the years after Tommy).

OK, enough theory and history. Here are the answers:

Week ofArtist / theme
7/1/05"Final Fantasy" soundtracks
7/11/05Roxy Music
7/18/05The Tubes
7/25/06The Who
8/1/05Elvis Costello
8/8/05The Rolling Stones
8/15/05David Bowie
8/22/05Holly Cole
8/29/05The Beatles
9/5/05Joe Jackson
9/12/05Oingo Boingo
9/19/05The Offspring
9/26/05Green Day
10/3/05The Kinks
10/17/05Frank Zappa
10/31/05Anime theme songs
11/7/05The Moody Blues
11/14/05Boz Scaggs
11/21/05Steely Dan
11/28/05The Alan Parsons Project
12/12/05"Dance Dance Revolution" soundtracks
12/19/06Little Feat
1/9/06Roxy Music
1/16/06Elton John
1/23/06Todd Rundgren
2/6/06Dire Straits
2/13/06Talking Heads
2/27/06Greg Kihn
3/6/06Jools Holland Big Band
3/20/06Disney feature animation soundtracks
4/3/06Van Morrison
4/10/06The Residents
4/24/06The Clash
5/1/06David Bowie
5/23/06"Final Fantasy" soundtracks
5/29/06Sly and the Family Stone
6/5/06They Might Be Giants
6/12/06Billy Joel
6/19/06Pink Floyd
6/26/06Tom Petty
7/3/06The Who
7/10/06The Who
7/24/06The Pretenders
8/7/06Matthew Sweet
8/14/06Stevie Wonder
8/21/06Tower of Power
9/4/06Be Bop Deluxe
9/11/06Thelonious Monk
9/18/06Level 42
9/25/06Janet Panic
10/2/06Warren Zevon
10/9/06King Crimson
10/16/06The Offspring
10/23/06The New Pornographers
10/30/06Nellie McKay
11/6/06Peter Gabriel
11/27/06Robert Palmer
12/4/06Adam & the Ants
12/11/06The Doors
12/18/06Rod Stewart
1/1/07Electric Light Orchestra
1/8/07Jeff Beck
1/15/07The B-52's
1/29/07The Cars
2/5/07Collective Soul
2/19/07Joe Tex
3/5/07The Tubes
3/12/07The MC5
3/19/07The Delgados
4/2/07Fleetwood Mac
4/9/07The Bangles
4/23/07Pete Townshend
4/30/07Depeche Mode
5/14/07The Arcade Fire
5/21/07Sarah McLachlan
5/28/07Disney feature animation soundtracks
6/4/07Cyndi Lauper
6/11/07Immaculate Machine
6/18/07Thomas Dolby
6/25/07The Police
7/2/07Paul McCartney
7/9/07The Zombies
7/23/07Smashing Pumpkins
7/30/07Tegan and Sara
8/6/07John Mellancamp
8/13/07Lindsey Buckingham
8/20/07John Lennon
8/27/07Public Enemy
9/3/07Jackson Browne
9/10/07Paul Simon
9/24/07Dave Matthews Band
10/1/07Rilo Kiley
10/8/07Indigo Girls
10/15/07George Harrison
10/22/07Jane's Addiction
10/29/07Nine Inch Nails
11/5/07Emma Pollock
11/12/07The Crystal Method
11/19/07John Sebastian
11/26/07Bonnie Raitt
12/3/07John Mayer
12/10/07KT Tunstall
12/17/07Jack Johnson
1/2/08Bend Sinister
1/7/08Travelling Wilburies
1/14/08The Mighty Mighty Bosstones
1/28/08dEUS (Dalibor's suggestion)
2/4/08Foo Fighters
2/11/08The Replacements
2/18/08Belle & Sebastian
2/25/08Death Cab for Cutie
3/3/08The Jam
3/10/08Tokyo Police Club
3/17/08Tori Amos
3/24/08Aimee Mann
4/14/08Neil Young
4/21/08Spilt Enz
4/28/08The Polyphonic Spree
5/12/08Sonic Youth
5/19/08Jason Mraz
6/2/08Herman's Hermits
6/9/08Duran Duran
6/16/08Barenaked Ladies
6/30/08Chris Isaak
7/7/08The Black Keys
7/21/08Modest Mouse
7/28/08Von Bondies
8/4/08The Apples In Stereo
8/11/08Hüsker Dü
8/25/08Kevin F guest blogs + Born Ruffians
9/1/08Juliana Hatfield
9/8/08The Killers
9/15/08The Stills
9/22/08The Verve Pipe
9/29/08Lucinda Williams
10/6/08The Decemberists
10/13/08Daryl Hall & John Oates
10/20/08Fall Out Boy
10/27/08Mustard Plug
11/3/08The All-American Rejects
11/10/08Gentle Giant
11/17/08Love and Rockets
11/24/08Seven Mary Three
12/1/08Joel Plaskett Emergency
12/8/08The Cribs
12/15/08Mandy Moore
12/22/08Blind Faith
1/19/09New Order
1/26/09Robbie Williams
2/16/09Disney feature animation soundtracks
3/2/09...And You Will Know Us By the Trail of Dead
3/9/09Echo & the Bunnymen
3/16/09Ani DiFranco
3/23/09My Chemical Romance

Hey look at that, I never did go and do the threatened "Broadway show tunes" week.

A very big round of thanks  

Editorial changes this week

So, a meta item to start the week: I'm stepping down as java.net editor, and my last day will be tomorrow, March 31. As of Wednesday, the front page will come to you courtesy of O'Reilly editor Kevin Farnham, who filled in for a few days last year while I was moving. He's also a veteran of several other O'Reilly community sites, and definitely knows what he's doing. I don't think he plans to continue the musically-themed blog titles, but we did have a long IM session over the weekend about Roxy Music and David Bowie, and how to get to Rasputin Recordswhile in San Francisco for JavaOne, so I can recommend him to you both as an editor and someone to talk about music with.

As I plan to reserve tomorrow's blogs for thank-yous and shout-outs, I've got one opportunity left to get an opinion out. Actually, the degree of opinion in the editor's blog is something I've always been very sensitive to. As prominent as the editor's blog is -- even though its purpose in life is largely as an RSS feed of the front page -- I've always been wary to put too strong an opinion in here, for fear I'll pre-empt or silence someone with a less-prominent voice, but just as valid an opinion. With most things, I try to act more like an emcee, deejay, or host: I'll link to news or blogs, see if there's a counter-opinion in the follow-ups, and then throw it out to you folks with a "and what do you think" kind of conclusion.

Yet, on the other hand, an editor can't completely retreat from the issues and claim absolute "objectivity" and "fairness". For one thing, that would be boring to read. Moreover, it's impossible: my own interests, perceptions, history, and biases inform the kinds of things I pick for the front page. Even if I consciously work outside of my comfort area, it's harder for me to find and evaluate topics that I'm not interested or experienced in (say, security, messaging-oriented middleware, licensing, etc.), than in those that are high on my to-do list (for me, that's media, devices, GUIs, etc.).

Still, I've kept a lot under my hat, and will continue to. But with one more shot in this space, I want to get out one thing that's been lurking on my mind for years now. My biggest fear for Java's future is insularity. Not licensing skullduggery, not a corporate take-over, not technical issues. The one thing that I think the Java community needs to do better is to bring its solutions to the rest of the world, and to incorporate outside ideas into the Java world. When I see engineers spend three or four months working on demos for JavaOne, it raises a red flag: the only other people who will ever see this are those who are already so committed to Java that they'll afford the time and expense of being at JavaOne. Instead of solving the problems of the larger computing communities -- devices, Linux, networks, etc. -- we seem to have a tendency to please each other by developing stuff for use by other Java developers. How many Java webapp frameworks do we have now? Why are people creating new ones? Maybe because its too easy to talk to and please each other, than to risk going outside the Java Comfort Zone. Frankly, I wonder if it would do more good to de-emphasize JavaOne in favor of more Sun Tech Days and similar traveling conferences, which take the best of Java out on the road to where developers are, developers who might not even be full-time Java people, but can take an afternoon to see some presentations on cool new stuff.

By "insularity", I don't just mean Java, I mean "Java as it is today". As Kevin and I have worked to rebuild the feature article pipeline (I think we now have at least 10 articles approved and being worked on, which should freshen things up as those get published), we've updated our suggested topic list, with a focus on up-and-coming technologies, such as successful java.net projects like Hudson and Grizzly, and the various constituent parts of EE 6 and SE 7. Yet the pitches we get are often for older topics that are not only well-covered, but aren't even particularly fresh. I mean, Wicket... really? Nearly four years after its last full-point release? If we all care so much about the future of Java, that future is right in front of us, in the form of up-and-coming projects, and finished or nearly-finished JSRs (many of which have reference implementations). This is the stuff we'll be using eventually... why not get into it now? Try it out, see if it solves your problems in new and useful ways. And if it doesn't work, file a bug!

Much of the innovation in the Java world right now involves incorporating ideas from other languages into the Java language, and bringing other languages to the JVM. There's a certain appeal to solving the closures argument by saying "so just drop into Scala or Groovy if you need closures so bad," but there's a sense that some of the most enthusiastic and adventurous people in the Java community, including a whole "Posse" I could name, find fleeing to Scala more appealing than doing stuff in Java. That's a worry. Is it that Scala's really that much of a solution, or is it just the "new hotness", a shiny reprieve from well-worn Java conventions?

But I'm not about to start digging a grave for Java. The pundits have been doing that since about 1997, and they've consistently been wrong (anyone remember ActiveX controls, or seen a web page that used one?). There's too much value here, too much proven results, and those are things that can't be tossed aside lightly. I do believe that the Java community will move forward and do important work.

With more and more device and format fragmentation, the very idea of device-independent executable code has never been more important or more valuable. In 1996, you could pooh-pooh Java by saying everything seemed to be switching to Windows; who needs "write once, run anywhere" in a world of "Windows everywhere"? Now in 2009, we have multiple viable desktop platforms, smartphone platforms, devices like Kindles and Blu-Ray players (both Java-based) with sophisticated computing needs, etc. There isn't a technology better suited than Java to work with all of those. Look past the habitual pursuits and see all the places that Java can take us.

Final farewells tomorrow. And the answer key for the editor's blog musical reference game.

In Java Today,The Aquarium notes the release of the proposed final draft of JSR 317, in Type-Safe Criteria and MetaData API in JPA 2.0 - Expert Group Delivers Proposed Final Draft. "One more JavaEE 6specification in Proposed Final Draft: Linda has announced the availability of JPA 2.0 PFD. This draft includes a number of significant changes, including the replacement of an earlier version of criteria API with a typesafe API, support for validation, and a metamodel API. As pointed by Linda, the changes to the criteria API and the new metamodel API came through a proposal from Gavin to the EG; a great example of how the EG can pool the expertise from experts in the Java community, regardless of their company affiliation."

Ahead of today's deadline for submissions, Joe Darcy has published a week 4 update for Project Coin, the small language changes for Java 7 project. Joe lists the week's 19 (!) new proposals, and adds, "The field of over two dozen proposals previously sent in over the first three weeks of Project Coin was narrowed to six proposals still in consideration for inclusion in JDK 7. The proposals submitted this week and until the end of the call for proposals period will be similarly evaluated for their appropriateness to be added to the language."

The JT Harnessproject has announced their 4.2 milestone 1 release. " Version 4.2 fixes bugs, adds service management capability, and modifies the Quick Start Wizard. The service management feature provides the ability to map services to tests, manage the ports associated with services, and start and stop services manually and automatically. The Service Manager component allows users to interact with service in a particular test suite. Also, test suite architects now have the option of omitting the Quick Start Wizard."

In today's Weblogs, Karl Schaefer previews the future of SwingX in SwingX Pushing Onward. "SwingX pushes toward 1.0, preparing the final(?) pre-1.0 release and a new demo application."

Dominic Da Silva's work has taken him From JSF to Struts to SEAM to Spring. "Java web frameworks have definitely evolved in the last few years and Seam definitely makes working with JSF a joy this time."

Next, in Calling a Metro Web Service from Clojure, Harold Carr writes, "I show how to use the JVM-based Clojure language to call a Metro-based web service."

This week's Spotlightis on the SIP Communicator project, which has once again been accepted as a mentoring organization for the Google Summer of Code program as a part of its 2009 edition. If you're a student and you want to write open source this summer (and get paid to do so) pick up one of theSIP Communicator summer of code projects. The deadline for applications is April 3.

In today's Forums,lilianne_blaze asks Is there any complete, up-to-date tutorial for Java Firefox extensions? "Is there a complete tutorial for Java Firefox extensions? Specifically, for Java 1.6u12/14+ and Firefox 3.0.8+, preferably understandable by someone with little knowledge of JavaScript and Firefox internals? Everything I could find is either obsolete, incomplete, or needs previous experiences with Firefox extensions. What I need is to be able to: 1) declare a Java object as a singleton for all open Firefox windows, 2) notify it on any get/post requests, 3) notify it on any html loaded events, 4) modify html before it's rendered, 5) list all open windows/tabs/frames."

NBW provides a helpful answer in the thread Re: Glassfish equivalent of weblogic startup class. "You can create a ServletContextListener which will get called when your context starts. That's in the web tier, in EJB 3.0 which is bundled in Glassfish 2.1 there's no such equivalent so one technique is to call your EJB(s) that need to run on startup from the ServletContextListener. You will also need to make sure to add EJB refs to your web.xml. The Glassfish EJB FAQ here might be useful to you as well."

signal3 notices that It's been quiet lately... "Maybe a demo will liven things up? See LWUIT in rare form, visit: http://smooth.pro/info.php?game=WOAusing a JSR-184 device w/ at least 1.5MB of heap. Comments & criticisms are certainly welcome and appreciated!"

Finally, Clive Brettingham-Moore shows how to handle a Xerces class-loading difficulty in Re: Xerces not playing nice with Glassfish / Metro? "If your application (or library) uses Xerces directly (rather than relying of xerces specific features via JAXP, which is bad form) then you can prevent Xerces interfering with JAXP simply by removing the service configuration from the Xerces jar (expand jar remove META-INF/services/javax.xml.parsers.DocumentBuilderFactory & META-INF/services/javax.xml.parsers.SAXParserFactory, re-jar and use this version). Similar applies if Xalan is the problem (META-INF/services/java.xml.transform.TransformerFactory). JAXP will see the default implementation, and the other code can still use Xalan/Xerces directly."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Editorial changes this week  

Disenchanted Blog

发贴人 kfarnham 2009-3-27

Just how open is Java?

In a dispute that's likely to light up the Java blogosphere, Stephen Colebourne, co-creator of the First Class Methods closure proposal, is raising his concerns about the openness of the Java standard. In his blogNo more Java 7, he focuses on the history of the Java platform standard, from its aborted submission to ECMA in 1997, through the establishment of the JCP and the ratification of JSR 176 for Java SE 5 and JSR 270 for Java SE 6, as well as the TCK dispute over Apache Harmony.

Coming back to the premise of his title, Stephen writes,

I started with a contentious statement - that there may not be a Java SE 7 (open specification). So, lets look at the evidence.

Blogs, blogsand more blogs -Every blog from a key Sun employee in recent times has referred to JDK 7, not Java 7. Read them carefully!!! Still think there is guaranteed to be a Java 7?

To emphasise the point - JDK 7 is the implementation, Java SE 7 is the specification. But everyone at Sun is talking about the JDK (Open JDK), not the specification (Java) and this isn't an accident.

As a possible counter-point -- decoupling the JDK from the standard, but implying the latter will eventually come to pass -- Stephen quotes Mark Reinhold's JDK 7 blog of a few days ago:

What about the JCP? The JDK 7 Project is creating a prototype of what might--or might not--wind up in the Java SE 7 Platform Specification. When the SE 7 Platform JSR is submitted then the features under development in JDK 7 will be proposed for inclusion therein, except for those that are VM-level or implementation-specific.

Stephen summarizes his argument by claiming that the lack of a platform JSR, or its appearance after the implementation is largely done (a "rubber stamp", he calls it) means that "Java SE is no longer an open standard and the next release will be JDK 7, not Java 7."

Do you buy it? What do you think? The post has attracted dozens of comments, some of which he addresses in a follow-up blog, A question of IP.

Also in Java Today, a new version of JavaFX, 1.1.1, is now available for download. This release "contains some bug fixes and quality enhancements and incorporates the JavaFX 1.1.1 SDK, which has enhancements to improve media performance." More details are available in the NetBeans IDE 6.5.1 for JavaFX 1.1.1 release notes and JavaFX 1.1.1 SDK release notes. The SDK also includes two new examples: Simple Simulation: Planets in the Solar System and Book Panel.

The SDN's Janice Heiss has posted an interview with the UK's first Java Champion, in Seeding Cloud Computing: A Conversation With Java Champion Alan Williamson. In it, Alan discusses the challenges of and misconceptions about cloud computing, his goals as editor for theCloud Computing Journal, cloud computing and open source, how to develop for and monitor the cloud, and more.

Recession be damned, we've managed to highlight job openings in today's Weblogs, starting with Marina Sum's link to some Engineer Openings at OpenSSO. "In the current economic downturn, job opportunities are music to many ears. Are you interested in entry-level engineer, senior quality manager, information architect, and Java UI developer positions with Sun's superb OpenSSO team? If so, read on."

On the client side, Joshua Marinacci asks Want a Job Coding Extreme Swing? "I don't normally post about job offers, but this one is simply too cool to pass up. The guys at Limewire are looking to hire a new Swing developer."

And while it's not a paid position, Alexander Potochkin posts word that the SAF team is looking for experienced contributors, saying that "Swing Application Framework is open for a real help from the community."

In today's Forums, Marcus Milanez is interested in Updating JAXB on Glassfish. "Looking at https://jaxb.dev.java.net/ I came accross a new JAXB version ( Is it possible to update my glassfish (2.1) installation with this new version? I couldn't find this information anywhere... Is this version faster than my current version?"

ixmal has a warning of how not to hack Swing, in Re: Translucent windows question. "You know, direct calls to getGraphics() effectively turn off most of Swing's painting optimizations - see JComponent.safelyGetGraphics() and related code. That's why I'd suggest you to rewrite the code using paintComponent(), if possible. In JDK7, when shaped & translucency windows will be supported in java.awt package (public API instead of AWTUtilities), we still plan reusing standard Swing approach, i.e. when all the components are painted from JComponent.paint(), and it's RepaintManager who is responsible for updating the native back buffer used for translucency."

sfitzjava retells the deployment woes of many mobile developers in Re: Deploying a j2me application. "There are usually a couple ways to deploy depending on the phone features, and the service provider. But there are some cases where 3rd party deployment is impossible, such is the case for VirginMobile US, Movida, are two I know of. While VMobile is because they don't allow off internal site downloads. Movida is because they are in a "Walled Garden", which is a way of saying they don't allow internet connections out of their network."

And, in a repeat of a major news item from earlier in the week, Rochelle Raccah posts Big week for GlassFish support in Eclipse - Announcing GlassFish Tools Bundle for Eclipse. "This week has been a very exciting week for the GlassFish support in Eclipse! In addition to publishing several updates of our plugin, Sun is a Gold sponsor at EclipseCon 2009, had several talks and announced our GlassFish Tools Bundle for Eclipse. This bundle contains community editions of GlassFish v2.1 and GlassFish v3 Prelude, Eclipse 3.4.1, the GlassFish Eclipse plugin and optionally JDK 1.6. This bundle contains preconfiguration of the 2 GlassFish servers and database setup for Eclipse."

Apropos of this week's release of a GlassFish bundle for Eclipse, the latest java.net Poll asks "Are you more likely to use a library or framework if it comes bundled for your IDE or build tool?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Just how open is Java?  

The Sharpest Lives Blog

发贴人 kfarnham 2009-3-26

How the OpenJDK team plans to get to JDK 7

OK, here we go. Here's the roadmap that gets us to JDK 7, and what we'll pick up along the way. Mark Reinhold's latest post, unassumingly titled JDK 7, lays out the path that OpenJDK will take over the next few months to get to a JDK 7 release in early 2010.

At Devoxx back in December I presented a list of candidate features for JDK 7 (video, interview); more recently, at FOSDEM, I discussed that list as well as the high-level schedule and the means by which we plan to deliver the release (slides,audio/video).

The high-level schedule is now available on the JDK 7 Project page in the OpenJDK Communityalong with a detailed feature list, the near-term build and integration schedule, and the long-term, build-by-build calendar.

The JDK 7 feature list, like that of any large software project, is provisional and subject to change based upon new information and new proposals.

So what can we make of the features? JSR 296, the Swing Application Framework that some had feared for the well-being of, is still part of JDK, with the high-level integration schedule suggesting we'll see it in or around July, in the Milestone 5 timeframe. On the other hand, the Joda Time-inspired JSR 310 Date and Time API is living up to its "marked as inactive"status and has apparently fallen off the JDK 7 radar.

Still, a lot of the other interesting items mentioned by Mark as JDK 7 candidates are in the feature list, including less talked-about features like concurrency and collections updates (Fork/Join, Phasers, Fences, etc.) andSwing Updates including JXLayer and JXDatePicker, which would apparently be the first SwingX components integrated into core Java.

So, take a look at the list and the schedule, and let us know what you think.

In Java Today,The H went to Qcon and sat down with Patrick Curran, chair of the Java Community Process for a chat about how the JCP is changing and looking for more transparency in all aspects of its work. In Interview: Patrick Curran, chair of the JCP, they discuss the status of JSR 310(the Joda Time-inspired date and time API for Java 7), Apache's ongoing TCK licensing dispute, the openness of the JSR process, iterative spec development ideas, and more.

Following an indecisive earlier poll about Swing look-and-feels, Jasper Potts has revised his questions and reposted them as Breakdown of what should be default LAF for Java 7. "After watching the voting and reading the comments I have noticed two things: First is from 30 votes to 800 votes the percentages have hardly changed which means we seem to be falling on a conclusion. Native LAF has varied from 59% to 63% so nothing major and is a clear winner. The second point is there seems to be different answers for Windows and Unix and good arguments that maybe they should not be the same so let me start a new poll with them split and see if I am right. I will split the poll into 3 categories Windows, Unix GTK and Unix KDE."

Today's Weblogsfinds James Gosling Wandering the UK and talking with developers there about Java. "One thing I kept getting asked about was using real-timefor transaction servers. The reason they're all interested is because the real-time VM has a garbage collector that has guaranteed maximum pause times. While this does work very well, it is often overkill."

Fabrizio Giudici says Let's fork BeansBinding. "I hope/presume that there is some other guy willing to do that, so it will be a genuine community effort. It doesn't seem a hard task, since the code looks clean (more info after I run FindBugs on it), there are 126 classes in total, of which only 43 are new, the others a forked, patched implementation of the EL language."

Next, in Footprint Project adopts Maven 2, Felipe Gaucho announces that the "Footprintproject was updated to Maven 2.0 and published in the java.net Maven 2 repository."

In today's Forums,gjparson is trying to get network code working on actual Blu-Ray devices, in Re: [BD-J-DEV] Network connection issues - again. "My BD-Live app runs fine on my pc running TMT, but throws a socket permission exception on my Samsung BD-P1500 player that's cable connected to the Internet and to a Samsung HDTV. I have run player updates via the Internet with this hardware configuration, and the player itself is set to "Allow All" BD-Live content. So there doesn't appear to be any problem with the hardware setup. I have researched this issue in your book and in various project, conference and online documents and even source code files. I have created a grantor keystore and used the BDCredentialSigner tool to sign the PRF, but so far nothing has worked. Accessing publicly available Web documents would seem to be a trivial task, but with the many BD-J security restrictions it has been a showstopper for me, and perhaps for a few others out there."

Scott Oaks points out a possible bottleneck in Re: Debugging Glassfish CPU usage. "The most likely culprit seems to me to be the network -- I did notice in some of the stack dumps that a few glassfish threads were blocking writing data back to the clients, which would normally only happen if there is a network issue. I wonder if running tcpdump/snoop on both the client and server machines would show any delays. Or seeing how much ftp thoughput you get during those 30-second intervals. Or even simple ping tests (or traceroutes) could show a long time delay."

Finally, writtmeyer talks about how to use Java Messaging Service in GlassFish in the reply Re: newbie question. "Yes. The OpenMQ JMS implementation is part of GlassFish. GlassFish also supports Message Driven Beans. See here for how to configure it: http://docs.sun.com/app/docs/doc/820-4335/abljw?a=view. This excellent article might also be of interest to you: http://today.java.net/pub/a/today/2008/01/22/jms-messaging-using-glassfish.html. I am not sure if everything is available in the current v3 builds. But all v2 builds have a JMS implementation included - and the final release of v3 will have one as well."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

How the OpenJDK team plans to get to JDK 7  

House of Wolves Blog

发贴人 kfarnham 2009-3-25

GlassFish makes a splash at EclipseCon

It's still a little weird seeing Sun as a top-tier EclipseCon sponsor, with theGlassFish community prominently present at the conference, considering the deep integration that's long been offered for GlassFish by the Sun-staffed java.net affiliate community NetBeans, a competitor to the Eclipse IDE.

But maybe times have changed, and co-existence is more palatable to the community as a whole. For NetBeans to succeed, it is not necessary for Eclipse to fail, and vice versa. It's certainly nice to see that SWT-versus-Swing evangelism seems to have largely disappeared, as that was a tiresome and unhelpful schism in the desktop Java community, and perhaps a reason that no form of desktop Java ever achieved the kind of success a lot of us expected it to.

So GlassFish actually made a major announcement at EclipseCon yesterday: the project released the GlassFish Tools Bundle For Eclipse. This bundle includes Eclipse 3.4.1 Java EE IDE, GlassFish v2.1 and GlassFish v3 Prelude pre-configured, and optionally, a JDK 1.6. Arun Gupta has a preview of the bundle and startup tips in his blog, along with a number of helpful links. Arun is at the Sun booth at EclipseCon, and invites you to come by and try out the GlassFish Tools Bundle for Eclipse for yourself.

Regardless of a user's IDE preference, it makes sense to make GlassFish adoption easy for them, so this should help more would-be GF users take the plunge.

Also in Java Today, Joe Darcy says that Project Coin's set of small language changes for Java 7 is shaping up. In Project Coin: For further consideration... , he writes, "while there is a bit less than a week left in the call for proposals period, there has been enough discussion on the list to winnow the slate of proposals sent in so far to those that merit further consideration for possible inclusion in the platform." The items likely to be sent forward for development in Java 7 are Strings in switch, Improved Exception Handling for Java, Automatic Resource Management, Improved Type Inference for Generic Instance Creation, Elvis and Other Null-Safe Operators, and Simplified Varargs Method Invocation.

The SIP Communicatorproject has once again been accepted as a mentoring organization for the Google Summer of Code program as a part of its 2009 edition. If you're a student and you want to write open source this summer (and get paid to do so) pick up one of the SIP Communicator summer of code projects. Deadline for applications is April 3!

In today's Weblogs, Masoud Kalali provides techniques for Monitoring GlassFish application server's HTTP Service using VisualVM. "If you are using GlassFish and you want to monitor your Server HTTP Service performance from your desktop computer then this entry is for you. The entry shows how one can use VisualVM utility of JDK to monitor HTTP Service of a GlassFish application server."

Marina Sum has posted a few OpenDS News Tidbits, "as shared by community manager Ludo Poitou."

Moving on, in Keep your FX Code Clean (My version), Richard Bair writes, "Exploding Pixels has an example of FX code and a suggestion for code formatting in FX. Throwin' my opinion out there too!"

In today's Forums,kleopatra discusses the logic of JTable decoration inRe: JTable-Zebra with one line... "another problem is that Nimbus got the alternation different (wrong? don't have so many apps with striping - thunderbird and this forum overview): they color the first row with the alternate and leave the second to the normal background, that is they stripe the even rows. (hehe - the outcome of row % 2). SwingX stripes on odd rows. That combined with some opaqueness (?) weirdness on a checkbox lets a JXTable appear funny without highlighters and very dark if the default ui striping (as defined by HighlighterFactory.simpleStriping) is applied. For an example, see the RendererExperiments in my incubator."

Also in the Swing forums, jogiles is trying to intgrate JXLoginPane and PasswordStore. "I'm using the JXLoginPane, and am trying to work out how to use the PasswordStore. I have successfully got the login pane working, and a user store is loading a list of users who have previously logged in. The problem I am having is that I don't understand how the 'remember password' option comes into play. I want it to be possible for a user to select from the drop down list their username, and if the password is stored, it should auto-fill the password. Despite implementing PasswordStore, I can never seem to get a call to the 'get' method. Am I doing something wrong, or is this not implemented in the current JXLoginPane?"

Finally, vikyjavadeveloper still wants to use USB from Java, as described in Re: Usb support (especially for windows). "I am a java developer but i don't communicate with USB API in java so please help me for read and write some date into usb device with the help of JUSB API."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

GlassFish makes a splash at EclipseCon  

Getting your favorite dynamic language on the JVM

In an interesting coincidence, two presentations hit the front page today, both on the topic of running dynamic languages on the JVM. Of course, that in itself is nothing new, as we've had JRuby, Jython, Groovy and the rest running on the JVM for a while. What is new is the extent of the effort to provide better support for running these languages, adapting the JVM to be a better host to dynamic languages.

In a presentation(43 min.) recorded at QCon London 2008, Ola Bini talks about the current status of the JVM regarding languages running on top of it and the need to evolve in order to support dynamic languages. Bini presents the benefits of using a JVM, now that CPU cycles are cheap enough to afford GC, JIT, RTT: garbage collection, online code loading, reflection, JIT, tools, libraries, maturity, and others, concluding that the JVM is the best virtual machine in production. After mentioning about 50 languages built on JVM (here is a research site that compiled a list of about 200 such languages), he talks about the needs high level languages have, which the JVM partially supports, and about what's missing.

As InfoQ's Abel Avram writes:

Bini continues his presentation explaining what actually each feature is and evaluating the difficulties to be encountered if they are implemented in the JVM mentioning that they are currently implemented in the DaVinci virtual machine, a multi-language research JVM targeted especially at dynamic languages.

During the rest of the presentation Bini talks about JRuby, the progress done so far, JSR 292, and answers questions.

And speaking of JSR 292, Danny Coward announces the launch of a new Java podcast from The Planetarium, whose first episode is titled "JSR 292, DaVinci Machines and Multiple-languages." He writes, "tune in to the first Planet Cast with John Rose from Sun's Hotspot JVM group for an in depth conversation (about 40 mins) with theJanitor all aboutdynamic languages on the JVM, JSR 292, and the work to make them easier to bring onto the JVM and run faster there than anywhere else."

Also in Java Today, it's a busy week for NetBeans news, with three significant announcements already this week. The NetBeans IDEhas won its third Mobile and Web Development Tool Productivity Award from the Jolt awards, the fourth straight year of NetBeans wins at the Jolts. The team has also released NetBeans 6.5.1, a minor update which includes December and January patches and replaces GlassFish v2 UR2 with GlassFish v2.1. Finally, they're putting out a call for participation in the NetBeans IDE 6.7 Community Acceptance Testing program (NetCAT) program.

Sekhar Vajjhala talks migration in today's Weblogs. In WebLogic to GlassFish : Sharing classes using APP-INF he writes, "WebLogic applications can use APP-INF directory to package classes in a .ear file and share them between J2EE/Java EE modules. However, APP-INF is not a Java EE standard and is non portable. Here is a tip on how to migrate to GlassFish."

Harold Carr presents Notes/slides from my Metro, Jersey, GlassFish, OpenESB, OpenSSO presentation at UJUG. "On Thursday, March 19, 2009 I presented a quick overview and roadmap of Metro, Jersey, GlassFish, OpenESB, OpenSSO at the Utah Java Users Group. Here are my notes from the meeting and my slides."

Next, in JAXB : web.xml : dtd and xsd classes generator, Sebastien Dionne shows "How to use JAXB and Maven to generate java classes from dtd and xsd. I'll use the web.xml as input. WebApp version 2.2 to 3.0 are supported."

In today's Forums,rwillie6 could use some help Debugging Glassfish CPU usage. "I'm trying to determine the cause of elevated CPU and Interrupt / Context-switch activity on our application server that occurs at non-peak traffic times and at times causes the application server to become non-responsive. Munin graphs of the CPU usage and Interrupts / Context-Switches are attached. These spikes are odd because they occur during non-peak times and do not resolve themselves. So far, the only solution I have found is to restart glassfish, which usually makes the problem go away for 8-24 hours. Sometimes, these spikes do not affect load times, but sometimes the spike is more severe and the application server becomes non-responsive."

mahrer wonders what steps are required for webservice development, in WSDL first - wsgen not creating classes from defined WSDL schema types. "I'm doing WSDL first development and using wsgen to process the @WebService / @WebMethod annotated endpoint. This produces the request / response wrapper classes but no JAXB artifacts like the types declared by the schema, fault types etc. Do I need to run a JAXB compiler manually in order to get these artifacts??? For example the service endpoint needs to throw the exception that has been defined to indicate a fault so it needs the Java class for this exception. At the client side the wsimport tool is run which creates the all the types as described by the WSDL so why not wsgen?"

Finally, diegobenna chooses to bust out the all-caps to announce that JAVAFX HAVE A NEW FANTASTIC LAYOUT MANAGER! "I find a fantastic layout for javafx, it is static and dynamc with Scene. You can create special indipendent rows and set all cols and rows size. Is better than java layout. You can create span cols. You can set grow in vertical and horizontal. You can set alignment and other. It is user friendly and simple to use for all. Is easy create form and panel with this layout. Its name is DigLayout. For tutorial and samples..."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Getting your favorite dynamic language on the JVM  

To The End Blog

发贴人 kfarnham 2009-3-23

Final week and a half for Project Coin submissions

Perhaps your editor was unaware of the short running time of theProject Coineffort to collect a set of small language changes for inclusion in Java 7, but with Java 7 shooting for an early 2010 release, it makes sense: they need to pick the changes they're going to make, implement them, and give them a few months to get a full shake-out through the beta process.

So, with only a week and a half to go, we note that Joe Darcy has posted the week 3 update for Project Coin small language changes. Four new language changes were proposed, two others revised, and discussion continued on other proposals. Joe adds:

Ten days remain to get language change proposals in! (Purely libraries changes will be handled by other JDK 7 processes.)

So, it will be interesting to watch which proposals make the cut: if we'll finally get much-discussed ideas like multi-exception catch and re-throw (the winner of our poll on the subject) or switch-on-String for Java 7, or some new last-minute ideas that haven't been widely considered before.

As this is the last full week for Project Coin, we've decided to put it in our front-page Spotlighton Project Coin. The effort (from OpenJDK's Compiler Group), is keeping its call for proposals open through March 30 for ideas to be included in the final JSR. The project page has a formal proposal form for proposers to fill out, as well as criteria for a desirable change, guidance on sizing a change, and other background information. Interested parties may also want to check out Joe Darcy's updates from week 1, week 2, and week 3, as well as an open space conference discussion of Project Coin in JavaPosse episode 234.

In Java Today,The Planetariumhas turned its attention to Java Card: The unsung hero of the Java Platforms. "There's anexcellent technical overview of Java Card here. Java Card is deployed all over the place: from SIM cards, to cash cards, tosecurity badges and national identity cards." Surprisingly, the latest version of JavaCardcan even run servlets.

Masoud Kalali takes a look at the OpenESB Project in the Javalobby interview Frank Kieviet on OpenESB - "Seeing Beyond JCAPS and GlassFish". "The goal of the project is to develop and deliver a high performance, feature rich, modular, JBI compliant ESB runtime as well as development tools to accelerate OpenESB application development. OpenESB benefits from GlassFish's solid infrastructure to provide a scalable and reliable runtime engine for integrating different software systems based on the JBI standards and its available runtime binding components and design time modules. DZone recently sat down with OpenESB Technical Lead Frank Kieviet to learn more about the project."

Today's Weblogsbegin with Joshua Marinacci relating A Tale of Two Challenges for JavaFX developers. "A lot has happened since I last blogged. The JFXStudio hit 33k hits with 50 posts, I've started working on a new secret project built with JavaFX, and we had a rockin' booth at SXSW last week. I'll cover SXSW and our new party app in another blog soon. First things first: Developer Challenges!"

In Deploying artifacts to the java.net repository using Maven 2 on Ubuntu Linux, Felipe Gaucho shows "Project configuration and Ubuntu Linux steps required to deploy artifacts to the "Maven 2 repository for java.net projects"."

Speaking of Maven, Fabrizio Giudici begrudgingly works through his disagreements with the Maven world-view in Ant and Maven, history of a truce. "A lot of reputable friends from JUG Milano, JUG Genova and JUG Torino advocate for the use of Maven, and indeed I tried to use it a number of times (also becauseNetBeans has a pretty good support for it, to be greatly improved in 6.7). Nevertheless, I've always found it a completely useless piece of complexity, as none of the alleged "features" of Maven is a positive point in my opinion."

In today's Forums, Mark Mielke suggests giving a rest to idle speculation in the thread Re: Sun, IBM and future of Glassfish project? "Probably a waste of time to consider unless/until such a merger is announced? Java still needs a reference implementation and IBM seems invested in Java. Concern should exist whether or not a merger goes ahead. Bad things could happen either way. Good things could happen either way. There is entirely too much speculation / caution throughout the world and it is self-fulfilling. First somebody asks whether the sky might fall, then people pull their investments out "just in case", then the sky really does fall because nobody is invested any more. It's not a finger in the wound - it's dirt."

Fabian Ritzmann details the interaction of Metro's security tubes with WSDL-defined policies in Re: Ignoring the WS-Policy. "That's true for GlassFish, not without meddling with code and files in the Metro jars at least. With Metro 2.0 we are introducing a configuration file that allows you to control what tubes get instantiated. The code is there already but we don't have any documentation yet (and some details might still change)."

Finally, Shai Almog discusses mobile image handling in Re: Image.createImage(InputStream) not working on Nokia. "Many mobile phones don't allow you to load images created with their own cameras. This is a problem with the phone that exists in MIDP applications as well and should be taken up with the manufacturers. E.g. a 2mp camera phone which is pretty much the minimum today might require 4 bytes per pixel to load the image hence 8mb of RAM which few phones have available for applications (notice a 16gb phone means storage not RAM). This leads to ironic situations where you can't display the image you just shot with the camera using MMAPI."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Final week and a half for Project Coin submissions  

You Had Time Blog

发贴人 kfarnham 2009-3-20

How are you spending the downturn?

I've been talking with different people recently about the nature of the economic downturn. In my physical location, it's pretty bad: the state of Michigan has the highest unemployment in the U.S., thanks to its over-dependence on the collapsing auto industry. But as a work-from-home techie, that doesn't really affect me. And despite a lot of challenges in our industry -- seeing really good people on IM with status "unemployed" -- it doesn't seem like tech is going through quite the same wrenching meltdown. Even where it's bad, it doesn't seem as bad as the recession that ended the dot-com boom of the 90s. There's a sense that in some quarters that, if you can manage it, this is the ideal time to build new stuff and be in place for the eventual recovery.

For example, the growth in mobile is impossible to ignore. Recession or not, nobody's going to let Apple have the final word on cool phones, which is why we're seeing so much new work in this field. In Java, we've got LWUIT to make old phones look new, and JavaFX Mobile gives us an opportunity to make a clean start with a new, media-rich mobile platform.

You have to figure that some developers with more time on their hands than they'd like are using it on open-source projects. It's a good way to keep busy, to learn new things, and to have something to talk about at your next interview.

And, apropos of the idea of coding in different environments than you were last year, the latest java.net Poll asks "Where do you write the most code?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In Java Today, after a long development, JSR 282, the Real Time Specification for Java 1.1, is in Early Draft Review. This JSR addresses "loose ends from JSR-1 that are too large to be incorporated in a minor revision, but small enough to be specified and implemented relatively easily. This is an early step in the evolution of the RTSJ. Other enhancements are needed, but this incremental approach will give the community access to needed improvements more quickly than a more comprehensive JSR." The early draft review ends on May 1.

Because of the breadth and depth of Dr. Masood Mortazavi's knowledge and interests, as evidenced on his popular blogs.sun.com blog, On the Margins, his SDN Meet the Engineer interview appears in two parts. Part 1explored his thoughts on technology, virtual reality, the nature of open-source movements, and more. Part 2explores his work as a Java developer and manager of a team of senior database engineers.

The latest edition, issue 193, of the JavaTools Community Newsletter is out, with information about tool talks at JavaOne (and a request to add yours to the list, if you've been approved), tool-related news from around the web, the usual project and graduation announcements, and a Tool Tip on debugging test cases with Maven.

Having seemingly wrapped up his JRuby-on-Rails-on-GlassFish series, Arun Gupta turns to embedded GlassFish in today's Weblogs. In TOTD #75: Getting Started with Grails using GlassFish v3 Embedded, he writes, "basically, I wanted to setup a demo environment for Grails and GlassFish v3 Prelude on my machine and so decided to document the steps along the process. More detailed steps with explanation are available on GlassFish/Grails Getting Started Wiki."

Marina Sum has the latest on The .NET Fedlet From OpenSSO. "See a recent postingby OpenSSO engineer Giuseppe Gennaro on the .NET Fedlet, which enables federation among .NET applications through Security Assertion Markup Language (SAML) 2.0."

Finally, in EJB Almanac, Manfred Riem reports that "the beginning of the EJB Almanac is here!"

In today's Forums, Fabian Ritzmann offers some webservice options in Re: Ignoring the WS-Policy. "You could create a WSDL without policies and use that to configure your service and point the client at the WSDL with policies at a different location. The other option would be to use plain JAX-WS instead of Metro."

Kristian Rink is looking for persistence recommendations for EJB apps. "In an EJB application I need to utilize SQL backend persistence in a way that allows for retrieving data in a pretty "plain" way - either returning Map<String,String> data if just one table row has been SELECTed, or List<Map<String,String>> if more than one table row has been SELECTed, with the column names in the corresponding table being keys of the Map and the content of the corresponding cells in this row/cell. This kind of data access should happen from within a stateless session bean exposing something DAO'ish to the rest of the application structure. There are three technologies in question for me to choose from in order to solve this issue..."

davjoh asks Will a MIDP2 packaged class library run on a MIDP1 phone?"Slightly random question, but will a MIDP2 packaged class library run on a MIDP1 phone? Basically, I'm creating a class library which ideally I'd like to reuse in both MIDP1 and MIDP2 applications. But I'd rather not have to create 2 separate compatible class libraries if you get my meaning. So in my library I would have a runtime check for what platform I'm running, then avoid the classes that are not compatible (i.e. the MIDP2 classes that aren't implemented in MIDP1 and therefore won't run in MIDP1)."

Finally, we're waiting for someone to reply "Flying Saucer!" totokajac's question on How to convert HTML to PDF? "I'm developing Tomcat/Struts application. I want to convert, for example, http://www.google.com to PDF. I found iText solutions, but i still haven't made them to work. Any experience with this? Any other suggestion?"

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

How are you spending the downturn?  

Untouchable Face Blog

发贴人 kfarnham 2009-3-19

Slick and special JavaFX apps contend for prizes

As more and more developers dig into JavaFX, we don't lack for novel uses of the technology: the daily contributions to JFXStudio is testament to that. Now we're awaiting the next step: from "look mom!" demos and novelties to more complete, purposeful applications.

To help encourage development of such apps, JavaFX.com is hosting a JavaFX Coding Challenge, starting next Monday (March 23). Entrants will create a rich media application with JavaFX 1.1 and NetBeans 6.5, and their applications will be judged by a panel of experts (including James Gosling) for technical merit, robustness, end-user experience, originality, creativity, and the viral nature of the application. The top three entrants will win prizes of $25,000, $10,000, and $5,000, with prizes of $1,500 to each of the top three student submissions. Up to 100 honorable mention entries will receive $25 Amazon gift certificates. The contest deadline is May 29, with winners announced the week of June 29.

In Java Today, selected events from this week's CommunityOne East conference are being streamed live online. Along with the big announcement of Sun's Cloud Plans as featured on the conference page, today's breakout sessions feature NetBeans, GlassFish, open-source business models, and a closing session this afternoon from Geir Magnusson, Jr. on "Persistent Clouds : New Models for Data Storage".

Blogger Michael Heinrichs has posted a five-part series (1, 2, 3, 4, 5) on Best Practices for JavaFX Mobile Applications. In the series, he covers unnecessary bindings, optimizing the size of the scenegraph, the trade-offs of shapes versus images, using prescaling and background loading, and the advantages ofdef over var.

Returning to the JavaFX theme, today's Weblogs begin with Sergey Malenkov's SideBarFX. "Fullscreen mode and transparent windows are supported in JavaSE 6 since update 10. I have developed the SideBar example for the JavaOne 2008 by using proprietary Java API to create translucent window that slides out of the right side of the screen. Now I am ready to show the SideBar example created by using the JavaFX API only."

Bruce Chapman takes a look at the proposed "small language changes" for Java 7 in Meta Coinage - Role of Syntactic Sugar. "Java (the programming language) is Turing complete so no new language feature can enable us to solve a problem with Java that would be unsolvable without the language feature. Therefore any new language feature is at best a convenience to those reading and writing the code."

Finally, Carol McDonald has posted MySQL for Developers Screencast and Slides. "If you are a developer using MySQL, you should learn enough to take advantage of its strengths, because having an understanding of the database can help you develop better-performing applications. This session will talk about MySQL database design and SQL tuning for developers."

In today's Forums, Kedar Mhaswade explains GlassFish's AS_JAVA in Re: ${com.sun.aas.javaRoot} variable reference. "The theory behind AS_JAVA was to provide an installation wide JAVA_HOME and refer to it by a token. So, the spirit was noble. Now, you know that for one "installation" (i.e. set of "bits") there is one asenv.conf[.bat]. But you can have multiple "domains" that utilize the same installation. It may so happen that domain1 uses Java 1.6.0_01 and domain2 uses 1.6.0_05 (for this JDK update has fixed a bug that it needs)."

In the announcement New version of Eclipse plugin for glassfish published, Rochelle Raccah writes, "Version 1.0.22 of the GlassFish plugin for eclipse was published yesterday. Here is a link to the release notes which lists the bug fixes that are included: https://ajax.dev.java.net/eclipse/releasenotes.html. As with previous versions, you can download it from within Eclipse using the Download additional server adapters link on the New Server Wizard. Please send your comments to users@glassfishplugins.dev.java.net or dev@glassfishplugins.dev.java.net and file any bugs in the issuetracker at https://glassfishplugins.dev.java.net/issues/."

cvd provides a challenging workaround in Re: how-to switch-off "Next-Generation Java


Every Angle Blog

发贴人 kfarnham 2009-3-18

And this is why you test and fix stuff

There are a couple of interesting messages featured in the Forumssection that speak to an experience surely all of us have had: people using our software in unexpected ways. It's so easy to develop your APIs or applications with certain use cases in mind that you don't anticipate and handle uses of your stuff that, while perhaps syntactically correct, falls on its face when run.

For example, let's say you make an assumption about appropriate font sizes for a small screen, based on sample text. Well, are you accounting for other languages? Other character sets? Following up in http://forums.java.net/jive/thread.jspa?messageID=337596&tstart=0#337596, a long-running thread about bundling fonts into LWUIT apps, "browneye man" explains a problem using Chinese in a LWUIT app:

I've noticed that on my Nokia S60 phone, there are other applications that can control the font size at a much finer scale. I'm guessing that it is the Java VM that is putting the limit on font control. Can anyone comment on that? My application is a Chinese ebook reader. There are 2500 frequently used Chinese characters in the language. Because of the complexity of Chinese Characters, a font size that is too small is not readable. So if you imagine 2500 medium sized bitmapped Chinese Characters included with my jar, it takes too much space and too long to load.

Pointing out another edge case, ranboii realizes that JAXB can generate Illegal XML characters:

Apparently there are some XML characters that are illegal to have in the content area of an XML document, and there is no way to "escape" them to make them legal. For example, 0x1F is an illegal character. So if a java object happens to contain that character (which is legal in a Java string), JAXB will quietly generate invalid XML! Then when we try to unmarshal that XML back into an object, an exception is thrown. This means that the ability of JAXB to correctly marshal and unmarshal an object depends on what data happens to be in the fields of the object! That doesn't seem like a very safe or general solution.

Fortunately, LWUIT and JAXB are open-source (both are GPL), so if either or both of these are genuine bugs, they're likely to get fixed.

Also in today's Forums,mugambo could use some help understanding Federated Identities and SSO for web services. "Would really appreciate if some one can clarify how federated identities and SSO is achieved for web services. I know SAML defines web SSO profile but how does it work for web services. Also it defines how federated identities can be established like persistent and transient Pseudonyms but how can web services use them and which standards profile will it use."

billf points out the light-by-design GRIN scene graph inRe: GRIN vs HAVI. "In Blu-ray, a GRIN-based menu, when obfuscated (which reduces the size and the load time somewhat) a typical xlet comes in around 100K, and has an acceptable load time on even the slowest players. This model of bundling the library with the xlet has worked well, largely because we were very strict about keeping the size of the library and the number of classes it contains to a minimum."

In Java Today, Rakesh Menon has posted a new demo applet to the JFXStudio, showing off JavaFX Light Effects. "JavaFX provides many APIs for Lighting effects. There are also different light types such as DistantLight, PointLight, [and] SpotLight. As you might have noted, there are many attributes available in each of these classes to control the light. We may not be familiar with the details of those attributes. But we still would like to use the APIs to generate light effects."

Release engineer Xiomara Jayasena has posted a new blog explaining the JDK Build Process. "The goal of Java Release Engineering is a reliable, reproducible and consistent build process. [...] The following is a representation of the build process for JDK7." The blog describes the different Mercurial repositories that make up JDK and how they integrate with one another.

This week's Aquarium webinar is on OpenSSO, the open source project that provides enterprise-quality infrastructure to implement single-sign on. Sid and Ajay will present a technical overview of OpenSSO and then will explain how it is being used in a real-world deployment. The presentation will end with a roadmap for the features in future releases of OpenSSO. Presentation on Thursday, March 19th, 11am US Pacific, at TheAquarium Channel. Full details (and recordings) at the Show Page.

In today's Weblogs, Jean-Francois Arcand introduces the Atomosphere project with Getting started with Atmosphere CPR part 1: Writing the HelloWord of Comet....a Chat application. "Time to get started with Atmosphere CPR (Comet Portable Runtime)! In this first part, I will describe how to write a chat application and deploy in on Tomcat, Jetty and GlassFish."

While he's admittedly not enthusiastic about using Windows as a build server, John Ferguson Smart has some tips for Installing Hudson as a Windows Service. "Hudson has a very convenient feature designed to make it easy to install Hudson as a Windows servers. There is currently no graphical installer that does this for you, but you get the next best thing - a web-based graphical installer."

Finally, Arun Gupta continues a series of recent JRuby-on-Rails-on-GlassFish blogs with TOTD # 74: JRuby and GlassFish Integration Test #5: JRuby 1.2.0 RC2 + Rails 2.x.x + GlassFish + Redmine. "The next set of tests ensure that some commonly used open source Rails applications can be easily run using this setup. The first one is Redmine - 0.8 is the stable release now. Redmine was first tried on GlassFish a few months ago. The steps have simplified since then."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

And this is why you test and fix stuff  

32 Flavors Blog

发贴人 kfarnham 2009-3-17

More tasty little language changes

Yesterday, we mentioned the latest JavaPosse podcast episode, an unconference discussion of small language changes for Java 7, centering around Project Coin, the effort to collect high-impact, low-difficulty changes into a single JSR for inclusion in the next major rev of the language.

Joe Darcy, who led that session at the Java Posse Roundup, has now posted a Week 2 Update, summarizing new small-language changes for Project Coin. "After the vigorous start of week 1, the pace of new proposals being sent to the listslowed. [...] However, brisk discussion continued on refining and exploring ARM blocks and their variations." The full post links to the five proposals posted during the week, one of which is a pre-announcement and request for input, and another of which was withdrawn.

With the high expectations Joe has established for submissions, requiring that they be thought through and spelled out at a level of detail more or less equivalent to what you'd find in the Java Language Specification, getting 3-5 new submissions a week may well be an appropriate pace. The interesting part will be seeing how many of these actually make it into Project Coin's JSR.

Also in Java Today, The NetBeans Team has released NetBeans IDE 6.5.1, which is a minor update to NetBeans IDE 6.5. New features include replacement of GlassFish v2 UR2 with GlassFish v2.1, integration of the December 2008 and January 2009 patches, and integration of bug fixes for JDK6 Update 12 and other issues. The release is available in English, Simplified Chinese, Japanese, and Brazilian Portuguese. Download NetBeans 6.5.1

Chet Haase continues his series comparing Flash/Flex's ActionScript language to Java, in ActionScript for Java developers, Part 2. "Like a lot of newer languages, ActionScript 3 is different from Java when it comes to properties, dynamic behavior, and some very convenient aspects of functional programming. In this second half of his Java developer's guide to ActionScript 3, Chet uses side-by-side code samples to demonstrate the differences in syntax and behavior. He also talks about capabilities and usage patterns that could come as a surprise, if you're viewing ActionScript through Java-tinted glasses."

Today's Weblogsbegin with Vivek Pandey showing off New features in GlassFish 0.9.3 gem. "GlassFish gem ver 0.9.3 is a much awaited release and adds new features such as daemon mode, glassfish.yml for configuration, logging improvements and other usability improvements."

Kohsuke Kawaguchi has instructions for Instantly turning your Hudson cluster into a Hadoop cluster. "The idea is simple -- Hudson knows the shape of its cluster, so why don't we let it start Hadoop JVM on all the nodes, and hook them all together? Hudson could also install Hadoop binaries on all the nodes as necessary, really making this solution a turn-key."

Finally, in Experimenting replication and failover recovery (High Availability) with OpenDS 1.3 Build 1, Masoud Kalali asks, "Do you use OpenDS as a directory server in your application architecture and design? this entry shows how we can setup a simple replication topology along with some sample code showing how we can use JNDI to access data as long as one of replication node is up and running."

In today's Forums,menno asks How to generate and compile twice using maven maven-jaxb2-plugin? "I have started using the maven jaxb plugin. But I cant figure out how I can get the plugin to compile code twice. I want it to do this because I need to first have xjc generate my classes with a binding file without the interfaces plugin, and then regenerate the same classes with a binding file which includes the interface plugin. It requires the first generation because the interface being added references generated classes. Anyone have ideas how to achieve this?"

kcochrane describes the need for a Dynamic certificate realm. "We are currently implementing web services in Glassfish 2.1 and these are secured by requiring a client certificate. This all works well using the @RolesAllowed annotation in the web service and defining the DN of the certificates in the <security-role-mapping> element of the sun-application.xml file. This is however beginning to cause us some problems, We need to change this file between development and deployment in order to allow development certificates for testing our code and client certificates in the production environment. Our users (and therefore certificates) are constantly changing, each time this happens we need to change sun-application.xml. It would therefore be desirable to define some way for the application to dynamically query the roles that the DN from the certificate will map to, perhaps from a database or LDAP. Does anyone know if something like this would be possible?"

Finally, in Properties resource ? is it a good idea?, Felipe Ga


Outta Me, Onto You Blog

发贴人 kfarnham 2009-3-16

What Java inherited, and what it bequeaths

It's hard to tell sometimes just how much Thinking in Java author Bruce Eckel still likes Java. On the one hand, he's been heavily involved with Flash and Flex over the last few years, effectively proposing in Hybridizing Java that Java cede the RIA to Flash/Flex and concentrate on the server-side instead. On the other hand, he does organize and host the annual Java Posse Roundup.

So before anyone says Bruce is "biased" or "hates Java", let's hear out what he has to say.

In a new opinion piece for Artima, Bruce looks backward and forward to assess The Positive Legacy of C++ and Java.

In a recent discussion, there were assertions that C++ was a poorly-designed language. I was on the C++ Standards Committee for 8 years, and saw the decisions take place. I think it's helpful to understand the language choices for both C++ and Java in order to see the bigger perspective.

He talks about how C++ was constrained by its requirement for C compatibility, and argues that Java failed to take advantage of its clean break from the past:

[The Java designers] thought operator overloading was too hard for programmers to use properly. Which is basically true in C++, because C++ has both stack allocation and heap allocation and you must overload your operators to handle all situations and not cause memory leaks. Difficult indeed. Java, however, has a single storage allocation mechanism and a garbage collector, which makes operator overloading trivial -- as was shown in C# (but had already been shown in Python, which predated Java). But for many years, the partly line from the Java team was "Operator overloading is too complicated." This and many other decisions where someone clearly didn't do their homework is why I have a reputation for disdaining many of the choices made by Gosling and the Java team.

Still, Bruce goes on to argue that Java's major choices and its subsequent popularity leaves it a proud legacy:

The list goes on to the point where it's just tedious. Does this mean Java was a failure? Absolutely not. Java brought the mainstream of programmers into the world of garbage collection, virtual machines and a consistent error handling model (especially if you subtract checked exceptions, which is possible using techniques I show in Thinking in Java, 4e). With all its flaws, it moved us up a level, to the point where we are now ready for higher-level languages.

Getting back to that unconference he hosts, the next item in theJava Today section is that the first Java Posse podcast released from the Java Posse Roundup '09 is Java Posse #234 - Roundup 09 - Project Coin. In this unconference discussion, Joe Darcy of the OpenJDK group discusses the Project Coin effort to provide small language changes for Java 7, including some of the ideas already proposed, what makes a good language change, the challenges of accounting for all the effects of a language change, proposals from discussion participants, alternatives to changing the language (e.g., use of annotations), and more.

JavaOne 2009organizers have posted the searchable Content Catalog of this year's technical sessions, BOFs, labs, panels, and hands-on labs. You can search the 346 catalog records by track, type, ID number, speaker, and/or keyword. If the content whets your appetite, early bird registration is still available through April 22. Nominations are also still open for the Duke's Choice Awards, which will be announced at JavaOne.

The latest Java Mobility Podcast is Java Mobility Podcast 74: BlueJ and Greenfoot, in which Ian Utting from the University of Kent and BlueJ and Greenfoot development talk about both products while at SIG/CSE.

In today's Weblogs, Ryan Heaton shows how to Add some sugar to your Web service API. "If you're using JAX-WS or JAX-RS to provide a Web service API, think about generating documentation and client-side classes (Java, C#, ActionScript) at compile-time. It's easier than you might think."

Arun Gupta announces a GlassFish Workshop at University of Wisconsin, Milwaukee - Mar 20, 2009. "If you are in the neighborhood of University of Wisconsin, Milwaukee then you have an opportunity to get a jump start in GlassFish. Peter Williams and I will be there on Mar 20 and cover the following topics..."

Next, in JAX-RS 1.1 Draft Available, Marc Hadley reports that "a draft of the JAX-RS 1.1 specification and API is now available. We're now working on implementing the new features in Jersey and adding corresponding tests to the TCK."

This week's Spotlightis on the ROME project, which just announced the release of ROME 1.0. ROME is an set of open source Java tools for parsing, generating and publishing RSS and Atom feeds. "ROME includes a set of parsers and generators for the various flavors of syndication feeds, as well as converters to convert from one format to another." The simultaneously released ROME Fetcher 1.0 is a "caching feed fetcher that supports retrieval of feeds via HTTP conditional GET." An off-site ROME 2 project has been set up to collect proposals for a second-generation ROME API.

Today's Forums start off with set of questions including one about the combination of Plugin2, pack200, Firefox 3.0.7 & Solaris 10 fromqu0ll. "With the above combination it is taking about 4 times as long to download an applet than it does on Windows using the same browser and version of Java and I am guessing this is because the pack200 version of the applet JAR is not the one being downloaded (both the packed version and the full version are available on the server to support all environments) as the full JAR is about 4 times as large as the packed JAR. Is there a reason why the pack200 version of the JAR would not be used in this particular environment?"

In Plugin-API wanted, chaose71 asks, "Can any one recommend a open source plugin API? I am currently developing a program to visualize medical data, that became somewhat big. Some modules are definitely specialized and do not need to be part of the "main" release. It would be great to have some kind of plugin management, e.g. where the user of the main version can download a .jar file, click on "install plugin" and the program gets some new features. This would also make the developement much easier as soon as the program goes open source."

rfm8 asks for Cookies, but seems to mean persistence: "I have a "login" form that I have built using lwuit library. How can I save user's login information forever, and use it later? I want that each user will login only once using his phone."

Finally, mlvov explains trademark usage in the reply Re: Can use name of "JavaME" in my commercial product?. "It depends on where and how you want to use it. As part of your product name - no. In description of your product, for example in product documentation or on the web - yes, provided that you follow the Sun trademark guidelines: http://www.sun.com/policies/trademarks/. BTW, "Java ME" is usually spelled with a space between "Java" and "ME"."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

What Java inherited, and what it bequeaths  

Looking ahead to JavaOne 2009

Noticed too late to make the front page, the JavaOne 2009 sessions list is now online in searchable form. No doubt would-be attendees are already hurling their favorite search terms at the content catalog to size up their interest in the conference: Kirill Grouchnikov tweets that there are 40 talks with "JavaFX" in their title (51 by my count, if we count BOFs and labs). Clearly, RIA is a focus for this year: "media" as a keyword brings up 40 hits, more than enterprise-y terms "cluster", "persistence", and "distributed" combined.

With all the economic troubles, it's hard to guess what turnout will be... surely some previous attendees will be stymied by corporate belt-tightening, but who's to say that they won't be replaced by first-time attendees, coming for a look at Java 7, EE 6, or the future of JavaFX?

With this in mind, the latest java.net Poll asks "Are you planning to attend JavaOne 2009?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In Java Today, the expert group for JSR 318, Enterprise JavaBeans 3.1, has posted a proposed final draft. " The purpose of the Enterprise JavaBeans 3.1 specification is to further simplify the EJB architecture by reducing its complexity from the developer's point of view, while also adding new functionality in response to the needs of the community." The new spec includes removal of the requirement for a separate local business interface, support for direct use of EJBs in the servlet container, singleton beans, support for asynchronous session bean invocation, and more.

Joe Darcy has posted a short blog describing Language Model Changes as of JDK 7 Build 50. "To date, there have been a few API changes to javax.lang.model.* in JDK 7. Early in the release, SourceVersion.RELEASE_7 was added to correspond to any new source-level changes coming in JDK 7 (6458819). Eventually, there will be changes to support the modulue construct being added byJSR 294; changes may or may not be needed for language changes coming from Project Coin and JSR 308. Oncemodulues are added, the JSR 269 API elements meant to cope with the expression problem will be tested."

The fourth in an SDN series from Ed Ort and Carol McDonald, GlassFish and MySQL, Part 4: Creating a RESTful Web Service and JavaFX Client shows how to create a RESTful web service for the web application developed in the first three parts, which is then called with a JavaFX client. "This article shows you how to use the NetBeans IDE with GlassFish and MySQL to create the RESTful web service. Specifically, you'll take advantage of features in NetBeans IDE 6.5, GlassFish Server v2.1, and MySQL 5.1 Community Server to build and deploy the RESTful web service. This article also shows you how to use the NetBeans IDE with JavaFX support to run a JavaFX client for the web service."

In today's Weblogs, Arun Gupta has posted a pictorial retrospective of this week's GlassFish community event in GlassFish Boot Camp, Mar 10 - Slides and Photos. "The GlassFish Boot Camp conducted in Sun's Santa Clara Campus on Mar 10, 2009 was well appreciated by the attendees. There were 30 of them engaged with 14 speakers over 8 hours in 7 fast-paced sessions - overall a great recipe for the boot camp. Many thanks to all the attendees and speakers for making it useful!"

Felipe Gaucho uses his blog to help you figure out Hudson SVNCancelException: No credential to try. Authentication failed, offering "a small note on how to solve the SVNCancelException in Hudson builds."

Next, Fabrizio Giudici goes about Defining Quality Assurance for blueMarine. "Just quick news from the project. I've defined a reasonably formal process for governing new releases of blueMarine. Copying most concepts from NetCAT (but with some differences), the blueCAT program has been born. CAT means "Community Acceptance Testing"."

In today's Forums,uvoigt offers up a Swing TablePacker class "I have implemented a class that automatically resizes colums of a table according to the content (or to prototypes or header sizes). It's configurable and is a bit similar to GridBagLayout. I find it very useful and I want to contribute it to swingx. Maybe it can be used in this context and it can be improved by the wide community. Where can I upload my class so that you can have a look on it?"

cowwoc forwards a JSR status update in the responseRe: Is JSR-275 (Units API) dead? "According to Jean-Marie Dautelle: It is still alive, we suffer a delay of about one year but are catching up. New release this month."

saturon hopes to Switch between LCDUI-LWUIT. "Although this was mentioned in some Threads I didn't find any clear explanation / statements from the LWUIT team how to approach this. I need this in order to get reliable Media capturing, since this just does not really work with LWUIT currently on quite a few devices (S60 above all). So let alone this discussion: how to switch between from to lcdui. I do it like this. It works in the WTK emulator, but not in my S60 device. There it my lcdui screen only flikers shortly then comes back the lwuit screen. I tried a lot of variations, setting current form to invisible and playing with invoke and block, invoking it in the edt , but nothing worked, always comes back to lwuit. Can anyone tell me how to achieve this?"

saturon also passes along some advice about font performance in RE: three font sizes. "My humble advice regarding fonts:I also thought that bitmap fonts are the solution, however I had to realize that performance was really suffering on a lot of places that was too much to bear for the user. Typical places where you realize this are list scrollings e.g. on menu items. Also if you are tight with memory you have to take into consideration the additional amount of memory the bitmap fonts consume. To be flexible what i did is to have centrally define my fonts so that I can switch to bitmap / sytsem just by using a flag and do not have to replace those references all across the code base."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Looking ahead to JavaOne 2009  

Never Stop Blog

发贴人 kfarnham 2009-3-12

Feeds aplenty from ROME

It's hard to believe that all this time, the popular ROME library for working with web syndication feeds (in any of the various RSS or Atom formats), hasn't been 1.0 release quality. Heck, we did a feature article "tour of ROME" over three years ago! And plenty of sites out there proclaim to be powered by ROME, with surely many more that we don't even know about.

So it's no surprise that the project's fans would want to celebrate the final 1.0 release. The real surprise is that it's 2009 and only now is the team drawing the line and declaring it a 1.0.

Earlier today, the team announced the release of ROME 1.0. ROME is an set of open source Java tools for parsing, generating and publishing RSS and Atom feeds. "ROME includes a set of parsers and generators for the various flavors of syndication feeds, as well as converters to convert from one format to another." The simultaneously released ROME Fetcher 1.0 is a "caching feed fetcher that supports retrieval of feeds via HTTP conditional GET." An off-site ROME 2 project has been set up to collect proposals for a second-generation ROME API.

Great project, and we're happy for them. If you're producing or consuming RSS or Atom, you're probably already using ROME.

In another announcement from a popular, long-running project, the Java Todaybegins with the announcement that the Flying Saucer XML/XHTML/CSS 2.1 Renderer project has released a first Release Candidate for Flying Saucer 8. "We consider this to be near-final release quality. We are not planning any more fixes or changes except for critical issues uncovered by your testing. It will help us greatly if you take the time to verify this release works on your own systems, and report back any issues you find. If no significant issues surface, we'll be releasing R8 final in about two weeks, near the end of March."

The OpenJDK community has approved the IcedTea project, for incorporating code from GNU Classpath's IcedTea. "In due time, we hope that many of the enhancements provided by IcedTea will appear in the main OpenJDK7 development tree. In the meantime, this project will act as a staging ground for migrating work from the external IcedTea repositories to a true OpenJDK forest, thus easing the process of keeping up with OpenJDK development and simplifying the process of contributing our work back to OpenJDK7. "

In today's Weblogs, John Ferguson Smart reports on a little experimentation in Grails 1.1 and Maven taken for a test drive. "Personally, I can't live without my Maven dependency management. Yes, I know, Ivy bla bla bla, but Ivy IDE integration sucks. So I was really looking forward to Grails 1.1 because of its promised Maven support. As people will no doubt be aware, Grails 1.1 came out earlier this week. So I thought I'd take the Maven support for a spin."

Xuan Yun shows how to Implement Shadow for JPopupMenu in Synth Look And Feel. "The shadow makes the popup menu looks like a real floating object, attracts users to put focus on it. Today let's see how to implement it in Synth look and feel."

Next, in JAX-WS 2.2 and Metro 2.0 nightly builds available for download, Rama Pulavarthi announces that "Nightly builds of JAX-WS 2.2 and Metro 2.0 are available for download. Also covers an update for Maven users accessing JAXB and JAX-WS artifacts from java.net maven repository."

In today's Forums,sfitzjava posts a Petition for SUN to push Vendors to get JSR's on Devices. "I would like to start a petition for Java Developers to sign (reply to this post with their support to this message) asking Sun MicroSystems to put as much effort in promoting JSR's, which have been through final approval and sitting on the shelf for YEARS in some cases, as they have to push JavaFX Mobile. JavaFX mobile only brings a few sparkles and bling to the mobile UI (which can be done without JavaFX) while there are good useful JSRs such as CHAPI, SVG, and MTA that can provide a much greater positive impact and usefulness to the JavaME platform."

Fabrizio Giudici considers the viability of scripting Java Advanced Imaging in Re: [JAI] Re: new jai-related, open source project. "Generically talking, any scripting language implemented through JSR-223 can be used with JAI, as well as with any Java runtime library. That means that JavaScript, JRuby, Groovy should be usable with JAI. I don't know how this can be useful, as I think you're meaning a scripting language specifically built for image manipulation and maybe specific optimizations as you mention in the paragraph below."

Finally, Eduardo Pelegri-Llopart announces Online Webinar: From Ajax Push to JSF 2.0: ICEfaces on GlassFish - Thu, Mar 12th, 11am PT. "Another Comet/Ajax related webinar! Tomorrow's free online webinar is by Ted Goddard (of ICEsoft). He will detail how to write rich interface applications using Ajax and Comet with JSF and ICEfaces and will also describe how these relate to the new JSF 2.0 specification in JavaEE 6. The presentation will be at 11am US Pacific Time. Point your browser to http://ustream.tv/channel/theaquarium. Recordings of the presentation will be available for later playback."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Feeds aplenty from ROME  

Do It Clean Blog

发贴人 kfarnham 2009-3-11

Using CSS for JavaFX

One of the more clever ideas in JavaFX is the use of CSS to style GUI components. In other toolkits, information about size, shape, color, and font might be hard-coded in source, or freeze-dried in binary form: either way, these graphic elements have traditionally been the responsibility of developers. Of course, the irony is that most developers aren't and don't care to be designers, so at best, they're adapting a designer's intentions to code. At worst, the developer him- or herself is left to pick colors and fonts. And we know how well that usually works out, right?

By putting styling in CSS, JavaFX makes a smart choice: it leaves the styling in a format where it can be created and maintained by graphic designers, using the language and tools they're already used to from web design.

So how does it work? In a particularly helpful example posted to the JFX Studio site, Rakesh Menon has posted the game JavaFX Sudoku with CSS.

"This is a Sudoku game developed using JavaFX. The objective is not really to demonstrate Sudoku, but to show Cascading Style Sheets (CSS) support in JavaFX. This sample uses two CSS files - blue.cssand black.css. These files have information about different user interface attributes such as color, font, shape…"

Rakesh's choices seem pretty acceptable for the casual Sudoku player, but if you wanted to "skin" the app to suit some other environment, all you have to do is edit the CSS files.

Also in Java Today, the JCP has announced that Aplix has won the special election to fill a vacated seat on the JCP's ME Executive Committee. "91 or 8.93% of the elegible JCP members voted for the four candidates", with Aplix getting 43.96% of the vote. Aplix will serve out the term vacated by Intel, ending in December 2010.

The latest edition, issue 192, of the JavaTools Community Newsletter is out, with tool-related news from around the web, greetings to new projects in the community, a graduation (egest), and a Tool Tip on using the Maven help plugin to inspect your settings.

In today's Weblogs, Kohsuke Kawaguchi announces Changes to the java.net Maven2 repository. "This is an important notice for those of you that uses the java.net Maven2 repository, as we are moving a repository from one location to another."

In the success story Involver.com - JRuby-on-Rails and GlassFish powering an online video marketing platform, Arun Gupta writes, "Involver.com is an online video marketing platform that allows brands to build, promote, manage, and track video campaigns on social networks for targeted audiences. The platform is powered by Ruby-on-Rails, JRuby 1.1.6, and GlassFish v2 UR2."

Finally, Felipe Gaucho reminds us of the Jazoon Rookie deadline: 15 March 2009. "If you are under 26 years old and have a good speech, you have few more days to try earn a free voucher + free air ticket to assist Jazoon'09."

In today's Forums,kleopatra warns of [FYI] SwingX Stormy Weather ... "... as we are in the middle of some code-breaking changes for 0.9.6, discussed agreed on in http://forums.java.net/jive/thread.jspa?threadID=55628&tstart=0. The code-base was tagged before the breaking changes with pre-096-code-breaking-changes-10mar2009, to allow for checking out a most-bug-fixed version before these changes. The last weekly has the same stability (if it happened, can't be sure with all our server probs - Jan?). A gentle reminder to our committers: we have a wiki page documenting change history (at least as far as code-breaking changes go) - please be sure to keep that in synch with the changes as you go along. For your convenience, the link to that page: http://wiki.java.net/bin/view/Javadesktop/SwingXChanges."

tisoft_media reports Running LWUIT-Demo on MicroEmulator on (jailbroken) iPhone. "I'm currently porting MicroEmulator (http://microemu.org) to jailbroken iPhones. I did a quick test with running LWUIT on it, and while it was very slow and had some graphic errors, it actually worked. See some screenshots here: http://markus.heberling.net/2009/03/10/lwuit-on-microemulator-on-iphone. I expect to get the performance better, but will try to correct the graphical glitches first. Make it run, make it right, make it fast."

mick_000 wonders about setting up JXTA pipes, in Re: OutputPipe connection failed. "How long will the PipeMsgListener object wait for receiving messages??? From an edge peer i created an pipe adv and used the listener object and when a rendezvous peer using that pipe adv, created an o/p pipe and sent the msg then no msg was received. After creating an i/p pipe,the pgm stops executing and doesn't wait for msg receive event to occur. Do I have to explicitly mention a waiting time to receive msg events?????"

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Using CSS for JavaFX  

Browser plug-in stats aren't what you might expect

An InfoQ article Flash is Dominating the Landscape, but Silverlight is Growing uses statistics from the RIAStats page to size up the competition between RIA browser plug-in platforms. The stats (as surveyed from 1.4 million browsers across 41 sites) seem to refresh periodically, and some are dubious (what is this "Version 1.8" that occasionally shows up in the Java pie chart?), but they're interesting nonetheless, particularly in the ways they defy your expectations.

To wit: you would think that the now-GPL OpenJDK, available in an easy-to-use package for the major distros, would be more popular on Linux than the closed-source and proprietary Flash plug-in. And you would be wrong. Filtering to only show Linux results (from 15,350 browsers across 28 sites over the past 30 days), RIAStats shows Flash present on 81% of those Linux browsers, while Java is only on 28%. Conversely, over on the Mac, where Steve Jobs earned the endless enmity of the Java community for calling Java a "big ball and chain" when asked about putting it on the iPhone, Java is present on 96% of the 73,909 surveyed Mac browsers... surely a result of the fact that Java is included with Mac OS X. Still, that makes the Mac the platform with the most consistently-observed Java availability.

Over all browsers, platforms, and countries, version 1.6 (i.e., Java SE 6) appears in about half the logged visits. It's too bad the report isn't granular enough to show how many of those Java 6 users have the "consumer JRE" (Java 6 Update 10 and later), which would be highly useful for those planning to deploy JavaFX, given that some of 6u10's improvements are highly valuable to graphics-rich applications like JavaFX.

Also in Java Today, Danny Coward has posted a collection of links describing the use of LWUITon Interactive TV platforms, in Java ME: LWUIT, as seen on TV. "You can see LWUIT on TV in this short video. A little like the JavaFX runtime, which runs over an underlying Java SE runtime(suitably consumerized), or a Java ME CLDC runtime, LWUIT runs atop today's Java ME CLDC runtime (like, for example, on thistouch-enabled Samsung F480), and now the CDC based TV platform. For developing on TV, you can get the SDK and emulator here. All works with NetBeans 6.1 or later."

Rakesh Menon has posted an example JavaFX Slide Show to the JFX Studio site. The slide show player dissolves between slides from the JavaFX presentation at Sun Tech Days Hyderabad, and can be viewed as an applet. Source for the SlideShow.fx and ImageButton.fx classes are also available.

Today's Weblogsbegin with Jean-Francois Arcand's GlassFish v3 Extreme Makeover using GrizzlyAdapter part 1: Hello World. "GlassFish v3 offer a lot of extensibility point, and one of them is quite interesting: GrizzlyAdapter. Any applications developed the GrizzlyAdapter API can be deployed inside v3 and transform a fish into a monster...an extreme makeover!"

Ramesh Parthasarathy looks at STUN server in SailFin "SailFin can be extended to provide STUN [Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)] service, BINDING requests primarily. A simple STUN server is now available in Project SailFin and is implemented as a lifecycle module."

Arun Gupta continues a recent set of tips with TOTD # 72: JRuby and GlassFish Integration Test #3: JRuby 1.2.0 RC2 + Rails 2.2.x + GlassFish v3. "The third test (explained in this blog) ensures that the same application can be easily deployed using GlassFish v3. GlassFish v3 will be available later this year with full support for Java EE 6."

In today's Forums,fenixx would like to List the JNDI of all running Beans. "Is there any possibility to list all the running Beans? Of course it's possible to list it at the Glassfish Admin Console, but it doesn't list it all. I would suggest the remote Beans are listed only. For example: I want to login at my application. Therefore my AuthenticatorBean is called correct, but I don't see it in the listing."

In another request, vrakesh_techie wants to Open a new Java Fx Stage from existing Stage. "I'm working on Java fx. In my Application, when i click on certain tabs, then a new window/Stage should open up . For this purpose what i'm currently doing is that, in my java fx file, i'm declaring all the necessary stages and setting the opacity for all other stages to 0 and the opacity of primary stage to 1 . So when i launch the Application, so many windows open up but only one of them is visible . When i click on Tabs like configure Settings or Configure Mail Server sub tabs in my main stage, then i will set opacity of the other stages to 1 so that they are visible But when the Application launches, several windows are opening up in the task bar and this is looking ackward. So kindly let me know if there is a way to open a new Java Fx stage from an Existing Stage."

Wolfram Rittmeyer explains GlassFish's concept of pinging in the follow-up Re: unable to ping "GlassFish's ping-connection-pool command (or it's web based equivalent) simply tries to get a connection for the given configuration (datasource class, databsename, user, pwd and so on). If it gets a connection the ping command is considered to be successful."

Finally, turbogeek considers the nature and liabilities of agents in Re: JXTA for Multi Agent Systems. "One of the most important insights I ever heard in regards to agents was from Graham Glass. He said the essentially the one primary goal of an agent was to conserve bandwidth. This was said over ten years ago, but it is still true. If the duty of an agent is to perform actions based on instructions, then the agent is said to be successful. Having said that, the problem with agents in general is that they are hard to manage if you believe agents roam the internet. You have trouble with CPU/memory consumption and security. If you can control all three of these, there is a fourth issue that the agent could talk to anyone. But the last little hobgoblin of agents is reliability. How do we know the agent is succeeding? Can it crash the system or be managed when it does crash? So, agents sound really really cool, but they are very very ugly. This is why their are few agent systems in common use."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Browser plug-in stats aren't what you might expect  

In Bluer Skies Blog

发贴人 kfarnham 2009-3-9

Anticipating 2009 Summer of Code

Let's start right off with Felipe Gaucho's blog about Google Summer of Code 2009.

Few days ago I was prospecting collaborators to my open source project when Bj


Relative Ways Blog

发贴人 kfarnham 2009-3-6

Many applets, one VM?

With the new plug-in letting some developers take a second look at applets, Gabriele Carcassi has an interesting idea: why don't we have a way to let multiple applets collaborate? In Java plug-in wish list: JVM scope, he writes:

One thing in particular, though, I think is needed: JVM applet scope. That is: the ability to run a set of applets in the same JVM, controlling which ones go together. The two real cases that I would need are "page" (all applets in the page scope on the same page instance share the same JVM) and "application" (all applets in different pages that declare to be in the same application share the same JVM).

The first is really to have different applets that can interact with each other, and it would actually go together with the ability to drag applets out. You can imagine two applets, one that is essentially a display of some data, and the other with the parameters for the display. You set your display the way you want, and when you are done you drag the display out and close the page.

The second would be used to share data cache. I have multiple pages that work on the same big dataset, and I would like different pages to simply use the same cache.

The idea of a "page" scope that lets a VM live on from page to page offers a lot of potential for holding on to session data and client state on the client side without using cookies. It does make me wonder if the original idea was that any application that would need paging would just do that within one applet, and as things have turned out, people still want to use browser navigation (which, let's face it, is a challenge for webapps too).

So what do you think? Is it a useful idea, or are there problems that Gabriele hasn't identified yet?

Also in today's Weblogs, John O'Conner looks at Discovering ResourceBundles at runtime. "Have you ever wanted your application to discover new resource bundle localizations at startup time? You can do that, and here's how."

Arun Gupta continues his tips series in TOTD # 71: JRuby and GlassFish Integration Test #2: JRuby 1.2.0 RC1 + Rails 2.2.x + GlassFish v3 Prelude. "TOTD #70 shows the first integration integration tests that I typically run to ensure that the latest JRuby and GlassFish versions work nicely with each other. The second test (explained in this blog) ensures that the same application can be deployed using GlassFish v3 Prelude."

In Java Today, the SigTest open source project (based on Sun's SigTest tools product), a collection of tools for comparing APIs and measuring the test coverage of an API, has just released SigTest 2.1 Milestone Release. "With SigTest 2.1, we are expanding the SigTest project to include other tools based on the same signature testing technology as the SigTest tool itself. SigTest now includes API Coverage tool functionality, a static analysis tool used to analyze code coverage of a program or API. SigTest 2.1 also includes a new analysis mode for migration compatibility."

In a new blog, Ryan Lubke writes that changes in JSF 2.0 will eliminate the need for faces-config.xml for many developers. "Using [the annotations] ManagedBean, FacesConverter, FacesValidator, and FacesRenderer allows the developer to skip editing the face-config.xml. The other common complaint with the faces-config.xml has been with navigation rules. To ease the pain there, we've added implict navigation."

Running JRuby on the JVM is an increasingly popular option, and in a new SDN article, Rick Palkovic walks you through Writing Your First Ruby-on-Rails Web Application. "Writing a Ruby-on-Rails web application is easy using the NetBeans IDE with its integrated JRuby interpreter and its support for the GlassFish application server and the MySQL relational database management system (RDBMS). This article shows you how to create a simple Ruby-on-Rails program in the OpenSolaris operating environment without typing a single line of code."

The latest java.net Poll asks "What Java EE 6 feature most interests you?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In today's Forums,acuster relates some Issues understanding applying WSIT to an exisitng web service. "We are trying to understand how to apply WSIT to a series of web services which we have up and running. Unfortunately the Metro Guide, while covering a lot of ground, does not really answer our questions directly so I am having to read between the lines. I have gone about as far as I can without getting some further pointers."

Shreedhar Ganapathy explains how a load balancer coordinates a cluster in the followup Re: Glassfish in-memory cluster not working. "When instances are across machines, you need to front it with a load balancer to not only balance/distribute load but also provide consistent session identification from the LB to the browser For your immediate experimentation, you can stop the cluster, create an additional instance on your mac or pc, restart node agent and cluster, and use the browser to move from one instance on one machine to another instance on the same machine after creating a session. In this case, you can see session information without LB."

Finally, p04279200 asks about Implementing unsupported fonts in swing components. "Please correct me if I have misunderstood or am down right wrong about any of the following. I haven't had a chance to go in depth into the font rendering code. It recently came to my attention that components such as labels, buttons, textfields etc can only support truetype, opentype and type 1. As the project I am working on currently has custom rendering of these and other font types I would like to have standard components displaying some other font types using our existing code."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Many applets, one VM?  

Decompiling the Java Media Components

Improved media support is one of the highlight features of JavaFX, and its Java Media Components is something that many developers have been looking forward to ever since Chet Haase outlined the goals and plans for JMC in a java.net blog almost two years ago. To Java developers, JMC promised support for modern media codecs and a simple, playback-only API (as opposed to the stagnant and complex Java Media Framework).

So, JavaFX is here, and it supports media, but what about the JMC? It doesn't seem to have its own Java API, so what's the Java developer to do?

Jeff Friesen did a little digging around the file system and ran a decompiler over the JAR files, reporting his results in a new article that reveals the classes and methods of JMC, and what files (JARs and native libraries) you need to use it. In the informIT article Playing Media with Java Media Components, Jeff "presents a basic media player and drills down into JMC to create experimental media players that show you how to introduce a custom control panel and brand each frame of a playing video. Jeff closes by introducing an advanced media player with a slick-looking and dynamic control panel."

Also in Java Today, The JCP has extended the deadline for its program offering free JCP membership to Java User Groups. The program's benefits also include a special Education discount for Java training classes with Sun Learning Services, assistance getting speakers and logistical supprt for JUG meetings and other events, a special JUG gathering at JavaOne, promotion in the JCP Program Member Newsletter, and more.

In a Javalobby interview, http://java.dzone.com/articles/bean-validation-rest-us-


Far Pavilions Blog

发贴人 kfarnham 2009-3-4

A change of plans for our JavaOne booth

We've been talking internally for a little while about our plans for the java.net booth at JavaOne 2009. Some of what we've done works (we know you like the hang space, and the ability to meet fellow community members, share information, and do demos), some doesn't, and some used to but doesn't anymore.

Perhaps the most consistent element of the last few years has been the mini-talks, which began as a means for project owners and other community members to get the word out about their work even if they didn't get a technical session or BoF approved for the main conference. In 2006, we got the idea to start recording these and feeding them out as a podcast. This has been a big win, because the podcast audience is orders of magnitude larger than the in-booth audience for any talk.

And therein lies the rub... tech sessions with lots of slides don't work as well in podcasts. Perhaps more importantly, last year we realized that attendance of mini-talks scheduled against the tech sessions was almost zero. It was unfair to speakers to encourage them to prepare a presentation and then have almost nobody present but the booth staff. Yet we didn't want to just nuke the talks from those times that tech sessions are going on, since we've filled the entire schedule year after year (even adding evening talks last year during the pavilion reception to open up more spots), so there's an obvious desire among project owners to get the word out.

So, how do we accommodate the demand from would-be speakers and the reality that their audience is, by and large, the podcast listeners? Sonya Barry has a preview of what we're planning, in her blog Community Corner 2009:

The biggest change that we're making is that we've gotten rid of the stage and seating area for mini-talks. Instead, we've put in a podcasting booth. We're hoping to make the presenters a bit more comfortable by providing a hosted/interview format for podcasts this year, and we're going to bring in a few new voices to host this year (including mine).

This is a big change, and a bit of an experiment. The problem in the past is that mini-talks given during the technical sections weren't well attended, and often that presentation format doesn't translate well to an audio podcast with a slide deck. I'm hoping that by changing the format we can get all of our project owners who come talk to us better publicity and a more comfortable way to communicate with the community at large.

We think this is going to be better for project owners, who won't have to prepare a formal presentation, with slides that few people will see, while still allowing them to publicize their projects to the many podcast listeners. Of course, it means a lot more work for us, having to host all these interviews, but we'll find a way to divvy it all up.

Anyways, we hope you like the changes we're making, and we're interested in your ideas as well.

Other items in today's Weblogs continue the recent series of opinions on the relative merits of JavaFX, Swing, and web apps. John O'Conner asks, Is the Swing Application Framework necessary now? "The intention of the Swing Application Framework was to make the barrier to GUI developments lower. Is it even necessary now with JavaFX?"

Fabrizio Giudici wonders about the seeming wastefulness of webapps, in Provocation: are webapps compatible with Kyoto?. "Is it green to trigger a potentially world-spanning transaction for every small operation you do with a web application?"

Speaking of the Java Desktop frameworks and options, in Java Today, we note that Qt Software has announced that development on Qt Jambi -- a port of Qt to the Java programming language -- will be discontinued in order to focus resources on the Qt cross platform application and UI framework. "Qt Jambi will be maintained for one year after the March 2009 release of Qt Jambi 4.5.0_01, and will be made available upon release on http://labs.qtsoftware.com under the LGPL license. To help faciliate the continued development of Qt Jambi, Qt Software will host and help maintain a community-driven Qt Jambi implementation."

Joe Darcy shows what a Project Coin small language change proposal should look like, with his Proposal for Strings in switch. The proposal format requires an overview with advantages and disadvantages, an example, details of how the Java Language Specification and compiler need to be updated, how to test and migrate to the change, and statements about compatibility.

Paul Hohensee has posted a new JDJ article considering The Right Time for Real Time Java. "The Java community has long recognized the need for predictability, or the ability to meet time-based requirements, within Java software applications. The thinking was that a Java technology-based system could be built that would allow both real-time and non-real-time components of industrial control and robotics applications to coexist in the same program. Thus 10 years ago, the Real-Time Specification for Java (RTSJ) was born as JSR-001."

The latest Java Mobility Podcast is Java Mobility Podcast 73: DigiQuest, in which Solomon Saul of DigiQuest shares his experience with games development on TV with Java as a programming language and the transition of DigiQuest products to mobile devices.

In today's Forums,teadrinker posts a license question, JNI_CreateJavaVM & GPL. "Am I correct in understanding that linking to a C program in such a way as to call JNI_CreateJavaVM in a commercial application would be a violation of the OpenJDK license, or is there an exception for calling this? Seems a little odd that the license would prohibit this usage since the redistributable JDK downloaded from Sun does not, but there does not seem to be a GPL exception for this case. Is this true, or did I just miss the exception?"

davyp explains the phoneME console behavior in the reply Re: Disable Java Console." No, the Java Console will be created as soon as you print something on stderr or stdout. It is currently not possible to disable the Java Console altogether, but I may add such an option in a future release."

Finally, morrisford considers another scripting language for use within Project Wonderland, in Re: jsr223 scripting languages. "JavaFX will run as a jsr223 language. I have done very preliminary tests just to ensure that the interface will work. As I get time I will run some more tests and try to write a few simple scripts to see what happens. After that I should be able to say that JavaFX is a usable scripting language in WL."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

A change of plans for our JavaOne booth  

How Near, How Far Blog

发贴人 kfarnham 2009-3-3

Swing Application Framework revives; will it make JDK 7?

A couple weeks ago, we noted a blog that complained about the lack of activity in the Swing Application Framework, which as JSR 296 is still widely thought to be on the JDK 7 agenda.

Today, there's finally some news, with project owner Alexander Potochkin's first blog in six months.

I know this is not good to disappear for a long time from blogging and SAF mail aliases, I am sorry about that. This happened because Swing team had some urgent temporary tasks to work on. The good news is that most of the tasks are completed and Swing team has returned to its primary goal - Swing library.

I should say that this time I have really come back to SAF and this project is currently #1 priority for the Swing team. We organized a little team to move SAF further and now working on schedule. My team mates asked me what problems with the current SAF code come to my head straightway and how I envision the "ideal Swing Application Framework".

He then goes on to engage the community on a number of design questions the team is wrestling with, including the idea of having one Application instance per JVM (or per class loader), how the View class' concept of the menu bar works with the Mac's "one true menu bar", whether the coupling ofSingleFrameApplication to JFrame is appropriate, and more.

If these issues are still in play, will the SAF make the cut for the Java 7 container JSR? Does it help that the framework is now the Swing team's "#1 priority"? What do you want to see come out of this process, or do you believe the desktop is already dead?

Also in Java Today, The Aquarium passes along news that an OpenSSO release schedule has been posted. "As Bert, Daniel and Mark have all blogged over the past couple of days, OpenSSO's release schedule is now online. The schedule lays out the features planned for the next four OpenSSO Express release, culminating in OpenSSO Enterprise 8.1, scheduled for March 2010."

The ubuntu-devel list is currently debating how to package large Java software stacks. Ubuntu's Thierry Carrez writes, "It is difficult to integrate the large recent Java software stacks (Glassfish, Geronimo...) in a Linux distribution in general. The key reason is that most of those stacks require very precise versions of libraries (JARs) to run and to build. They won't work with the latest version of libraries as those might change APIs and/or key behavior. Java developers are used to pick specific JAR versions and assemble the exact needed stack, they don't want to care about sharing their dependencies with other packages, or about dependencies being upgraded. Tools like Maven help them in this endeavor, and they rely very heavily on this external code : dozens of those JARs are usually needed at runtime, hundreds of those at build-time." Thierry seeks help from the community with the challenges of precisely versioning Java dependencies and building entirely from source.

In today's Weblogs, Kohsuke Kawaguchi covers some Recent Hudson improvements with various OS. "On Unix, Hudson can now authenticate with Unix user database via PAM. For Windows, Hudson can now start a slave on Windows completely non-interactively. For Solaris, Hudson can now convert $HUDSON_HOME to run on ZFS file system, which opens up a lot of possibilities."

Masood Mortazavi has proposed some Golden Rules for Contribution Based Communities. "Elsewhere, I recently wrote about the Golden Rules for Contribution Based Communities. I think it may be a good idea to post it here, in the blogsphere of the Java community, for your review and comment. The Java community has built many contribution based communities. So, I'm very eager to hear about your comments and suggestions."

Fabrizio Giudici considers his options for bailing on long-running tasks, in Cancelling tasks: Thread.interrupt() fragility. "I came to the conclusion that the Thread.interrupt() mechanism is too fragile. This section is a part of blueMarine that is likely to be expanded (for different kinds of queries) and there's potentially a lot of code that could be called in that thread, potentially by third parties. Having the code to respect the Thread.interrupted() stuff seems too a heavy prerequisite for the contract."

In today's Forums,jaywayjohan points out the security issues of ME record stores, in Re: J2ME RecordStore. "The record store in MIDP 2.0 is not encrypted, you need MIDP 3.0 for that. AFAIK this is not available on any phones on the market today. The MIDP specification does not say anything about where the RMS is stored. On many phones it is stored as a file where it is not reachable by a normal user. However this is not guaranteed. So if somebody hacks your phones file system, it is very easy to read the information from your RMS."

kumarjayanti explains GlassFish access concepts inRe: How are Principals, Groups and Roles related? "A Principal is generally a member of some group(s). Think of your user account on unix systems (it would be part of some group such as user/admin etc). Within GF you can either manually map principals and groups to roles or activate a canonical mapping called default P2R. When you activate default P2R every Group is mapped to a same named Role The result of an authentication should generally be a Principal set, some of the principals could be Group principals among them."

Finally, deepblue2000 asks Can LWUIT apps support GameCanvas in blackberry? "I was wondering if LWUIT apps on Blackberry can support having both a javax.microedition.lcdui.game.GameCanvas as well as the regular LWUIT display. Would there be any issues with this? For example is it possible for me to create forms containing instructions using LWUIT, and then when it comes to graphically intensive screens - that i can switch to javax.microedition.lcdui.game.GameCanvas? If so, how would this be accomplished?"

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Swing Application Framework revives; will it make JDK 7?  

Bells of Creation Blog

发贴人 kfarnham 2009-3-2

Time to chime in with your small language change

We've mentioned the process for Java 7 "small language changes" a few times before in this space, and thusfar it's been a very informal process, collecting bits and blurbs from Mark Reinhold's Devoxx '08 presentation and Joe Darcy's blog. But since this ultimately has to produce a formal JSR, the process is firming up and formalizing somewhat.

The OpenJDK compiler group has approved and created Project Coin, the OpenJDK project for selecting small language changes to be included in Java 7. The project's home page includes instructions for proposing small language changes, as well as links to blogs about what makes for an appropriate small language change.

A call for proposals period will run until March 30, 2009. To submit a proposal for consideration during that time, send a completed proposal form in plain text or HTML to the project mailing list coin-dev. After the call for proposals is completed, a subset of proposals will be selected for inclusion in a JSR draft. Proposals should keep in mind the criteria for a desirable change as well as guidance on sizing a change and other background information.

Also in Java Today, The jLab environment aims to provide a Matlab/Scilab like scientific computing platform that is supported by scripting engines implemented in the Java language. They write, "actually, in the current implementation of jLab there coexist the four scripting engines, mentioned above. The GroovySci seems currently to be the preferred choice, since it is much faster, can execute directly Java code using only the familiar Java packaging rules, and is feature rich language, i.e. Groovy enhanced with Matlab style dynamic matrix operations and surrounding support environment. Recently, the Groovy 1.6 is released, with significantly faster runtime support from the previous beta release. The new jLab version has adapted the new Groovy 1.6 runtime implementation, and now obtains much better performance on mathematical scripting operations (about 1.5 to 4 times faster, depending on the operation)."

BusinessWeek notes efforts to win over mobile developers in its article The Battle of Mobile Software Apps, specifically noting the role JavaFX Mobile could play. "At the Mobile World Congress, Sun Microsystems unveiled a new version of Java for mobile devices called JavaFX. Sun says the programming software allows developers to write applications that work on any mobile operating system. If that turns out to be true, JavaFX is a potentially important development. "They can get their code done for less money and get more users, which is really the Holy Grail for developers," says Eric Klein, vice-president for Java marketing at Sun Microsystems."

Today's Weblogsbegin with Hans Hrasna demonstrating the steps for Provisioning Blackberry clients on the Sun GlassFish Mobility Platform. "The Sun GlassFish Mobility Platform includes a Client Provisioning Portal, allowing client jars to be uploaded to the portal remotely and then downloaded over the air (OTA) by standard MIDP 2.0 devices. In the newest release of MP, version 1.1, we have added the ability to upload and provision Blackberry COD files. Read on to learn how..."

Sergey Malenkov shoots off some effects in For Those About To Rock "(We Salute You): This simple example produces firework effects using JavaFX Script. The active use of random numbers brings variety to each firework volley."

Finally, in Grails on NetBeans - first impressions, John Ferguson Smart writes, "common wisdom has it that IntelliJ is unrivalled for Groovy/Grails development. (At least among IntelliJ developers). However, sometimes it is good to question common wisdom, and decide for yourself based on real-world experience. So, after some frustrations with the Grails support in IntelliJ, I decided to try out the latest beta version of NetBeans 6.7 with some Grails 1.1-RC projects."

In this week's Spotlight, balloting is now underway for the JCP special election to fill a vacated seat on the ME Executive Committee. Candidates for the seat are Aplix, Cox Communications, Marlon Luz, and Shawn Fitzgerald. A special forum has been set up to host the candidates' statements and to facilitate Q&A between the JCP membership and the candidates. JCP members should have received voting instructions via e-mail (contact the JCP Program Management Office if you have questions or concerns). Balloting ends March 9, with the winner announced March 10.

In today's Forums,kimangroo opens up an unresolved question in Re: [JAI] I want to concatenate two jpg images. "Sorry to revive such an old thread, but I'm looking to do exactly the same thing and I was wondering what the differences were with the methods you mentioned. I've already got a little program doing this using Graphics 2D and drawImage but I'd like it to work with large images and am wondering if there isn't a more memory efficient way."

linuxcraze asks, Where is the scenegraph license? "I have heard about the scenegraph project from the javafx forums. I was wondering what the license state is currently. I can't find the scenegraph license anywhere. Is there a license for this project? I would like to use it for a desktop app. Can I use scenegraph for this legally?"

igormetz wants a practical means of Using LDAP for HTTPS Client Authentication. "I understand, that Glassfish V2 provides LDAP authentication (using the LDAP realm) and SSL client authentication using X.509 certificates (by setting <login-config><auth-method>CLIENT-CERT</auth-method></login-config> in the webapp web.xml). The latter requires storing the client certificates in a keystore file, which the Glassfish domain has access to. We want users to log into the webapp using their X.509 certificates. But fumbling around with a keystore does not scale, when you have >> 1k users. Is there a way to let Glassfish consider for SSL client authentication certificates which are stored in an LDAP directory (ie. in the usercertificate (binary) attribute of the inetOrgPerson objectclass)?"

Finally, tnscorcoran is looking for some Real World Applications of Java Threading. "Would anybody be able to give some specific examples of when/where Java Multithreading is used in real world examples. I'd like something a bit nmore detailed than 'IO Processing' or "Swing Event handling" I want to write some such apps for an interview I am doing and I'd like some detail of practical applications of java threading."

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

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

Time to chime in with your small language change