Skip navigation

Joe Darcy posted Project Coin: The Final Five (Or So) late last week. Joe also posted the content of this blog on the coin-dev mailing list, which Remi Forax references in his insightful post The seven small languages changes that will be in JDK7.

Here are the changes accepted for inclusion in JDK 7:

Joe notes that:

The specification, implementation, and testing of these changes are not final and will continue to evolve as interactions are explored and issues cleared.

Remi found the final list a bit surprising:

About Language support for collections, hum, I was a complete surprise for me, knowing that Joe said more than one time than only 5 proposal will live in jdk7.

He also notes the looming deadline:

The deadline is short, end of October, I think help of the community is needed so if you want to see a better support for collection in Java, join us on coin-dev list and help to define/implement this feature.

Joe takes the time to talk about three proposals that went through further consideration, but were not ultimately accepted for inclusion in JDK 7:

About improved exception handling, Joe notes:

Improved exception handling would be a fine change for the language, but it ventures near the type system and we do not estimate we have resources to fully develop the feature within JDK 7. I would like to see improved exception handling reconsidered in subsequent efforts to evolve the language.

In Java Today, Joseph Darcy has posted Project Coin: The Final Five (Or So) : "First, thanks to all those who submitted interesting proposals and thoughtful comments to Project Coin; a demonstrably vibrant community wants to evolve the Java programming language! Without further ado, the final Project Coin changes accepted for inclusion in JDK 7 are..."

Robert Eckstein has published a new article on the Sun Developer Network, Mixins in JavaFX 1.2 Technology: "With the release of version 1.2 ofJavaFX technology, developers have a new style of class inheritance: a mixin. A mixin is a type of class that can be inherited by a subclass, but it is not meant for instantiation. In this manner, mixins are similar to interfaces in the Java programming language. However, the difference is that mixins may actually define method bodies and class variables in addition to constants and method signatures..."

peligri announces the availability of New Webinar Recording: Load Balancing GlassFish Clusters: "Last month, John and Shreedhar gave a free webinar on High Availability through Load Balancing of GlassFish Clusters. The presentation was well attended, see posts from John and from an attendee, Daniel-Noz, and the recording of the webinar is now available.


In today's Weblogs, I point out Michael Huttermann's Upcoming Devoxx Presentation: "Michael Huttermann announcesthat his upcoming Devoxx 2009 presentation is now online. Michael's presentation will take place on Devoxx Conference Day 2, Thursday, November 9, 2009, in the afternoon at 16:40."

Arun Gupta provides TOTD #99: Creating a Java EE 6 application using MySQL, JPA 2.0 and Servlet 3.0 with GlassFish Tools Bundle for Eclipse:

TOTD #97 showed how to install GlassFish Tools Bundle for Eclipse 1.1. Basically there are two options - either install Eclipse 3.4.2 with WTP and pre-bundled/configured with GlassFish v2/v3, MySQL JDBC driver and other features. Or if you are using Eclipse 3.5, then you can install the plug-in separately and get most of the functionality. TOTD #98 showed how to create a simple Metro/JAX-WS...

And Remi Forax talks about The seven small languages changes that will be in JDK7:

Joe Darcy has revealed the changes accepted to be included in JDK7 on coin-dev mailing list And the final Project Coin changes accepted are: Improved Type Inference for Generic Instance Creation (diamond) Simplified Varargs Method Invocation Strings in switch An omnibus proposal for better integral...

In the Forums,martinezmj is seeing issues with Java3D & Snow Leopard: "I had a Java3D application break on me when I tried it in Snow Leopard. It turned out com.sun.j3d.utils.behaviors.mouse.MouseWheelZoom is no longer present in j3dutils.jar installed by default in OS X. It was in Leopard. There appear to be other..."

rjlanc responds Re: Client cell rendering issue rev 3336: "We see the problem for drag and drop but using the menu load we are able to bring in a model. Aug 28, 2009 2:17:37 PM org.jdesktop.wonderland.client.jme.dnd.DragAndDropManager$JmeDropTarget drop WARNING: Got Drop Target..."

And km responds Re: Remote Web Application Deployment/Control: "v2 or v3? In either case, you should be able to stop/start an app by using "asadmin enable app-name" command..."


In the current Spotlight, the java.net Java Communications Community announces that SIP Communicator now supports file transfers: "The SIP Communicator project is proud to announce that it now supports file transfer for most protocols supported by SIP Communicator. Starting from build 2002 SIP Communicator users would be able to share files via the XMPP, MSN, Yahoo! Messenger, ICQ and AIM protocols. You can download the application at http://download.sip-communicator.org This implementation is part of an effort funded by the NLnet foundation. However, early research on the subject started long ago and many have contributed."


The current java.net Poll poll asks "Which aspect of java.net occupies the most of your time?"Voting will be open through early Friday.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 86: Mobile Service Architecture 2: Introducing New Features in Mobile Devices: "Kay Glahn from Vodafone Group R&D and Erkki Rysa from Nokia share the new features in MSA2 in this abbreviated feature from JavaOne."


Current and upcoming Java Events:

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


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



Michael Huttermann announcesthat his upcoming Devoxx 2009 presentation is now online. Michael's presentation will take place on Devoxx Conference Day 2, Thursday, November 9, 2009, in the afternoon at 16:40.

The Java Tools Community Newsletter Issue 202 introduces three interesting new projects: scalalab, zipsync, and alefpp.

scalalab

The scalalab project:

aims to provide an efficient scientific programming environment for the Java Virtual Machine. The scripting language is based on the Scala programming language enhanced with high level scientific operators and with an integrated environment that provides a Matlab-like working style. Also, all the huge libraries of Java scientific code can be easily accessible.

At the project's core is the ScalaSci scripting engine, which resolves method calls at compile time. In testing, the scripting code has accomplished speeds close to native Java, and about 20-40 times faster than equivalent Matlab .m scripts.

An initial version of scalalab is currently available for download. The project uses the BSD license.

zipsync

The zipsync projectprovides a development tool that:

synchronizes the contents of zip/.war/.ear files on two different servers to minimize upload times. Very useful when you are repetitively uploading or downloading the same zip file, yet that file is mostly the same as the last transfer. This tool just transfers the parts that have changed and syncs the content of the zip file.

The tool is similar to the Unix rsync command. Binary releases are currently available. The project is licensed under the Common Development and Distribution License.

alefpp

The alefpp projectseeks to create a new Java scripting programming language (alef++) that has syntax somewhat similar to Perl and Lisp. The project's owner is interested in artificial intelligence, and this may ultimately play a role in the development of the new language. The project is licensed under the Artistic License.


In Java Today, James Gosling writes about NFS on Snow Leopard:

I don't know what it is about Apple and NFS, but they keep moving things around. The new UI to NFS mounting is much nicer than it was before, but it's now in a totally different place: the Disk Utility. But if you use a lot of NFS file systems, it's a pain to have to mount them one by one: ignoring the UI and using the /net automount filesystem is...

The java.net Java Tools Community has published Java Tools Community Newsletter - Issue 202: "A new edition of the newsletter is available, with news, new projects and tips! If you want to receive the newsletter by email, please subscribe the announcements mailing list - or read the current issue here."

Danny Coward provides an updated JavaFX Roundup: "From this detailed article about the new mixin feature in the language that replaces the potentially slow multiple inheritence, to a episode three of a continuing series about a new MVC based framework for building form based applications in JavaFX, there's been lots to say about JavaFX in the last week or so. A couple of new games zoomed into view. As have some deeper reviews of JavaFX..."


In today's Weblogs, Java Champion Alan Williamson posted "A Simple Java class for Amazon SimpleSQS": "With such a beautiful service such as theAmazon Simple Queue Service, it shouldn't be wrapped up with a lot of complicated layers of classes for utilizing. That is why I developed the simple POJO, single class method for utilising Amazon SQS from within Java..."

Carol McDonald discusses JPA Performance, Don't Ignore the Database:

Good Database schema design is important for performance. One of the most basic optimizations is to design your tables to take as little space on the disk as possible , this makes disk reads faster and uses less memory for query processing. Data Types You should use the smallest data types...

Remi Forax posted Diamond at the gate:

Maurizio Cimadamore has just push a patch that enable to use diamond syntax to instantiate a generics. The diamond syntax is one of the changes introduced by the coin project and is the first one introduced in jdk7 repository. The diamond syntax allows to instantiate a generic type without specify the type argument, the compiler will infer them using the context. In the...

In the Forums,shame is getting a glassfishv2 error 500 admin console acces: "Hallo I use glassfishv2, ubuntu, netbeans 6.7 . When I want to go on web admin console I get: error 500 javax.servlet.ServletException: PWC1391: Servlet.init() for servlet FacesServlet threw exception. here is some info from log: ..."

rrr6399 has a problem where Sun Glassfish Enterprise Server Installation Wizard freezes at 75% (LBP): "Hi, I've tried to install the Sun Glassfish Enterprise Server v2.1 ( sges_ee-2_1-linux.bin) on two linux machines now and both locked up at 75% during the "installing Load Balancing Plugin" step. I am using java 1.6.0_16 and the..."

And joersch has a question regarding Gradient definition in Ant Task (v.1.2.1): "Hi Shai, Hi Chen, i see you have fixed the issue #173. Some test with the new version look very promising. Thanks for. I tried now to define gradients in the confFile:Menu.bgGradient=102,10066431,1.0,1.0..."


In the current Spotlight, the java.net Java Communications Community announces that SIP Communicator now supports file transfers: "The SIP Communicator project is proud to announce that it now supports file transfer for most protocols supported by SIP Communicator. Starting from build 2002 SIP Communicator users would be able to share files via the XMPP, MSN, Yahoo! Messenger, ICQ and AIM protocols. You can download the application at http://download.sip-communicator.org This implementation is part of an effort funded by the NLnet foundation. However, early research on the subject started long ago and many have contributed."


The current java.net Poll poll asks "Which aspect of java.net occupies the most of your time?"Voting will be open through early Friday.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 85: Migrating Your Midlets to JavaFX Mobile Technology: "Highlights from the JavaOne session TS-4506 with hints & tips on migrating your Java ME applications to JavaFX Mobile."


Current and upcoming Java Events:

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


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



Java Champion Alan Williamson posted "A Simple Java class for Amazon SimpleSQS": "With such a beautiful service such as theAmazon Simple Queue Service, it shouldn't be wrapped up with a lot of complicated layers of classes for utilizing. That is why I developed the simple POJO, single class method for utilising Amazon SQS from within Java..."  

The results of the java.net poll suggest that the Java Store and Java Warehouse are in an "early adopter" phase, where there is interest and participation by a smallish group of innovators, with a larger group of people watching and waiting.

The poll actually ran twice: one week on the previous java.net infrastructure and one week on the new infrastructure. The results were pretty similar in both instances of the poll. Here, I'm reporting numbers from the second instance. The poll question and results were:

Do you plan to start using the Java Store and Java Warehouse?

  • 2% (3 votes) - Yes, I've already submitted software
  • 9% (12 votes) - Yes, it's a great way to distribute software
  • 5% (7 voters) - Yes, I'll probably get softwre through the store
  • 12% (16 votes) - I'm waiting to see if it catches on
  • 26% (35 votes) - Not until Linux is supported
  • 28% (37 votes) - No
  • 18% (24 votes) - I don't know; other

Combining some of the categories, we find that 16% of the votes were cast for some kind of "Yes" answer; 38% of the votes represent people who are watching and waiting; meanwhile, 28% are already certain they will not use the store and warehouse; and 18% either don't know if they'll use it, or they have a different answer.

In the first instance of the poll, on the prior platform,afishionado posted a comment titled "Not until Linux is supported":

I develop on Linux exclusively, so I'm in the camp waiting for that. I'm curious why support is only happening [on] one or two platforms at at time--is WORA really so hard that even Sun can't do it internally?

I'm also surprised "Not until my country is permitted" is not an option in the poll. I'm a US citizen, so it's not an issue for me, but surely not everyone on java.net is?

Yes, that second paragraph is a nice catch. I really should have included "Not until it's available in my country" as an option. It could be that many of the people who selected "I don't know; other" would have selected that option. If that's actually the case, then the size of the group that is watching and waiting gets bigger, perhaps approaching 50%.

Hence, to me, it looks like the Java Store and Java Warehouse projects are in a classic "early adopter" phase. You've got a relatively small (percentage-wise) group of people who are very interested, some of whom are already actively participating. Then, you've got a much bigger group that is interested enough to watch what's happening, and who express an intention to join in should certain obstacles be addressed and if various things develop the way they'd like to see them develop. Then, even though the project is new and beta, you already have people who have no intention to participate. And there are others who don't know if they'll eventually participate or not, some of whom probably don't really know much about the project in question (they may have heard the names, but not investigated it).

New poll: where do you spend time on java.net?

Our new poll asks "Which aspect of java.net occupies the most of your time? The choices are projects, communities, forums, reading content, and other. Voting will be open through early Friday next week.


In Java Today,maxkatz writes about "Enterprise JavaFX: Our Experience Building a JavaFX UI for a Seam Booking Application":

JavaFX is new tool set for developing and delivering Rich Internet Applications or RIAs. JavaFX 1.0 was released in December 2008, and JavaFX 1.2 was released in June 2009. As these new releases have rolled out, the JavaFX community has been growing fast. This growth has produced a large selection of resources, articles, blog posts, books, and extension projects. This article, authored by Anton Polyakov, Senior Developer at Exadel, describes our experience building a JavaFX front end for a Seam booking application.

peligri announces Patch 4 for GlassFish v2.1 Now Available:

The latest sustaining (for-fee) release of the GlassFish Server is now available: GFv2.1p4fixes 14 new bugs. GFv2.1p4 is also a patch release (p10) for the earlier GFv2U2; collectively all the patch releases in that family addressed 184 bugs.

Adam Bien points us to a poll on the CertPal site that asks you to selectyour favorite Java IDE.


In today's Weblogs, I'm highlighting some interesting posts from other sites (though in at least two of the cases, the post is written by a member of the java.net community). First, Tony Epple posted Simplest possible Drag&Drop implementation for Visual Library:

Two days ago I blogged about how to create a new ExplorerView by Combining ListView and ChoiceView. Today I'll show you how to use this view as a palette for a Visual Library scene. It's very simple, AbstractNodes already implement everything needed for this. In the NestedListView -as in any ListView- dragging is enabled with this line: ...

Also, the java.net Mobile and Embedded Community pointed out Shai Almog's post about New Stuff In LWUIT (Version 1.2.1):

Due to the update on Java.net and various updates going around some news got lost a bit in the past couple of days. Most importantly, we just released LWUIT 1.2.1 which is a bug fix release that addresses some of the issues in the current drop mostly in the Ant task which we have no other way of delivering (since it isn't yet open source).

Another thing that was probably lost is a release of our internal BlackBerry port of LWUIT, based on many fixes from Thorsten Schemm it is still not as mature as his LWUIT-incubator port neither in terms of usage or in terms of stability/functionality. We are working to converge the best approaches from both ports and create a single functional port in the long run...

Fnially, Matt Raible recently posted My Experience With Java REST Frameworks (Specifically Jersey and CXF):

Recently I was tasked with developing a server-side REST strategy for a client. When I started working with them, they were using GWT RPC for exposing services. They wanted to move to RESTful services to allow for a more open platform, that multiple types of clients could talk to. There were interested in supporting SOAP and GWT RPC as well, but it wasn't required. They are using Spring, a custom namespace (for easily creating remote services) and an HTML documentation generator to expose their API in human readable form...

In the Forums,melkortenk asks about One MessageReciever for all messages?: "I'm trying to add a messageReciever to a channel which should handle all messages which extend a certain abstract class TopCellMessage. the code looks like this: ..."

gaganmalik is seeing a feature MR4 build error: "Hi, I was trying to build the MR4 release for windows i386 and getting the following error in the last step - for building "phoneME Feature Software Reference Port":make[1]: Entering directory..."

And weslee3 has questions about Glassfish V3 and Liferay: "I installed Glassfish V3 as a standalone package, and my plan is to runLiferay. I finally configured Liferay so that Glassfish would actually deploy the Liferay application. I set the context to "/" so that it would run at the root of my..."


In the current Spotlight, Danny Coward invites us to participate in a Deep Dive on JDK 7: "The Janitor joined Ed Ort for a Deep Dive on JDK 7, check it out here. Really given how much is going into JDK 7, its perhaps more of a flyover and swoop, but, if you need to catch up with the plan, take a look."


The next java.net Poll will be posted soon, once the dust from the java.net infrastructure transition has settled.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 85: Migrating Your Midlets to JavaFX Mobile Technology: "Highlights from the JavaOne session TS-4506 with hints & tips on migrating your Java ME applications to JavaFX Mobile."


Current and upcoming Java Events:

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


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



Tony Epple posted Simplest possible Drag&Drop implementation for Visual Library:

Two days ago I blogged about how to create a new ExplorerView by Combining ListView and ChoiceView. Today I'll show you how to use this view as a palette for a Visual Library scene. It's very simple, AbstractNodes already implement everything needed for this. In the NestedListView -as in any ListView- dragging is enabled with this line: ...

The java.net Mobile and Embedded Community pointed out Shai Almog's post about New Stuff In LWUIT (Version 1.2.1):

Due to the update on Java.net and various updates going around some news got lost a bit in the past couple of days. Most importantly, we just released LWUIT 1.2.1 which is a bug fix release that addresses some of the issues in the current drop mostly in the Ant task which we have no other way of delivering (since it isn't yet open source).

Another thing that was probably lost is a release of our internal BlackBerry port of LWUIT, based on many fixes from Thorsten Schemm it is still not as mature as his LWUIT-incubator port neither in terms of usage or in terms of stability/functionality. We are working to converge the best approaches from both ports and create a single functional port in the long run...

Matt Raible recently posted My Experience With Java REST Frameworks (Specifically Jersey and CXF):

Recently I was tasked with developing a server-side REST strategy for a client. When I started working with them, they were using GWT RPC for exposing services. They wanted to move to RESTful services to allow for a more open platform, that multiple types of clients could talk to. There were interested in supporting SOAP and GWT RPC as well, but it wasn't required. They are using Spring, a custom namespace (for easily creating remote services) and an HTML documentation generator to expose their API in human readable form...

peligri reports on GlassFish v3 Monitoring - DTrace, REST and More... in a post highlighted in today's java.net Java Today:

Prashanth has written a detailed description of the new monitoring framework in GlassFish v3...

I took a look at Prashanth's post, which he titled, simply, Monitoring in GlassFish v3.

http://java.net/sites/default/files/Monitoring_V3_Arch_Diagram-Final_sml.JPG

Prashanth organizes his presentation into an article-style format, with an outline at the top containing links to the main sections below. In case you want to jump right in, here's the outline (with the links included):

  1. Introduction
  2. DTrace*
  3. Scripting Client*
  4. eXtending Probes using XML (XP-XML)
  5. Other Clients
  6. Architecture
  7. References

Perhaps the most significant sentence for GlassFish users who are still using editions that predate Version 3.0 is the very first sentence in Prashanth's Introduction:

Monitoring in GlassFish v3 has taken a huge leap when compared to the earlier versions.

What follows, as peligri notes, is detailed description of the new monitoring features. In summary, GlassFish Version 3.0 provides:

a way to dynamically and non-intrusively generate monitoring events from any of the glassfish runtime classes, the ability to listen to these events, collect the statistics and expose these statistics through various standard clients.

Debugging issues in large enterprise-level systems is never easy. Inevitably, the operational system represents a vast interweaving of instantiated events, requests, responses, triggered actions, scheduled jobs, etc. When everything's working fine, that's great, you just need an operator to monitor things.

However, in my experience with large operational systems, it's possible for something to "stop working" without providing any visible sign that even a fairly experienced developer would notice, never mind an operator whose duty it is to perform basic maintenance and monitoring functions using the system's UI console and pages.

And the bigger the operational system, the more possible this becomes. Also, the longer the system has been operational, the smaller the development team may become (except when major enhancements or extensions of the system are required).

All of this makes automated monitoring capability essential, when a smallish development team has to keep a large system operational, quickly identifying, diagnosing, and correcting problems as the arise. The new monitoring capabilities in GlassFish v3 are a major step in assisting GlassFish development teams in accomplishing these objectives.


In Java Today, the Java ME SDK team answers the question What's going on with Mac version?:

That's a question we have got a lot of times. It was answered here and in different forums, describing why it take some time to release Mac version so I'm not going to write the reasons again. Today I'm going to show you something behind the scene. We are running Scrum process while developing Java ME SDK. Next two pictures were taken at the end of our latest sprint.

The first pictures shows our office board with table of stories and their tasks. As you can see we finished all tasks...

Java Champion Adam Bien asks Does Loose Coupling Always Result in Code Duplication?:

Per its very nature - it has to. Loose coupling aims for making functional units independent of each other. This is only possible with the introduction of a level of indirection.

The thinnest possible layer is an ordinary Java interface, the heaviest one - a WSDL. The mechanics of decoupling are simple as well: a neutral contract is the boundary between the provider and the consumer...

Peligri writes about "GlassFish v3 Monitoring - DTrace, REST and More...":

Prashanth has written a detailed description of the new monitoring framework in GlassFish v3, which includes descriptions of the basic concepts of probes, probe provider and probe listeners.

Probe providers include both class-based and XML-based providers, where the framework will automagically create a provider without requiring modifications to the existing code. Probe listeners are called from the providers to produce the desired information; for example statistics are generated by StatsProviders.

Prashanth's note also describes...


In today's Weblogs, Ramesh Parthasarathy talks about Multihoming with SailFin - Traffic separation: "High availability in SailFin can be achieved by deploying a cluster of instances and configuring the load balancer and the replication modules as per the user's needs. Apart from the basic configuration of these modules, SailFin (2.0) also allows users to separate the intra-cluster traffic (resulting from the load-balancer, replication and the group management service modules) from the external..."

Arun Gupta provides TOTD #98: Create a Metro JAX-WS Web service using GlassFish Tools Bundle for Eclipse: 'Now that you've installed GlassFish Tools Bundle for Eclipse 1.1, lets use this bundle to create a simple Metro/JAX-WS compliant Web service and deploy on GlassFish. These steps will work with either Eclipse 3.4.2 or 3.5 with WTP Java EE support. Lets create a simple "Dynamic Web Project" as shown below: Name the project "HelloMetro" and take all other defaults: Click on "Finish" to...'

And Ludovic Champenois is spending Thursday at GooglePlex for an Eclipse Day: "Bonjour, Comment Java? This coming Thursday(08/27/09) 'll be at GooglePlex (Mountain View) for an Eclipse Day...The entire genda is at http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2009. 2 presos seem to be very interesting so far: OSGi for Eclipse Developers Deploying Successful Entreprise Tools and possibly others...The Google crowd is impressive. There is a waiting list for..."


In the Forums,balamurali_ippili posted Help Needed: Jsf Date converter Error with <h:outputText>: "Hi I have a requirement in which I am having in which the value will give a date in this format '2009-08-24'. and I am not using any date converters here but by default it is converting this date to..."

luisangelgh72 asks How can I get involved into a project...: "I just got certified on SCJP 6 and I would like to collaborate on a Java Open Source project in order to get hands-on Java applying my acquired knowledge and learning many more things (I am not currently using Java at work). I would like to get involved..."

And fcigognini is seeing issues involving IIS + sun-passthrough.dll + GlassFish Mutual Authentication: "Hi All, I am struggling to get this working, and would be grateful if anyone could provide some insight please. [Configuration] 32-bit Windows 2003 Server with IIS 6.0 (tried both with IIS running in IIS 5.0..."


In the current Spotlight, Danny Coward invites us to participate in a Deep Dive on JDK 7: "The Janitor joined Ed Ort for a Deep Dive on JDK 7, check it out here. Really given how much is going into JDK 7, its perhaps more of a flyover and swoop, but, if you need to catch up with the plan, take a look."


The next java.net Poll will be posted soon, once the dust from the java.net infrastructure transition has settled.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 85: Migrating Your Midlets to JavaFX Mobile Technology: "Highlights from the JavaOne session TS-4506 with hints & tips on migrating your Java ME applications to JavaFX Mobile."


Current and upcoming Java Events:

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


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



There is some understandable confusion over the changes that have taken place on the java.net site starting this past weekend. The changes consist primarily of switching significant portions of the underlying infrastructure from a platform that was custom built by O'Reilly quite a few years ago, to a much more modern, modular, widely used platform. Stage One, which got underway this past Friday, is to make the platform switch and successfully migrate more than six years of java.net content from the old O'Reilly platform to the new infrastructure.

It's a big undertaking, that required lots of developer time (building migration scripts to convert data from the O'Reilly database structures into the structures in the new database, customizing the user interface in the new CMS to "be" the java.net we've had previously, etc.). If you're not noticing many differences between your java.net circa this week compared with your java.net circa last week, then the migration and transition has largely succeeded.

So, then, it's proper for you to ask: "So, what's in it for me? Why are you making such a big thing out of this, when nothing's changed for me?"

Well, first, I can assure you that we didn't do all this work just to entertain ourselves, and provide us with lots of overtime hours for months on end! We are doing this, indeed, for the java.net community. That's the only reason it's happening.

The entire point of this infrastructure change is to facilitate changes that will make java.net more useful for the community. As we all know, a big problem with a large custom built software system is that a large developer team is needed to maintain and update it. As I said recently, O'Reilly Media is not a software engineering firm. We developed a CMS platform that met a need starting six years ago. Would any of us expect that platform, which hasn't changed all that much over the years, to be ideal for java.net's needs today? I certainly wouldn't.

So, the choice was to either continue with an old platform that cannot be readily updated, or migrate to a new, modern platform. The latter option was chosen by the java.net managing team (which, by the way, does not include me -- though I completely agree with their decision).

The chosen method for migrating to the new platform is exactly the one I would have chosen, had I been in charge of the effort: first, move to the new platform and migrate all the content from the old servers, keeping the site as much intact as possible. Don't lose data, don't lose functionality. In a few spots (communities, for example), some new features were put into place during the initial transition; but for the most part, the objective was: move to the new platform and migrate the old content without breaking the site.

So, now we've basically accomplished that (though we're still working on multiple outstanding issues). There are new, faster servers now, with additional hardware still in the near-term pipeline. This, combined with tuning of the new infrastructure instantiation, should ultimately lead to much better site performance. Once we and the more active members of the java.net community are satisfied that the site is stable and usable, we'll be able to move ahead with enhancements.

Speaking of which: now that java.net is hosted on a much more readily adaptable platform, are there specific changes/improvements that you'd like to see? Let me know. Many things that were not possible a week ago (because they would have required an inordinate, budget-breaking software engineering effort) are now possibilities that can realistically be considered for java.net's future.


In Java Today, Peter Varhol announces that TheServerSide Java Symposium Call for Papers is Open:

TheServerSide Java Symposium (TSSJS), a community event focusing on current and emerging technologies in the Enterprise Java space, has opened its call for presentations for TSSJS Vegas 2010. TSSJS Vegas takes place in Las Vegas, Nevada, USA on Wednesday-Friday, March 17-19, 2010.

TSSJS's mission is to advance the Enterprise Java platform, propagate industry-wide best practices, and provide a forum for the Java community to engage in forward-thinking discussions...

Java Champion Alan Williamson provides analysis of some significant news in "Amazon Virtual Private Cloud Is Announced":

Amazon is again moving the cloud world forward a number of notches. Just as soon as the competition catches up, they hit the TurboButton and shoot forward leaving the rest of them in their dust. Today they have announced one of the biggest features to date, I believe, of their AWS offering. The ability to run a virtual private cloud within their public cloud offering...

Danny Coward looks "Under the hood with Garbage First" in his latest post:

There's an interesting article over at Dr Dobbs about the new Garbage First collector, scheduled for prime time in JDK 7, and currently available to try out as an optional collector in the Java SE 6 update releases. Published experiences with this new memory management technique for Java are rare, though some have had good results.

In today's Weblogs, Kumar Jayanti talks about Configuring Non-JKS KeyStore with GlassFish V3: "The Java KeyStore API supports multiple keystore formats which include JKS( the default Java KeyStore), PKCS12, PKCS11 etc. By default when GlassFish V3 is installed the default Keystore Type is JKS and the server keystore (keystore.jks) is located in the domain config directory. With latest GlassFish V3 builds it should be possible to define a different KeyStore Type such as PKCS11 or..."

Jean-Francois Arcand provides Tricks and Tips with Comet part 1: The Browser difference: "Writing Comet application is more and more simple, thanks to framework like LIft and Atmosphere. On the Client side, the difference between Safari, Opera, Firefox, IE and Chrome can make your application completely unresponsive or broken. Of course, there is some tricks to make it work. First, if you are new to Comet, I recommend you take a look at this introduction. For this serie, I will use my..."

And Fabrizio Giudici is offering instruction on Mercurial Best Practices: "I've prepared a document that describes how to work with my projects and Mercurial. It is available here. While it is not meant as a replacement for Mercurial tutorials, it has been written also for Mercurial newbies. Comments welcome - also here (so I can see how comments work with the new Java.Net platform ;-)."


In the Forums,mobility has a ComboBox Issue: "HI. am new to LWUIT. Using 1.2. My combobox doest seem to be rendering correctly. I have 2 items and is vertical. But the i can only see one item when i click on the combobox. the gap between two items seems to be more than..."

m_santh has questions regarding the Network interface on OCAP: "Hi, I am new to writing OCAP applications. I am currently trying to understand the specs. Wanted to check if I have a server running on my Windows PC, can I write an Tru2way applications which can talk to server on PC. From my initial study..."

And benus_ying asks how to connect to a private RDV?: "Hi all. I have come across a problem. the scenario is that there are a public rdv in internet and i want to create a private rdv in my private subnet. this private rdv is for a sub peer group and communicated with the public rdv. then. i want a..."


In the current Spotlight, Danny Coward invites us to participate in a Deep Dive on JDK 7: "The Janitor joined Ed Ort for a Deep Dive on JDK 7, check it out here. Really given how much is going into JDK 7, its perhaps more of a flyover and swoop, but, if you need to catch up with the plan, take a look."


The next java.net Poll will be posted soon, once the dust from the java.net infrastructure transition has settled.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 85: Migrating Your Midlets to JavaFX Mobile Technology: "Highlights from the JavaOne session TS-4506 with hints & tips on migrating your Java ME applications to JavaFX Mobile."


Current and upcoming Java Events:

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


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



Today is Day Two for the new java.net infrastructure. An enormous amount of small to medium sized tweaks, fixes, and nudges were accomplished yesterday by the Cognisync development team, which constructred the new platform (have you noticed that their icon now sits next to the CollabNeticon at the bottom of this page?). I can't say that I myself have contributed any fixes, but I've at least tried to be part of the QA staff in the past month, and now. Working with the Cognisync and CollabNet teams, and also with my O'Reilly friends leading up to and during the transition, has been great.

I've been through plenty of platform migrations/transitions in the past -- none quite as big as this one, though. As I said yesterday, that we were live and running, with the majority of reported problems being page formatting issues, was to me a testament to excellent preparation in advance of the transition from all of the teams involved. There were some download issues at first, but those were addressed yesterday. There are still a few other outstanding issues that are not purely page format related. But, overall, day two begins with a much cleaner plate in terms of issues than what we had yesterday at this time.

As for myself, I'm still getting used to how this all works, or is supposed to work, from an editor's standpoint. But, I'm definitely getting close to being able to resume my regular duties, writing blogs that aren't about the new infrastructure itself, working on new articles, etc.

Sometimes a new underlying platform surprises you, with unexpected "features" -- like the one that kept removing the forum posts that I had posted to the java.net home page. If you interact with the "feature" in a way that differs from how the platform developers thought you'd want to interact with it, strange results may ensue. I don't think we have that one entirely figured out yet. So, if you see a changing "Forums" section on the home page in the next day or two, you'll know that we're still working on understanding just how to make that aspect of the platform do what we want it to do.

The poll still hasn't been changed. I'll resume the weekly schedule of a new weekly poll this Friday.


In Java Today, Mario Fusco writes that lambdaj 2.0 brings (almost) real closures to Java: "Closures represent probably the most important feature that is missing in the tools box of each Java programmer. Some of them don't feel (or don't understand) the need of closures, while some other does and probably for this reason are evaluating to migrate toward a functional enabled programming language. The biggest part of us just learned to partially workaround this lack by using the verbose and poorly readable (anonymous) inner classes..."

Adam Bien posted NetBeans 6.8m1 + Wicket - First Smoke Test: "1. Wicket Plugin is not available from the Plugin Manager for Netbeans 6.8m1 yet. You have to download it directly. 2. The download (http://plugins.netbeans.org/PluginPortal/, search for Wicket) and installation are easy. You have to extract the zip file and point the Plugin Manager to the directory. After IDE-restart you are ready to go. 3. An existing Wicket-Project was "recognized" correctly. wicket:ids were recognized. You can jump from the wicket:id in HTML into the corresponding Java-file..."

mxc4 writes about Integrating BIRT into Your Maven Build - A Work In Progress: "When ever I undertake a project I always looks for an opportunity to use at least one new technology so as to continually increase the number of tools I have in my toolbox, so for a recent project I took the opportunity to use BIRT, the Eclipse's reporting engine. In the past, before Birt was available, I had made use of JasperReports. The biggest challenge I found with Jasper Reports at the time was the visual report designer..."


In today's Weblogs, Fabrizio Giudici announces BetterBeansBinding *is* now really in the Central Maven Repository: "So I'm taking the chance of this event for my first blog post with the new Java.Net infrastructure. It sounds as there have been issues yesterday, but I was on a cultural/gastronomic tour in Val d'Orcia and I only worked with my netbook for writing down some offline documentation - and today it sounds as most of the problems have been fixed. Well, I suppose I'll know that when I push..."

Arun Gupta provides TOTD #97: GlassFish Plugin with Eclipse 3.5: "A new version of GlassFish Tools Bundle for Eclipse (ver 1.1) was recently released. The build contains Eclipse 3.4.2 IDE with WTP Java EE support GlassFish v2.1 pre-registered and configured GlassFish v3 Prelude pre-registered and configured JavaDB sample database pre-registered and configured GlassFish Plugin (1.0.29) MySQL JDBC driver registered to the IDE Maven m2 plugins..."

Prior to that, Arun also presented TOTD #96: GlassFish v3 REST Interface to Monitoring and Management - JSON, XML, and HTML representations: "GlassFish Monitoring allows you to monitor the state of various runtime components of the application server. This information is used to identify performance bottlenecks and tuning the system for optimal performance, to aid capacity planning, to predict failures, to do root cause analysis in case of failures and sometimes to just ensure that everything is functioning as expected. GlassFish..."


In the Forums,tesis_glassfish asks How to find a Datasource by using Resource-Reference ?: "Hi there, I hope this is not too bad noob question. I have question about how to configure glassfish to find a Datasource using ejb-jar and..."

valleywood wonders about Initialize LWUIT in fullScreenMode = false: "Hi! I've read different threads about setting the fullscreen mode of LWUIT to false and managed to do so by casting the current display to a GameCanvas in the shoe methods of my forms. However I see a problem with this since the Form will show in..."

And vkoniecz replies Re: About memory leaks in GlassFish: "Well I would rather recommand the use of Memory Analyzer (MAT for short) with a Sun JDK. see http://www.eclipse.org/mat/ This tool is several magnitude more useful for memory problems analysis..."


In the current Spotlight, Danny Coward invites us to participate in a Deep Dive on JDK 7: "The Janitor joined Ed Ort for a Deep Dive on JDK 7, check it out here. Really given how much is going into JDK 7, its perhaps more of a flyover and swoop, but, if you need to catch up with the plan, take a look."


The next java.net Poll will be posted soon, once the dust from the java.net infrastructure transition has settled.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 85: Migrating Your Midlets to JavaFX Mobile Technology: "Highlights from the JavaOne session TS-4506 with hints & tips on migrating your Java ME applications to JavaFX Mobile."


Current and upcoming Java Events:

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


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



I don't think it will surprise too many people that, on the first day when large segments of new underlying infrastructure are brought live on a relatively large and complex web site, a few unanticipated issues reveal themselves. Indeed, what would be surprising would be if someone expected the launch of a project that occupied months of work by a development team and associated contributors to go off with nary a problem.

The very good news is that we are indeed up and running on the new infrastructure! And, most of the problems we're seeing thus far are page formatting issues. Nothing of a fundamental nature that will stop people from getting their java.net-related work done has cropped up, as far as I know. To me, that's very good news, given the magnitude of the data migration and infrastructure transition that has just occurred!

Anyway, I'm going to be brief today, because there are issues I want to investigate, so I can help the development team get the migration bugs out as soon as possible.


In Java Today, Robert Eckstein has a new article on the Sun Developer Network, "Use NetBeans IDE 6.7 to Combine JAR Files Into a Single JAR File": "The Java Warehouse is the repository for Java and JavaFX applications submitted by developers for distribution through the Java Store to hundreds of millions of desktops worldwide. The Java Warehouse Developer Center Release Notes make clear that there is..."

A Free GlassFish Webinar: What's New with Java EE 6? will take place on Wednesday, August 26, at 10:00 AM Pacific Time (U.S.), 17:00 UTC/GMT: "Join John and Harpreet as they highlight the new features of Java EE 6 and demonstrate the advancements in ease-of-development features that increase developer productivity and makes Java EE 6 the ideal platforms for developers."

And Danny Coward talks about a JavaFX contest in JavaFX: Widgets galore: "If you feel like publicizing your programming prowess and you missed the JavaFX developer challenge, you should take a look at the WidgetFX contest. WidgetFX is a container for desktop widgets written in JavaFX and is itself written all in JavaFX... "


In today's Weblogs, Carol McDonald describes JPA Caching: "JPA has 2 levels of caching. The first level of caching is the persistence context. The JPA Entity Manager maintains a set of Managed Entities in the Persistence Context. The Entity Manager guarantees that within a single Persistence Context, for any particular database row, there will be only one object instance. However the same entity..."

Van Riper announces Silicon Valley Code Camp 4.0: "Please join me at the 4th annual Silicon Valley Code Camp at Foothill College in Los Altos on October 3-4, 2009. It is shaping up to be even bigger and better than last year's event. Attendance is FREE, but space is limited. So, you do need to register in advance..."

And Arun Gupta provides LOTD #22: How to inject JPA resources ? - PersistenceUnit vs PersistenceContext: "Java Persistence API defines a standard object/relational mapping using POJOs. In JPA, a persistence unit is described using "persistence.xml", bundled with the web application, injected into your web application and then POJOs are used to access all the information from the underlying persistence mechanism such as a database. JPA can injected into your application couple of different ways as..."


In the Forums,jadent requests a How to on WS-Security: "I need to create web service client with WS-Security. Everywhere i'm ready is saying i will need to be running tomcat and Axis where i run the app on. The issue is it will be running on a server i have no control on and i know tomcat is not installed on..."

Joy Wells wonders about jdbcRealm authentication not working?: "If I sent something already I apologize. I am very new to this and I appreciate everyone's help, consideration and patience. I am working with Netbeans 6.5.1, JDBC, and glassfish v 2.1 that I downloaded as a bundle. I followed the..."

And Serge Fonville hase a question about the Glassfish certificate chain: "Hi, I'm trying to setup GlassFish to use my existing certificate chain. I have it running with apache. When I use the instructions from..."


In the current Spotlight, Danny Coward invites us to participate in a Deep Dive on JDK 7: "The Janitor joined Ed Ort for a Deep Dive on JDK 7, check it out here. Really given how much is going into JDK 7, its perhaps more of a flyover and swoop, but, if you need to catch up with the plan, take a look."


The next java.net Poll will be posted soon, once the dust from the java.net infrastructure transition has settled.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 85: Migrating Your Midlets to JavaFX Mobile Technology: "Highlights from the JavaOne session TS-4506 with hints & tips on migrating your Java ME applications to JavaFX Mobile."


Current and upcoming Java Events:

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


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



As I wrote yesterday, this weekend java.net is transitioning to a new infrastructure. All content that has been hosted on O'Reilly servers is being migrated to new systems. It's a big task, as you might imagine, given that java.net has been around for more than six years.

The transition begins today at 5:00 PM U.S. Pacific time (which I believe is Midnight GMT, August 22). The site will will be unavailable until Monday morning U.S. Pacific time (early to mid afternoon GMT, August 24).

Several people beside me have posted information about the transition, including:

This week's poll on the Java Store and Java Warehouse is closed. I'll write about the results of the poll, and create a new poll using our new platform, next week.

Now, I'm off to do more testing on the new system!


In Java Today, Frank Kieviet announces OpenESB community partner releases the first commercially supported OpenESB component: "Many of the components in OpenESB were developed by Sun, and all of the components in the GlassFish ESB distribution are commercially supported by Sun. Now, for the first time, and hopefully the first of many to come, it is an OpenESB community partner that has taken a component through the OpenESB release process, providing commercial support on it..."

Danny Coward writes about a New API for Constraint Programming: "Constraint programming is a kind of declarative programming. Specifically, where you say what conditions constitute the solution of problem, rather than the laying out steps or algorithms by which you get to it. Deng Xiaoping had a saying for it. A bit like assessing weather conditions for sailing, or evaluating economic indicators when deciding central bank policy, these conditions come in the form of restrictions on the interrelationships of a carefully selected set of variables which model the computing problem..."

Adam Bien posted We Are Done with Layers - Now Start with Plugins: 'With Java EE 5 the architectural style changed drastically. Superfluous layers and indirections are an exception, rather than the mainstream. Even hard core ivory tower architects accepted, that with EJB 3 and JPA there is no more need for additional adapters and encapsulations. But: even in small, "situational" applications there is desire to introduce plugins and modules. The question: "Why you need it?" and "What problem are you solving with that?" is rarely answered...'


In today's Weblogs, Vivek Pandey writes about Reviving Project WOM - WSDL Object Model: "Sometime back I started a project - WOM, short for WSDL Object Model. The idea was to come up with a library that provides efficient parsing and provides a WSDL Object Model that can be used to inspect, traverse/navigate and will be useful for IDEs such as NetBeans and also WSDL 2 Java generators, such as Metro wsimport."

Felipe Gaucho posted Have a nice weekend java.net: "java.net is evolving to a more sophisticated and modern infra-structure, so I hope to see you all on Monday :)"

And Arun Gupta provides TOTD #95: EJB 3.1 + Java Server Faces 2.0 + JPA 2.0 web application - Getting Started with Java EE 6 using NetBeans 6.8 M1 & GlassFish v3: "TOTD #93 showed how to get started with Java EE 6 using NetBeans 6.8 M1 and GlassFish v3 by building a simple Servlet 3.0 + JPA 2.0 web application. TOTD #94 built upon it by using Java Server Faces 2 instead of Servlet 3.0 for displaying the results. However..."


In the Forums,Rochelle Raccah announces a New version of Eclipse plugin for glassfish published: "Version 1.0.31 of the GlassFish plugin for eclipse was published today. Here is a link to the release notes which lists the bug fixes that are included: https://ajax.dev.java.net/eclipse/releasenotes.htmlIn particular, we've added a bugfix in the monitoring support and some more SailFin features in this release. As with previous versions, you can download it from within Eclipse using the Download additional server adapters link on the New Server Wizard..."

Paul Sterk posts More info on CMS migration this weekend: "All, More details on the CMS migration this weekend: Everything on java.net that is *not* on the dev.java.net domain will be migrated over to new CMS servers based on Drupal. That includes all of our editorial history, blogs, Jive, Jive-mailings list bridge, Twiki, project and community catalogs, and any other (mostly) html or csp pages that O'Reilly has been hosting for us. At the same time, a new layer will streamline and partially automate the process of approving and promoting projects..."

And Sean Comerford asks for Glassfish cluster limits / best practices?: "Are there any best practices / hard limits around the # of: * node agents; * instances; * configurations; * etc that a given DAS domain can control / support? ..."


The current Spotlightis a video, Java Warehouse - Part 1 of 3 - How to Submit an Application - Registration: "Learn how to submit applications to the Java Warehouse. In this first segment Bernard Traversat, Director of Java Store Engineering, shows how easy it is for developers to register for the Java Warehouse Developer Portal."


The next java.net Poll will be posted next week, after the java.net infrastructure transition has occurred.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition."


Current and upcoming Java Events :

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


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



As I wrote yesterday, this weekend java.net is transitioning to a new infrastructure...  

If you work on or closely follow any java.net projects, you've probably noticed the banner that has been displayed on project pages for the past couple days:

java.net will migrating to a new CMS platform this weekend and will begin the shutdown at 5pm Pacific Time on Friday August 21st. The site will be inaccessible until early morning Pacific Time, Monday August 24th. Please plan your work accordingly.

Sonya Barry provides more details in her latest blog post, Big changes under the hood for java.net.

java.net has been around for a while now -- for quite a few years, actually. For example, the first java.net article was published on June 10, 2003. Now, as we all know, technology changes quite a lot in any six year period. In the 2003-2009 period, one of the big changes in online technology is what Tim O'Reilly has called Web 2.0.

So, does "big changes" mean that following this weekend java.net is going to look like Facebook for JVM developers? Well.. not quite! A few things might look a little different, but the main objective for this initial transition is to move from a fairly rigid CMS infrastructure that was hand-crafted by O'Reilly engineers to meet a need starting in 2003, to a more modern infrastructure that brings with it opportunities for enhancement and expansion of the capabilities java.net can offer its user community going forward.

In my opinion (I've participated in most of the transition meetings in the past month or so) the Number 1 objective of the initial transition is: don't lose functionality. It's a big change, a big jump, from the old O'Reilly platform to the new platform. Enormous amounts of content must be migrated from the old custom-built O'Reilly data archives to the new platform. That's a big enough step that only a few actual enhancements are being put into place in this initial conversion.

What are the enhancements? For one, captchas for comments in many areas of java.net. If you're a regular java.net visitor, I'm sure you're as tired as I am of seeing (and dealing with, in my case) spam comments. Implementing captchas in the old system was a development task. With the new infrastructure it's a setting, a switch. Right there, you can see why moving to a modernized infrastructure makes sense.

Sonya summarizes the most important changes project owners and community leaders will see:

Project owners will see a couple of new things - they'll have access to the data contained on their project's node page, and we've also implemented a few things to make communication between owners and their community leaders easier and more automated as new projects get up and running.

Finally, the biggest changes will be for the Community Leaders. For a long time we've had a pretty horrifying system that required our leads to make duplicate entries about project status and location in the community hierarchy between two different databases. It was not a user friendly process and led to a lot of delays and miscommunications when new projects were created. Some of those tasks have been automated now and email templates have been created making it easier for leaders to maintain communication with new project owners.

So, starting next week, if you're actively involved in a java.net project or community, you'll see some changes. Otherwise, you might wonder "what's all the fuss about?" Well, once we have a modern infrastructure in place, it becomes much easier to add new features and enhancements that will enable java.net to evolve with the times. That was pretty difficult in the past. I mean, O'Reilly was ahead of the times in coming up with the original CMS that has supported java.net all these years. But O'Reilly is not fundamentally a software development company. Our core business is publishing, editorial services, and researching emerging technology and technology trends.

Sonya sums up the benefits of going to the new infrastructure well:

With this new system in place we'll be moving to the permanent beta model for improving the site at large. We'll start rolling out improvements and adding new modules on a regular basis which we think will be a major improvement for every user. These improvements will include personal profile pages, organic groups (which should be great for JUGs), and a better social model overall.

So, the schedule is that java.net will not be available in its normal operational mode starting on Friday at around 5:00 PM U.S. Pacific time (that's Midnight GMT Saturday morning, if I'm not mistaken). We're hoping to be again fully functional on Monday.


In Java Today, java.net Community Manager Sonya Barry announces Big changes under the hood for java.net: "We'll be down this weekend, and when we come back Monday things might look a bit different around here. So what are we doing? A few months ago we engaged Cognisync to build out a new, Drupal-based content management system for us, to replace the one that has historically been hosted and maintained by O'Reilly. Why this? Why now? While O'Reilly will continue to provide editorial services (by Kevin Farnham who maintains our front page among other things) they wanted out of the hosting business. We've also been looking for years for ways to modernize the site. This is the first big step in the that direction. So what's in it for the community? ..."

Adam Bien writes about Value Object vs. Data Transfer Object (VO vs DTO) in his latest post: "The pattern which is known today as Data Transfer Object was mistakenly (see this definition) called Value Object in the first version of the Core J2EE Patterns. The name was corrected in the second edition of the Core J2EE Patterns book, but the name "Value Object" became very popular and is still used as an alias for the actual DTOs. There is, however, a real difference between both patterns..."

NetBeans Dream Team member Chris Richardson announces that Cloud Foundry is now part of SpringSource: "I have some very exciting news to announce today.  Cloud Foundry has been acquired by SpringSource and is being launched as SpringSource Cloud Foundry.  As a result, I am now a SpringSource employee, and I couldn't be more pleased. Who would have guessed that my experiments two years ago with a then relatively obscure Amazon service called the Elastic Compute Cloud (EC2) would eventually lead to today's events?  Those early experiments that resulted in the Cloud Tools open-source project, then became the basis for my startup venture called Cloud Foundry...


In today's Weblogs, Fabrizio Giudici writes about ... and you have to CI your Jira too!: "I've just received a patch for jrawio from a user. Great stuff. But the user complained about the fact he could log in on my Jira (jrawio uses my own installation at Tidalwave), but he couldn't post comments or attach..."

Alexander Potochkin writes about SAF and JDK7: "SAF aka JSR-296 and JDK 7"

And Arun Gupta writes about ervlet 3.0 was used for displaying the results to...


In the Forums,ben0502 asks How to configure the JNLP file in netbeans ?: "Dear all, I have a EAR project which is developed on netbeans 6.5, all works fine and i can deploy to glassfish server v2. However, i want to change the port number from 3700 to 10000, but i cannot find a place to configure the files, can anyone tell me how to configure the JNLP files ? 1 more strange thing is that after i changed the port number (3700 -> 10000) at server, i found that my application needed long time before start up, but my application is only showiing a panel without accessing the server..."

seik wonders, is 1.2 slower?: "I changed my aplication list from the LWUIT_20081222 version to LWUIT1.2 and it started giving null point exception, because of the styles weren't set right, I edited all my components style, dividing them in groups of selected and unselected and set them on the components and the null point exception disapeared(^^ great) but as I was testing the program I noticed it got slower than before even crashed with out of memory error T_T no more background story, here is the questions: 1)Did LWUIT 1.2 got heavier? 2)Is there much diference betwin setting manually the Styles and using a Theme to set them automaticaly? and..."

And ljnelson has a question about about Lazy deployment of EJBs?: "Is there an easy way to tell Glassfish to deploy an .ear file in phases? I'd like, for example, to have the .war files within my .ear file deployed first, and have the EJBs deployed in the background, so that my .war files are available quickly. Obviously, if someone hits a given .war file and causes an EJB invocation, and if that EJB hasn't been deployed yet, then yeah, they're going to have to wait for potentially a long time until the EJB is deployed. That's fine. What I'd like to avoid (given the sheer number of EJBs the system I'm currently working on is likely to have) is having to wait for all the zillions of EJBs to come up in full deployment mode before anything can work..."


The current Spotlightis a video, Java Warehouse - Part 1 of 3 - How to Submit an Application - Registration: "Learn how to submit applications to the Java Warehouse. In this first segment Bernard Traversat, Director of Java Store Engineering, shows how easy it is for developers to register for the Java Warehouse Developer Portal."


The new java.net Poll asks "Do you plan to start using the Java Store and Java Warehouse?". This coming Thursday will be the last full day of voting.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition."


Current and upcoming Java Events :

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


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



If you work on or closely follow any java.net projects, you've probably noticed the banner that has been displayed on project pages for the past couple days...  

Last week I started a series on interesting Kenai projects, inspired by Adam Bien'srecent blog post. Adam points out five interesting Kenai projects he's discovered, and I'm taking a closer look at some of those projects.

Today, I'm looking at the Sun Cloud APIsproject. Adam describes this project as follows:

explains and demonstrates the REST-APIs to the Sun's cloud. Interesting and pragmatic.

The project describes itself as:

A repository of the APIs for the Sun Cloud service. These APIs are posted for review and comment using the Creative Commons license.

Clicking on the Wiki link on the sidebar brings us to a home page that describes "a RESTful API for creating and managing cloud resources, including compute, storage, and networking components."

The API applies standard HTTP protocol, with resources represented in JSON format. Resource types include Cloud, Virtual Data Center, Cluster, Virtual Machine, Private Virtual Network, Public Address, Storage Volume, and Volume Snapshot.

The best way to obtain an initial understanding of the Sun Cloud APIs is by walking through the Hello Cloud demo. In addition, the Wiki home page includes a "Specifications" section with links to detailed documentation of each API resource, including example requests and responses.

The project includes a discussion forum and a mailing list (though, it has no posts thus far). The Downloadspage offers a specification document, SDK source and binaries, and license files.


In Java Today, Ludovic Champenois annouces GlassFish tools Bundle for Eclipse version 1.1 released: "It is my great pleasure to announce the release of the new GlassFish tools Bundle for Eclipse version 1.1. The all in one bundle is available at http://download.java.net/glassfish/eclipseand contains: * Eclipse 3.4.2 IDE with WTP Java EE support * GlassFish v2.1 pre-registered and configured * GlassFish v3 Prelude pre-registered and configured * JavaDB sample database pre-registered and configured * GlassFish Plugin (1.0.29)..."

Bond_124 wrote an interesting article, Cloud Computing Demystified: Part-I: "I recently took part in a panel discussion on Cloud Computing and how it relates to software architecture. The event used an online event organizer for signing up and the website wouldn't let me register for the event. I later found out that I could not sign-up because the event was sold out. This says something about the hype surrounding cloud computing which has become the in-thing to be 'seen with'..."

And Kito Mann announces a JSF 2 Seminar September 1st: "On September 1st, I'll be hosting a one day online seminar about JavaServer Faces 2.0. The seminar will consist of lectures but will also have labs. The seminar is geared towards people who are already familiar with JSF and want to get details on what's in the new release. This is a great opportunity to get up to date with key JSF 2 features quickly and determine when to upgrade your existing projects, or how to begin new projects..."


In today's Weblogs, Karl Schaefer writes about Maven: Using JUnit with DLLs: "Using DLLs in JUnit testing in Maven."

John Ferguson Smart talks about Upcoming Java Power Tools Bootcamps in Canberra and Sydney, Wellington, London and Paris - Don't miss out!: "There are still a few places available on the Canberra, Brisbane, Sydney and Wellington sessions of the Java Power Tools bootcamps. Come see what the buzz is about! And, after a very popular session in London in July, we..."

And Arun Gupta presents TOTD #93: Getting Started with Java EE 6 using NetBeans 6.8 M1 & GlassFish v3 - A simple Servlet 3.0 + JPA 2.0 app: "NetBeans 6.8 M1 introduces support for creating Java EE 6 applications... cool! This Tip Of The Day (TOTD) shows how to create a simple web application using JPA 2.0 and Servlet 3.0 and deploy on GlassFish v3 latest promoted build (58 as of this writing)...."


In the Forums,matthiasfraass has an issue with the GlassFish v3 preview: iiop-listener / ORB not started: "I'm banging my head on this for hours: The ORB doesn't start to listen on 3700 or any other port I configure. Tcpview shows that the port ist free and "telnet localhost 3700" doesn't connect. Not before starting GF and but unfortunately not after startup, too. Stock glassfish v3 preview - fresh downloaded and unpacked. I tried both glassfish-v3-preview-windows.exe and glassfish-v3-preview-b59.zip. System: WinXP SP2 JDK 1.6.0_16. Admin-Console and :8080 works fine! server.log shows no errors. I turned up the log level - nothing..."

bowsermail is seeing Flicker with heavyweight swing component hide() on Linux: "Hi All, I'm developing a GUI for a system running linux. I'm using the Swing framework for the GUI but need to include 3D animation accelerated in hardware. I'm using the JOGL framework for applying the 3D animations which supplies one with two swing-like components, the GLJPanel and GLCanvas. These two components are lightweight and heavyweight swing components respectively. The difficulty arises when adding the heavyweight GLCanvas component into the gui. Often I need to do a setVisible(false) on the component in which case the GLCanvas hides correctly, but shows a flicker before the background is displayed..."

And nightwolf66 asks about Jaxb2 without annotations: "Hi All, I am currently evaluateing jaxb2 for my project needs, and i will be hand crafting the necessary configuration instead of generating it from an xsd. Is there functionality such that configuration can be done other than annotation, i.e. via an xml file. I have a domain model which is distributed, and i dont want it to be cluttered with annotations, so hence i would like to do this elsewhere. is this possible?..."


The current Spotlightis a video, Java Warehouse - Part 1 of 3 - How to Submit an Application - Registration: "Learn how to submit applications to the Java Warehouse. In this first segment Bernard Traversat, Director of Java Store Engineering, shows how easy it is for developers to register for the Java Warehouse Developer Portal."


The new java.net Poll asks "Do you plan to start using the Java Store and Java Warehouse?". This coming Thursday will be the last full day of voting.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition."

Current and upcoming Java Events :

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


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



Last week I started a series on interesting Kenai projects, inspired by Adam Bien's recent blog post...  

Joe Darcy has posted an interesting analysis titled JDK Release Types and Compatibility Regions, in which he uses a three-dimensional graph to represent different "axes" of compatibility between different JDK versions. In fact, this compatibility analysis could realistically be applied to many different software platforms that undergo sequential modification over time, but Joe talks specifically about how the JDK evolves in his post. Here's Joe's introduction to the concept:

There are three primary kinds of compatibility of concern when evolving the JDK, source, binary, and behavioral. These can be visualized as defining a three dimensional space.

The axes of this three-dimensional space are Behavioral, Source, and Binary, in Joe's representation. The farther away a point is from the origin, the more incompatible a change is; the origin itself represents perfect compatibility (no changes).

Joe specifically looks at the three main types of JDK release (platform, maintenance, update) from this point of view:

JDK 7 is a platform release since it is a new version of platform... The JDK 6 update releases are representative of update releases... While maintenance releases have not been formally issued since JDK 1.4.2, the changes in 6u10 were more on par with a maintenance release rather than a regular update release.

For update and maintenance releases, greater compatibility with the current platform release (for example, JDK 6) is required. Here, binary compatibility is required, as defined in the Java Language Specification.

Since binary incompatible changes are not allowed, the acceptable compatibility region for update and maintenance releases is confined to the (Behavioral x Source) plane, with more latitude on the behavioral axis.

Meanwhile:

The compatibility reference point for a platform release is an implementation of the previous platform specification. Compared to the previous platform specification, a platform release can add APIs and language feature that impact source compatibility (new keywords, etc.) and the implementation can have many changes in behavior (such as changing the iteration order of HashMap). In exceptional circumstances, there is the possibility of a sliver of binary incompatibility, such as to address a security issues in a rarely-used corner of the platform, but the central policy of preserving binary compatibility holds for platform releases as well.

All in all, Joe's post provides an interesting take on analyzing software platform life cycles. It's certainly not something I've ever thought about before, in my decades of working with evolving platforms.


In Java Today, Joseph Darcy presents JDK Release Types and Compatibility Regions: "There are three primary kinds of compatibility of concern when evolving the JDK, source, binary, and behavioral. These can be visualized as defining a three dimensional space..."

Danny Coward talks about Java ME: Smart browsing on dumb phones: "Think you need a $martphone to browse the web ?The intriguing BOLT browser should get you to think again (thanks to arch-blogger Hinkmond for the heads up). With desktop-like features like split-screen browsing, feed support, saving web pages, streaming video and accompanied by excellent reviews of its speed even on the most basic phones, how can it do it when all the client requires is the most basic of Java ME APIs: MIDP 2.0, rather than the fancier MSA 2 shipping on the newer Java ME phones ? ..."

Debasish Ghosh provides Five Reasons Why You Should Learn a New Language Now: "There have been quite a few murmers in the web sphere today regarding the ways Java programming paradigms have changed since its inception in the late 90s. A clear mandate and recommendation towards immutable abstractions, DSL like interfaces, actor based concurrency models indicate a positive movement towards a trend that nicely aligns with all the language research that has been going on in the community since quite some time. Language platforms are also improving by the day..."


In today's Weblogs, Jim Driscoll talks about ui:repeat and Ajax: "Using the f:ajax tag can make doing ajax with a repeating tag like ui:repeat considerably easier."

John Ferguson Smart writes about Web testing BDD-style with JWebUnit and Easyb: "Behaviour-driven development is a great way to design and build the web layers of your application. In this article, I look at how to use JWebUnit, a fast and light-weight web testing framework, with Easyb, a powerful Groovy-based BDD framework...."

And Karl Schaefer writes about Job Search: Technical Questions: "More thoughts on my recent job search. This time focused on technical questions."


In the Forums,contryboy has an issue where Form.refreshTheme() doesn't repaint back ground when styles are gradient: "Using the following code to change from a theme to a new theme, it works fine when one or both of the form style is NOT gradient. However, if both of the old theme and new theme have gradient form background, when this code is called, the form back ground is not repainted (remains in old color) while other components are refreshed to new color. try { ..."

kumandus has JinternalFrame Questions!: "Hi everyone! I am building a interface for a small game that uses a Jframe on fullScreen exclusive mode (where the grafics will be set). Because the JFrame is on fullScreen exclusive mode, i can not use JOptionpane (because it will always appears behind the JFrame), the alternative that i am trying to use is JInternalFrame. I already see some examples and read about it but i`am having a little trouble on the implementation: 1- Can the JInterframe be put directly on a JFrame or allways need a JDesktopPane?..."

And Markus Karg is working a problem with GlassFish v2ur2 with Client and Server in different subnets: "One of our customers is using GlassFish v2ur2 in two different IP subnets. One IP subnet contains only the client containers (ACC), one IP subnet contains only the server containers (EJB SLSB). He has the problem that the client cannot connect to the server. The reason is that the server sends his hostname to the client and the client does NOT use DNS to resolve it, but it seems to ask the GlassFish server to resolve it. As it is located in a different network, it resolve to the wrong IP address..."


The current Spotlightis a video, Java Warehouse - Part 1 of 3 - How to Submit an Application - Registration: "Learn how to submit applications to the Java Warehouse. In this first segment Bernard Traversat, Director of Java Store Engineering, shows how easy it is for developers to register for the Java Warehouse Developer Portal."


The new java.net Poll asks "Do you plan to start using the Java Store and Java Warehouse?". This coming Thursday will be the last full day of voting.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition."

Current and upcoming Java Events :

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


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



Joe Darcy has posted an interesting analysis titled "JDK Release Types and Compatibility Regions"...  

Sun's opening JavaOne 2009 presentation featured the debut of Java Store, "a global marketplace for cutting-edge Java applications." That was two and a half months ago. So, now seems like a good time to take another look at the Java Store (where people can conveniently buy Java software) and the associated Java Warehouse (the repository for software developers would like to sell through the Java Store).

This week, we are taking multiple approaches at re-examining the Java Store and Java Warehouse. First, our current poll asks developers if they plan to start using the store and warehouse. This is a kind of follow-on to the poll on Project Vector (the pre-JavaOne code name for the Java Store) that we ran just prior to JavaOne. That poll specifically asked "Will Project Vector become the world's largest app store?" and the response that received the most votes was "What's Project Vector?" It will be interesting to see how the level of awareness and attitude toward the store and warehouse have changed in the past few months.

With anything new, the first objective is necessarily raising awareness that the new product or capability or site exists. The big splash at JavaOne certainly did that for the Java Store. The next step is bringing in some early adopters. It is not the case that you immediately have to have throngs of people rushing to participate in a new product. Rather, a core group of interested people is needed. These people investigate the new technology, and talk about it, and in many cases influence its direction.

The Java Warehouse and Java Store are still labelled "Beta" -- yet, more than 1 million people have already visited the Java Store, and more than 10,000 developers have registered. That's more than 10,000 daily visitors and more than 100 new registrations daily (on average) since the store and warehouse opened. That, to me, implies that the store/warehouse concept is indeed in the early adopter phase.

The project team is working on documentation to make it easier for more developers to get involved. For example, this week's newjava.net Spotlight is a video produced by the Java Store team, Java Warehouse - Part 1 of 3 - How to Submit an Application - Registration. Part 2 of the series shows how to navigate through the main and legal sections of the process for submitting an application to the Warehouse. The Part 3 video shows how to begin publishing your software applications using the Warehouse and Store. In total, the three videos run about 21 minutes, with Part 3 being the longest (just under 10 minutes).

Additional Warehouse resources for developers include a set ofReference documents, including How-To Guidelines and Application Requirements. There's also a 33-question Java Warehouse FAQ.

The Java Store has its own FAQ and other documentation materials.

Since they're new, and still beta, it's not surprising that the Java Warehouse and Java Store have a few limitations. For example, Linux and Solaris are not currently supported, but the development team is working on implementing versions for these operating systems. In addition, the Java Store beta will not be available outside the United States until 2010.

It's evident that there is a lot of ongoing activity in the Java Warehouse and Java Store projects: the development team is hard at work enhancing the platform itself, and the documentation team is expanding the available resources available for assisting developers in getting started.


In Java Today, Peligri writes about the results of the recent GlassFish Survey - Top Migrations to GF are from Tomcat and JBoss: "Last month we ran a GlassFish Adoption Survey. Our main intention was to learn about Migrationpatterns on the GlassFish server. Although it was a totally self-selected, unscientific, survey, we thought it would collect some interesting insights which we could then use for a more formal survey later in the year..."

In Creating Menus in JavaFX (with JFXtras Menu Classes by Jonathan Giles), Java Champion James Weaver writes about http://learnjavafx.typepad.com/weblog/2009/08/menus-in-javafx.html: "Jonathan Giles has announced the release of the JavaFX Menubar that he created for the JFXtras project.  To demonstrate how to use it, I've added a menu to the BandmatesFX program that I've been developing in this series of blog posts. By the way, my grand scheme for the BandmatesFX program is for it to become..."

Kito Mann is Announcing the JSF Summit: Dec 1-4 in Orlando, FL: "I'm pleased to announce that JSFCentraland No Fluff Just Stuff have teamed up once again to launch the second annual JSF Summit this December 1st-4th in Sunny Orlando, FL..."


In today's Weblogs, Thomas Landgraf talks about a new Java API for KML (JAK): "Micromata GmbH, specialist for tailor-made software engineering, headquartered in Kassel, presents the first Java interface for easy access to KML (Keyhole Markup Language). Micromata will release JAK (Java API for KML) to the community as open source software. The open..."

Fabrizio Giudici announces BetterBeansBinding 1.3.0 in the Central Maven Repository: "Well, it's not yet there indeed - but I should have done my homework and I've asked for that. If you use BBB and Maven, please vote for this issue."

And Arun Gupta presents TOTD #92: Session Failover for Rails applications running on GlassFish: "The GlassFish High Availability allows to setup a cluster of GlassFish instances and achieve highly scalable architecture using in-memory session state replication. This cluster can be very easily created and tested using the "clusterjsp" sample bundled with GlassFish. Here are some clustering related entries published on this..."


In the Forums,liangyitao asks How to create a new peer group in JXTA 2.5?: "In the JXTA 2.5, the method "PeerGroupFactory.newPeerGroup()" has been deprecated without alternative. The API document says that it wasn't useful. What does it mean and how to create a custom peer group in the JXTA 2.5? Thanks."

gamliela is using TimeStamp at client side: "Hello, I'm trying to use java.sql.Timestamp in my web service. In the server side I'm using @XmlJavaTypeAdapter with a special class that I built to convert Timestamp to Long. This is neccessary since Timestamp doesn't have no-arg constructor. The problem is when I'm using wsgen andwsimport to generate the client stubs, for some reason all stubs are now using Long instead of TimeStamp..."

And krzysztof_trzewiczek is considering using Java for real-time ComputerVision: "Hi, I spent some time looking for the real-world answer for that question, but with no effect. Maybe you could help me. The question is: Is Java good choice for real-time computer vision software for the performance arts usage? I'd prefer to work in Java, 'cause it's clean and coder-friendly, but still - real-time is real-time and theatre performance doesn't like 10 fps..."


The current Spotlightis a video, Java Warehouse - Part 1 of 3 - How to Submit an Application - Registration: "Learn how to submit applications to the Java Warehouse. In this first segment Bernard Traversat, Director of Java Store Engineering, shows how easy it is for developers to register for the Java Warehouse Developer Portal."


The new java.net Poll asks "Do you plan to start using the Java Store and Java Warehouse?". This coming Thursday will be the last full day of voting.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition."

Current and upcoming Java Events :

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


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



Sun's opening JavaOne 2009 presentation featured the debut of Java Store, "a global marketplace for cutting-edge Java applications"...  

The results of this past week's java.net poll were fairly clear, and suggest that, at least within a Java-centric community like java.net, Java-based feature phone platforms are considered to provide the greatest capability. A total of 422 votes were cast in the poll. The actual poll question and results were:

Which feature phone platform offers developers the greatest capability?

  • 20.3% (86 votes) - Java ME
  • 45.2% (191 votes) - Google Android
  • 21.3% (90 votes) - iPhone OS
  • 1.8% (8 votes) - BlackBerry OS
  • 4.2% (18 votes) - Windows Mobile
  • 5.2% (22 votes) - Symbian
  • 1.6% (7 votes) - Other

So, summing the Java ME and Google Android shares tells us that 65% of the voting considers Java (of some sort) to offer the greatest capability to developers. The only other platform that has considerable support within the java.net community is iPhone OS. Somewhat surprisingly, BlackBerry OS, Windows Mobile, and Symbian combined for only 11% of the voting.

There was one comment posted to the poll. petercs, who has used all the platforms, ranked them in order of capability based on his own experience:

  1. Android (unchallenged)
  2. iPhone OS (since 3.0, it's ok, altough no background tasks)
  3. Windows Mobile (with access to low-level functions)
  4. Blackberry OS (background tasks, crypto, push-api)
  5. Symbian (I only know Java Me on symbian)
  6. Java Me (It's no fun)

As I was creating this poll, I came across Matt Buchanan's Giz Explains: Illustrated Guide to Smartphone OSes. This "article" includes a brief overview of all the OSs in the poll except for Java ME, along with Matt's view on "Why you'll use it" and "Why it sucks." Matt wrote this more than nine months ago, so it's a little dated (certainly a lot has happened with Java ME, and probably Android too, in the past nine months).

The poll was inspired by Mac Java Community leader (and my predecessor as java.net editor) Chris Adamson, who pointed me to the article Net Applications: Apple just lost half its 'market share'. While this article is largely a critique of Net Applications (because they changed their method of assessing OS market share), the company's current method of estimating OS market share interestingly gives Java ME as great a global share as iPhone OS.

New poll: Java Store and Java Warehouse

The new poll asks "Do you plan to start using the Java Store and Java Warehouse?" Voting will be open through next Thursday.


In Java Today, the Java Tools Community has published JavaTools Community Newsletter - Issue 201: "A new edition of the newsletter is available, with news, new projects and tips! If you want to receive the newsletter by email, please subscribe the announcements mailing list - or read the current issue here."

Joe Darcy writes about JDK 7: New Component Delivery Model in the Works: "The JDK includes many logically distinct sets of APIs. Some of the APIs naturally live in the JDK and evolve at the pace of the JDK; other APIs are effectively maintained externally, but are also shipped as part of the public API provided by the JDK..."

And Kelly O'Hair writes about the Anatomy of the JDK Build: "The recent "javac -target 7" changes to the jdk7 repositories has prompted me to post this blog about OpenJDK builds. To those unfamiliar with Java classfile versions, each JDK release typically has upgraded the version of the classfiles created by the javac compiler, newer JDKs understand it's own classfile version, plus all the older versions. But older JDKs can NOT understand the newer classfile versions, and their javac instances will not understand how to create newer versions..."


In today's Weblogs, Kirill Grouchnikov presents Animation blueprints for SWT: "Using project Trident to add animations to enable rich interactivity expected from modern SWT applications."

Cay Horstmann provides A spoonful of Scala: "Today one of my XML utility programs broke in a nasty way because the W3C refused to serve a DTD file. In this blog, I tell how I fixed the problem with an hour of googling and two lines of Scala, and what lessons one can learn from it."

And Karl Schaefer writes about My Recent Job Hunting Experience: "An overview of my recent job hunt and the questions it raises about the process."


In the Forums,anandsastry wonders about a Provider based endpoint - behind the scenes: "I am new to provider based endpoints. Can someone please point me to a resource which explains what happens behind the scenes when the EP gets a request ? I created the endpoint using a WSDL and suppressed generation of JAXB objects. The only other artifact that was generated was the service class. The deployment unit generated is a war file, however I don't see any servlet. What entity intercepts the request ? How can I enable any QOS operations on the request/response such as MTOM, Security, Addresssing etc. ? ..."

sifa123 is experiencing Frustration with Java and gcj: "Hi all, I'm a Java developer, relatively new to Ubuntu, and I am finding the Ubuntu java packaging a complete nightmare. I'm mainly writing here out of frustration; though if others can point out an easy way to configure Java tools without doing all the work myself, I'd be a happy man. The basic problem is that while Ubuntu allows you to install Sun's Java, it defaults to gcj all over the place, and there is no easy way to change this. Surely if someone has chosen to install Sun's Java, Ubuntu could accept that decision and actually use it? I understand the politics behind gcj..."

And Yiannis Maglaras asks about Qwerty support for Blackberry: "Hi there, I am trying to port an lwuit application on to a Blackberry device (Pearl 8120 more specifically). I have an issue with entering text to textfield. I set textfield.setQwertyInput(true); but when pressing on Q nothing, on E R getting 1, on T Y getting 2 etc. Is there a workaround for it? ..."


The current Spotlightis Mario Fusco on the Lambdaj Project: "Jim Wright interviews Mario Fusco, creator of the Lambdaj Project, in this java.net Community Corner 2009 podcast, recorded at JavaOne: "Lambdaj is a library that makes easier to manipulate collections in a pseudo-functional and statically typed way. In our experience to iterate over collection, especially in nested loops, is often error prone and makes the code less readable. The purpose of this library is to alleviate these problems..."


The new java.net Poll asks "Do you plan to start using the Java Store and Java Warehouse?". Voting will be open through next Thursday.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." 

Current and upcoming Java Events :

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


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



The results of this past week's java.net poll were fairly clear...  

Aaron Houston, Program Coordinator for JUGs and Java Champions, recently pointed me to the NetBeans Dream Team Blog Feed. This was after I had discovered and started following the Java Champions blog feed a few weeks ago.

Today's lead Java Todayitem is from the Dream Team feed, Caoyuan Deng's Scala Plugin for NetBeans - Rewrite in Scala #2: Supports Java/Scala Mixed Project. Like the Java Champions feed, the consolidated Dream Team feed is powered by Yahoo! Pipes. The members of the Dream Team are:

    
Adam Bien
Aristides Villarreal Bravo
Allan Davis
Liang Ding
Toni Epple
Ryan de Laplante
Caoyuan Deng
Fabrizio Giudici
Emilian Bold
Tonny Kohar
Edgar Silva
David Strupl
Wade Chandler
Masoud Kalali
Anuradha G
Antonio Vieiro
Alex Kotchnev
Aljoscha 'Josh' Rittner
Michael Nascimento Santos
Gregg Sporar
Rich Unger
Joerg Plewe
Sven Reimers

Clicking the links will take you to their individual blogs.

There is one person who has the distinction of being both a Java Champion and a member of the NetBeans Dream Team: Adam Bien, whose posts I've often featured in Java Today recently, and who I interviewed during JavaOne on the topic of Real World Java EE Patterns: Rethinking Best Practices.

[Correction: Michael Nascimento Santos is also both a Java Champion and a member of the NetBeans Dream Tream. If I've missed anyone else, please let me know, or post a comment below.]

Now that I've discovered (or, well, been pointed to, by Aaron) the NetBeans Dream Team Blog Feed, you can expect to see more of the Dream Team's latest thoughts and ideas highlighted on the java.net home page.

I'm becoming increasingly aware of the community aspect of NetBeans. NetBeans really isn't just a tool. I started realizing that at JavaOne -- for example, as I recorded the Java Tools SQE Roundtable podcast, which features two Dream Team members (Toni Eppleand Sven Reimers). So, I have no doubt that it's going to be very interesting to follow the Dream Team, just as I've found it very worthwhile following the Java Champions.


In Java Today, NetBeans Dream Teammember Caoyuan Deng's latest blog is about a Scala Plugin for NetBeans - Rewrite in Scala #2: Supports Java/Scala Mixed Project: "Java/Scala mixed project was supported partly once before, but I cannot remember when this feature got lost. Anyway, as one progressing of the rewritten NetBeans Scala plugin, I just got this feature working properly halfway: now Java source is visible to Scala one, but not vice versa. To got Scala source also visible for Java source, would pay for efficiency..."

Peligri provides the Updated GlassFish v3 FCS Schedule: "A couple of weeks we provided an update of the GlassFish v2.1.1 Schedule; it's now time to do the same with that for GlassFish v3. The key driver for GlassFish v3 is JavaEE 6. This means GFv3 leverages the expertise of the wide JCP community and our users have the benefits of a standard but... it also means we don't control all the variables - which is ultimately good, but can be painful in the short-term..."

And Danny Coward writes about JavaFX: A Musical Gathering: "There's definitely an arc in the adoption of a new technology. From skepticism, to release, the odd stumble, to the evidence of more widespread experimentation, to the first commercial applications. Indaba Music(from the Zulu indaba:  'gathering') is a collaborative music site, and debuts one of the first commerical applications of JavaFX: the Indaba music console."


In today's Weblogs, Jim Driscoll writes about Keeping focus: "Dealing with field focus in JSF 2 and ajax. It's not hard, but you do have to keep a basic rule in mind: Don't update the parent of the field with focus."

Arun Gupta provides TOTD #91: Applying Java EE 6 "web-fragment.xml" to Apache Wicket - Deploy on GlassFish v3: ""Extensibility" is a major theme of Java EE 6. This theme enables seamless pluggability of other popular Web frameworks with Java EE 6. Before Java EE 6, these frameworks have to rely upon registering servlet listeners/filters in "web.xml" or some other similar mechanism to register..."

And Terrence Barr looks at The case against Apple: "Here is an eye-opening piece The Case Against Apple about Apple turning evil with the iPhone. It really focuses many of the thoughts and comments I've heard over the past 12 months in the industry. And it reinforces not only..."


In the Forums,jsexton0 asks about Calling a Service in Glassfish via SSL from Tomcat with no DNS: "We have a problem calling a secured service in our Glassfish server. We extract the "s1as" certificate from Glassfish's keystore, and load it into the keystore on our Tomcat server, but the call fails with no AltSubjectName. I think our problem is that the extracted certificate has a CN of the fully qualified host name of the Glassfish server. But our call needs to work in an environment that has no name service. We need to be able to make the call with an IP address..."

trw1313 has questions about Metro Client Security to WCF Service: "I am having difficulty getting a java client to connect to a WCF service using wsHTTPBinding. I have followed the instructions and verified my keystore and truststore have worked with the Glassfish app server. I believe I have configured Glassfish correctly using the UI component within netbeans 6.7. Within that, I have populated the username and password as well as the key informatiion. My application throws an exception during the createDispatch() method call. I am using the generated call sequence done by netbeans. I have attached the log file as well as the wsdl to this. It appears from the logs that none of my security configuration is being populated. All the assertion logs seem to have blank data. Is this correct? ..."

And geronim123 asks about licensing restrictions on code generated by JAX-WS?: "Hi, I was wondering what license, if any, applies to code that is generated by JAX-WS. For instance, I generated web service code from wsdl and xsd files (with wsimport). JAX-WS is under the a dual license (GPL and CDDL). Is the code that it generates under that same license? Is this clearly documented somewhere? I have spent all morning searching the web, and I have not found anything that clearly answers this question..."


The current Spotlightis Mario Fusco on the Lambdaj Project: "Jim Wright interviews Mario Fusco, creator of the Lambdaj Project, in this java.net Community Corner 2009 podcast, recorded at JavaOne: "Lambdaj is a library that makes easier to manipulate collections in a pseudo-functional and statically typed way. In our experience to iterate over collection, especially in nested loops, is often error prone and makes the code less readable. The purpose of this library is to alleviate these problems..."


This week's java.net Poll asks "Which feature phone platform offers developers the greatest capability?". Today (Thursday) is the last full day of voting.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." 

Current and upcoming Java Events :

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


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



Aaron Houston, Program Coordinator for JUGs and Java Champions, recently pointed me to the NetBeans Dream Team Blog Feed...  

Adam Bien points us to some interesting Kenai projects in his latest blog. While ourrecent poll on Kenaiseemed to indicate that Project Kenai is not yet well-known, Kenai clearly is attracting the attention of some highly accomplished Java developers. So, I've decided to take a closer look at Project Kenaimyself, starting with the projects Adam points out.

The first Kenai project Adam highlights is BetterBeansBinding. Adam describes this project as:

a fork of the BeansBinding project, which is the RI for JSR-295. With Fabrizio's Guidici experience - it could take-off.

Yep, as soon as any of us see the "F" word ("fork"), we instantly think: "But why?" BetterBeansBinding project founder Fabrizio Giudici (who blogs frequently on java.net) clearly anticipated this question, and the BetterBeansBinding FAQ's first item, posted near the top of the project's home page, is "Why a fork?" Here's Fabrizio's answer:

As per March 2009, the latest known release for BeansBinding is 1.2.1, published in November 2007; at the beginning of 2009 the only developer of the original library has left Sun and there have been no replacements; the JSR-295 specification itself is marked as inactive. BeansBinding works well for many users, not for others using some of the more advanced features; there are pending issues that nobody is working on. Thus, some people think that a fork of the project is needed to keep the features alive.

So, in fact, it's almost unrealistic to call BetterBeansBinding a "fork." What's really happening is an older project that became idle has been picked up by a new development team. Yet, BetterBeansBinding is technically a fork, because the original BeansBinding project continues to exist, as a java.net open source project, with project owners, a license (LGPL), etc.

The second item in the BetterBeansBinding FAQ talks about the relationship between BetterBeansBinding and the original BeansBinding project, and JSR 295:

In the preliminary discussions about the fork, many people expressed the desire for enhancing the library with new features. BBB is open to innovation; nevertheless, we will keep it compatible with JSR-295, so it will be possible to use it as a drop-in replacement for the original BeansBinding project. Of course, pending bugs will be fixed in function of the availability of the new committers.

The BetterBeansProject has five mailing lists, including commits, dev, issues, and users (there's also a Continuous Integration list, but it has no posts thus far). There's a News and Announcements page. The latest news is about the BetterBeansBinding Version 1.2.2 release. This release is actually the starting point for BetterBeansBinding. Fabrizio says:

There are no code changes from the last snapshot of BeansBinding; this release will be used to report issues against. With the exception of the Cobertura issue with Hudson, the software factory is ready and we can declare that the project has been started.

You can see additional notes about this initial BetterBeansBinding version in Fabrizio's java.net blog post. He does not recommend using the 1.2.2 release for production, "since I don't know in which state the last commit was done (and the current test coverage is 18%)."

The BetterBeansBinding Issues page shows 30 open issues, 5 in progress, 7 resolved, and 8 closed. So, even though there hasn't yet been a BetterBeansBinding release that differs from the last BetterBeans code snapshot, the project is clearly working toward a new release (which is scheduled to be Version 1.3.0).


In Java Today, Alexismp announces a New GlassFish Podcast episode: Antonio Goncalves: "It's been a while since the last GlassFish Podcast episode and even longer since the last interview, so here it goes - episode #36 an interview with Antonio Goncalves..."

Adam Bien has discovered Some Interesting #Kenai Projects - From 3D Simulation to REST-Cloud: " * betterbeansbinding: its a fork of the BeansBinding project, which is the RI for JSR-295. With Fabrizio's Guidici experience - it could take-off. * openjfx-compiler: the official repo of the javafx compiler. You can file bugs, issues and RFEs directly from Netbeans. * alice: 3d animation and (kids) teaching application. Really cool - even with Sims characters. See the 5min screencast..."

And John Smart announces that The second Java Power Tools Newsletter is out!: "The second Java Power Tools Newsletter is out! This time, the topic under discussion is Java Web Frameworks: Automated web tests are a great way to automate smoke and regression tests, and can also be effectively used in a TDD or BDD approach to designing your overall screen behaviour and screen flow. In this issue..."


In today's Weblogs, Carol McDonald demonstrates a Java EE 6 Pet Catalog with GlassFish v3 preview and MySQL: "This Pet Catalog app explains a web application that uses Java EE 6 with GlassFish and MySQL..."

Andrei Dmitriev points out JavaOne demo for JavaFX and SunSpot: "An interesting video with Denis Magda (a far east Russian ambassador) presenting a way to "listen" for SunSpot events and forward them to JavaFX application..."

And John Ferguson Smart writes about Getting the most out of the Maven settings.xml file: "If you have ever used Maven to any extent, you will probably know about the settings.xml file. The settings.xml file contains environment-specific details such as proxy configurations, repositories, server usernames and passwords, and so on. An example of what typically..."


In the Forums,mmaki is dealing with a performance issue -- Huge JXTreeTable deadly slow (only with Windows L&F): "Hi. Got a strange performance issue here with a JXTreeTable. With (default) Metal L&F, all works fine. When setting to Windows L&F, the JXTreeTable becomes deadly slow (scrolling and column-resizing). A plain JTree works in booth cases perfectly. It must be something with JXTreeTable and Windows L&F... Any idea? Or maybe a workaround for this?..."

johanvos asks how to deploy ear in GFv3: "I am a bit confused with how deployment of an ear is handled by GFv3(b58). I have a project Foo with foo-ejb.jar and foo.war. Inside foo-ejb.jar, a persistence unit is declared (in persistence.xml) and used. Inside the war, jndi lookups are performed for calling methods on the stateless session beans in the foo-ejb.jar. Deploying this ear in Netbeans works fine. Deploying it with asadmin deploy Foo.ear however gives an error: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [someFoo/em] in the scope of the module called [Foo/foo.war]..."

And chrislam99 is seeing an Lwuit v1.2: Error - ButtonGroup.clearSelection() method is broken?: "Hi there. This is my 1st post, as I didn't find anything in this forum or the issue tracker query. So, am not sure if anyone else have noticed this error - I've recently moved up from LWUIT release 20081222 to 1.2 and noticed that the clearSelection() method in ButtonGroup is now broken in release 1.2. It was working fine in release 20081222. The visual symptom observed in release 1.2 - After a radiobutton is selected in a buttongroup which is contained inside a tab, the selected radiobutton remains selected instead of being cleared..."


The current Spotlightis Mario Fusco on the Lambdaj Project: "Jim Wright interviews Mario Fusco, creator of the Lambdaj Project, in this java.net Community Corner 2009 podcast, recorded at JavaOne: "Lambdaj is a library that makes easier to manipulate collections in a pseudo-functional and statically typed way. In our experience to iterate over collection, especially in nested loops, is often error prone and makes the code less readable. The purpose of this library is to alleviate these problems..."


This week's java.net Poll asks "Which feature phone platform offers developers the greatest capability?". Voting will be open through Thursday.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." 

Current and upcoming Java Events :

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


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



Adam Bien points us to some interesting Kenai projects in his latest blog...  

The java.net Mobile and Embedded Community is one of the most actively communicative communities on java.net. Terrence Barr just published a new Mobile and Embedded Community News Update, which is featured in today's Java Today. We're also featuring two of the items in Terrence's update in Java Today: news about a Free "Summer Camp" courses introduce students to Java, JavaFX!, and a pointer to Steven Chin's blog post JavaFX Mobile Ready for Primetime!

Terrence's update also mentions the latest two Java Mobility Podcasts (84: Valderi Leithardt on using SunSpots for gesture recognition, and 83: JATAF panel discussion. We have a java.net page that is anindex to all Java Mobility Podcasts, dating back to Mobile and Embedded Podcast 1: Introduction to the Community, which was published on April 23, 2007. As you can see, the Mobile and Embedded community is quite active when it comes to podcasting. A total of 84 podcasts have been published in just under 28 months, an average of three podcasts per month. That's an example of what I meant in saying the Mobile and Embedded community is very communicative. It's an excellent reference source for news in the Mobile and Embedded realm.

Check out Terrence's post, and/or head directly over to the Mobile and Embedded Community home page, to read about the latest news. As Terrence says:

Even in this "quiet" summer time period there is plenty of newsworthy information flying around.

In Java Today, Terrence Barr provides a Mobile and Embedded Community News Update: 'Even in this "quiet" summer time period there is plenty of newsworthy information flying around. A list of new items posted to the Java Mobile & Embedded Community home page: Free "Summer Camp" courses introduce students to Java and JavaFX (deadline 8/14); Steven Chin on JavaFX Mobile ready for prime time...'

The java.net Mobile and Embedded Community came across a nice opportunity for students, Free "Summer Camp" courses introduce students to Java, JavaFX!: 'Yesterday, I was sent some information on a really cool and FREE "summer camp" course on JavaFX for students between the ages of 13-18, that has just a few weeks left, so please don't waste any time checking out the links! The course is brought to you by FreshBrain, which is an education platform for youth that focuses on technology and offers opportunities for teenagers to learn about and work with cutting-edge technologies in a safe community environment.'

The Mobile and Embedded Community also points us to Steven Chin's JavaFX Mobile Ready for Primetime!: "I was the very first person to buy an HTC Diamond at JavaOne. (Jacob Lehrbaum probably thought he was about to be mugged as I stalked him into the Java Store.) It worked out great for my presentations, but I had to tip-toe around some issues that showed up only on applications deployed to the phone. However, the latest JavaFX 1.2 EA release is ready for primetime! The installation was a breeze and all of the JavaFX applications I have tried on it so far have worked great."


In today's Weblogs, Jim Driscoll continues his JSF2 tutorial with Making a YUI Calendar Component in JSF2: "In my last blog entry, I went over getting a YUI widget working on JSF2. This time, let's go over what's required to move that widget into a JSF component. No Java required, but a fair bit of JavaScript."

Fabrizio Giudici posted Branch-per-feature, and it's another world: "After some experimenting and after moving all my projects to Mercurial repositories at Kenai, I've at last started regular working with it. Well, it's another world - I've already blogged a bit about some cool features of working with a..."

And Arun Gupta provides TOTD #90: Migrating from Wicket 1.3.x to 1.4 - "Couldn't load DiskPageStore index from file" error: "Now that Apache Wicket 1.4 is available, migrating from previous versions is pretty straight forward. Change the version in your POM file to 1.4.0 using the wicket.version element. And that's it! The complete dependency may look like..."


In the Forums, Sean Comerford has a War deployment question: "When I execute asadmin deploy myApp.war, it seems that that the corresponding directory ($GF_HOME/applications/j2ee-modules/myApp) is always deleted before asadmin unzips my war there once again. Is there a way to prevent this from happening? That is I just want the contents of my war to overlay what is already in$GF_HOME/applications/j2ee-modules/myApp... I do NOT want that directory deleted. This is b/c I have JSP-like template classes that take a loooonnnnng time to generate..."

culli asks about getNonTxConnection: "I have inherited a collection of rest web services and have found one that is leaking JDBC connections thanks to the connection leak detection in Glassfish. While reviewing that code I noticed that it callsDataSource.getNonTxConnection(). Reading the docs and googling it a bit leads me to believe that the code should probably not be calling that. I'm thinking that it should be contained in a transaction to contain the business process the web service is doing. Using it seems like it would expose the process to dirty data. The process in question is reading data from several places (mostly just doing reports)..."

And ynk_dev wonders about JTable sizing method: "Is there a decent way to make JTable show data the way it is shown when using an auto resize method (i.e make the columns fill the available space) but still have resizing behaviour as if auto resizing is disabled (which allows resizing columns beyond the available viewport space and show scrollbar if needed)? Currently if have succeeded in doing this by setting my table's autoResizingMethod to AUTO_RESIZE_OFF and resizing the columns myself. So far, so good, but when the table is shown for the first time, it flickers (probably due to the fact that the table was initially painted with the columns preferred sizes) which is quite annoying..."


The current Spotlightis Mario Fusco on the Lambdaj Project: "Jim Wright interviews Mario Fusco, creator of the Lambdaj Project, in this java.net Community Corner 2009 podcast, recorded at JavaOne: "Lambdaj is a library that makes easier to manipulate collections in a pseudo-functional and statically typed way. In our experience to iterate over collection, especially in nested loops, is often error prone and makes the code less readable. The purpose of this library is to alleviate these problems..."


This week's java.net Poll asks "Which feature phone platform offers developers the greatest capability?". Voting will be open through Thursday.


Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." 

Current and upcoming Java Events :

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


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



The java.net Mobile and Embedded Community is one of the most actively communicative communities on java.net...  

Java Champion Cay Horstmann is asking developers for a bit of assistance as he rewrites a Java book for beginners. His question is simple: "Are you using static import?":

I am rewriting a Java book for beginners, and it seems to make so much sense to use

import static java.lang.System.out;

public class Greeting
{
   public static void main(String[] args)
   {
      out.println("Hello, World!");
   }
}

I would no longer have to dissect the awfulSystem.out.println("Hello, World!") expression.

Cay notes that, for example, sin(angle * PI / 180)"looks so much nicer than" Math.sin(angle * Math.PI / 180). However, his objective in asking the question is to:

get the reaction of the average Java coder here. Have you switched from System.out to out with a static import? Would you think it weird to look at other people's code that did that? Or would you welcome it?

Since the book is for Java beginners, it would not make sense to teach something that simply isn't done by the vast majority of Java developers. The beginner, in their first job, might look at inherited code they have to work on, and think something's wrong.

So far, 19 comments have been posted in response to Cay's question. It turns out that "Are you using static import?" is indeed a stimulating question!


In Java Today, we're featuring Mario Fusco on the Lambdaj Project: Jim Wright interviews Mario Fusco, creator of the Lambdaj Project, in this java.net Community Corner 2009 podcast, recorded at JavaOne. "Lambdaj is a library that makes easier to manipulate collections in a pseudo-functional and statically typed way. In our experience to iterate over collection, especially in nested loops, is often error prone and makes the code less readable. The purpose of this library is to alleviate these problems employing some functional programming techniques but without losing the static typing of java..."

Java Champion Adam Bien talks about his Five Days with NetBeans68M1, JSF20, EJB31, Maven, and GlassFish V2/V3... And the Result: "NetBeans 6.7.1 worked well for me, even the new Java EE 6 stuff can be used after some tweaks. Netbeans 6.8m1 supports Java EE 6 out-of-the-box, so I switched some projects and worked intensively with it. Conclusion..."

Angela Caicedo has an interesting article on the Sun Developer Network, Developing Content with JavaFX Mobile, Java ME, and the Messaging API (JSR 205) - Background: "One of the questions every time a new technology appears is "How can I integrate this technology with my existing applications?" This article shows you how to use the JavaFX mobile user interface with existing Java ME APIs and, in particular, the Messaging API (JSR 205). You will build two applications: one will create and send the message, and the second application will receive the message..."


In today's Weblogs, Sebastien Dionne writes about GWS Deployer 1.9.17 : Reloaded : New Features Part 1: "Since the Grizzly release 1.9.17. There were few new features for Deployer. Let's take a look of theses "must have" features."

Cay Horstmann asks developers Are you using static import?: "I would love to replace System.out.println with a static import and out.println in an introductory textbook, so that I could focus on objects and methods rather than what System.out means, but I am worried that it is considered too weird. What do you think?"

And John Ferguson Smart has written A silly song for Agile2009: "To the tune of 'Blowing in the wind', by Bob Dylan. This (rather silly) text was inspired by a tweet from Andres Almiray How many sprints must a girl conduct, Before scrum-master she becomes? Yes, 'n' how many stories must we implement, Before..."


In the Forums,Felipe Gaucho has a question about @Local access in EAR file: "I have this EAR file, web.war, ejb.jar, lib/ejb.client.jar. In my EJB I have beans I want to annotate as @Local ... problem is: if I use @Local, the classes od web.war cannot find the reference to the EJBs.. but if I keep the same code and packaging structure and just chance the annotation to @Remote, it works..."

mcapelati asks WHY my j2me app stops sending http data...: "Hi folks, Hi have an J2ME application that should get some data and send them to an external php application. Everything was working fine. But now,misteriously, it just stops to send data (!). There was a change on the server - but I've never heard that there was some incompatibility with j2me and linux+apache+php... Another thing was I upgrade to Netbeans 6.5.1. I've lost 2 whole days looking for the problem, and nothing... Watching by Netbeans debugger, all data are fine, and variables are with right values - but it simply does not POST the data to php..."

And skolson asks about User certificate authentication with jax-ws 2.1.7 client and IIS .Net srvr: "I'm attempting to use basic jax-ws as a web service client to a .Net web service that requires a client certificate to authenticate. No WS-* specifications are involved, this is just straight client certificate authentication. So far my attempts all result in 403.7 errors returned from IIS, and the java SSL debug output shows no attempt by jax-ws to submit the client cert in the configured keyStore (see below). I figure I must be missing something, and am hoping someone can point me in the right direction. I've made a modified cacerts keystore that has the correct CA certs involved for both the SSL negotiation and the issuer of the client cert..."


The current Spotlightis Mario Fusco on the Lambdaj Project: "Jim Wright interviews Mario Fusco, creator of the Lambdaj Project, in this java.net Community Corner 2009 podcast, recorded at JavaOne: "Lambdaj is a library that makes easier to manipulate collections in a pseudo-functional and statically typed way. In our experience to iterate over collection, especially in nested loops, is often error prone and makes the code less readable. The purpose of this library is to alleviate these problems..."


This week's java.net Poll asks "Which feature phone platform offers developers the greatest capability?". Voting will be open through next Thursday.


Our Feature Articles include Jeff Friesen's new article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." OpenJDK Podcast is The latest JavaOne Community Corner Podcast is


--> 

Current and upcoming Java Events :

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


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



Java Champion Cay Horstmann is asking developers for a bit of assistance as he rewrites a Java book for beginners...  

Almost a third of the votes in this past week's poll about the beta Project Kenai were cast for the "I don't know" option. That says quite a lot in itself. A total of 246 votes were cast. The actual question and results were:

What do you think about Project Kenai?

  • 8.9% (22 votes) - It's a great new concept
  • 4.4% (11 votes) - I use it and like it
  • 10.1% (25 votes) - I plan to get involved eventually
  • 42.6% (105 votes) - Doesn't seem that significant to me
  • 32.1% (79 votes) - I don't know
  • 1.6% (4 votes) - Other

The 32% who voted "I don't know" either haven't heard of Project Kenai, or perhaps they've heard the name but don't really know what it is. The 43% who voted "Doesn't seem that significant to me" are indicating that they've at least taken a glance at what Kenai offers. A total of about 23% expressed a favorable view of Kenai.

I realize now that the poll was missing an option that would let people express knowledgeable disapproval of Kenai -- that is, something like "I've investigated Kenai, and I don't like it." Had that been there, it might have gotten the vote ofcowwoc, who commented:

I tried using Kenai for a while but I think I will move all my projects to Google Code. The reason is simple: polish. java.net and Kenai both suffer from the same problem: Sun starts something great and then leaves it unfinished.

To which hexer responded:

Kenai ist way better than java.net. It provides already Subversion, JIRA, mailing list, ... You just have to activate these features. It will soon give you the possibility to upload your java doc and own homepage. It is still beta so I think you can expect it to be a little bit unpolished.

cowwoc agreed that Kenai is improving every day, but:

I also believe that it will take them a very long while to reach the point I'm looking for. Maybe Kenai will be decent in a year from now, but *today* I can already create a Google Code account, swap out their issue tracker for JIRA and their mailing list for Nabble. It's hard to argue with that.

I think the poll result largely states that Project Kenai simply isn't all that well known at this point. It's a beta project, and for some (for example, cowwoc), the rough edges and incomplete or missing features that come with beta projects are unacceptable at this time. As cowwoc says: "I want Kenai to win but I've yet to be convinced."

The combined 75% of votes for "I don't know" and "Doesn't seem that significant to me" represent a pool of potential future users (should these people some day need a home for their own open source project), provided that Kenai development continues, with addition of new features the developer community wants and expects in an open source project host platform.

New poll: best phone platform for developers

Our new java.net poll asks "Which feature phone platform offers developers the greatest capability?" Voting will be open through next Thursday.


In Java Today, Danny Coward updates us on Java ME: LWUIT Upgrades: "For those developers working on apps for today's feature phones, the Java Swing-inspired LWUIT has long been a good option for making good looking UIs such as these. And its just part of the all-devices-in-one Java ME SDK 3.0..."

Peligri provides an update on Managing Your Apache Web Server - More on WebStack Enterprise Manager: "Sun's supported (L)AMP distribution, the GlassFish WebStack, was released last week and the team has several new posts on the new Enterprise Monitor for Apache..."

Jeff Trawick will be hosting a webinar titled Turbo Charge your AMP Deployments with GlassFish Web Stack on Wednesday, August 12, at 10:00 AM Pacific Time (U.S.): "Join Jeff Trawick for a free webinar featuring a demo of the new Enterprise Manager in GlassFish Web Stack and learn to: Leverage the AMP/SAMP stack with your existing GlassFish Enterprise Server deployments in your organization; Turbo-charge your existing standalone AMP/SAMP stack with the GlassFish Web Stack..."


In today's Weblogs, James Gosling announces a CALL FOR PARTICIPATION: JVM LANGUAGE SUMMIT, September 2009: "[cross-posted from the JVM summit mailing list] This is a reminder for the 2009 JVM Language Summit to be held at Sun's Santa Clara campus on September 16-18, 2009. Registration is now open for speaker submissions (presentations and workshops) and general attendance. More information is available at http://jvmlangsummit.com..."

Masoud Kalali presents a Quick NetBeans RCP Tip: How to reuse an already open TopComponent instead of creating a new one.: "Quick NetBeans RCP Tip: How to reuse an already open TopComponent instead of creating a new one."

And Arun Gupta provides TOTD #89: How to add pagination to an Apache Wicket application: 'TOTD #86 explained how to get started with deploying a Apache Wicket application on GlassFish. This Tip Of The Day (TOTD) will show how to add pagination to your Wicket application. The blog entry "JPA/Hibernate and Wicket Repeating Views with Netbeans"...'


In the Forums,Felipe Gaucho asks about EJB 3.1 @Singleton + Clustering ??: "Question: if I have an EJB 3.1 annotated as @Singleton and I deploy my application in a cluster, who guarantees the unique logical instance of my bean ? My application see only 1 EJB instance.. but I know the cluster will replicate the instance in each node.. so, who do that synchronization? every Singleton EJB 3.1 becomes accessible only through JNDI ? or what ?..."

hal9k is working with OrientedShape3D issues: "Hello, I'm currently working on a visualization component of scientific data for a university project. I need to be able to draw fixed-size view-oriented axis labels and tried using OrientedShape3D for this. While orientation of the labels works fine for the most part, I noticed the following issues: 1. When putting an OrientedShape3D under a TransformGroup which scales axes differently, keeping the constant scale doesn't work. I managed to work around this by arranging TransformGroups differently. 2. To my understanding, the on-screen-size of a OrientedShape3D with constant scale enable shouldn't change when resizing the Java 3D window, but keeping the size of the object doesn't work here either..."

And kilosi has a problem involving Java2D and Swing Component Performance: "Hello, I am looking for some advice on an issue I am having. I have a program that draws a large image on the screen as a JLabel. On this JLabel, you can place down item that will play an animation (for example, they'll blink RED-YELLOW-GREEN). I have overloaded the paintComponent method to handle drawing the placed items. This JLabel placed on a JDesktop. Then I have several JInternalFrames open that can be moved around on top of this JLabel. These JInternalFrames are used to display various information about the items that have previously been placed. I have a RepaintThread that will repaint the Image (by calling the repaint() method) every 100 MS. However, this causes a serious performance degradation..."


The current Spotlightis the James Liu and OpenSolaris Team Roundtable: "java.net's Gary Thompson moderates a roundtable discussion with James Liu and members of the OpenSolaris Team in this java.net Community Corner 2009 podcast, recorded at JavaOne."


This week's java.net Poll asks "Which feature phone platform offers developers the greatest capability?". Voting will be open through next Thursday.


Our Feature Articles include Jeff Friesen's new article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." OpenJDK Podcast is The latest JavaOne Community Corner Podcast is


--> 

Current and upcoming Java Events :

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


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



Almost a third of votes in this past week's poll about the beta Project Kenai were cast for the "I don't know" option...  

Recently the java.net Mobility and Embedded Community published a Java Mobility Podcast 81: JDTF, in which Victor D'yakov talks about the community's new Java Device Test Framework Project. Having worked on lots of large (millions of lines of code) software engineering projects, I'm quite familiar with the difficulty of testing systems for robustness and reliability. So, today I decided to take a look at JDTF.

The project's home pageintroduces JDTF as:

a test framework based on Sun Microsystem's commercialJava Device Test Suite (JDTS) product. JDTF is a general purpose, fully-featured, flexible, and configurable test framework suited to assess various aspects of Java Platform, Micro Edition (Java ME) device implementation quality, such as fitness, interoperability, reliability, and performance. The framework is a set of JT harness plugins that facilitates the running of quality test suites on Java ME devices.

Following the JT harness link brings us to the JT Harness project, which is also a java.net project. The JT harness:

  • Is designed to configure, sequence, and run test suites that consist of many (100,000 or more) discrete, independent tests. It is especially good at testing APIs and compilers.
  • Can be used to run tests on all of the Java platforms, from the Java Card platform, to the Java Platform, Enterprise Edition ("Java EE").
  • Enables you to create test suites that are self-contained products that customers can easily configure and run.

The JT Harness project released their Version 4.2 Milestone Release in March. The JDTF project released Version 2.4 in May. Among the highlighted features in JDTF 2.4 are the capability to generate new stub test classes, integration with NetBeans, ability to run tests on Java ME / CLDC devices, and ability to debug tests on Java Platform Debugger Architecture enabled emulators and devices.

Terrence Barr wrote about the JDTF project when it was released as a Java Mobile and Embedded Community project. The project had a pod at JavaOne, it was presented in lightning talks (at CommunityOne and in a JavaOne BOF), and JDTF was also an aspect of a JavaOne technical session (TS-6263: Device Fitness Testing) and a JavaOne panel discussion (PAN-7083: JATAF Panel: What Is It, How to Use IT).

Speaking of JATAF (the Java Application Terminal Alignment Framework -- another java.net project), JDTF is the test framework that has been chosen by JATAF for running their test suite. JATAF is "collaborative project made up of companies and individuals whose goal is to make Java ME a truly ubiquitous platform for application deployment on mobile devices. Current sponsors are Orange, Sony Ericsson, Sun, and Vodafone." You can hear excerpts from the JavaOne JATAF panel discussion in Java Mobility Podcast 83: JATAF panel discussion.

Clearly, I've barely scratched the surface of the Java Device Test Framework and related technologies in this one post. I'll go into some more depth on the project and related projects in some future follow-on posts.


In Java Today, In Net Applications: Apple just lost half its 'market share', java.net Mac Java Community leader Chris Adamson pointed me to Net Applications: Apple just lost half its 'market share'. Chris pointed this out not only because of the drastically changed Apple market share that results from the new Net Applications methodology, but also because the new method drastically increases the market share of Java ME based browsers. Chris notes: "With the new numbers, ME's share is now the same as the iPhone's, and nearly double Symbian's." See the article for the full details.

Java ChampionAdam Bien asks How Evil Are Data Transfer Objects (DTOs)?: "DTOs aren't dead. The opposite is true. In certain situations, they become the necessary tool or workaround to solve a particular problem. Impedance mismatch between layers is rather common. The object driven JPA (entity/domain layer) is often kept DRY and fluent, whereby the database driven approach results in anemic domain objects. In either case you would like to keep your exposed REST-API simple and lean..."

Elliotte Rusty Harold notes that Version 1.6.4 of Groovy has been released: "Version 1.6.4 of Groovy has been released. Groovy is a JVM hosted scripting language that "builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk." 1.6.4 is a bug fix release..."


In today's Weblogs, John Ferguson Smart announces Online Maven training - coming soon to a PC near you!: "If you are on the lookout for some good Maven training, but can't justify travelling to a training center in another city, then Sonatype might have the answer. Starting next week, Sonatype is proposing its core Maven training material..."

And Arun Gupta provides TOTD #88: How add pagination to Rails - will_paginate: "This Tip Of The Day (TOTD) explains how to add pagination to your Rails application. Create a simple Rails scaffold as..."


In the Forums,daniel_leo asks is seeing hanging in sailfin when rebooting one node in cluster: "Hi, We got one problem, which looks hanging of some EJB threads. - 2 nodes are configured as a sailfin cluster, e.g, instance1, and instance2; - run traffic towards both nodes, i.e., instance1 and instance2; - reboot one node, e.g., instance2; - instance suddenly does NOT work. Part of the thread dump as below. It looks like quite a lot of threads are in hanging state..."

steflik asks NPCs: "How do I include NPCs in my wonderland environment? Since my Wonderland will be the Binghamton Camous i was planning on people like instructors and staf being represented as NPCs. Can NPCs have scripted dialogues associated with them (can the answer "canned" questions from players?)..."

rado_penev has a Problem with remote EJB call and inheritance: "Hello all. I have a problem with calling EJB through it's remote interface. I am passing an entity class as a parameter to the call. The entity class is extending another class as MappedSuperclass. All the properties in the superclass are resolved to null at the EJB side. I am calling the EJB from JSF managed bean. Am I doing something wrong, or there is some limitation/bug?"

And John Clingan announces a GlassFish v3 / Java EE 6 schedule update: "As some of you may have already heard, JSR 330 (Dependency Injection for Java) will be incorporated into Java EE 6. Because of this, the Java EE 6 specification schedule - and the release of GlassFish v3 - will be modified to reflect this addition. On a positive note, immediate alignment between JSR 330 and JSR 299 (Context and Dependency Injection for Java, aka Web Beans) will only improve developer experience with Java Enterprise Edition Platform. We expect a relatively minor schedule impact to GlassFish v3..."


The current Spotlightis the James Liu and OpenSolaris Team Roundtable: "java.net's Gary Thompson moderates a roundtable discussion with James Liu and members of the OpenSolaris Team in this java.net Community Corner 2009 podcast, recorded at JavaOne."


This week's java.net Poll asks "What do you think about Project Kenai?". Today (Thursday) is the last full day of voting.


Our Feature Articles include an article by Biswajit Sarkar, Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications. We're also featuring Jeff Friesen's Introducing Custom Cursors to JavaFX, in which Jeff shows developers how to leverage undocumented JavaFX capabilities to support custom cursors in versions 1.2 and 1.1.1.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." OpenJDK Podcast is The latest JavaOne Community Corner Podcast is


--> 

Current and upcoming Java Events :

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


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



Recently the java.net Mobility and Embedded Community published a Java Mobility Podcast 81: JDTF, in which Victor D'yakov talks about the community's new Java Device Test Framework Project..  

I was talking with java.net former editor Chris Adamson this morning (via email), and our conversation got me thinking about the future of Java. Last week's poll, which asked "What's your view of the emerging JDK 7?", elicited an enormous volume of commentary. A fair amount of the debate was related to Scala. Scala is indeed receiving increasing attention, as the current Alexa graph for scala-lang.org shows:

scala-lang-alexa.png

Prior to this year's JavaOne, at a java.net Community Leader's breakfast I attended, someone said that java.net isn't really "about" Java -- rather, it's about the JVM, it's about anything that can run in the virtual machine. That statement stuck with me, though until now, a couple months later, and after chatting with Chris, I hadn't thought of anything to say about it.

In the early 2000s I was working for a small company as architect / lead engineer / project team leader for a Windows based high-volume document archive and retrieval product. Back then, .NET was just coming into being. It strikes me now that the underlying .NET concept is actually quite similar to what the JVM has become: you have a software platform that runs a certain kind of byte code, and you can develop code that will run on the platform using a variety of higher level languages, with the developed programs reduced by a compiler down to the appropriate byte code. Come to think of it, haven't we always had that? Doesn't everything get compiled down to some form of Assembly language, ultimately?

The Java concept, of course, is quite different from .NET, in that Java is a "write once, run anywhere" paradigm, while a big (secret) objective of .NET (IMO) was to facilitate the transitioning of hoards of Windows developers over to the "next big thing" in the Windows world. An easy path into .NET reduced the number of lead engineers, architects, and Development V.P.'s who might otherwise have said "Hey, if our team has to learn something entirely new anyway, why don't we just switch to Java and have our product work on all platforms?" C#, after all, is Java-ized C++, isn't it? I vividly remember thinking "wow, Microsoft is really scared of Java!" when I read the first preliminary 65 or so page C# specification.

Anyway, I titled this little essay "Will the JVM Outlive Java?" because it seems to me that languages, overall, are less durable than the platforms on which they run. Among developers, language preferences, it seems to me, are a bit like music preferences. Most people tend to consider whatever they entered adulthood with as clearly the best. Interestingly, at the time when they are learning their ultimately preferred language, that language/technology is always a hot, new, cool technology. Just as the music they ultimately consider best was new and different and cool when they were listening to it as high school and college students. Both the languages and the music may incite statements of dismissal or derision from their parents' generation, so a bit of adolescent rebellion is also involved.

Note: I don't count myself among either of these groups. I like plenty of new music, and find new languages and language concepts quite interesting. But, I do have to admit that there really isn't anything that has quite the same feel for me as David Bowie's Hunky Dory andZiggy Stardust. The imprint of what you really liked in your late teens and early twenties is quite pervasive -- kind of like just-hatched chicks imprintingon the first large animate object they see... Hmm, are wereally that simple ourselves?

Anyway, there's another reason the platform tends to outlive the language. In the discussion in last week's poll, there was a debate between a development team leader who was managing hundreds of thousands of lines of Java code and another team leader who was working on projects basically from scratch, using Scala. So, scotty69 (the Java project lead) said:

Please help me: I have - say - 200.000+ lines of 3 years old Java code, mature, thoroughly tested, battle proof. My customer wants me to add feature X with about 2.000 lines of new code and and 3.000 lines of existing code to be changed, tight budget as usual. Do your really think that it's a good idea to to introduce Scala in this scenario to "extend Java classes, call methods and so on"? Do you have experience in mixing a large legacy Java codebase with new Scala elements? Can you tell me how the tool-chain could look like?

For an established code base, converting to a new language is enormously expensive -- basically, it's wasteful, stupid. That's why in the scientific/engineering data center where I work part time, we still have loads of operational Fortran libraries. Yes, we wrap them inside layers of other code, connect to a modern Oracle database, generate interesting graphics and post them on nicely formatted web pages, etc.; but the core computational code is legacy engineering and mathematical modeling code, mostly written in Fortran, or C.

Meanwhile, here's aehrenr's point (the leader of the Scala-based project):

We make applications for genome comparison including 3 tier apps with Swing frontends. And we do it as an university working group with changing programmers, many of them not computer scientists but also mathematicians, biologists and so on... I am for sure the exact opposite of a "java basher". Scala is starting to be used in the enterprise in reality...

If you're developing something from scratch, with relatively inexperienced developers, why not go with a well-constructed new language that solves some of the issues that are outstanding in older languages? If it's 1998 and you're developing a brand new application, why deal with stamping out C/C++ memory leaks and trying to teach young developers about pointers, when Java offers a garbage collector for free? Well, now it's today, 2009. Is there perhaps a new language that runs on the JVM that fixes some annoying, developer time consuming Java issues?

But, for this to be possible -- one set of developers working with established code bases that utilize rock-solid, well-tested code that is potentially decades old, and another set of developers working on brand new applications using new languages -- the underlying platform has to be durable and extensive and extensible.

Hence, my answer to "Will the JVM Outlive Java?" Well, Java won't die any time soon, but the JVM is the critical enduring platform, really. What do you think?


In Java Today, Kohsuke Kawaguchi is Announcing Sun Continuous Integration Server: "The continuous integration server Hudson that I started 5 years ago has grown to the point that it has become an important part of many businesses (to name a few, and most of them run inside corporate firewalls that I can't point you to.) When an enterprise depends on Hudson as an infrastructure for doing software development, a commercial support often becomes an useful option — And to this end, I'm happy to announce that Sun now offers Sun Continuous Integration Server (SCIS) support subscription, as a part of GlassFish Portfolio..."

Peligri reports that JavaEE 6 Will Include JSR330 and JSR299: "Java EE 6 will include JSR 330and JSR 299. Roberto explains the changes: JSR-299 will be updated to use the JSR-330 annotations; JSR-330 has evolved to take into account requirements from JSR-299; Both JSRs will be part of the Java EE 6 Platform..."

An interesting new article has been posted on the Sun Developer Network, Java HotSpot Garbage Collection: "The Garbage-First Garbage Collector (or G1 GC for short) is a new GC that is being introduced in the Java HotSpot VM in JDK 7. An experimental version of G1 has also been released in Java SE 6 Update 14. G1 is the long-term replacement for HotSpot's low-latency Concurrent Mark-Sweep GC (widely referred to as CMS)..."


In today's Weblogs, Roberto Chinnici writes about Dependency injection in Java EE 6: "One big topic of discussion at JavaOne was the recently filed JSR-330, "Dependency injection for Java". As many of the comments during the JSR approval ballot made clear, some alignment of JSR-330 and JSR-299 (formerly knows as "Web Beans") was..."

Sergey Malenkov writes about Score your game: "In a game the score refers to the amount of points gained by a player or a team. ?onsider a JavaFX component that shows the score and enables its smooth changing."

And Jim Driscoll writes about Using the YUI Calendar widget with JSF 2: "There's more to web development with JSF than just using JSF component libraries - there's a lot of really great widget sets out there that have nothing to do with JSF - here's a quick example of using one (the YUI Calendar widget) with JSF, Ajax, and a Managed bean."


In the Forums,trw1313 asks about WCF Service and Security: "I am trying to consume a WCF service from a java client contained within a web application on GlassFish. I have retrieved the wsdl from the WCF service which I believe should have all the security settings contained within it. From the IDE, I set the security portion of the of the attribute editor to contain a "Static" username and password. After that, I follow the process for adding code to call the service which looks like the following: org.tempuri.AccountService service = new org.tempuri.AccountService(); ..."

John Stalker asks about v2.1 node-agent as a windows service (sometimes) fails to start on
reboot with an "Address already in use" exception
: " reboot with an "Address already in use" exception
Hi there, I've got several (ie 60) windows PCs that have been configured to start /stop a node-agent (each with one glassfish instance) as a windows service. Trouble is, I am having intermittent failures on reboots. Most times, the agent starts up just fine... but sometimes it doesn't and I have to go out and manually stop the service (the windows service claims is starts successfully even though the node-agent failed to start) and restart it. That always fixes it. I have no trouble starting the service after I've logged into the machine. Any ideas why I might be getting this error and how I might navigate around this issue?..."

And Sarah Kho asks about is it possible to use JPA without that persistence.xml file?: "Hi. Thank you for reading my post. I am looking for a way to use JPA but I want to set the connection url during application startup and not in the development time. I should run the application on multiple machines and each machine has its own ip address which database is running on t. I should change the connection url and create tens of distribution for all of computers which want to use it. if there was a way to set the connection URL programmically all of my build and distribution problems will vanish..."


The current Spotlightis the James Liu and OpenSolaris Team Roundtable: "java.net's Gary Thompson moderates a roundtable discussion with James Liu and members of the OpenSolaris Team in this java.net Community Corner 2009 podcast, recorded at JavaOne."


This week's java.net Poll asks "What do you think about Project Kenai?". Tomorrow (Thursday) is the last full day of voting.


Our Feature Articles include an article by Biswajit Sarkar, Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications. We're also featuring Jeff Friesen's Introducing Custom Cursors to JavaFX, in which Jeff shows developers how to leverage undocumented JavaFX capabilities to support custom cursors in versions 1.2 and 1.1.1.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." OpenJDK Podcast is The latest JavaOne Community Corner Podcast is


--> 

Current and upcoming Java Events :

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


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



I was talking with java.net former editor Chris Adamson this morning (via email), and our conversation got me thinking about the future of Java...  

It seems like NetBeans 6.7 is still brand new, but, as Ludovic Champenois reports, NetBeans 6.8 Milestone 1 has been released and is currently available for download. Ludovic highlights the most significant new feature in Version 6.8 Milestone 1 as being:

Java EE 6 support with the latest GlassFish v3 (build 57). The bundle is only 132Mb and contains everything you need to start with Java EE 6: the IDE, the Java EE 6 current runtime, the JavaEE 6 JavaDocs (for code completion), the JavaDB database, and very very cool features from the plaform or its implementation

Ludovic notes that Java EE projects can be saved and redeployed in less than a second, with sessions preserved. The Java EE support also includes EJB singletons, JSF 2.0 and Facelets, all current Java EE 6 APIs (REST JAX-RS 1.1, JAXB 2.2, Metro 2.0, JAX-WS 2.2, JPA 2.0, etc.), and Java EE 6 Javadoc preview in code completion. Ludovic notes that not many IDEs offer the Java EE Javadoc preview capability at this time.

The NetBeans wiki now has a NewAndNoteworthyNB68page, that provides full details of what's in NetBeans 6.8 Milestone 1. In addition to the Java EE support, Milestone 1 includes:

  • a new embedded browser based on Mozilla XULRunner
  • enhanced Java Server Faces editing support
  • enhanced C/C++ support, including remote development and profiling tools
  • JIRA issue tracking support

See NewAndNoteworthyNB68for the complete details.

NetBeans 6.7 was released just five weeks ago. Yet, NetBeans 6.8 Milestone 1 includes significant enhancements and new capabilities. That's quite an up-tempo development pace! If you'd like to try out NetBeans Version 6.8 Milestone 1, you can get it at the NetBeans IDE 6.8 M1 Download page.


In Java Today, Ludovic Champenois posted news about the latest NetBeans milestone in NetBeans: the Java EE 6 IDE: "Bonjour Comment Java? today is some type of historical milestone for Java EE 6: This is Milestone 1 of NetBeans 6.8 and Java EE 6 support with the latest GlassFish v3 (build 57). The bundle is only 132Mb and contains everything you need to start with Java EE 6: the IDE, the Java EE 6 current runtime, the JavaEE 6 JavaDocs (for code completion), the JavaDB database, and very very cool features from the plaform or its implementation..."

Java ChampionJoe Winchester has an interesting proposal for an IT Olympics: "There are a number of esteemed contests for the greatest and fastest software developers among us - events where we can pit our coding prowess against fellow brainiacs and like-minded techies. I think it's high time we had an alternative set of awards, suited not to aspiring budding Turing machine engineers, but rooted more in the humdrum real, rather than artificial academic, world..."

Elliott Rusty Harold noted that Sun has released Java DB 10.5.1.1: "Sun has released Java DB 10.5.1.1,a rebranded version of Derby, Apache's open source SQL database. This release adds in-memory databases that vanish when the JVM exits. "


In today's Weblogs, Felipe Gaucho posted Don't break the optimistic locking: "To bypass the optimistic locking is a common mistake when we expose domain models through web-services. The well know and avoidable trap continue to catch the ones that insist in to persist without optimism."

Fabrizio Giudici tells us How Mercurial will save my bill (and my time) for the next month: "Ahhh... at last I've moved to my "summer residence", as usual in the beloved Maremma Toscana. I've moved part of my lab with me and I can work as usual on my projects - even better, considering the relaxing environment..."

And Arun Gupta presents TOTD #87: How to fix the error undefined method `new' for "Rack::Lock":String caused by Warbler/JRuby-Rack ?: "If you are using Warbler to create a WAR file of your application and deploying on GlassFish or any other Servlet container, then you are likely seeing the following error during deployment..."


In the Forums,gsong describes a GlassFish problem in Data stored as session attribuite disappear!!: "I setup a glassfish cluster with 2 node agents with 2 instance each and deployed a web app onto it. User have to login the web app first and I stored the user login info as the session attribute, after login successfully user can do a query action. There is a login check at the very beginning of the query action to prevent users accessing the module without properly logged in. Page will jump back to login page If there is no login info in the session. My web app works all right in a single glassfish app server or in a cluster with only one instance. When more than one instance, the login info stored in the session can suddenly disappear. For example, ..."

dbsquared asks about Deploying to a cluster with no downtime: "I was wondering if it's possible to deploy to a cluster without taking the application down for a maintenance window. In our case we will likely have a hardware load balancer fronting the application so we could use 2 stand alone instances with the same application deployed where software deployments would go like this. 1. stop traffic to 1 instance from the LB. 2. deploy the new application code to that instance and test. 3. swap the instances in the LB and repeat. This of course does not take advantage of the Glassfish cluster features of config sharing and in-memory session replication. Can someone describe how you could achieve something like this using the cluster profile."

And technolgia has a List Focus Problem with LWUIT 1.2: "Hi, I have a form which contains a text field and a list. The list is added below the text field.In the lists focus lost i have given getModel.setSelectedIndex(-1) and it used to work fine with LWUIT20081222. I now migrated to LWUIT1.2 and the same code adds a null value in the list when the focus goes to the text field.Ive read that getModel.setSelectedIndex(-1) is not the correct way of doing it. Can some one help me out with this. How do i get the highlight off the list when it has no focus."


The current Spotlightis the James Liu and OpenSolaris Team Roundtable: "java.net's Gary Thompson moderates a roundtable discussion with James Liu and members of the OpenSolaris Team in this java.net Community Corner 2009 podcast, recorded at JavaOne."


This week's java.net Poll asks "What do you think about Project Kenai?". Voting will run through Thursday.


Our Feature Articles include an article by Biswajit Sarkar, Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications. We're also featuring Jeff Friesen's Introducing Custom Cursors to JavaFX, in which Jeff shows developers how to leverage undocumented JavaFX capabilities to support custom cursors in versions 1.2 and 1.1.1.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." OpenJDK Podcast is The latest JavaOne Community Corner Podcast is


--> 

Current and upcoming Java Events :

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


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



It seems like NetBeans 6.7 is still brand new, but, as Ludovic Champenois reports, NetBeans 6.8 Milestone 1 has been released...  

The java.net Java Champions project is a page I've had bookmarked in my browser for a long time. The project page currently features a JavaOne slide show and a Java Champion and Community Leader slide deck, along with the topic of this blog post: the Java Champion Blog Feed.

The Java Champion Blog Feed is a consolidated feed of the blogs of 37 of the Java Champions. I selected todays "Java Today" items from the feed, to demonstrate the type of content you'll find in the feed. As you'd expect, the Java Champions are a busy group of people who don't have a lot of time to spend on writing blog posts, so the flow from the feed is not a enormous in terms of volume. But in terms of quality and interesting content? It's as superb as you'd expect from such a highly qualified community.

The feed itself is constructed using Yahoo Pipes. The current list of participants in the feed includes:

   
Deepak Alur
Adam Bien
Geert Bevin
Mike Cannon-Brookes
David Bock
Stephen Colebourne
Bert Ertman
Yakov Fain
Filippo Diotalevi
Fabrizio Gianneschi
Antonio Goncalves
Ron Hitchens
Ahmed Hashim
Bruno Ghisi
Jacob Hookom
Bruce Hopkins
Cay Horstmann
Manfred Riem
Neal Gafter
David Geary
Michael Huettermann
Dr. Heinz Kabutz
Dr. Michael Kolling
Paul Lipton
Dr. Qusay Mahmoud
Harshad Oak
Chris Richardson
Clark RItchey
Kirk Pepperdine
Frans Thamura
Michael Van Riper
Jim Weaver
Alan Williamson
Joe Winchester
Joe Walker
Eberhard Wolff
Michael Yuan

The Java Champion Blog Feed provides a very convenient way to keep up to date with the latest thoughts and ideas of the Java Champions.


In Java Today,Java ChampionAdam Bien posted Java The Most Popular Language - ActionScript Is Followed By Fortran And Cobol: "Java is the most popular language in July. ActionScript (22) is tightly followed by Fortran and COBOL (what a nice neighborhood :-)). Scala is actually doing well (32) and Java FX Script (44) seems to be more popular than Groovy (47) - what really surprised me..."

Java ChampionJim Weaver has posted the latest entry in his JavaFX tutorial series, Six Degrees of Aynsley Dunbar: BandmatesFX Example JavaFX App Continued: "So far in this Freebase Contributing Artists App series, we've been developing a JavaFX application that enables the user to navigate connections among musicians. I'm calling this application BandmatesFX, and it uses the JSONHandler feature of the JFXtras open source library to easily query the Freebase.com database..."

A few weeks ago, Java Champion Alan Williamson posted A Simple Java class for Amazon SimpleDB: "Last October, I released an updated version of the simple Java class for accessing all the methods of Amazon's SimpleDB web service. This class also forms the basis of the Amazon methods within OpenBlueDragon..."


In today's Weblogs, Jim Driscoll writes about Comet based TicTacToe in Atmosphere: "About a year ago, I gave a talk at JavaOne on how to write a Comet powered TicTacToe game. At the time, I used the Grizzly Comet APIs. Here's an update for it to use the multi-platform Atmosphere API set."

Rémi Forax writes about a DLR Expression Tree like in Java: "This entry show how to implement an Expression Tree like the one that comes with the DLR in Java on top of JSR 292 API."

And Arun Gupta posted TOTD# 86: Getting Started with Apache Wicket on GlassFish: "Apache Wicket is an application framework to build web applications using HTML for markup and POJOs to capture the business logic and all other processing. Why Wicket digs more into the motivation behind this framework. This Tip Of The Day (TOTD) shows how to create a simple..."


In the Forums,arshadm is working on a Glassfish v3 virtual host problem: "Hi, I have installed the latest promoted build glassfish-v3-web-b56-07_16_2009.zip, and performed all the updates but I am having a weird problem with virtual hosts, can somebody help. 1. I was developing an application and I used to admin panel to deploy my application (i.e. I browsed to the EAR and deployed that way). I also set the deployed war within the ear as the default web application for a virtial server I created. 2. OK, this was all working OK. But it was a pain to have to keep browsing for my EAR everytime I wanted to redploy so I instead decided to undeploy the app and then copy the EAR to the autodeploy (as part of of my build process). 3. Now everytime I try to auto deploy, it keeps saying that the context "/artemis" is alread assigned to an existing web application..."

krimon needs to know about the license of the blackberry port: "Hello, I am sorry but is very hard for me to find proper answers for the following questions: 1) can I use LWUIT in a commercial project, by building it myself or including its source code in my application; 2) does the same applies to the Blackberry port of the LWUIT..."

And hakamade finds that EDT ignores my animation: "Hello! I had a wait animation running on screen, while an image was being loaded. When the image became available, the wait animation would stop, and an animation using the image would begin. The wait animation worked without a hitch, but the image animation didn't start. Instead the screen froze until a key or touch screen was pressed. I found the cause of the problem by running LWUIT with some added debug prints. After the wait animation, the component was deregistered. EDT then had nothing to do, and went to sleep. When the animated component was again registered a short time later, EDT was sleeping and didn't wake up. A user input woke it up, and then the midlet continued to work normally. The problem went away when I didn't deregister the animated component after the wait animation. The component isn't animated most of the time..."


The current Spotlightis the James Liu and OpenSolaris Team Roundtable: "java.net's Gary Thompson moderates a roundtable discussion with James Liu and members of the OpenSolaris Team in this java.net Community Corner 2009 podcast, recorded at JavaOne."


This week's java.net Poll asks "What do you think about Project Kenai?". Voting will run through Thursday.


Our Feature Articles include an article by Biswajit Sarkar, Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications. We're also featuring Jeff Friesen's Introducing Custom Cursors to JavaFX, in which Jeff shows developers how to leverage undocumented JavaFX capabilities to support custom cursors in versions 1.2 and 1.1.1.


The latest Java Mobility Podcast is Java Mobility Podcast 84: Valderi Leithardt on using SunSpots for gesture recognition.: "An interview with Ph.D. candidate Valderi Leithardt in Brazil on using SunSpots for gesture recognition." OpenJDK Podcast is The latest JavaOne Community Corner Podcast is


--> 

Current and upcoming Java Events :

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


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



The java.net Java Champions project is a page I've had bookmarked in my browser for a long time...  

Filter Blog

By date: