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

How will OpenJDK celebrate its 10th anniversary?

A few days ago, David Herron wrote a blog expanding on Frans Thamura's question What do you think of OpenJDK 10 years from Now? As David wonders about the question:

Clearly the OpenJDK could reach "everywhere" .. all along this process of opening the OpenJDK I've been confident that it could have a significance similar to GCC where GCC provides compiler coverage for essentially every CPU and operating system. I'm a little surprised that Frans's vision is only on desktop & server environments as there is growing capabilities for the small devices to be able to run OS & graphics capabilities that have formerly been only for desktop or laptop computers.

Indeed, and let's not forget that if the Zero Assembler projectsucceeds, bringing Java to any arbitrary platform may be no more difficult than executing a./configure-and-make cycle.

On the other hand, if OpenJDK expands far and wide, will we even recognize it? The nature of the GPL license permits and even encourages forks, so the most successful OpenJDK story 10 years on might be dozens, or hundreds, of successful languages, VMs, libraries, and other projects that share OpenJDK as an ancestor.

So apropos of all this, the latest Poll repeats David and Frans' question: "Where will OpenJDK be 10 years from now?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In Java Today, the next version of GlassFish is changing its updating infrastructure, as explained in The Aquarium post GlassFish v3 - UpdateCenter Module 101. "With GlassFish v3, we're moving from a home-grown packaging and update mechanism used today in GlassFish v2 to IPS. Jim has a detailed write-up about how to build an update center module for GlassFish v3. Jim covers setting up the tools if you're not using OpenSolaris, module configuration (there is no file format and packaging per say), setting up a repository, and browsing existing repositories (simply point your browser to the magic URL)."

Roman Kennke has posted a wrap-up message pointing to the source, documents, and tests produced by the Caciocavallo project for portable GUI backends. The aim of thisOpenJDK Innovators Challenge project is "to improve OpenJDK's graphics stack to enable the use of external implementations of AWT/Java2D backends, to be able to leverage the existing graphics pipeline for partial reimplementations, and to generally improve the portability of the graphics stack. "

The SDN has posted a new Enterprise Tech Tip by Carol McDonaldCombining Groovy, Grails, MySQL, and the Java Persistence API. "With the addition of support for scripting languages in the Java platform, there has been a lot of interest in combining into web applications scripting languages such as Groovy, Java technologies such as the Java Persistence API (JPA), and databases such as MySQL. [...] In this tip, I'll show you how to create an online catalog application using the Groovy language, the Grails framework,the MySQL database, and the Java Persistence API."

Today's Weblogsbegin with Simon Morris relating some early adopter hassles in Watched Pots and JavaFX. "Sigh! They say a watched pot never boils -- I wonder if the same is true for early access releases? There you are, having the time of your life with a new bleeding edge API, then !!boom!!, suddenly that one key function you need is frustratingly non-existent! Not to worry -- it'll be in the next update... won't it(?!?)"

Update: Kohsuke to visit Brazil. Kohsuke Kawaguchi explains, "I'll be visiting Brazil from September 9th to 21st, as a part of the month of Java in Brazil. If you'll be at one of those events or living/working nearby, please let me know and I'd love to chat about stuff that I do."

Finally, Gary S. Weaver introduces Lazy Testing in Java. "A few tips for "lazy testing" your Java application, for those many of us that have nowhere to go but up."

In today's Forums,demonduck has harsh comments for the prospect of server-class machine detection in Re: Start quicker by tuning JVM and javac. "More stupid engineering -- if it's a server, wouldn't there be a System Administrator that would make sure that the server JVM is the default? Average machines these days have over 2gig mem and more than 2 processors. May I suggest that the Java Dev Team is trying to make Java into some sort of Artificial Intelligence entity that tries to anticipate the users needs. It's easier and simpler to let the human figure it out using standard and conventional use patterns."

Felipe Ga

invokedynamic makes its debut... now what?

First off, I'd like to thank O'Reilly editor Kevin Farnham for updating the front page and writing the editor's blog for the last three days while I've been unavailable. I think he did a great job finding items of interest from the community and the Java world at large, don't you? Thanks again for covering for me, dude.

For anyone who cares (and didn't see my "Chris has left the Atlanta, GA network" status on Facebook), I've moved to Grand Rapids, MI, and for the first couple days of the week, I was helping get our houseful of stuff on the moving truck, then driving 850 miles (1350 km) up here to an apartment, where I'll have to cool my heels for a few weeks until we can get into the new house.

Unfortunately, I can't get the apartment's cable modem and my new wifi router working together, so I'm writing this from the Panera Bread on 28th Street by Woodland Mall. If you're one of the many Java developers in Grand Rapids, stop by and look for the guy with the JavaOne backpack.

So anyways, while I was driving through the remnants of Hurricane Fay on Tuesday, I appear to have missed International Invokedynamic Day. The invokedynamic bytecode is something we've been talking about for a while as a crucial element of better supporting non-Java languages -- specifically dynamically-typed languages -- on the JVM. In fact, its formal definition as JSR 292 was green-lit by the JCP EC and an expert committee formed back in 2006. And now in 2008, it looks the bits are ready to go.

For perspective, Danny Coward marks International Invokedynamic Day by providing some history and details in the blog entry, Firing up the engines for multiple languages. "Engines for dynamic languages have to create artificial interfaces or classes just to do the form filling. Making them brittle, difficult to maintain and slower than they could be. But not if we modify the bytecode to remove the need to fill out all the type information. So back to the update: John has prototyped support for the modified bytecode in the HotSpot JVM! What this means is that implementors of dynamic language engines are now free to try this out and prove the theory."

It will be very interesting to see just what kinds of tangible benefits can be realized by this approach. Some of the scripting languages are already faster on the JVM than their statically-compiled equivalents, and with invokedynamic, this can presumably only get better for scripting language developers.

In Java Today,The Aquarium has posted a Project SocialSite roundup. "Project SocialSite was announced at JavaOne back in May (presentation) and code was released earlier this month. Installing this social computing enabler is quite simple when following the install guide (even if you can be a little disturbed by the SSO feature enabled by default). If you'd like to follow the progress of this project, the SocialSite Group Blog is probably the one place to look."

Over on InfoQ, Brian Zimmer has written up a new article detailing some Scalability Worst Practices. "Over the course of building out a number of large, distributed systems I've had the opportunity to observe (and implement) some worst practices. Most of these worst practices start innocently enough, but if neglected they will jeopardize the growth and scalability of a system. A number of articles focus on best practices to ensure an easily maintainable and scalable system, but in this article I'll highlight some worst practices to avoid."

The latest JavaOne Community Corner Podcast is j1-2k8-mtH09: Energy and CO2 Savings with Java EE 5/SE 6, Glassfish, Shoal, Groovy, SunSPOT and Java by Adam Bien. Intelligent heating control saves not only energy (30-50%), is environmentally friendly, but increases the living comfort as well. Alone the priotirization of energy sources: solar thermal collector, wood buring stove, main heater combining with the inclusion of the weather-forecasts, contributes considerably to the energy saving. This session describes the architecture of the GreenFire project, specifically: usage of JSR-223 (Scripting Integration) in Java EE 6 / 6 environment for the implementation of flexible rule systems, reporting, using EJB 3 timer service, Java EE compatible hardware integration, SunSPOT and sensor network integration, using Java FX together with Swing and EJB 3, sensor testing (with Junit and mocking), speech synthesizer integration (FreeTTS), management and monitoring of heating system over the internet, mobile device integration, and integration of multimedia center systems.

In today's Weblogs, Terrence Barr points out a legal rebuke to the Java-less iPhone in Get real, Apple. "An Apple TV ad has been claiming that "all parts of the Internet are on the iPhone" ... well, not quite. Java is a major component of the Internet, used on thousands of web sites and available on close to 95% of the world's desktop computers - but not on the iPhone."

Jean-Francois Arcand discusses Fronting GlassFish v3 with Apache httpd. "Finally, GlassFish v3 can now be fronted using Apache httpd via mod_jk and mod_proxy_ajp."

Finally, David Herron adds his voice to those wondering about the wisdom of browser-makers integrating JavaScript (and nothing else) in Browser makers walled javascript garden. "Why JavaFX should be inlineable with HTML raises an interesting question in my mind. He's making a number of suggestions about JavaFX and many boil down to the power of "View Source" and perhaps JavaFX script code should be directly runnable as part of the source of a web page."

In today's Forums,mfernan80 wants better Windows Mobile scrolling. "I'm testing LWUIT with Windows Mobile (Esmertec, J9 and PhoneME) and I see a very annoying behaviour when trying to scroll a Form or a drop-down long content. As I could see the only way to scroll is to 'drag-and-drop' with the pointer but no with scroll-bar. You can imagine how annying it is if many forms controls are painted on screen. Is there any way to solve this (that is, to only have scrolling via a side scroll bar)."

Another mobile developer, Ankit Shah, wants to inspect the ME graphics environment on the fly in Get Device Screen Size - J2ME. "I am developing application for MIDP 2.0 based devices and and i would like to fetch mobile device screen size programmatically. Is there any way through which i can get device screen size/resolution?"

Finally, Dick Davies is working through some issues with connection pool monitoring on a cluster. "I've got a 2 node GF2 cluster and I'm trying to enable connection pool monitoring on it (following which is a good howto). Because I'm on a cluster, the server instances use a different configuration (clustername-config) to the DAS (server-config). It looks like the admin webapp lets you enable JDBC monitoring for the clustername-config configuration, but you can only view things under 'server-config' (i.e. things on the DAS). I tried the commandline instead and had more luck."

Current and upcoming Java Events :

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

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

invokedynamic makes its debut... now what?  

Development of new and improved methods for programming multithreaded applications has never been as critical as it is today, due to the emergence of multicore processors. I've been developing multithreaded applications since the early 1990s, when I was implementing mathematical models on multi-processor Sun machines using Sun's threading libraries and its facilities for shared memory. Since much of the code I needed to multithread was written in Fortran 77, accomplishing the task of effectively spreading out the work over all the available processors required a substantial amount of effort (note: the Fortran was multithreaded by wrapping the code in C, and the C was multithreaded using Sun's libraries).

Anyone who has worked with native threads understands that multithreaded development puts you into an entirely different realm of difficulty, in terms of the programming itself (you need to develop thread-safe functions) and especially when it comes to debugging the application. What works wonderfully on a slower machine may not work at all on a faster multicore/multiprocessor machine.

If multithreaded applications are the future (I myself think they are, given that most home and office desktops will likely feature a many-core PC within the next few years), how will it be possible for developers to overcome the difficulties of multithreaded development? The answer (which has come as a welcome surprise to me) is that new programming frameworks are going to shield developers from those messy, difficult details of threading applications. For C++ developers, there is the ThreadingBuildingBlocksopen source framework. Microsoft is working on ParallelFX.

Meanwhile, in the Java world, there is a lot of excitement about the innovations represented by JSR 166y. On the JavaLobby site, vaclav has just posted"Parallelize your arrays with JSR 166y", in which he illustrates methods for performing concurrent operations on arrays without the need to enmesh yourself in the details of the underlying threading activity. Vaclav says:

"The JSR-166y ... is really amazing in how nicely it shields developers from dealing with threads. I've spent some time experimenting with another very handy capability of JSR-166y, which are Parallel Arrays.

In brief, they allow you to perform operations like filtering or calculations on elements stored in a collection in parallel. And what is important, very little knowledge of concurrent programming is required to use Parallel Arrays. All you need to do is to define a bunch of predicates and mapping operations and chain them so that they get called on your collection.

I suppose I'm happy to have been a "pioneer" who got to actually "manage" all the details of creating, monitoring, and assessing the results of individual thread executions, on those early, powerful Sun multiprocessor machines. At the same time, I'm glad that the current generation of developers is going to be able to spend much more of their time and effort on developing new application functionality, rather than being required to devote 90% of their time to programming and debugging native thread issues. Today's new thread-abstraction frameworks, including the JSR-166y enhancements, provide a much more productive means for developing applications that will fully utilize today's multicore and future many-core systems.

In other Java Today news, Frank Sommers talks about ZeroTurnaround's JavaRebel tool and presents commentary from an interview with ZeroTurnaround Chief Architect Jevgeni Kabanov: "Developers using dynamic languages, such as Ruby, are used to a quick code-test-debug cycle: making changes to a piece of code and pressing the browser's reload button is often all that's needed to see the latest effects of a code edit. Java developers, by contrast, have to either restart an entire Java VM, or cause an application server to reload a Web application, for code changes to be visible during development. ZeroTurnaround's JavaRebel tool aims to bring the convenience of instant reload to the Java universe as well."

Meanwhile, alexismp spreads the news about the new build release for Shoal 1.1: "Shreedhar is announcing a new build release for Shoal 1.1, the GlassFish dynamic clustering framework. Version 1.1 is work in progress and offers a JoinedAndReadyNotificationSignal, multiple clusters support for the same member (useful for Sailfin's Converged Load-Balancer), cross subnet clustering support, etc."

In our Feature Article, Michael Bar-Sinai offers a novel technique for Complex Table Cell Rendering Made Simple. After all, plain old text-only JTable cells are boring, but once you start to mix multiple types of cell renderers in a table, your getTableCellRendererComponent() method can get completely out of control. In this article, Michael offers a performant and clever alternative that looks up the needed renderer with class-based and rule-based maps.

The latest Java Mobility Podcast is Java Mobility Podcast 54: Kicking Butt with MIDP and MSA, in which Jonathan Knudsen talks about his new book, Kicking Butt with MIDP and MSA, and his tutorial on the Lightweight UI Toolkit (LWUIT).

In today's Weblogs, Joshua Marinacci continues his applet series with "A Better Applet Experience, Part 2: Poster Frames": "In part one of this series I showed you how to set up a loading image, including an animated spinner gif. In this part I'll show you how use a screenshot or poster frame to speed up page loading. Quicktime movies have the concept of a poster frame. It's a single frame..."

Terrence Barr talks about how he's enabling people to keep in touch while he's on travel in his post "Fire Eagle updates from your Java phone": "With all the travel I'm doing lately I've been looking for a convenient way to keep people who are interested in getting in touch with me updated on my current whereabouts - I don't know about you but I prefer to get phone calls and IM messages during my waking hours rather than at 3 am local time ;-)"

John Ferguson Smart presents a talk he gave at the Wellington JUG about Replication in Subversion 1.5: "One common requirement when you set up a Subversion repository concerns how it will be backed up. Another involves what happens if the main repository server goes down for some reason. Yet another is about how to deal with teams distributed across large distances or connected with limited networks. Subversion has some interesting solutions to all of these concerns..."

In today's Forums,michael_heinrichs continues the ongoing discussion about Screen size, layouts on multiple devices: "Yes, you are right. I would expect that the UI has to be designed for each screen separately. Although I think the major issue is not how it looks, but the usability. The screen size is one issue. It's not so much about resizing and "looking good", but about the amount of information you can show at once."

narirag asks a question about configuring check-passthrough with sun webserver loadbalancer.xml: "I am using the Sun Webserver 6.1 sp6 with loadbalancer plugin to route the traffic to the Sun application server 8.1. Currently the webserver is directing all the requests (both static and dynamic) succesfully to the Application servers listed in the loadbalancer.xml file. I would like to configure the Webserver to serve all the static content like html,css,gifs,png etc and forward the request to appserver in case the requested resource is not available on webserver."

Alex has further questions about the LWUIT ListModel and RMS: "Thanks to Shai for his latest blog entry which clears up a lot of things on the implementation of Lists (my previous question was about this). Alongside whith the post on the TextField (autocomplete) and the proxy pattern implementation used to filter out entries this gives great insights on the possibilities of LWUIT Lists. I however I need a litle piece of advice here on how to use the lwuit ListModel with RMS alongside with the Proxy pattern for filtering and sorting of records."

Current and upcoming Java Events :

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

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

Many experienced developers have had the opportunity to work on a variety of operating system platforms, developing applications using multiple languages. In a large corporate environment, the established technology is likely to include representations of all the best technologies of the past several decades -- as well as (unfortunately) representations of some technologies that proved in the end to be more faddish than harbingers of the future.

One of the initial promises of Java was that it broke the machine hardware and operating system divisions that had hitherto partitioned the world of software development. The creation of JVMs for the primary hardware platforms and operating systems made it possible for developers to write once and run anywhere -- an incredibly novel approach!

Experienced Java developers are likely familiar with Eclipse. But for beginning developers, including not-yet-professional developers, who want to experiment on their own with writing Java applications for handheld devices like mobile phones, or create games written in Java, Eclipse may add unnecessary complication. In these cases, a simpler Java IDE like JCODER may be an excellent alternative.

An excellent JCODER tutorial has just been published on the JavaLobby site. The article teaches users "to setup Java development environment and develop a basic program using JCODER."

If you're looking for an IDE that is well-suited for development of smaller Java projects, including those intended for hand-held devices rather than for the enterprise, you may want to give JCODER a look.

In other Java Today news, pelegri announced that Jersey 0.9 is out, with Version 1.0 up next. Jersey is the open source JAX-RS (JSR 311) Reference Implementation for building RESTful Web services. Pelegri tells us: "Almost final, Jersey 0.9 is Out! This is the implementation that goes with the 0.9 version of the spec (Docs, Spec); this release also has Maven packages for its components at"

In addition, Pratik Patel discussedEnterprise JPA, Fetch Groups and Spring 2.5. As reported by Srini Penchikala: "JPA extension features like FetchGroups offered by Apache OpenJPA framework can give enterprise Java developers more flexibility in retrieving the data mapped to a graph of Java objects. Pratik Patel discussed the JPA design techniques for developing real-world Java applications using JPA API and Spring 2.5 framework. He did a presentation at the recent No Fluff Just Stuff (NFJS) Central Ohio Software Symposium on Enterprise JPA and Spring support for the persistence API."

In our Feature Article, Michael Bar-Sinai offers a novel technique for Complex Table Cell Rendering Made Simple. After all, plain old text-only JTable cells are boring, but once you start to mix multiple types of cell renderers in a table, your getTableCellRendererComponent() method can get completely out of control. In this article, Michael offers a performant and clever alternative that looks up the needed renderer with class-based and rule-based maps.

The latest Java Mobility Podcast is Java Mobility Podcast 54: Kicking Butt with MIDP and MSA, in which Jonathan Knudsen talks about his new book, Kicking Butt with MIDP and MSA, and his tutorial on the Lightweight UI Toolkit (LWUIT).

Today's Weblogsopen with an interesting question, noticed by David Herron: "Frans Thamura asks ... What do you think of OpenJDK 10 years from Now? ... gosh. Okay, we first have to ignore the wags cluck-clucking over Sun's stock price and issuing warnings of doom. But hey it's a great question, what will be the significance of the OpenJDK 10 yrs from now?"

Carla Mott discusses Getting server side data into a jMaki widget in a code-intensive post that illustrates the required steps and shows screenshots of the code in action.

Meanwhile, Manfred Reim has begun the process of writing a JSF book: "It will be a slow process since I will be doing this in my spare time, but it will be packed with a lot of examples. Actually it will be a book that you should not just read, but you should do the coding alongside with it so you can a really good grasp of JSF."

In today's Forums,Kleopatra devotes extensive effort in documenting API design experiments involving the Highlighter/Predicate API. "Reading Practical API design (Tulach), there are two rules that get hammered into the reader's brain: api is communication; hide and close and make final whatever you can get away with." ...

jsalonen shows a discovered solution to the problem of long loading times using big X3D files: "I have a big (10MB) X3D model file and it used to take over 20 minutes to load it into wonderland or j3dfly. I ran a profiler on the loading process to find out why it takes so long and traced the problem to the class com.sun.j3d.utils.geometry.GeometryInfo from the java3d-core-utils library."

Lord Max continued working on a performance issue on a quad-core machine: "Since I'm running Debian, I don't see the same menu options as you do. If I'm going to change my X configuration, I'm assuming I'll have to do it by hand. If you wouldn't mind, could you 1) disable the hardware nVidia driver, 2) make a copy of /etc/X11/xorg.conf, 3) re-enable the driver, and 4) post a diff of the old xorg.conf and the new one? It would also be nice to know if your xorg.conf contains explicit DRI support. Mine does not. "

Current and upcoming Java Events :

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

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

LWUIT has been released as GPL open source: "today Sun is announcing the release and immediate availability of the complete source code of the LWUIT framework under the GPLv2 license with the Classpath Exception. This license choice provides the benefits of open source innovation and collaborative development while offering a risk-free path to adoption by commercial products - a model everybody should feel very comfortable with."

The embrace of open source by corporations continues to gain momentum. This year's Open Source Convention (OSCON) included Diamond sponsorships by Intel and Microsoft, and Platinum sponsorships by Google and Sun. IBM was a Gold sponsor.

So, what is it that makes open source attractive to corporations whose "duty" is to increase (or at least maintain) shareholder value? I'd argue that the interest in open source is a manifestation of long-term thinking. Investing in open source initiatives is an investment in the long-term potential for critical involvement in, and responsibility for, technologies that may become tomorrow's mainstream platforms.

For example, I was very much involved in the start-up of Threading Building Blocks, an open source project that was launched by Intel at the 2007 Open Source Convention. In working with the Intel developers and management, and with the external developer community, it became immediately clear to me that corporate sponsorship of open source projects can bring tremendous value to the broader developer community.

It's great to see Sun extending its contributions to open source with the GPL release of LWUIT.

Also in Java Today, Neal Ford was interviewedregarding programming languages and platforms. "Neal talks about the need of developing languages, like Ruby and Groovy, to run on top of the JVM due to limitations of the Java language. Ruby, he says, is a powerful dynamic language offering the programmer the ability to write cool stuff in simple ways, giving him more flexibility and increasing his productivity... Neal thinks that in the next decade, we will see several, some of them specialized, languages running on the most prominent platforms existing today, Java and .NET. This combination of languages-platforms allow the developers to choose the most efficient language for a specific task while not having to worry about deploying the resulting code since it runs on well tested and proven platforms."

In addition, Oracle has deliveredthe first new release of the WebLogic application server since Oracle's acquisition of BEA several months ago. The new version "dds support for Java SE 6, Spring, Comet, improved Operations Control, FastSwap Deployment and more."

In our Feature Article, Michael Bar-Sinai offers a novel technique for Complex Table Cell Rendering Made Simple. After all, plain old text-only JTable cells are boring, but once you start to mix multiple types of cell renderers in a table, your getTableCellRendererComponent() method can get completely out of control. In this article, Michael offers a performant and clever alternative that looks up the needed renderer with class-based and rule-based maps.

The latest Java Mobility Podcast is Java Mobility Podcast 54: Kicking Butt with MIDP and MSA, in which Jonathan Knudsen talks about his new book, Kicking Butt with MIDP and MSA, and his tutorial on the Lightweight UI Toolkit (LWUIT).

Today's Weblogsbegin with the announcement by Manfred Reims of the new Manor 'n Rock JSF Security components release. Manfred provides links to demos, downloads, and documentation, to get you started.

Greg Brown talks about Using Decorators in Pivot. Greg has been experimenting with some Java2D capabilities, and found that applying some cool Java2D effects to a Pivot application "was actually quite easy."

Arun Gupta wrote a post titled GlassFish @ Berlin-Brandenburg JUG and TU Berlin, in which he talks about the overview he'll be giving of GlassFish at a joint Berlin-Brandenburg JUG and TU-Berlin meeting on Sep 3, 2008.

In today's Forums,chen continues a conversation regarding LWUIT SVG support. "WUIT SVG support is the ability to use a SVG resource as a LWUIT image/animation, this allows you the full power of vector graphics embedded in LWUIT drawing(similar in a way to what we have done with 3D). If your use case is to create a full screen with SVG and to control the events directly from the SVG dom tree, you probably shouldn't use LWUIT."

Lord Max is working on a performance problem with a Wonderland system on a quad-core computer. "The symptom is that if I stand in place and look around, the system frequently freezes for long periods--ten seconds or more is not uncommon--before it wakes up and renders. The delays seem to get longer as I move around in the system and look at things. After a while I'm seeing delays of 30 seconds. This is after setting the max frame rate to 15."

Meanwhile, mellel continues the MySQL and Glassfish discussion. "The whole "java.lang.IllegalArgumentException: null source" when using MySQL and Toplink essentials is indeed strange."

Current and upcoming Java Events :

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

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


Virtual Insanity Blog

Posted by kfarnham Aug 22, 2008

Is Java ME's development cost zero or infinity?

There's an interesting and rather contentious difference of opinions on Danny Coward's blog this morning. In Numbers that Count, he looks at how many mobile phones are out there (2.7 million phones are sold every day, according to research cited by the SDN article Java ME Technology: Everything a Developer Needs for the Mobile Market), which he contrasts with a much smaller number:

Zero is the cost of entry to develop an application for Java ME, which is deployed today on many of that staggering number of devices (for a complete list, see here). No complicated agreements to get the Java ME SDK, the development of the platform is out in the open, so everyone sees it unfold at the same time. Better the free visual development environment for Java ME has been pretty great for some time now.

This assertion, while compelling, drew a pretty sharp rebuke from reader Sam Halliday:

Your "zero" does not count the cost of paying ridiculous amounts of money to the Unified Testing Initiative if you want to obtain a certificate to access most of the useful APIs. Plus manual purchase of certificates for the older handsets that don't support UTI. More complaining

So what is the cost of developing an ME application for the real world? Zero, because you don't have to pay for tools? Infinity, because you have to pay to get tested and signed for a potentially unlimited number of devices and carriers (some of which don't accept third party apps at all)? Something in between?

The latest JavaOne Community Corner Podcast is j1-2k8-mtH08: Underworld - the Java EE 5 Backend For Wonderland by Adam Bien. Wonderland is an interesting 3D collaboration application. It uses the darkstar server as backend. Project goal is porting the Wonderland's communication and persistence layer to Glassfish v2 (later v3) to leverage its non-functional capabilities like monitoring, management, deployment and scaleability. In this shorttalk, especially the architecture and design, as well as, challenges, hacks, and workarounds will be discussed.

In Java Today, Patrick Curran has published an article on Java, Standards, and Free Software in Europe, with a particular focus on European participation in prominent new JSRs. "In the May issue of JDJ, I wrote about Java and free software in Brazil. This month, after some recent visits to Europe (to Antwerp for JavaPolis late last year, to London for the QCon conference in March, and to Paris for a JCP Executive Committee meeting in May), it seems logical to follow up with an article about Java in Europe."

Alexis Moussine-Pouchkine has seen a common problem pop up over and over again in the forums: I'm moving from the (NetBeans) GlassFish development server to a production server and my application won't run! Help! "NetBeans auto-magically creates all the resources required in the GlassFish runtime (JNDI resources, connexion pools, and other configuration), so directly deploying an application (.war, .ear artifacts) in a newly-installed GlassFish instance will most likely fail because the resources the application replies on are not present. To fix this you have several options..."

Over on Javalobby, Chui Tey has posted some interesting Questions for Sun over JavaFX. He wants to know will using the scenegraph API conceivably consume less resources than a comparable app developed using DHTML, why interpreted JavaFX script is slow, when interpreted javascript is fast enough for client-side work, and whether Sun be shipping a JavaFX Script interpreter.

The latest Poll asks "How have job prospects in your field changed in the last year?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In today's Forums,jezzbel hopes to create a LWUIT TextArea. "I need to create a bit advanced text editor where I can highlight, underline, make bold words. How could I achive that in the LWUIT framework? I need to have a menu where one can choose some options for text changing and in one text area one can have a text differently formated.I've noticed that I can add any commands to the text area and can't to anything with the text."

sundararajana discusses a possible BD-J markup inRe: Show file alternative syntax. "Actually, GRIN XML syntax support is being developed. We expect to check-in code changes for this in near future. To set proper expectations, let me add this - XML schema being considered is *not* a subset of some standard format like HTML, SMIL etc. It'd would be more or less XML encoding of GRIN text format with some changes. Once we get there, we may use XSLT to convert various subsets of popular media XML formats to GRIN XML syntax."

philz23 wonders about where to host an app in Glassfish hosting - any experience? "I'm an old Tomcat user but new to Glassfish and noticed free hosting offers by Sun Startup Essentials, as well as OStatic. Though I'm not eligible for Sun's hosting (I don't have a startup), I am for OStatic, and am curious if anyone else has used the services provided (they are both offered by Sun). Is it better to get started here for building out my webapp? Any thoughts?" 

In today's Weblogs, Varun Nischal wonders about Implementing Dynamic Binding while Coding? "An Interesting discussion took place during NetCAT 6.5 Second/Third Week...Topic was whether in NetBeans, the user can navigate to the implemented method (of an interface), analogous to the concept of dynamic binding?"

If all you need is just one more RSS feed, Jan Haderka writes, "Magnolia brings you new module that allows to combine multiple feeds into one and provides you with simple and manageable way to use content of the feeds to enrich your website."

Manfred Riem blogs about Joining FishCAT "I am one of the people selected for FishCAT, so let me know what some of the bugs are you think are irritating."

Current and upcoming Java Events :

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

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

Is Java ME's development cost zero or infinity?  

Time Won't Wait Blog

Posted by kfarnham Aug 21, 2008

OpenJDK 7 catches up Mac Java

Whether you attribute Apple's agonizingly late release of a Java SE 6 runtime for the Mac to changing priorities or nefarious skullduggery -- and made-up reasons are as good as anything else, because secrecy-obsessed Apple's certainly not saying anything to anyone about anything -- there has been a wide-ranging sense that going forward, maintaining Java on the Mac will almost certainly fall to the open source community. The zealots vow to take the ball from Apple and run with it, showing the company it was wrong to back-burner Java, while the pragmatists figure that Java matters more to the open-source community than to Apple, so the community's self-interest will eventually compel it to take matters into its own hands.

Whatever the case, a major announcement today shows that the ball is rolling to get the Mac up to speed with the next version of Java on a schedule much more amenable to Java fans and the open-source community as a whole. The big news is that Landon Fuller has announced that OpenJDK 7is now runnable on Mac OS X (and the BSDs) as part of the OpenJDK BSD Portproject, culminating the efforts of his SoyLatteproject to bring the latest open-source JDK to the Mac. "The move to OpenJDK -- and Sun's re-licensing of the code under the GPL license -- opens the project to any interested contributor." He suggests there's more work to do with JCKconformance testing, enabling dtrace support, PowerPC and ARM support via the Zero project, Core Audio-based sound support, and more. To facilitate user testing, Landon has also posted OpenJDK 7 binaries for Darwin (and, by extension, for Mac OS X).

This is one of those developments that couldn't have happened before Sun's GPL'ing of Java. Apple's perpetually-late JVM's are a product of a commercial JDK license, ensnaring them in business considerations and legal restrictions. SoyLatte was able to bootstrap itself by means of a special license granted to BSD Java before the GPL announcement, and now the ongoing BSD work (including Darwin / Mac OS X) is part of the GPL OpenJDK, where it can mingle with other porting projects, like Gary Benson's fascinating Zero/Shark project, which Landon indicates may be the answer to providing an OpenJDK port to the older PowerPC Macs.

Also in Java Today, Macworld (of all sources!) notes a new Java-focused gaming site in Java Game Tome showcases Java games. " Noble Master Games on Tuesday announced a new Web site called the Java Game Tome. It focuses on highlighting games that have been written in the Java programming language. The Java Game Tome showcases games that run as Java Applets, Java Webstart or via download, and covers the gamut from action to adventure, puzzle, sport, simulation, strategy, education and casual games. Some games are single-player, some are multiplayer. Players who try out the games can rate and comment on them to provide feedback to the developers and to other players"

In a new NetBeans.tvscreencast, Jeff Hoffman explains the JavaFX designer-developer workflow. Jeff, a User Experience Designer at Sun, shows how to use the features of Project Nile, which include export plugins for Adobe products, an SVG graphic converter, a JavaFX graphics viewer, and samples.

In our Feature Article, Michael Bar-Sinai offers a novel technique for Complex Table Cell Rendering Made Simple. After all, plain old text-only JTable cells are boring, but once you start to mix multiple types of cell renderers in a table, your getTableCellRendererComponent() method can get completely out of control. In this article, Michael offers a performant and clever alternative that looks up the needed renderer with class-based and rule-based maps.

The latest Java Mobility Podcast is Java Mobility Podcast 54: Kicking Butt with MIDP and MSA, in which Jonathan Knudsen talks about his new book, Kicking Butt with MIDP and MSA, and his tutorial on the Lightweight UI Toolkit (LWUIT).

Today's Weblogsbegin with JSF 2.0 EG Issue tracker traversal meeting, in which Ed Burns "describes today's JSF 2.0 EG meeting, at which we traversed each of the 234 currently open issues before the JSF 2.0 EG."

Ryan Shoemaker offers a new tutorial in Developing MEP Client Applications - Part 1. "In my previous post, we took a closer look at the MCBO API and all of its features. Now it is time to show how to use the APIs to develop an MEP client application. In Part 1, we will focus on the fundamentals of the API: creating a SyncManager, initiating a sync, and examining the sync results. In part 2, we will study the security features provided in the client API."

Finally, in First UCLA JUG Meeting, Chris Bryant writes that "the first UCLA JUG meeting was held in the UCLA Visualization Portal."

In today's Forums,anvka describes an LWUIT List and focus issue. "I have a form containing a list with some items. When an user presses the "FIRE" button to select an item, a new form is shown. So far so good, but when the user presses the back key to display the old form it seems that the pressed listitem is already selected thus requiring an additional press of the "FIRE" button before one can scroll up and down in the list. I have done some research and found some suggestions of which none have worked. I've tried to "requestFocus" upon returning to the first form, with no result and I've also tried to "revalidate" the parent, also without results."

BD-J developer ken2006 asks about net/java/bd/tools/logger rendering with bookmenu?. "I'm doing a test integration of the logger tool, into the bookmenu example. When bookmenu first starts up, I do see the logger flash quickly by before the bookmenu content begins rendering, but I cannot "bring back" the logger screen focus with the VKs (tried assigning HRcEvent.VK_LEFT and HRcEvent.VK_1) (testing with PowerDVD in this case). Is this because GRIN renders over the top of what the logger draws, and if so is there a practical way to have the logger pause the GRIN render thread, or otherwise have the logger post-draw over each frame GRIN is outputting?"

Finally, while_na could use some guidance about Trigger in new javafx. "Does anyone know how to catch the event when our attribute is changed? i ask here: and he said that we need not to code it explicitly.. but how we can catch the events? somebody know?"

Current and upcoming Java Events :

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

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

OpenJDK 7 catches up Mac Java  

Traveling Without Moving Blog

Posted by kfarnham Aug 20, 2008

Packing up podcasts

Sorry for the late and short blog today. I'm moving next week, and spent the morning producing and uploading the rest of the JavaOne mini-talk podcasts before packing the Mac Pro and switching to laptop mode for the next month. Eight cores are lovely, but they don't travel particularly well.

Speaking of which, the latest JavaOne Community Corner Podcast is j1-2k8-mtH07: City of Oakland Solar Energy Promotion by Barry Levine, who writes, "the City and County of San Francisco (Department of the Environment) and Marin County are collaborating with the City of Oakland Public Works on an effort to assess and promote solar power opportunities in our communities. The City and County of San Francisco and Marin have been doing digital assessments. We are collaborating with the City of Oakland to transition from a paper-based approach to a web-based approach where much of the effort is delegated to the client/server. "

In Java Today, Terrence Barr has posted a reminder that the Call for Papers: Mobile and Embedded Developer Days #2 is underway, and closes September 15, 2008. "Same format, same location, but expanded topic coverage - now including media as well as a testament to the rapidly growing interest in Java on Blu-ray players, set-tox boxes, and other entertainment-related technologies." The M3DD conference will be held November 12 and 13, in the Auditorium of Sun's Santa Clara campus.

The latest edition, issue 178 of the JavaTools Community Newsletter is out, with a call for contributions to the newsletter (by means of contributions to, taggedfor:JavaToolsCommunity), tool-related news from around the web, a new graduation (Dead Code Detector), and a Tool Tip on analyzing project dependencies.

The latest NetBeans TVscreencast is Compile on Save in NetBeans IDE. This screencast demonstrates the Compile on Save feature that has been introduced in NetBeans IDE 6.5. This feature saves you time by enabling you to make incremental changes to your application and test run those changes without rebuilding and redeploying the whole application.

Today's Weblogsbegins with Gary S. Weaver offering some advice on Using NetBeans to Help Develop New JSR-168 and JSR-286 Portlets. "Here's some info that might help you get started writing new JSR-168 and JSR-286 compliant portlets using NetBeans."

Qusay H. Mahmoud blogs about The Sentilla Perk, "an innovative pervasive computing kit that comes with the hardware and software tools that allow you to develop novel applications for wireless sensors..."

Finally, Arun Gupta offers an interesting "link of the day" inLOTD #3: Rails 2.2 going multi-threaded. "Rails 2.2 is slated to become multi-threaded. What does it mean for JRuby users ? [As Charles Nutter explains it:] "Rails deployments on JRuby will use 1/Nth the amount of memory they they use now, where N is the number of thread-unsafe Rails instances currently required to handle concurrent requests.""

In today's Forums,kawaiimomo seems to be putting JavaFX's media support to serious use and has noticed some discrepencies, as noted in MediaComponent methods vs media Player methods. "I noticed a slightly different behaviour with latest drop when I go to a Form with a fade transition-in and a MediaComponent (player for capture). In previous drops I achieved better looking result by calling Player.start() and Player.stop() instead of calling the same methods in MediaComponent. Also I use the setVisible() method in VideoControl to hide the player. Is this a good approach? It's better to deal directly with the player or with the MediaComponent?"

jfanatic expresses displeasure at a [Java] BigDecimal Limitation. "I would like to point out a real limitation in Java related to floating point calculation which for such a rich language is really unfortunate. We cannot use doubles or floats if we want exact calculations, say in a financial app, because of underlying binary floating point representation, so we should use BigDecimals right? But as you know its immutable so for every bit of calculation we are creating new objects just for fun. For strings one can understand the reason behind immutability that is we do not want to create redundancy in memory for same string literals and avoid unnecessary garbage but for BigDecimal and even for Wrappers making them immutable is actually encouraging garbage as every add, subtract operation will result in a new object."

Finally, Judy Tang updates the GlassFish Community Acceptance Testing program in Re: Announcing FishCAT, a community Beta program [FishCAT members finalized]. "We got great response from community on FishCAT program, many thanks for all the people applied. We have selected 30 FishCAT members for V3 prelude release and here they are. We look forward to working with you all together to enhance GlassFish quality."

Current and upcoming Java Events :

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

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

Packing up podcasts  

Shouldn't closures be about expressiveness?

In another sign that the debate over closures remains robust and unresolved, Tapestrycreator Howard Lewis Ship has added his thoughts to the discussion. In the blog entry My Ideas for Java Closures, he says he currently gets a lot done with inner classes, but "it really comes down to conciseness. I can accomplish pretty much everything I need using inner classes and holder objects, such as AtomicInteger and friends. But it ends up being more code than I'd like."

So what does he want from a closure syntax? He starts with the basic principle of what is to be accomplished in the first place:

What I want (to borrow Stu's term) is to emphasize the essence of my logic, and strip away theceremony: the naming of the interface (it should be known from context), the types of parameters (just the names, please), the list of thrown exceptions, etc.

Howard wants closures defined in terms of an interface that contains a single method, with the closure block granted read/write access to local variables and method parameters (an ability to be provided by syntactic sugar). The closures would be exposed via a Groovy-like syntax:

I think Groovy has the right syntax here. The important part is for the compiler to actually help out rather than for it to complain from the side-lines. Today's Java compiler has all the type information, but just uses that to build fancy error messages about what you should have typed. It should be using that type information to avoid the necessity of all the extra typing (that is, keyboard entry, not the need for types in the Ruby/Groovy sense of the word).

Ultimately, Howard sees CICE as the current closure proposal closest to what he wants, though he thinks the specifics of the proposal bog down on details that the compiler should be able to resolve.

My basic concept is: Less is More. Support fewer cases but do so more cleanly, more concisely, and more understandably. Simplify. Let the compiler do more work. Reduce the density and complexity of the Java code. Expose the essence.

So there you have it, another voice added to the closures debate, one which calls for clarity and expressiveness (as opposed to "everyone will hate Java if it doesn't add Ruby-like features, and soon"). But is this the right approach, or will it get hung up on edge cases or other gotchas?

Also in Java Today, The Aquarium reports on a Java EE 6 milestone in JAX-RS in Proposed Final Draft... and Jersey also Supports Spring. "JAX-RS (REST Support for the Java Platform aka JSR-311) became the firstJava EE 6specification that Reached Proposed Final Draft stage - download the PFD Specification and please provide feedback. The team work now is on the TCK and the RI (see JCP Process). Jersey is both a Reference Implementation and Production Quality and will continue to evolve and add useful features, like the Integration with Spring."

Shai Almog has posted a New LWUIT Eye Candy Video. "The LWUIT team just posted this new video to YouTube showing off some of the latest features in LWUIT together with some tried and true features. Check out the drag & drop functionality and "swing-in/swing-up" dialogs and menus."

Today's Weblogsbegin with a blog from Terrence Barr Comparing LWUIT and JavaFX Mobile. "Open sourcing LWUIT last week has created a lot of buzz - the response has been phenomenally positive. We've also gotten a few questions regarding the relationship of LWUIT and the upcoming JavaFX Mobile platform - there still seems to be a bit of confusion here. So I thought it would be useful to devote a "FAQ" blog entry to this topic."

Tim Boudreau revives some potentially controversial thoughts written a while back in Nobody Thinks They're An Enterprise. "I wrote this blog nearly two years ago, and was politely asked/advised not to publish it. If I rewrote it today, I'd probably make it a bit shorter. But I think the points are ones our industry needs to learn."

Bruno Ghisi says he's Falling In Love With My Sentilla Perk Kit. "I got a Sentilla Perk Kit. This is my first introductory post showing how to set up the environment and create a simple Hello World."


Today's Forums begin withkaplanj's announcement Wonderland 0.4 released! "See the announcement here: Get the build here: For those of you interested in the source, the tag is "rel-0_4_0" in both cvs and subversion."


JXTA developer keesp has a Migration 2.4.1 to 2.5.0 question. "In the older versions of JXTA, the idea was that you discovered/created a peer group in which you published a module class advertisement and module spec advertisement which provided information about the actual connection. In my code, I used this to make a JxtaSocket. My code was based on "JXTA in a Nutshell" and an older book "JXTA: Java P2P Programming", both based on JXTA 2.4.x. In 2.5.0 (especially reading the programming guide) I get the feeling that discovering/creating peergroups is no longer a best practice. Instead, you discover/create modele spec advertisements immediately and work with these. Reading some forums, I got the idea that peergroups are created automagically 'under the hood' and do not need to be specifically discovered or created."

Finally, osbald asks about Inputting intervals via JXDatePicker? "Wondering if JXDatePicker can be used to pick a range of dates instead of just one? Certainly JXMonthView is happy when picking ranges. The possible edge case I've been working on is a start & end JXDatePicker pair, the interesting twist comes from them both sharing the same DateSelectionModel and having that model set to SINGLE_INTERVAL_SELECTION. This almost worked except the end date appears as the start date, which I've traced down to a getMonthView().getSelectionDate() in the BasicDatePickerUI."

Current and upcoming Java Events :

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

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

Shouldn't closures be about expressiveness?  

When You Gonna Learn Blog

Posted by kfarnham Aug 18, 2008

Your chance to figure out JavaFX

Are we still not clear on JavaFX yet? Perhaps not: consider the forum post javaFX?? by bonechilla:

Can anyone inform me of what javaFX is exactly. I've been reading a lot of articles but I'm still completely unsure. Can anyone give me a better description or turn me in the rite direction i even read the article in java products about it but I'm still a bit unsure of the subject. Is it just another way to write swing applications, does it act like a java version of VB were u can drag and drop for a GUI??

Well, bonechilla and friends, you're in luck, as we have a whole week to get answers directly from the source. As featured in the current Spotlight, this week's Ask The Experts session focuses on the JavaFX Preview release. "The JavaFX family of products includes the tools and platform SDK for developers, web scripters, and designers to create dynamic applications for the next generation of web delivered content. Sun recently released a JavaFX Preview designed to help early adopters become familiar with JavaFX. Got a question about the JavaFX Preview? Post it during this session and get answers from three key members of Sun's JavaFX engineering team: Josh Marinacci, Martin Brehovsky, and Larry McDonough."

Also in today's Forums,ricktw discovers a surprising explanation for a NetBeans performance problem, explained in Re: slow debugging in jdk6. "I had performance issues debugging Netbeans myself for some versions now (5.0 - 6.5). Tried some JVM versions, but this didn't solve the issue. Couldn't find a working solution to get it fixed. Just now I finally found the cause of the issue: Spybot Search & Destoy. Spybot S&D is adding many (10.000+) entries to %SystemRoot%\system32\drivers\etc\hosts file which makes debugging very, very slow. These entries link malicious websites to localhost to ensure you cannot navigate to these sites. removing these additional entries will fix the Netbeans debugging issue; it will be fast again Maybe other anti-adware programs do the same..."

tarbo has some thoughts about dealing with all the basic streams in Re: Redirection of DOS IO in Java. "Hmm... In the deeper recesses of my mind, I recall someone having trouble with this as well because DOS has four default streams: stdin, stderr, stdout, and a more obscure console that cannot be redirected through normal means. I could be grossly mistaken, though. To rule out the obvious, have you tried reading from the error stream as well?"

In Java Today,The Aquarium notes GlassFish's revised schedule in GlassFish Roadmap v2.1/v3 - An update. "It's time for another update on the various GlassFish releases roadmaps. Harpreet Singh has just posted a updated draft schedule for GlassFish v2.1, the next major public release of the v2 branch (as of this writing, the current public release is v2ur2). While GlassFish v2.1 is scheduled to ship in its final version in December, the team is also working on the v3 branch and will actually ship the v3 prelude release (Roadmap) in a couple of months (we just passed code freeze)."

DevX has an article on one of Java SE 6's somewhat overlooked features. In Doclets: Decipher and Document Java Code Easily, Raghu Donepudi writes, "Doclets, a new addition to Java SE 6, is very handy for reviewing existing source code and mastering the logic behind it. Doclet is a starting class for defining the entry point methods of the packagecom.sun.javadoc. The Doclet API is an extension for Javadoc, the original Java tool that automatically creates documentation from source code files. The Doclet API provides various features for customizing documentation output and offers architectural means for embedding the crux of source code logic for new projects inside custom tags -- the proper way to document logic."

The SDN's Young Developers page has posted two new articles to help those with no development experience whatsoever walk through Greenfoot's Wombat tutorial. The first article, Wombat Object Basics explains what Java objects are and how they interact with each other, along with introducing basic programming terminology. The next step, Wombat Classes Basics explains where code is written and saved, how classes relate to each other, and how to use the Greenfoot code editor.

In today's Weblogs, Felipe Gaucho pulls out the code-checkers in FindBugs and PMD applied on J2EE 5, in which he details "a list of project adaptations required to produce zero-errors reports with PMD and FindBugs while keeping the code fully compliant with J2EE 5."

In Objects not Strings - transparent serialization over key/value pairs with proxies, Tim Boudreau writes, "I had an interesting thought the other day for a project I'm helping a friend with. Many things we deal with come in key/value pairs (URL parameters for instance). Why not immediately work with objects instead?"

Finally, Bhavani Shankar walks through Implementing a SIP Back-To-Back User Agent using javax.servlet.sip.B2buaHelper. "This blog explains how to implement a SIP Back-To-Back User Agent (i.e., B2BUA) in SailFin using javax.servlet.sip.B2buaHelper, where B2BUA is essentially a SipServlet."

Current and upcoming Java Events :

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

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

Your chance to figure out JavaFX  

In A Free Land Blog

Posted by kfarnham Aug 15, 2008

LWUIT goes open source

The front page has had uncanny timing this week. On Tuesday, we noted the Zero and Shark OpenJDK projects, which were officially approved by the OpenJDK porting group the next day. Then yesterday, we featured an article on the Lightweight UI Toolkit (LWUIT), just hours before a major announcement about LWUIT's status... which is today's big news

Shai Almog's blog announces that the Lightweight UI Toolkit (LWUIT) has been released under the GPL with Classpath Exception license. "Today we are finally switching to the SVN repository for all development which means changes to LWUIT will be made live within that repository." Those checking out the code or the latest drop will find a number of new LWUIT features, including live drag and drop support for components in layouts, component z-ordering support, a new absolute/scalable layout, SVG Image, 3D transitions, and more.

Today's Weblogsbegin with Terrence Barr's own announcement, LWUIT released as open source! "To further accelerate the adoption of the LWUIT framework it is important to provide access to the source code under a liberal and well-known open source license. So today Sun is announcing the release and immediate availability of the complete source code of the LWUIT framework under the GPLv2 license with the Classpath Exception. This license choice provides the benefits of open source innovation and collaborative development while offering a risk-free path to adoption by commercial products - a model everybody should feel very comfortable with."

Meanwhile, JavaFX's Joshua Marinacci returns to broadly-applicable desktop topics in A Better Applet Experience, Part 1: a custom loading screen. "You may have heard that JavaSE 6 update 10 is supposed to improve the experience of applets. You may have even seen the demos of dragging and dropping applets out of the webbrowser, but there's a lot more to it than that. In this series of blogs I'll show you how to get the most out of deploying your applets, even if you aren't using Update 10."

"There is a clear winner, but there is also a proposal that is most argumented against. The problem is that both of those are BGGA..." In Closures - Breaking the Deadlock, featured in our Java Today section, Mikael Grev argues that something is needed in the Java 7 timeframe -- if only to keep Java from being "nuked in the blogosphere" -- and offers a two-step proposal to bolster inner and anonymous classes for Java 7 and then get BGGA fully baked for Java 8. The accompanying JavaLobby discussion includes comments from other closure proposal authors, including Stephen Colebourne and Howard Lovatt.

Developers in the IP-based interactive TV market face tough challenges writing and deploying applications for existing proprietary middleware platforms. To address these developer challenges, Sun and worked together and, in April 2008, announced the general availability of a Java ME based client platform for IPTV set-top boxes (STBs). In Interview:'s John Allen on Interactive Television, CEO John Allen discusses this joint solution.

The latest Poll asks "Would you be interested in developing and selling ME apps through an "App Store"?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In today's Forums,robross explains the current thinking in 2D APIs in the follow-up Re: Problem with layers. "The latest modern design strategy centers around the concept of "Painters." This is just a delegate object that does the actual painting. So instead of having a single paint() method in a component that does all the work, that component now calls out to its Painter delegate to do the actual painting. This allows for a more flexible design since you can swap out painters as needed to produce different effects, and you can combine painters to do combination of effects. The Filthy Rich Clients book discusses this concept in great detail, and the SwingX project in SwingLabs uses this model extensively in its components."

tarbo offers an introduction to the basics of networking in Re: data sharing between Java & non-java. "From the nature of your questions, I'm having the impression that you're new around communication networks. Going on that assumption, allow me to go through some of the basics. [...] Before you build your server, you must consider the nature of your connections. Is it imperative that the data come across correctly and completely, or is it acceptable that data is lost along the way? An example of a need for integrity is when viewing documents. An example of an application that may accept some loss is a video conference. Reliable transfer uses TCP, unreliable uses UDP. In Java NIO, TCP is modelled through (Server)SocketChannel, while UDP is modelled through DatagramChannel."

Davy Preuveneers considers mobile graphic performance inRe: Phoneme advanced, personal profile, PNG images. "I am well aware that this method can be a few hundred times slower. Windows Mobile 5 provides the AlphaBlend method call, but it appears that not all devices support it. I have read some reports on forums that the Imaging API is rather slow too [...] But it is probably faster than the Java implementation. If the AlphaBlend method does not work, I can only hope that providing a native blending implementation helps."

Finally, Jim Graham puts a "DO NOT ENTER" sign on a mysterious method in Re: [JAVA2D] drawImage() and isAlphaPremultiplied(). "I think you are getting confused by some under-documented APIs that never had a useful purpose for developers and, in consequence, that have some undiscovered bugs in them. coerceData is not the way to make a premultiplied image. Even worse, it can have dangerous effects on an existing image. It is used internally to munge raster data in the constructor that takes a raw raster and colormodel, but it is not meant to be used in any other cases, or its behavior in other cases is questionable at best, and buggy as you've discovered at worst."

The latest JavaOne Community Corner Podcast is j1-2k8-mtH06: JT Harness - Open Source Test Harness by Brian Kurotsuchi. JTHarness is an open source extensible test harness, which can also serve as a front-end for JUnit tests.

Current and upcoming Java Events :

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

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

LWUIT goes open source  

It's Not Peculiar Blog

Posted by kfarnham Aug 14, 2008

Swing saves ME from bad GUIs?

One of the surprises of JavaOne was the Lightweight UI Toolkit (LWUIT) project and the attractive Java ME GUIs that were demoed with it. Nobody's promising to turn your old free-with-contract phone into an iPhone, but LWUIT does offer not only a much improved appearance, but also a more consistent one. By using a Swing-like approach to painting everything with Java -- rather than depending on native peers that vary radically by device -- LWUIT gives developers a much better ability to get their apps to have a similar appearance and behavior on different devices.

Biswajit Sarkar offers a high-level view of LWUIT's design and features in today's Feature Article,An Introduction to the Lightweight User Interface Toolkit (LWUIT):

LWUIT offers a wide range of widgets for building UIs. While some of these widgets are also available under lcdui, there are a number of new ones that enable application developers to design UIs that can come very close to their desktop counterparts in terms of visual sophistication. Even the components that are also offered by lcdui have been functionally enhanced. And LWUIT is not just about new components, either. The API supports a whole range of new functionalities, too -- theming, transitions, and more.

LWUIT's a big topic and for this introduction, Biswajit takes a high-level overview of the project and its pieces. Let us know if you're interested in digging deeper into the technical parts like the various components, transitions, theming, etc.

In Java Today, NetBeans IDE 6.5 Beta has been released. NetBeans 6.5 introduces several new features, including a robust IDE for PHP, JavaScript debugging for Firefox and IE, and support for Groovy and Grails. This release also includes a number of enhancements for Java, Ruby and Rails, and C/C++ development. Java feature highlights include: built-in support for Hibernate, Eclipse project import, and compile on save. NetBeans IDE 6.5 Beta also contains 6.1 features including a powerful and intuitive JavaScript Editor, support for Spring Framework, ClearCase (via Update Center), and RESTful Web Services.Download the beta, learn more, or check out the documentation.

The GlassFish Community Acceptance Testing (FishCAT) program has gotten underway. " The main goal of this program is to provide opportunity to community to significantly influence the quality of the GlassFish as well as to get early feedback on stability and usability through community involvement in GlassFish Beta testing cycle. We will start our first FishCAT program for GlassFish v3 Prelude from August to September 2008. It will last about 4 weeks." More details are available in Arun Gupta's blog.

Binod uses his blog to announce the release of SailFin V1 Alpha, a JSR 289 (SIP Servlet 1.1) implementation atop GlassFish. Linking to the download, he notes, "though a major chunk of JSR 289 is already implemented, it is still not yet compliant with the final release of the specification."

In today's Weblogs, James Gosling reports he's having Fun at SIGGRAPH. "I'm spending this week in LA at SIGGRAPH. It's really great to be at a conference where I can concentrate on learning. Lots of interesting papers and folks doing cool experimental stuff."

Tim Boudreau wonders aloud about Semi-checked exceptions? "My friend Jon Locke, creator of Wicket, told me recently how he feels checked/unchecked exceptions should have been implemented in Java. It's an interesting idea to kick around."

Finally, in Developing MEP Connectors - Part II, Santiago Pericas-Geertsen writes, "in the first installment of these series we've looked at the architecture of a MEP connector and briefly discuss the main abstractions in the ECBO (Enterprise Connector Business Object) API: BusinessObject and BusinessObject provider. In this second part, we'll discuss an actual implementation of the BusinessObject abstraction used to create a connector that synchronizes data against a relational database."

In today's Forums,joergjahnke wants to find out about the device his app is running on, in the thread Re: Touchscreen, how to get started. "I hope it's OK to use this old thread for my question as it's related to the topic: How can my LWUIT application detect whether the device it's running on has a touchscreen or not? Using normal LCDUI classes, the Canvas class offers methods like hasPointerEvents, but I can't find a similar method in the LWUIT framework. Does such a method exist or is it at least planned to be added?"

danila explains CLDC threading implications in Re: javacall and MT safe. "CLDC VM uses green threads, so all Java threads are created and managed by the VM within a single OS thread. So the VM calls PCSL routines from the same thread. An exception to this rule is hybrid thread coding style that allows to use additional native OS threads to handle blocking calls."

Finally, Kenneth Clark asks about Shared XSD for WSDL. "I am sitting with a situation where by I have a stack of web services. Now to make them more manageable I can divide them into smaller service sets. The only problem is that they share the same objects. Now here is where the problem comes in, the front end defines the shared objects in different namespaces which means there are duplicate objects. So is there any way to have the WSDL share the Entity definitions? Do I have to manually write the WSDL in order to achieve this and use the @WebService(wsdlLocation)?"

Current and upcoming Java Events :

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

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

Swing saves ME from bad GUIs?  

Will one of these OpenJDK ports be the next JVM for Mac OS X?

If you recall... it may be hard to forget all the rancorous blogs of the time... Mac OS X 10.5 shipped without a Java SE 6 implementation, even though SE 6 had been out for nearly a year by then. Many Java enthusiasts were furious, and even cooler heads predicted that in the long run, the solution would be for Mac Java to come from the open source community, rather than cargo drops from a seemingly disinterested Apple. Landon Fuller's Soy Latte a port of the BSD Java implementation, is a pioneer in this respect.

Now what if there were multiple OpenJDK ports that could run on the Mac? Wouldn't that make things interesting?

Take a look at the top item on the front page today: the OpenJDK community has announced the approvals (1, 2) of two new projects. The BSD Port project will develop a port of OpenJDK to the BSD family of operating systems, including FreeBSD, OpenBSD, NetBSD and MacOS X. And the Zero-Assembler Port, described on yesterday's front page, is a port of OpenJDK that uses no assembler and therefore can trivially be built on any system. Both projects are sponsored by the OpenJDK porters group, and will be moderated by Dalibor Topic.

So on the one hand, you have a BSD Java that can be fairly cleanly adapted to run on Mac OS X, thanks to its BSD underpinnings (aka "Darwin"). And on the other hand, Zero offers a JVM that can be trivially recompiled for any system. True, Zero is interpreter-only, but its companion project, "Shark", offers an LLVM-based JIT that speeds up the VM dramatically. And guess who's funding LLVM? Apple Inc., among others, so it's a pretty safe bet that Shark will be able to run just fine on a Mac.

Of course, running the VM by itself isn't everything. Libraries needing native integration are still a massive undertaking, and Soy Latte still needs help with native pain points like AWT, sound, and the Mac's certificate store. But these two projects could be a heck of a head start.

Also in Java Today, the third and final installment in a series on run-time monitoring of Java applications, Monitoring performance and availability of an application's ecosystem, focuses on strategies and techniques for monitoring the performance and availability of an application's supporting and dependent services. These include the underlying host operating system, the operational database, and messaging infrastructures. The article concludes with a discussion of performance data management issues and data reporting and visualization.

In a challenging bit of introspection on JDJ, Jay Blanton asksHow Can Java Developers Stay Relevant? "With the rapid evolution that Java and open source frameworks have made since the release of J2EE, enterprise Java IT seems to be producing too many Java dinosaurs. Developers, technical managers, or architects who no longer pursue their technical skills don't understand the evolution of JEE in comparison to J2EE, persistence frameworks, IOC frameworks, Web frameworks, or Web 2.0 and its effects on enterprise Java. Yet decisions are made based on out-of-date J2EE experience."

The latest JavaOne Community Corner Podcast is j1-2k8-mtH05: cqME and ME Framework Testing Platform by Mikhail Smirnov. ME Framework is an testing framework for the Java ME platform developed as part of the cqME open-source project. A set of plug-ins for the open-source JT Harness, ME Framework provides support for application and platform quality and conformance testing needs. This mini-talk covers testing framework features, Java ME application and security models, communication protocols optimization and debugging functionality.

Today's Weblogsstart with Bruno Ghisi talking about REST and Java ME. "Everybody is talking about REST and RESTful Web Services. Let's take a micro looking into it and see how to deal with JSON, XML and other related stuff in Java ME!"

In Simple Dependency Injection with ServiceLoader in JDK 6, Tim Boudreau writes, "there are a lot of dependency injection/IOC frameworks out there. What you may not know is that there is a very simple yet useful one built into the JDK. And it's type-safe."

Finally, Fabrizio Giudici is Brainstorming, italian style. "While I should be officially on vacation since ten days, some job troubles have pursued me for a few days. Nevertheless, working in an enjoyable environment definitely boosts your productivity."

In today's Forums,egon_olsen brings up a new ME UI problem in Re: How to automatically dispose a Dialog when new Form is shown. "I have got another problem which is also related to disposable of Dialogs. It is the following: if I choose to show another Form upon disposal of a Dialog, i have to explicitly call dispose on the Dialog or the new Form will not be shown but the form that was shown before the Dialog will."

behrangsa has a simple question about JavaFX and Video Capture, namely, "is JavaFX 1.0 going to support video capture?"

Finally, twright has something of an answer to a popular question in the thread Re: Any news on the Java 7 timeline? "As far as I know there's no public schedule, but Sun has indicated that they're aiming for a Summer of 2009 release. One source is: Hope this helps."

Current and upcoming Java Events :

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

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

Will one of these OpenJDK ports be the next JVM for Mac OS X?  

Mobile & Embedded Developer Days changes seasons, adds a topic

It was just yesterday that I mentioned the Mobile & Embedded Developer Days conference in the editor's blog, recalling the conversations about fragmentation and access to the end-user that came out of this conference.

The conference was small enough to fit in the theater at Sun's Santa Clara campus, with a few breakout sessions in different rooms, but generally of a size where you could get everyone together for the keynotes, lightning talks, and novelties like the "fishbowl" session. Check out the editor's blog recaps of day 1 and day 2 for a sense of what it was like. With the manageable size and tight focus, it was a great destination for the ME developer.

So good, apparently, that they're doing it again, just 10 months later, moving from the Winter conference crunch to the even busier Fall (as always, your seasons and climate may vary), and picking up media as a new topic.

Roger Brinkley makes the announcement in his blog, Mobile, Media, and Embedded Developer Days 2008 Call for Papers.

Last January the Mobile & Embedded Community sponsored the first ever Mobile & Embedded Developer Days. The second of these annual events will be hosted at the Santa Clara Auditorium November 12-13, 2008 and this time we're expanding and renaming the event Mobile, Media & Embedded Developer Days 2008.

The conference is devoted solely to the technologies of mobile , media, and embedded Java platforms and is targeted for application developers of intermediate and advanced skill levels, platform developers, and technical personnel at tool vendors, OEMs and carriers.

Content areas are expected to include the traditional phone and PDAs development on the Java ME platform as well as Media, SunSPOT wireless sensors, Trackbot and Java robotics, and other small Java systems used in machinery and process control but centered around Java, JavaME, and open source aspects of Java. We want this to be a community-driven conference. We are looking forward to your involvement in making this an interesting and interactive event.

The Call for Papers opens today, ending in just over a month, on September 15. Registration for the conference should open on or around October 1.

Also in today's Weblogs, Arun Gupta looks into the GlassFish and MySQL bundle. He writes, "GlassFish and MySQL bundle was released a while ago and I finally got a chance to try it out. Here are simple instructions to get you started."

Using easyb with Maven, John Ferguson Smart writes, "Easyb is a very cool way to test your Java application in BDD-style with Java. But wouldn't it be nice to be able to integrate your BDD stories into your Maven build process? The good news is, you can!"

In Java Today, Gary Benson has posted a number of updates to his blog in recent weeks, detailing his work on Zero, an interpreter-only port of OpenJDK which can be trivially built on any OS (since it uses no assembly), and an LLVM-based JIT called Shark. In the latest update, he submitted a recent build to IcedTea's Mercurial repository, and also got frame-walking and method synchronization working. Gary also has a Shark status table showing Shark's current bytecode coverage. Given all this, a proposal to add Zero as an OpenJDK porters project is imminent, following the unanimous vote by the porters group to sponsor the project.

The Aquariumpoints out that the Readers Choice Vote is On: "Sys-Con has announced the opening of the vote periodfor the SOA World Magazine Reader's Choice Award. Consider voting for our projects; last year we had multiple winners." projects included on the ballot include GlassFish, Hudson, Metro, NetBeans, OpenESB, OpenSSO, and JAXP.

In a 25-minute video interview from QCon London 2008, Neal Gafter discusses upcoming language features in Java 7, superpackages, what closures are, the differences between the three major closures proposals (CICE, FCM and BGGA), optional typing systems for dynamic languages, and the next major language.

In today's Forums, Alexis Moussine-Pouchkine explains the overloaded meanings of GlassFish "domain"s in Re: GlassFish domains on same server under own unix user credetials? "If using the developer profile, then yes, the domain is a single instance (one JVM) which happens to be running the GUI admin tool, the config repository and your applications. If using the cluster profile, the members of the cluster are all part of the same administrative domain spreading across multiple JVM's and machines. They use node agents to refresh local repository caches from the main repository located on the DAS. Administration happens ideally at the DAS level only. The DAS is not required to run the cluster, only to modify its config."

bkurotsu discusses the options afforded by JTHarness in Re: jtharness used as an distributed application acceptance framework. "Almost any kind of test can be run under the harness, so I do not think there is any limitation that would stop you from doing what you want. What tends to make the difference is how much built-in support the harness and frameworks provide to you - to decrease the amount of code you need to write. The harness can help decrease the work required for you to configure, gather results and generate reports. The details depend on how complex your scenarios are. But JT Harness would be able to bring them all together under a single user interface"

Finally, twright announces a new add-on for Project Wonderland, in WonderDAC Videos Online. "Greetings, forum! I have completed the first iteration of WonderDAC (discretionary access controls for Project Wonderland). Please find a more detailed description and link to QuickTime movies at:"

Current and upcoming Java Events :

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

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

Mobile & Embedded Developer Days changes seasons, adds a topic  

A mobile Java pipe-dream might be coming true

Nobody's objective, nobody can be opinion-free, even those of us who are paid to be, and that's a good thing. It's better to have writers and editors who care enough to have opinions, than to have HTML-reformatting PR-bots who don't know awesome from awful, even if that means that I can't possibly agree with every reader every time. I think I generally do a good job of squaring the POV and setting my opinions aside -- has anyone been able to tell that Ihate generics and still compile my code with -source 1.4 -target 1.4 ? -- but clearly, there will still be a bias exposed in what does or doesn't make the cut for the front page. Or, for the purposes of this blog, what gets included as a choice in a poll.

Go back a couple months, right after the M&E Developer Daysand the discussions that came from it about how hard the carriers and handset makers make life for developers, when our poll asked "Who could do the most to end Java ME fragmentation?" Few noticed and fewer voted for the choice "competitors". But after putting it in the poll, I was one of the nine people who voted for it.

Here's the story behind that option: this was when Apple had announced it would release a "real" SDK for the iPhone, but details were still a month away. I had allowed myself to hope that Apple's offering would be enough of a game-changer to challenge the locked-down mindset of the current mobile software world, in which indie and niche-topic software developers have effectively no chance of getting their software onto ME and other mobile devices. I argue this is one kind of "fragmentation": aside from the technical differences between various ME devices, mobile software developers also have to deal with different levels of resistance (and some outright prohibitions) in signing their apps for different carriers' devices. Many in the poll thought that this was Sun's problem to fix, a point that that Terrence Barr implicitly rejects in a very interesting forum post from last month, in which he writes:

The problem is that what is happening in this space is that some (not all) device manufacturers and operators are using security mechanism to impose business models on developers.

So, like I said, back then, I was secretly hoping that whatever Apple did, it would cause enough pain to the current carriers that they'd have to open up their software platforms, or watch their users defect to an entirely different platform.

Total pipe dream.

Except that it looks like that might be happening.

In an item picked up by the Washington Post and Slashdot, reports that T-Mobile USA Will Ditch The Traditional Deck To Mirror Apple's App Store.

Starting this fall, T-Mobile USA will take the extraordinary step of ditching its traditional deck on the phone and replacing it with a platform that’s open to almost any developer, multiple sources have told us. Think of Apple’s App store, but for the entire carrier’s handset line-up from smartphone to feature phone. As one developer, who was briefed on the matter, said: “The App store was a big deal, but that’s one phone. This is an entire carrier.” In other words, we are talking about T-Mobile’s 31.5 million subscribers today vs. the 10 million iPhones Apple expects to sell by year-end (granted, the iPhone users tend to be more engaged as early adopters). The impact of this move by T-Mobile could set off a wave of changes in the industry, as other carriers feel pressure to offer new applications on their networks. Clearly, for this to happen, T-Mobile will have to follow through on its promises to encourage developers to participate.

mocoNews' source says developers will submit applications online and get a revenue-sharing agreement with T-Mobile based on network use. All T-Mobile's platforms will reportedly be available to developers, including Java and Android. T-Mobile declined to address the report's specifics, but advised developers to "stay tuned" to its devPartner Community site.

If this report is anywhere close to accurate -- do take it with a grain of salt and notice the sourcing to a handful of developers, though also note T-Mobile's non-contradictory reply -- it could be a revolution if Java ME developers of many sizes and pursuits can actually find a market for their software, one that has previously been closed off by T-Mobile and the other carriers.

Acknowledging again my bias, I personally think this could be the most important Java story this year. We'll obviously be watching to see if this pans out as reported, and if other carriers follow suit.

Of course, there's still the technical fragmentation issue: it's hard to test your ME app on hundreds, or even thousands of handsets. The mocoNews article notes that T-Mobile has partnered with DeviceAnywhere, and in a happy coincidence, the company also has just announced a special deal for NetBeans users, as noted in the Java Today section. To celebrate the success of its integration with NetBeans, DeviceAnywhere is doubling its free trial, from five to 10 hours. "DeviceAnywhere's one-of-a-kind testing, monitoring, porting and deployment solutions provides mobile developers with remote access 1500 real mobile devices worldwide - facilitating faster time-to-market in a cost-effective, pay-as-you-go model." Through this extended free trial, NetBeans users can remotely perform all testing on real devices - from the convenience of their own desktops.

Moving over to the desktop, we note that Josh Marinacci's latest blog on API Documentation: the Overlooked Little Brother of Programming Tools, in which he reveals that the recently released JavaFX Preview SDK includes a next-generation documentation tool,javafxdoc. "So what makes it awesome? It could be all of the new GUI goodness we added like the accordion control and javascript animation, but those are secondary to the really cool thing: we built it to be future proof. Unlikejavadoc, javafxdoc doesn't directly produce HTML at all. Instead it generates a large XML file which is fed into a second transformation step. This transformation currently produces the semantic & strict XHTML you see today, but in the future we could generate PDFs instead. Or a mobile phone version. Or push it into a database for searching and annotation. Or something else no one has thought of yet."

Speaking of future-proofing, today's Weblogs begin with a strategy from Tim Boudreau in The Capability Pattern - Future-Proof Your APIs. "Here is a simple pattern which you can use to make your APIs extensible, even by third parties, without sacrificing your ability to keep backward compatibility."

Gary S. Weaver post a warning in java.protocol.handler.pkgs Strikes Back. "Look out for uses of System Property java.protocol.handler.pkgs in the applications you use. It could be trouble in Java 1.4+."

Finally, in Metro SOAP and REST Web Service JavaOne 2008 presentations online, Harold Carr announces, "Metro SOAP and REST Web Service presentation slides, video and audio from JavaOne 2008 are available online in the areas of Java and .NET 3.x interop; other ways to interop between Java and .NET; overviews of Metro and Jersey; using REST. If you missed these sessions or want to see them again, I've provided links, presenters and abstracts. Enjoy!"

In today's Forums,john_t wonders about an apparent upper memory limit to vmem cached images with direct3d pipeline? "I'm working on a touchscreen interactive for an australian museum. the project uses a number of historical and modern panoramic images running across two 30" displays (5120x1600 total pixels). i'm using the scene graph project to load in multiple huge images (max 26,300x1600 pixels (i've spilt these into 1024x1600 tiles)) and to allow the user to scroll and zoom around them. its all working very well. it's very impressive watching images of this size smoothly scroll and zoom with subpixel positioning and virtually no CPU usage. obviously the accelerated pipelines are working very well! I was running this on a nvidia 8800GT 512MB, however as the number of images has increased it gets to a point where some of the images are no longer accelerated (which is painfully obvious). so i recently upgraded to a GTX280 1GB. when the program is running with the direct3d pipeline there still seems to be the same limit (in terms of number of images) as the 512MB card. whereas running with the opengl pipeline allows approximately twice as many images. so it would seem that there is some sort of hard coded limit with the direct3d pipeline. is this a limitation with direct3d itself or with the pipeline?"

With a very different opinion about performance,demonduck is deeply critical of the current state of Java SE 6 Update 10 in the reply Re: 6u10 Post-Beta Survey. "You are considering 6u10_b28 as a release candidate -- to coin a phrase, " can't be serious..." There are so many things wrong with 1.6u10 that I'm amazed that you would even consider it a release candidate."

Finally, egon_olsen is trying to figure out the nitty-gritty of Horizontal Sizing of Custom Component. "I am trying to write a custom Component that expands horizontally, i.e. uses as much horizontal space as the Layout Manager is willing to give but only so much that horizontal padding and margins still occur. Overwriting calcPreferredSize and setSize is not enough, though. If I let calcPreferredSize return a width larger than the Display then setSize still does not get called with a smaller value for width. Is there another method I have to overwrite?"

Current and upcoming Java Events :

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

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

A mobile Java pipe-dream might be coming true  

The BGGA bits are all there

It's been a while since we had a lot of activity on the closures front, so it's quite a wakeup to read that Neal Gafter has announced that the BGGA closure prototype is now feature-complete, supporting all the features of the specification.


The complete source code, released under GPLv2, is in the project's openjdk repository. A binary build, suitable for use with an existing JDK6, is at Other related documents are on the website Although there is room for performance tuning, the prototype supports the full Closures (v0.5) specification. Based on your feedback, there are some changes in the prototype suitable for a future update of the specification..."

There are a couple of interesting new details in this version. One is that they've adopted Scala's Nothing trait to replace the earlier keyword Unreachable, which also eliminates the need for a null type. Another borrowed concept is the use of FCM's pound-sign # token for method references.

But the big deal is that the prototype now handles everything in the BGGA closures spec, so those who are interested can go try it out.

On a related point, when's Java 7 coming out? Don't see the flow? A number of years ago, when asked about a date for Java 7, some said that it would basically wait for resolution of the closures debate, pushing Java 7 as far back as necessary. But at JavaOne this year, rumblings suggested that closures might well miss the boat for Java 7, as interminable as the debate has been between the three top proposals (in addition to a substantial "no closures of any kind" contingent) has resisted resolution. How does this get settled? Probably in the JCP Executive Committee, which will eventually have to vote thumbs-up or thumbs-down on a Java 7 contents JSR or perhaps an amendment to the Java Language Specification (see JSR 901)... which is why any of you with an opinion on closures or any other Java 7 contents should have been paying attention and participating in the JCP elections as we've covered them year after year.

So, apropos of the timelines for closures and Java 7, the Poll asks "Do you want the closures debate settled in time for Java 7?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

Also in Java Today, the latest screencast from shows off Hibernate Support in the NetBeans IDE. "In this demo, we quickly create a web application that uses hibernate to read a database containing travel itineraries and displays the results in a JSP page using Woodstock JSF components."

Noted on The Aquarium, OpenMQ 4.2 final released. "OpenMQ, the high-quality and Open Source JMS implementation integrated into GlassFish and OpenESB has now reached 4.2 final. OpenMQ is rock-solid and now has wildcard topic destinations, XML message validation, C-API support tested with Tuxedo, support for MySQL Cluster Edition for HA, MySQL Enterprise Edition for standard JDBC message stores, and more."

The latest JavaOne Community Corner Podcast is j1-2k8-mtH04: How to Use the TrackBot API by Shawn Silverman. This talk will cover the basics of using the TrackBot API for simulating and controlling TrackBots. It will flesh out some of the concepts covered in the TrackBotsAndGreenfoot and SunSPOTsAndTrackBots talks, although attendance at those sessions is not a prerequisite.

Jacob Hookom takes a look at JavaFX and You in today's Weblogs, writing, "innovation is a hard thing to accomplish without risk. Sun is trying to grow their customer base with JavaFX, but may have introduced too much risk in not tethering to the needs of existing customers."

Tim Boudreau asks Where's the state? "This is a small but useful question when deciding how a problem domain gets carved up into objects: What things have state? What things have values that can change? When and how can they change? Can the changes be observed? Who needs to observe changes in state?"

Finally, John Ferguson Smart looks at Creating Maven projects from the command line - the easy way. "Maven archetypes are great. But remember how painful it is to create a new Maven project from the command line, with all those command-line options to remember? Enough to put off even the most hardened Maven enthusiast!"

In today's Forums,elie wants to launch a LWUIT Browser. "I was searching for a way that we can open a wap site within the midlet and not calling the the mobile browser by calling platformRequest(URL). Does any one of you face such thing and recmmend me to use an API a class or anything that could acheive my problem?"

Shai Almog stresses the lightweight graphics model of LWUIT inRe: canvas instance into LWUIT form. "All LWUIT components are lightweight and allow you to override paint (com.sun.lwuit.Graphics) in order to paint anything anywhere so there is no technical need for Canvas. Since most MIDP related graphics API's are supported by LWUIT graphics (and some more) it should be pretty easy to port your Canvas to LWUIT. This would be the correct and portable way to achieve something of this type."

craigmcc has hit a roadblock Creating javadoc for JAXB generated classes. "I'm using the maven-jaxb-plugin in my Maven2 based project to generate a bunch of Java classes corresponding to my XMLSchema that is shared between client and server applications. The codegen part works great ... as per the instructions for the plugin, the JAXB source generator is indeed invoked at the right time, and the generated classes are compiled along with the manually created sources in the usual place (src/main/java). However, the javadoc plugin only wants to look at the classes in the default location. That's bad for me, because I'm decorating the schema with appropriate javadoc comments (the generated model classes are part of the public API for my service). How can I use this plugin, but also convince the javadoc plugin to generate javadocs for both the default-located classes and the generated classes."

Finally, Joshua Marinacci explains a JavaFX design decision inRe: "code too large" error in Preview SDK for scene graph initialization. "This is a limitation of the java class specification (which I *think* also applies to any bytecode driven language, not just Java). It was this limitation which caused us to design the FXD format. Unfortunately, the FXD format is still in flux and does not yet have a public spec, so I don't advise you to use it. Your best bet right now is to use the SVG->FXD converter in project Nile. The converter undoubtedly does have bugs, so please file bug reports on them."

Current and upcoming Java Events :

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

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

The BGGA bits are all there  

That's Something I Do Blog

Posted by kfarnham Aug 7, 2008

Codifying Swing's best practices

Last month, we noted an item in Kirill Grouchnikov's Swing Links of the Weekindicating that Alex Potochkin had taken over the seemingly dormantSwing Application Framework project, following Hans Muller's departure from Sun earlier in the year.

Alex has opened up the channels of communication again, in his post Swing Application Framework update.

As you probably know, a few weeks ago I became the new specification lead for the Swing Application Framework project (JSR-296). This project has been fairly silent for the last little while, so it is high time to continue with working on this framework and complete it timely.

The main goal of this project is quite ambitious: create a Swing framework which allows to quickly create a simple Swing application and which is also flexible and extensible for the big commercial applications. The key to success it to recognize the common patterns and the best practices that help to create a good Swing application and implement them in the Swing Application Framework.

In this blog entry I want to describe the recent changes and give the reasons why it was done this way and bring up some issues to think over. Don't hesitate to share your opinion, we make it for you and your feedback is very important for us. The project is now in transition state and the API may be changed. The latest source files you can find in the Subversion reporsitory, zipped files are also available, the previous stable version can be found here.

This is a significant project, as Swing applications don't currently have a programmatic lifecycle and instead launch frompubilc static void main (String[]), with nothing but the programmer's own discipline to ensure that Swing actions are properly performed on the event-dispatch thread. There's also nothing to guide the handling of windows, the placement of toolbars and menubars, persisting GUI state between sessions, etc. The Swing Application Framework addresses these, relieving the Swing developer from providing slightly different implementations in every different Swing application.

Here's hoping that the project takes off with its new leadership.

Also in the Weblogs, Eamonn McManus reports that he's been Playing with the JMX 2.0 API. "Version 2.0 of the JMX API is being defined by JSR 255. I've written about some of the features in the new API before. They are trickling into the JDK 7 sources over time, so you can now play with some shiny new things. Here's a description of what they are, and how you can even access them from JDK 6 if you are brave..."

Ed Burns says Got a gripe with Servlet? Let's hear it! "Taking a cue from thesuccess of the community that has grown up around the JSF IRC channel, my colleague and friend Rajiv Mordani has created an IRC channel for the entire Glassfish WebTier, on freenode. To access the channel, follow the instructions for the JSF irc channel but use #glassfish-webtier as the channel name, instead of ##jsf."

In Java Today, the SDN has updated its beginner's guide to JavaFX Script, Learning Curve Journal, Part 1: Exploring JavaFX Script. "In August and September 2007, John O'Conner of the Sun Developer Network wrote a series titled "Learning Curve Journal" designed to help users get started with the JavaFX Script programming language (shortened to JavaFX Script in the remainder of this article). A number of significant advances have been made to the language since then. Perhaps most important is the availability of a compiler-based version of JavaFX Script, which replaces the earlier interpreter-based version of the language. The Learning Curve Journal described the use of the interpreter-based version of the language. The Learning Curve Journal has been updated to show you how to use the compiler-based version of the language. Other changes have been made to make the articles current."

The latest edition, issue 177, of the JavaTools Community Newsletter is out, with tool-related news from around the web, new projects and a graduation (EchoPoint), and a Tool Tip on playing the game of not breaking the build.

Need to monitor the performance of code you don't have source for? Without the source, you don't have obvious means of instrumenting the code for performance monitoring. In a new article, Postcompilation instrumentation and performance monitoring, Nicholas Whitehead presents techniques for instrumenting Java classes and constructs without modifying the original source code.

In today's Forums,mikeazzi reports a Problem Loading a Jnlp-href'd Applet. "I am stuck again trying to load, and run a JavaFX applet using the applet tag's jnlp-href attribute. I have been struggling with this for a whole day, and still I haven't been to able figure it out, and I could really use a little help. I have also enabled all the debugging and tracing flags, but the error messages don't seem to giving me any helpful clues. One thing I could tell from the logs is that the plugin is not being able to load the jar files specified in the jnlp file. Why? I don't know. It does not to tell me enough to figure out why. I tried diiferent values for the applet's codebase attribute, moving the jars around. Nothing helped."

Marco Sambin wants JAI Image I/O to provide all-Java implementations, in the thread RE: [JAI-IMAGEIO] Mac OS X native version of JIIO. "As I mentioned in previous posts, a full pure-Java implementation of ALL JIIO codecs (including lossless JPEG) would be an acceptable alternative to a Mac OS X native version of JIIO, at least for our purposes. Things may be different for other developers, but I think "available functionality" comes before "high performance". Of course, having the two would be optimal..."

Finally, mcumings announces a new JXTA project inNew ContentService API committed into trunk (JXSE). "Hello fellow JXTA users. Recently, I had the opportunity to develop and commit a new service into the core JXSE API - the ContentService. Simply put, the ContentService is a service interface which can be used by a JXTA end user to transfer arbitrary data (Content) from one Peer to another. This new API is intended to eventually replace the existing (unused) Codat API as well as the CMS project."

Current and upcoming Java Events :

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

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

Codifying Swing's best practices  

Questions and Answers Blog

Posted by kfarnham Aug 6, 2008

What are you looking for in JavaFX demos?

Josh Marinacci, fresh from the launch of the JavaFX Preview SDK, wants to know what you're looking for in demos and samples. In JavaFX Bleg, he asks:

If you've downloaded the SDK already what would you like to build but don't know how to? If you haven't downloaded the SDK what sample would inspire you to try it out? If you've already started building an app, what problems you encountered? What could you use help with? Deployment? Media? Animation? Browser integration?

At the end of the day we are making this SDK so that you guys will build interesting applications. What samples can I build to help you do that?

To my way of thinking, there are two essential kinds of samples. One introduces an API or a technique and tries to keep things simple, to focus your attention on the coding techniques. Such a sample might not even have practical output; you're intended to study the code at a fairly low level. The other kind of sample, something we see a lot of at JavaOne, is the ambitious demo that shows what kinds of things are possible with a given technology. With these, the point might not be to study the code, per se, but to be assured that the technology provides a suitably impressive amount of power, encouraging you to do the same.

Of course, the gotcha in the latter case is that the people writing the demos are often the developers of the technology in question, and know it inside and out. If I remember correctly, it was the realization that it took three of the best Swing engineers a couple weeks (or months?) to create Aerith that provided part of the justification for doing JavaFX in the first place: creating great GUIs shouldn't be that hard.

So count my vote for more small and simple "technique" samples, and less of the grandiose "see what you can do (if you're us)" demos. Of course, your mileage may vary. Josh already has a number of requests in the comments to his blog, and you're welcome to add your own.

Also in today's Weblogs, we find Tim Boudreau thinking about API Blogs. "One thing which I think about often is the design of code, software libraries and APIs. I've been working on deriving some principles from the things I do intuitively based on experience. Whether those are useful to anyone else is an open question. Peer review is the best tool for figuring out if these really make sense or not, so I'd appreciate feedback on my next few blogs - hopefully one day they can make up some articles or a book or similar."

Finally, Carol McDonald presents a RESTful Pet Catalog. "This Sample Pet Store Catalog application shows how to expose a Catalog as a RESTful Web Service for remote client applications, and it shows how to code a Dojo client which gets and displays the Web Service responses in a dynamic Ajax table ( Dojo grid)"

The latest Java Mobility Podcast is j1-2k8-mtH03: A Mobile Interface for Data Mash-Up by Parth Vohra. In this brief "fill-in" mini-talk, Parth shows off a mobile approach for data mashups, using OpenESB and the Mural project.

In Java Today, Kirill Grouchnikov notes an unanticipated benefit of launching theLightBeam project to test performance of Swing L&F's. In Using LightBeam to measure XRender performance, he writes, "an unexpected and welcome usage of LightBeam comes from the XRender Pipeline project that aims to create a new Java2D rendering pipeline based upong the X11 XRender extension. This project is part of OpenJDK Community Innovators’ Challenge that has reached the submission deadline yesterday, and is lead by Clemens Eisserer. The benchmark page of XRender project uses two third-party open-source benchmarking suites - MigLayout swing benchmark and LightBeam."

Sun's Sun Java Real-Time System 2.1, a commercial implementation of the Real-Time Java Specification for Java, has just been released. Danny Coward blogs about the release, and Java RTS in general, in Want your Java fast or predictable? Java RTS 2.1 is here. "This implementation is at the other end of the predictability versus speed continuum, where your application may select tasks (zero to all of them) as tasks that must complete within a given time period. There is no 'better late than never' here: late equals failure for this implementation of Java SE."

In a new NetBeans.tvscreencast, Nandini Ramani Introduces the JavaFX Preview SDK, Engineering Director Nandini Ramani introduces JavaFX Preview SDK and shows how to use NetBeans IDE 6.1 With JavaFX to run samples and create an application.

In today's Forums, a thread in the Blu-Ray Java forum notes new options for getting licensed to develop BD-J applications, and in Re: [BD-J-DEV] BD-J JavaDocStubs, billf corrects an early mis-statement about stub availability. "Oops! It turns out my information source was wrong - the source to the org.bluray stubs has, in fact, been published. This is Very Good News. One caution to folks downloading them: Don't be distracted by the big yellow file folder icon into thinking that this is the only thing on the download page. Look further down the page to the blue word "Download" under the blue heading that says "download" When some of the non-BDA parts are available in a more convenient form, I'll write up a Wiki article on how to assemble the pieces, and I'll post an announcement here."

Sebastian Gomez would like help setting up Multiple WSDLs using Maven Plugin (wsimport). "Up until now, I've been using the wsimport goal to generate Java code from a WSDL. Now I've decided to break the WSDL into two, but I can't find the way to make it work using the plugin. First I tried listing both files in the wsdlFiles tag, but it didn't work. After that I've read about using multiple executions for the plugin, but it only executes the first one listed in the pom. I've tried a few more things, but always without success. I'm out of ideas now, and I guess someone else must have had to come up with this issue, and luckily already found some solution to it."

Finally, saeven asks about Using a JTable in JavaFX App. "I'd like to place a data table in a JavaFX app as exercise, but cannot seem to find how this is done. There's so much "beta" documentation out there, or posts containing code that doesn't work, that it has become a bit confusing. I'm also scanning the javafx API, and can't seem to find anything to do with a javafx table. So.. Simple example on how to embed a JTable into a SwingFrame anywhere?"

Current and upcoming Java Events :

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

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

What are you looking for in JavaFX demos?  

Why you'd want to distinguish method calls only by return type

As I'm catching up with some of the stuff we posted last week, a point I wanted to make about Thursday's feature article got lost in the big JavaFX Preview SDK news, so I'd like to go back to that for a bit.

One of the comments on Vinit Joglekar's Return-Type-Based Method Overloading in Java throws scorn on the very premise of the article. jlrowe writes:

Wow, how utterley and totally useless.

Using bytecode and bypassing javac, there are thousands of little acrobatic tricks like this you can pull, that ultimately break the java language spec and the code maintainers will to live

Actually, hang that one on me, because I encouraged the author to proceed with the article, as I've found a real need to distinguish method calls solely by return type. It was years ago, when we were building a GUI editor for our company's XML markup. We needed to support both direct editing of the markup, and a visual GUI builder approach. Of course, it made sense to build both views off the same object, so I tried to combine the XML DOM interfaces (I forget the library we were using; this was before Java had built-in XML support) along with thejavax.swing.text.Document. At first, it was very encouraging, because both interfaces implied tree-structured data, which of course is what the XML is, so we hoped that we could create a single document implementing both the XML parser and Swing text interfaces. But it ended up not working out because of a single method, like a getElement(int) orgetNode(int) or something, defined in both interfaces, but returning different types. So our would-be document class wouldn't even compile.

There's an obvious problem of potential confusion. If Java syntax did allow for method overloads that differ only in return type, you could do crazy stuff like this:

    public int getX() { return 1;}
    public long getX() { return 2L;}
    public test() {
        int myIntX = getX(); // makes sense
        long myLongX = getX(); // also makes sense
        System.out.println (getX()); // uh oh, which one does this call?

Still, having been burned in real life by not being able to override by return type, it's nice to see that there is a way out. If it turns out not to be practical, it's still a good mental exercise to see how it's done, and to reflect on why the Java language is the way it is.

Returning to JavaFX matters in the Java Today section, Kirill Grouchnikov notes an unannounced side effect of the JavaFX Preview SDK: Swing apps can get native video codecs and Flash content with JMC. "My number one wish for Java desktopfor this year was cross-platform support for H.264 and FLV formats. Today has marked a first (and hopefully not last) step towards playing video content in Swing application - Java Media Components which is a part of JavaFX preview SDK. Here is what you need to do to use JMC in your Swing application..."

The SDN's latest interview is Teaching Mobile Computing to Generation C: A Conversation With Java Champion Qusay Mahmoud. In it, Qusay discusses ways to integrate mobile devices into the computer science curriculum, how he uses Java ME in his courses, developing ME apps for the BlackBerry, the Centre for Mobile Education Research (which he helped found), the traits of the current generation of students, and more.

Run-time performance monitoring is critical to achieving and maintaining a well-performing system. In the article Run-time performance and availability monitoring for Java systems, the first in a three-part series, Nicholas Whitehead explains how to do low-level granular monitoring of Java performance efficiently. The data you generate can provide valuable insights into system operation and reveal constraints and influences that affect an environment's stability and performance.

In today's Weblogs, Evan Summers picks off some major topics in his blog On Computers, God, the Universe and UI. "What are the similarities and differences between "desktop" vs "web" programming? Is RIA the new desktop, and is UI declaration in XML with logic in Javascript, eg. Flex et al, the new UI lingua franca, preferred over DHTML/Ajax and GUI toolkits like Swing? What are the pain points of Swing programming, and how can we ameliorate them?"

Fabrizio Giudici updates his OpenJDK gotcha list in Still problems with OpenJDK.... "After fixing my trivial but severe error described in my previous post, other problems occurred with OpenJDK and blueMarine."

Finally, John O'Conner looks at Changing project encodings in NetBeans 6.5 M1. "I reported that NetBeans 6.1's project charset encoding feature would allow an unsuspecting user to destroy file data. That's still true...through no fault of NetBeans really. It's just a matter of fact -- if you start out with UTF-8 and and convert your project files to ASCII or ISO-8859-1 or any other subset of Unicode, you will lose any characters that are not also in the target charset."

In today's Forums,jslott announces the latest from the Wonderland project in Release Candidate 1 of Version 0.4 Now Available. "The Project Wonderland team is pleased to announce Release Candidate 1 of Version 0.4. This release represents a near-final version before the official v0.4 release is made. Community members are invited to download and test this version and report back any problems they find! Download Release Candidate 1 Binary. The Release Candidate 1 of Version 0.4 adds a number of new features over Version 0.3, including enhanced audio and telephony support, a PDF viewer, VNC viewer, video player, cone of silence, microphone platform, whiteboard, and in-world audio and video recorders. Release Candidate 1 of Version 0.4 also adds support for several new gestures (nodding, waving, and pointing) and also a single web page for launching the Wonderland client and world builder. We are grateful to the entire Wonderland community for their help and support getting this release candidate ready."

riepi has a followup question in Re: Scenegraph version in JavaFX. "Another Question: What version/build of Compiler is shipped the javafx-sdk1.0pre1? I always worked with the daily builds, but when i installed javafx-sdk1.0pre some of my tryouts didn't work any more... for example in latest builds there was a rename of TextField to SwingTextField but in javafx-sdk1.0pre it is still TextField. Should i work with SDK or the latest builds now?"

Finally, tarbo offers some scripting language advice in Re: Execute PHP Script from Java Code. "If the client has a PHP interpreter, you can call the interpreter from the Java runtime just like you would any other program. If there are libraries which allow PHP execution, you can use these with a native interface (though I'm not sure whether applets --even when signed-- would allow this). I'm thinking the best solution would be to check for Java libraries that implement PHP using the javax.script package. A Google search on "javax.script PHP" turns up a few hits that seem like they could be useful; you'd have to check whether they really are."

Current and upcoming Java Events :

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

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

Why you'd want to distinguish method calls only by return type  

Man You Gotta Get Up Blog

Posted by kfarnham Aug 4, 2008

Catching up with JavaFX Preview SDK and more

Your editor has been traveling for the past two weeks, while keeping the page refreshed every day (hopefully you couldn't even tell that I was in a mobile time crunch). Now that I'm back in my usual seat, with the 8-core CPU instead of the dainty two on the laptop, with the big keyboard and its satisfying key-bounce, I feel like I can catch back up.

The JavaFX Preview SDK release caught me a little flat-footed on Thursday, trying to get the page up from a hotel room before the family woke up. Maybe next time, they'll let us know about these big events before 2AM on release day. Be that as it may, I don't know if we got across the full importance of this release, and the many resources associated with it. This SDK is a real change for the Java community, coming out in two completely different forms: one targeted to developers, another for designers. As if that wasn't enough, there's a new podcast, a new style of Javadocs, whiz-bang demos (hey, this is Josh we're talking about), and a whole new language to boot.

Is it the future of the Java Desktop, or another way to get a completely different class of content developers Java enabled? Is it nearly ready, or does it have a way to go? Maybe the best way to answer these questions is to take a look yourself.

So let's put this week's Spotlighton the JavaFX Preview SDK, now available from The SDK comes in two forms, a NetBeans-based bundle for developers, or Project Nile, a set of tools and plugins for Adobe Photoshop and Adobe Illustrator. More information about using the SDK is available from the new JavaFX Blog, as well as the first episode of the This Ain't Your Dad's Java podcast.

Our bloggers also have a few things to say about the JavaFX Preview SDK release, as highlighted in today's Weblogs. In JavaFX Preview Releases -- A Chapter Closes, Tom Ball writes, "it's been quite a ride, which has been played out for the world to see on our project's email aliases and JIRA issue tracking system. There are still changes under consideration for the language and runtime for the 1.0 release, but the SDK is much more functional than its "preview" name suggests."

Joshua Marinacci recovers from JavaFX Preview SDK day and takes a look at how things stand 24 hours later. "Whew! Our launch of the JavaFX Preview SDK yesterday went pretty well. Only a few broken links which have since been fixed. After waking up at 5:30 am to turn on the new sites I spent most of the day monitoring weblogs and answering questions."

Meanwhile, Gary S. Weaver discusses techniques for Writing Java Applications that Work with Different Incompatible Versions of a Java API/Library. "It's a classic problem, but not many people talk about it. How can your Java app/library/plugin work with different versions of an API? Some options discussed..."

In Java Today, Kirk Pepperdine, a Java Champion and contributing editor to TheServerSide, takes a look at the substance of last week's release of the JavaFX SDK, asking in his blog JavaFX, are we there yet? "With this release, JavaFX finally becomes a little less vapor and a little more ware But the question remains, does JavaFX have what it will take to claim back the desktop in the face of stiff competition from the likes of Adobe and Microsoft?"

If you're a user (likeme), you may be interested in a blog on Quality Control at, which discusses how the personalized music site uses the Hudsoncontinuous integration engine and JMX to keep the service running. "We have over 30 internal projects that use Hudson and a few thousand tests which run over the code. Hudson comes with a web interface and can be configured to send email when people "break the build" (e.g. by making a change that causes a test to fail)."

The Aquariumannounces the Prelude to GlassFish v3: "Wikipedia defines a Musical Preludeas: The prelude can be thought of as a preface. It may stand on its own or introduce another work. Abhjit just announced that the next step in our road to GlassFish v3 is GlassFish v3 Prelude (announcement, Plan,Content). The above definition fits it well: it will stand on its own and it will introduce the full fledged GFv3 release."

We begin today's Forums section by catching up with an important announcement from last week. In Announcing FishCAT, a community Beta program, please join Fish CAT to find bugs, Judy Tang writes: "Welcome to the FishCAT - a GlassFish Community Acceptance Testing program. The main goal of this program is to provide opportunity to community to significantly influence the quality of the GlassFish as well as to get early feedback on stability and usability in GlassFish Beta testing cycle. We will start our first FishCAT program for GlassFish v3 Prelude. Now we need your help. If you have an experience with GlassFish and want to contribute some time and effort, please follow the section "FishCAT Process" at the end of this announcement and apply now!"

Dmitri Trembovetski corrects a perhaps misguided approach to VRAM use in Re: [JAVA2D] How to detect hardware acceleration?. "There's no way on Windows XP to do this. Translucent windows are done through GDI on XP, so no possibility of hardware acceleration beyond what we already do. Anyway, VRAM is not supposed to be accessed from by the CPU. The idea is that you upload the data there (preferably not very often) and let the GPU handle it (using shaders, or whatever), and then show it. On some architectures for some particular framebuffers there's advantage to writing directly to vram, but Windows isn't one of them. So just keeping your buffers in vram may not be the best way especially if your application requires per-pixel access. On Vista (where each window is pretty much a piece of offscreen video memory) there is a way to do translucent windows with full hw acceleration - that is, the data never leaves vram. We'll be looking into this for future releases."

Finally, Shai Almog addresses the shaky potential for supporting LWUIT on the RIM BlackBerry, in Re: TextField on the BlackBerry. "While we want to support the BB as much as feasible we are hindered by one of the worst MIDP implementations and an uncooperative company (RIM).Outside of north america it is physically impossible to buy a RIM device in most territories e.g. here... We have a device which is just not functional on our network, this means we can't even test any of the problems. So it is just not technically feasible for us to make this a priority platform. Since we integrated workarounds for several BB specific issues into LWUIT itself I think that indicates that we take the platform seriously but we are limited by technical reasons."

Current and upcoming Java Events :

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

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

Catching up with JavaFX Preview SDK and more  

No Sugar Mama Blog

Posted by kfarnham Aug 1, 2008

And not your Dad's Java either

Sun's Jenn Winger posts to the new JavaFX Blog to announce "This Ain't Your Dad's Java".

I wanted to share with you our podcast series called "This Ain't Your Dad's Java" that Eric Klein, our VP of Java Marketing and David Bryant, Sr. Director of Java Marketing host each week (along with me) to tell you all the latest in the world of Java.  Eric and Param Singh sat down last week to talk all things JavaFX so make sure to stop by iTunes and subscribe to our series."

Speaking of podcasts, the latest Java Mobility Podcast is Java Mobility Podcast 53: Campus Ambassadors and Sun Spots, in which Sun Campus Ambassadors Tom Martini Petreca and Lucas Torri talk about the Sun Campus Ambassador program and their work with SunSpots.

Meanwhile, the latest JavaOne Community Corner Podcast is j1-2k8-mtH02: Kepler's Orrery, by Simran Gleason. Kepler's Orrery is a generative music system that uses gravity equations to "compose" and play music. Start with planets (or stars or particles) that each have mass, position, and velocity, then run a n-body gravity simulator to make them move. They attract each other, accelerate, swirl around, and slingshot off each other. Sometimes they collide, and that's what plays the music.

Also in Java Today, Robert Lougher has posted the results of an Embedded JVM comparison: "Buglabs have done a comparison of open-source JVMs on their embedded ARM platform (the BUG, based on an ARM1136JF-S core). The tested VMs were PhoneME advanced, Cacao and JamVM. The results are very interesting : comes out the fastest, followed by PhoneME and then Cacao. On startup time, JamVM also comes out top (3 ms), followed by Cacao (12 ms) and PhoneME (16 ms)."

Sprint recently announced the Instinct Java Developer Contest, the communication giant's first ever developer competition and focused solely around the Samsung Instinct, its new touch-screen phone. To support the contest, Sprint has made available a series of quick start guides, including one for developing with its WTK and the NetBeans IDE. The Instinct Java Developer Contest is open to all qualifying individuals with great ideas for applications showcasing the Samsung Instinct device. The winner will receive a Grand Prize of $20,000 cash and a free membership to the Sprint Professional Developer Program (PDP). Contest deadline is August 29.

James Gosling announces the JavaFX SDK launch in today's Weblogs. In Come and get it! Hot off the grill: JavaFX, he writes, "the preview release of JavaFX is now available, along with libraries, samples, documentation and some early tools. If you like to make pretty things fly around on the screen, this is a pretty tasty piece of work. It really shows what Swing and Java2D can do."

In his blog, Laird Nelson works through a problem with Nimbus and Opacity. "Want a text field with a non-opaque background when using Nimbus? Read on."

Finally, Simon Morris wonders what to do When Buzzwords Go Bad. "What does it all mean? Seems nobody really knows, not when it comes to Rich Internet Applications anyway! The term is now so diluted, polluted, mutated and contorted, even its own mother wouldn't recognise it! Do we need a RADICAL solution?"

The latest Poll asks "Are you going to download the JavaFX SDK?" Cast your vote on the front page, then check the results page for current tallies and discussion.

In today's Forums,stanhirsh asks about Drag 'n Drop in the JavaFX SDK. "Is there some D&D functionality in the SDK ? Is it possible to make an object draggable and to enable another object (e.g. a simple rectange) to to recieve drops and broadcast onDrop events?"

wildfirexy complains rather bitterly about the initial platform support for the JavaFX SDK in Evaluation SDK not available on Linux. "I really want to invest time in javafx. Except the "evaluation sdk" is only available under MacOSX, and Windows. What the hell is the point of making something "cross-platform" but favoring only commercial operating systems? Maybe we should all abandon Linux, go back to Windows and allow Redmond to decide what should be on our desktops, suffer many more years of flaky and unstable applications."

Finally, fatbatman asks Any Facebook users please test our application. "To all facebook users out there, please test our applet with update 10; It's a kind of game, chat room, dating, virtual world, thing. It's new so don't expect to see many other users there. It's one the most advanced facebook application there is and one of the few that uses Java applets. [...] For any Mac users we haven't been able to test it on this platform so let us know if it works or not."

Current and upcoming Java Events :

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

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

And not your Dad's Java either  

Filter Blog

By date: