Skip navigation

Ever since Mark Reinhold's announcement at DEVOXX that Java 7 will include closures, I've found myself thinking a lot about where we are headed with respect to desktop computers, how Java fits into that, how the cloud fits in, etc. It makes sense that the future will include many-core processors, which will be available even in budget-priced systems. What will we do with all those processor cores? Well, that depends on the nature of the software we'll be running on our systems.

http://blogs.sun.com/mr/resource/closures-at-devoxx.jpg

In Mark Reinhold's Closures for Javapost, which was written soon after the DEVOXX announcement, he said that it is because of the emergence of multicore processors that closures are needed in Java. Why? Because:

Working with parallel arrays in Java, unfortunately, requires lots of boilerplate code to solve even simple problems. Closurescan eliminate that boilerplate.

I was initially somewhat confused by these statements, because I thought Java had everything it needed for efficient use of multiple cores in its threading libraries. The results of our (unscientific) November poll Is Java's parallel programming support sufficient to meet 'the Multicore Challenge'? suggest that quite a lot of developers (34%) believe the same thing. 18% thought that with the addition of closures, Java will have adequate parallel programming support.

In my recent interview with Adam Bien, I asked:

Do you agree that adding closures to Java is needed to enable Java to meet "the Multicore Challenge"?

Adam's response:

I'm not sure about that. You can run perfectly scalable code right now with plain Java. Closures could make it more convenient - but it isn't impossible to write multicore code without them.

But -- another question is: are we moving away from desktop applications anyway? Look at the purchase of Playfish by Electronic Arts:

The acquisition of Playfish falls in line with EA's desire to be more than just a developer for traditional gaming platforms, like consoles and the PC. The company said in a statement that the acquisition "strengthens its focus on the transition to digital and social gaming."

It's not "we want to diversify into social gaming"; rather, it's taken for granted that social gaming is replacing digital gaming. And where does social gaming actually take place? In the cloud, not on your multicore desktop.

So, then, is the Multicore Challenge becoming a moot point as people migrate ever greater shares of their computer-based activity into the cloud? My little HP Mini 1120NR netbook does a fine job with FaceBook, Twitter, and BlogBridge; it's great at conferences; I can even set up the java.net home page and write my blogs on it (though I prefer my larger desktop screen for that work). Sometimes I even turn off my quad-core desktop (500 Watt power supply) and use the Mini for periods of hours, to save on my electric bill (also, in the winter, to minimize the chance for the quad-core to overheat, which happens on occasion when the corn stove we use to heat this end of the house is running).

Then, too, there's the iPhone, Google's Android platform, etc. Larry Ellison even hinted at the creation of an Oracle/Sun phone at JavaOne. At minimum, Oracle/Sun would be very active in developing software for mobile devices. While I remember Ellison saying these things, I'll point you to a Wall Street Journal article for reference. Talking about mobile devices, Ellison said:

"I don't see why some of those devices shouldn't come from Sun-Oracle."

And he also said:

"I think you'll see us get very aggressive with Java and developing Java apps for things like telephones and netbooks."

So, then, might the desktop computer itself be kind of on the way out? Probably not, but if the great majority of apps people want to run actually perform their processing on remote server farms, with the local activity being simply a user interface that sends out requests and receives and displays responses, how much of a need will there be for heavy-duty multithreaded applications that run locally? And, thinking about Java, doesn't Java EE 6 provide everything we need on the server farm end?

Just some thoughts...

Happy New Year to all who observe the Gregorian calendar!


In Java Today, Kirill Grouchnikov presents Pushing Pixels: the best of 2009:

The year is coming to an end, and it

Today's lead Java Today item is Jeff Friesen's "Happy Holidays" post, in which he describes the code behind his JFXStudio Holiday Challenge winning JavaFX application. The application was created with JavaFX 1.2 (via NetBeans IDE 6.5.1) on top of Java SE 6u16.

Here's Jeff's description of his app:

Happy Holidays presents a scene where snowflakes fall into a snowbank while "Let It Snow! Let It Snow! Let It Snow!" (the classic 1945 Christmas song by lyricist Sammy Cahn and composer Jule Styne) plays. When the music ends, Figure 1's logo fades into view.

And here's the application itself:

HappyHolidaysScreenSnapz001.png
Happy Holidays [click to run]

Note that if you are on a Linux system, the app may not run. It loads, but then hangs on my Gentoo and Ubuntu Linux systems after I "Click to start." On my Mac and Windows machines it works fine.

JFXStudio Challenge contests impose a limit of 30 lines of JavaFX code and 3000 total characters. Jeff met this challenge by submitting a Main.fx consisting of a single 2996-character line, with variable names shortened to the point where their meaning would be unclear to all but the original developer. In his post, however, Jeff presents the original code, with standardized formatting and meaningful variable names. The original code is also divided into two files, Main.fx andSnowflake.fx.

The code includes some structures that reflect Jeff's original more ambitious plans for the application -- plans which subsequently had to be abandoned to meet the 3000-character Challenge limit. For example:

Perhaps you're curious about the color: Color.WHITE assignment -- aren't snowflakes always white? Although they're always white in this version of the program, I initially planned to color snowflakes white and various shades of gray to make the snowfall more realistic. Specifically, I planned to render larger (closer) snowflakes in front of smaller (more distant) snowflakes, and color smaller snowflakes in darker shades of gray (based on radius).

While the moving snowflakes are what stands out as you watch the app run, making that happen doesn't really occupy that much code. Really, much of the code in Main.fx involves creating the scene and managing the progression of the app from start to finish. For example, there is code for start-up (the animation doesn't begin until the user clicks the background image), and post-animation code (after the music stops, a "Happy Holidays" logo fades into view). Snowflake.fx manages the creation of the snowflakes, each of which consists of six branches, each with sub-branches.

Jeff closes by providing the downloadable codeand challenging us to take the app further:

Now that you've explored Happy Holidays, you might want to improve this application by adding a more realistic snowfall (as discussed earlier), displaying a glowing moon in front of the background, scrolling the song's lyrics across the screen while it plays, and so on. Have fun!

In Java Today, Jeff Friesen documents the inner workings of his JFXStudio Holiday Challenge winning JavaFX application in his latest post, Happy Holidays:

Earlier this month I entered the JFXStudio Holiday Challenge with "Happy Holidays" as my submission. Figure 1 reveals this JavaFX application's scene. Happy Holidays presents a scene where snowflakes fall into a snowbank while "Let It Snow! Let It Snow! Let It Snow!" (the classic 1945 Christmas song by lyricist Sammy Cahn and composer Jule Styne) plays. When the music ends, Figure 1's logo fades into view...

Geertjan Wielenga discovered Wildland Fire Management on the NetBeans Platform:

Kenai.com hosts a NetBeans Platform based implementation of the Campbell Prediction System (CPS), which helps manage and predict the behavior of wildland fire. CPS is described as being used to adjust tactics and strategies to ensure the safety of firefighters and the effective use of resources. I've seen this CPS implementation on Kenai before, but a lot of development seems to have been taking place in the past few weeks and so I downloaded it to have a look. A lot of work is going into the project, with project lead Bruce Schubert's @Emxsys twitter link being an interesting one to follow...

Christopher Lam describes How to Create a Java EE 6 Application with JSF 2, EJB 3.1, JPA, and NetBeans IDE 6.8:

There are many articles and tutorials out there that discuss how to use the individual technologies in Java EE 6, e.g., JSF 2, EJB 3.1, JPA, etc, to develop an application, but I haven't seen one that puts together the said technologies and showcases them in one tutorial with an end-to-end demonstration. As such, I thought I would create one here for the benefit of those who are new to JEE6 and NetBeans IDE 6.8 and those who are seriously looking at NetBeans IDE 6.8 as a tool for developing their enterprise applications. This article aims to provide detailed steps to develop a web-based application based on technologies in the JEE6 specs...

In today's Weblogs, Cay Horstmann writes about JSF 2.0 and Tomcat:

As I happily wrote about new features of JSF 2.0, my coauthor David Geary kept asking me how to run the examples in Tomcat 6. I kept putting it off—hunting down all those JAR files and web.xml fragments is just too much like eating soup with a fork. I finally got around to doing the research and thought that others might benefit from the (unhappy) results, if only to realize that this may be the time for switching to GlassFish...

John Ferguson Smart presents Automated deployment with Cargo and Maven - a short primer:

Cargo is a versatile library that lets you manage, and deploy applications to, a variety of application servers. In this article, we look at how to use Cargo with Maven. If you are starting from scratch, you can use an Archetype to create a Cargo-enabled web application...

Fabrizio Giudici provides Another example of as(...) used for easily extensible APIs:

Here's another simple example of how the as(...) idiomcan be used for create an API which is stable, elegant, but extensible (this time unrelated to any semantic stuff). Up to a few days ago, I had the following interface in the GeoCoding API of forceTen...

In the Forums,xinxindolphin needs help with a project run in wonderland error: "When I share my own NETBEANS in wonderland,I run my project,but it give me wrong messages: Xlib: extension "Generic Event Extension" missing on display ":3.0"..."

karsten_soit sees a problem relating to JCombobox and autocompletion: "Hi! I upgraded SwingX from 2008_06_08 to current (2009_12_27) and stumbled over following: i use a JComboBox that is decorated by the AutoCompleteDecorator. When calling setText(String text) on the editor-component with a null-value..."

kerbo continues the discussion Re: Migrate SSL App from Apache to GlassFish v3: "Thanks for the information but I am still confused on the correct setup. 1. Using openssl, I created the p12 file from my .crt and .key files. I imported the p12 into the keystore,jks file. I set the alias name to 's1as". Is this correct? In..."


Our current Spotlightis the Annual Developer Quiz put together by Janice Heiss: "For this quiz, SDN staff author Janice J. Heiss surveyed past interviews with leading Java developers in search of questions that might challenge, inform, entertain, amuse, and provoke you. The questions aspire to reflect both the intellectual curiosity and spirit of fun to be found in the Java community. We hope you enjoy taking this quiz... Test your knowledge of Java technology and computing..."


Our current java.net Poll asks "What was the most significant Java/JVM news/event in 2009?"Voting will run through Thursday or Friday (depending on where you live).


We have a new java.net Feature Article by JFXStudio Holiday Challenge winner Jeff Friesen, Reading Newsfeeds in JavaFX with FeedRead, in which Jeff demonstrates how to apply JavaFX's RSS and Atom newsfeed capabilities to create a snazzy little JavaFX app that can run stand-alone or in a browser. We're also still featuring my recentInterview with Java Champion Adam Bien: Java EE 8, Closures, and More.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


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.

-- Kevin Farnham
O'Reilly Media

Part 2 of Ed Ort's latest "Deep Dive" production, Deep Dive: Java EE 6 and GlassFish v3 with Arun Gupta, covers "What's New and Cool in GlassFish v3." See my post from yesterday for an overview of Part 1 of the deep dive, "What's New and Cool in Java EE 6."

Part 2 begins with Ed noting that GlassFish v3 is the reference implementation for Java EE 6. Then, Arun gets into some of the productivity features that have been implemented in GF v3. The first point is the modularity of GF v3. Arun notes that when you start GlassFish v3, it launches in just a few seconds. This is because it is deploying only the modules needed for the currently requested operations.

In operational mode, GlassFish v3 monitors the usage of a web container, and automatically shuts down the container when it is no longer being used. This maximizes the utilization of available resources, by freeing the server from actively maintaining components that are not currently being used. The Apache Felix platform is the engine behind this.

Arun demonstrates the GlassFish v3 features on a notebook computer -- not your typical hardware for running a highly scalable enterprise level platform (as is seen when GF unexpectedly fails to quickly start). But, he says that 3 seconds is the standard start-up time on more standard server hardware. Later in the screencast, Arun demonstrates an example app. So, GF v3 did work on the notebook -- it just couldn't start up in the 3 seconds that is standard on actual server hardware.

The next GlassFish v3 feature that Arun emphasizes in the screencast is dynamic languages and frameworks support (Ruby, JRuby, Jython, django, groovy, grails, etc.). Arun presents a demonstration where he creates a JRuby application running on GlassFish, with Rails, using a MySQL database.

Next Arun talks about the GlassFish v3 REST interface, and demonstrates this in his application. He shows a RESTful web interface that provides status information on the GlassFish server's status, then moves on to demoing a JavaFX front-end for this same information, using, for example, a swimming fish that correlates with certain server activity statistics. A lot of fun! More detailed views (for example, numeric tables, meters, etc.) are also available. Quite nice!

Part 2 of Deep Dive: Java EE 6 and GlassFish v3 with Arun Gupta runs about 20 minutes, making the total time span of the two-part series just under 40 minutes. IMO, it's time well spent if you don't work, or haven't worked recently, with Java EE and GlassFish, and you'd like to know what all the excitement is about regarding Java EE 6 and GlassFish v3.


In Java Today, James Sugrue writes about Effective Debugging: Conditional Breakpoints:

One of the most important developer activities is debugging. In my college days, we were forced to use simple text editors for our software development, so I started out using print statements to see where my code was going wrong. These days, we have the comfort of IDEs, but debugging remains one of those talents that you get more efficient at with experience. The best feature I have seen in both Eclipse and NetBeans is the conditional breakpoint concept...

Peligri reports Patch 1 for GlassFish v2.1.1 Now Available:

We released GlassFish v2.1.1 at the end of October and last week we released our first commercial patch for it. Due to how the multiple releases intersect, this patch is also GFv2.1 p7 and SJS AS 9.1U2 p13. GFv2.1.1 p1 addresses 31 new defects since GFv2.1.1. The patches are delivered in several formats (file and pkg) and became available at SunSolve in December 18th...

The Novajug Blog reports on an upcoming meeting on Jan 6: An Evening with Java Champion Kirk Pepperdine

Today's lead Java Today story is Ed Ort's latest two-part "Deep Dive" production, Deep Dive: Java EE 6 and GlassFish v3 with Arun Gupta. Arun is a Sun Technology Evangelist who is deeply involved in the GlassFish project.

"Part 1. What's new and cool in Java EE 6" runs just over 19 minutes. After introducing Arun, Ed brings up the ease of use improvements in Java EE 6. Arun sums up the primary goals of Java EE 6 as follows:

  • More powerful and flexible
  • Easier to learn and use
  • Easier to evolve going forward

In terms of flexibility, Arun talks about the new profile capability, wherein you can create a customized subset of Java EE 6 that is targeted at a particular development environment (for example, web development) or a particular industrial vertical (for example, finance).

Arun provides code examples to demonstrate some of the new capabilities, starting out with JavaServer Faces 2.0 (JSR 314). He describes how facelets can be used as templates for multiple pages in an application, enabling convenient integration of, for example, CSS across a site's pages. He demonstrates construction of a web application using NetBeans 6.8 (RC1), GlassFish v3, and JSF 2.0 (using a facelet).

JSF 2.0 also includes AJAX support enabling updates of sections of a page, partial rendering of pages, etc. Ed asks about composite components in JSF 2.0. Arun explains that a composite component can be created out of a code fragment, for example, from within NetBeans. Arun states that the focus of JSF 2.0 is to make it easier for authors to construct pages. The ability to create composite components that can be reused is an important element in this.

Arun then talks about Servlet 3.0 (JSR 315). Here, annotations are a critical enhancement. For example, you can add an annotation to a POJO, and declare that to be your servlet. Arun demonstrates this with a code example. This new capability eliminates the need for a separate deploy step, which will save developers time especially when testing, editing, and re-testing new applications.

The next topic is EJB 3.1 (JSR 318). Here, Arun focuses on the usability improvements, which include simplified packaging, singleton session beans, application initialization and shutdown events, a cron-like timer service, and a "lite" stand-alone version for use in the Java EE 6 Web profile. Arun demonstrates this by extending the prior application, by integrating a new session bean into the servlet.

At the end of Part 1, Arun touches on a few other Java EE 6 enhancements, including JAX-RS and dependency injection.

Part 2 of the Deep Dive series focuses on "What's New and Cool in GlassFish v3."


In Java Today, Sun Senior Stafg Informati20091228.htmlon Engineer Ed Ort talks with Sun Technology Evangelist Arun Gupta in a new Deep Dive: Java EE 6 and the GlassFish v3:

Recently, Sun announced the general availability of Java Platform, Enterprise Edition (Java EE) 6 and GlassFish v3. Java Platform, Enterprise Edition (Java EE) is the industry-standard platform for building enterprise-class applications coded in the Java programming language. Based on the solid foundation of Java Platform, Standard Edition (Java SE), Java EE adds libraries and system services that support the scalability, accessibility, security, integrity, and other requirements of enterprise-class applications...

The Java ME SDK Team describes how to Use Mac AirPort to work with WinMobile handsets:

As you probably know we ship Java ME SDK with cldc java runtime for Windows Mobile. You can deploy MIDlets onto Windows Mobile handset as easy as it was an emulator. Connecting a WinMobile handset from Java ME SDK is very straightforward using activesync on windows. It's really just a matter of plugging device and runing jvm on it. Situation is different on Mac since there's no free activesync support...

Ludovic Poitou reports on how OpenDS helps load testing in the cloud:

Jason Shao explains on his blog how they doloadtesting of their web-based portal application on Amazon EC2. What raised my interest was that they've added the OpenDS ldap directory server in the image, as it was faster and easier than dealing with their usual infrastructure. This is not the first time we see customers deploying OpenDS in the cloud....

In today's Weblogs, Kumar Jayanti provides a Summary of new Security Features in Servlet 3.0:

Servlet 3.0 specification which is part of JavaEE 6 has many new features and some of them are in the area of security. The post by Ron Monzillo gives a high level summary of the security features that he added in the Servlet 3.0 specification. In this post i would like to focus on the aspect of Programmatically adding and configuring security for the servlet. Additionally i would provide links to other posts by me and team members on new security features of servlet 3.0. You can access more information about the API's from the JavaEE 6 Javadocs here...

Remi Forax is thinking about a Chistmas Gift:

Christmas holidays is one of my favourite moment in the year, I have time to see my relatives, read books, play with my kids and hack a little bit. Forewords: I think I don't like the most in the strawman proposal is that the syntax for function type and for lambda literal reuse the same symbol '#'. It's something that I've observed when teaching C. The C syntax use * when you declare a pointer type and * when you want to dereference a pointer variable. The fact that * is used twice for different meanings introduces unnecessary confusion and is a burden to understand pointers. In my opinion, we should use a new keywordlambda to define lambda literal and use # for function type...

Sebastien Dionne shows how to Enhance your javadoc with ULMGraph:

We can't live without Javadoc, but even if it useful, it's not complete. One missing thing is UML within the Javadoc. To add UML to your Javadoc, is quite simple. You need to add Graphviz into your maven build. First you need to download and install Graphviz. Go there Graphviz. After that you should add the variable GRAPHVIZ_HOME (that point to the installation folder) into your system. The last step is to add the plugin into your pom...

In the Forums,syparth has issues with Glassfihs deployment :- frequent class file replacement problem: "Hi, I have deployed my war file succesfullly on glassfish v2. Now there is some change in code , now i wnat to replace that calss file on the server at deployed war path..."

nnjones has Confusion about Insert > Model vs. Drag and Drop: "I have been trying to create an artwork module because we are bouncing around systems right now. I noticed that when I try to place a model using the Insert menu, it doesn't scale or position itself at all like the drag and drop Properties sheet. When I install that module..."

secant finds that wsimport generates undesirable Array classes: "How will I prevent wsimport from generating class like ArrayOfHistoryPeriodDetails and method like below ? public ArrayOfHistoryPeriodDetails getHistoryPeriods(); ..."


Our current Spotlightis the Annual Developer Quiz put together by Janice Heiss: "For this quiz, SDN staff author Janice J. Heiss surveyed past interviews with leading Java developers in search of questions that might challenge, inform, entertain, amuse, and provoke you. The questions aspire to reflect both the intellectual curiosity and spirit of fun to be found in the Java community. We hope you enjoy taking this quiz... Test your knowledge of Java technology and computing..."


Our current java.net Poll asks "What was the most significant Java/JVM news/event in 2009?"Voting will run through Thursday or Friday (depending on where you live).


We have a new java.net Feature Article by JFXStudio Holiday Challenge winner Jeff Friesen, Reading Newsfeeds in JavaFX with FeedRead, in which Jeff demonstrates how to apply JavaFX's RSS and Atom newsfeed capabilities to create a snazzy little JavaFX app that can run stand-alone or in a browser. We're also still featuring my recentInterview with Java Champion Adam Bien: Java EE 8, Closures, and More.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


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.

-- Kevin Farnham
O'Reilly Media

The latest java.net poll suggests that NetBeans users are moving quickly to the new NetBeans IDE 6.8 release. This poll was interrupted by the recent java.net outage, so the earliest votes were not counted (unless the people revisited the poll after the outage and voted again). A total of 318 votes were cast after the poll was reopened. The final pattern of voting was close to the pattern before the outage (with the exception noted below), so I think the truncated results are fairly representative of all the voting that occured.

Here's the exact question and the final results:

Do you plan to upgrade to NetBeans IDE 6.8?

  • 49% (156 votes) - I already have
  • 11% (35 votes) - Yes, soon
  • 7% (22 votes) - Probably, once I know it's stable
  • 2% (5 votes) - I'll stick with my current NetBeans version
  • 31% (99 votes) - No, I use another IDE
  • ~0% (1 vote) - I don't know; other

The main difference between the voting before the outage (as I remember it) and the final post-outage tally, is that more people selected the "I already have" upgraded to NetBeans IDE 6.8 option, and fewer selected "Yes, soon," in the post-outage voting. In other words, a swath of people who were going to upgrade to 6.8 soon actually did the upgrade by the time the poll resumed.

Looking just at the NetBeans users who participated in the poll (69% of the total vote), 87% of NetBeans users have already upgraded to 6.8 or will do so soon; another 10% of NetBeans users will probably move to 6.8 once the quirks and kinks (if any) are patched; and 3% will stick with their current NetBeans version. This latter group might include people who consider later versions of NetBeans overly bloated (though recent versions have actually become more modular, even as new features have been added); this group probably also includes people who are satisfied with the NetBeans version they have, don't really need the features in newer NetBeans editions, and/or don't have the time or desire to interrupt their work to learn and adapt to a newer version.

Then, there was that single voter who selected "I don't know; other". That person might be waiting until after the holidays to make up their mind.

Speaking of holidays, it's Christmas where I live (U.S.). But, I wasn't about to let a local holiday stop me from delivering an updated java.net front page and a new Editor's blog, for the many members of the java.net community for whom today is not a holiday! I also didn't want to leave people hanging without the opportunity to participate in a new java.net poll. And so...

New poll: most significant news/event in 2009

Our new java.net poll asks "What was the most significant Java/JVM news/event in 2009?"Voting will be open for the next week.


In Java Today, on TheServerSide.com, Jack Vaughan reviews 2009: That was the Year that was as we know it

That was the Year that was as we know it at this point in time. Here is a look back at some of the popular - well, much visited - threads of discussion on this site in 2009...

Adam Walczak, of the openeo.bizproject, wrote to announce a new survey on open source projects and communities:

I'm conducting a survey about how open source projects are organized. It's part of the www.openeo.biz community initiative which goal is to research organizational structures of open source projects and business models of companies related to them... The survey takes about 15 min and is available at: http://www.openeo.biz/limesurvey/index.php?sid=94442. If anyone would like to share a more detailed description about a project it can be added directly to our knowledge base: http://www.openeo.biz/summary/or can just be mailed...

Peligri provides GlassFish v3 Resources and Links - Part 2:

This is one of a series of resources and links related to the new GlassFish v3 release. Each entry starts with a section with key links; the resources are then grouped into categories. Announcement (Dec 10, 2009); Resources and Links, Part I (Dec 10th, 2009); Resources and Links, Part II (Dec 22nd, 2009)...

In today's Weblogs, Sergey Malenkov ventures Deep Inside Oracle Sun:

If you would like to get any news about Oracle acquisition of Sun, this is not the place you need. I would like to tell you about an interesting coincidence in progressive power. Yesterday my friend gave me a gift: Oracle Sun's Deep Inside (2005)...

Kumar Jayanti discusses Using the @ServletSecurity annotation in JavaEE 6:

Shing Wai's post explains the @ServletSecurity annotation that has been introduced newly in JavaEE 6 (Servlet 3.0 specification). The @ServletSecurity annotation provides an alternative mechanism for defining access control constraints equivalent to those that could otherwise have been expressed declaratively via security-constraint elements in the portable deployment descriptor. There is also a Programmatic approach for adding security (via ServletRegistration.Dynamic API) that has been introduced newly in JavaEE 6, i will talk about it in another post...

Just before the recent java.net outage, Vivek Pandey provided anUpdate on Dynamic Language support in GlassFish v3 Final:

GlassFish v3 is out now. This release brings in expanded and mature suport for dynamic languages based frameworks, such as Ruby on Rails, Django, Grails and Lift. Here is a quick update...

In the Forums,mixaz wonders about Using floats in LWUIT: "I think it would be better to not use CLDC 1.1 float in plain calculations like scrollbars (and not use at all - it's a UI library, not a math app after all). That's odd... Standard approach is to use 2 integers instead, isn't it? ..."

alexander_bell needs help with a Converter for h:selectOneMenu: "Hi, I wrote a converter for my h:selectOneMenu..."

nnjones has questions about Optimizing the environment to fit with the rendering algorithm: "Can anyone give an overview of the client rendering algorithm in the context of optimizing the world layout to minimize time to load? For example, if the starting location can't see much more than grass, then will the avatar drop more quickly? ..."


Our current Spotlightis Ed Ort's three part article series, Introducing the Java EE 6 Platform: "Java Platform, Enterprise Edition (Java EE) is the industry-standard platform for building enterprise-class applications coded in the Java programming language. Based on the solid foundation of Java Platform, Standard Edition (Java SE), Java EE adds libraries and system services that support the scalability, accessibility, security, integrity, and other requirements of enterprise-class applications..."


Our new java.net Poll asks "What was the most significant Java/JVM news/event in 2009?"Voting will run through next Thursday or Friday (depending on where you live).


We have a new java.net Feature Article by JFXStudio Holiday Challenge winner Jeff Friesen, Reading Newsfeeds in JavaFX with FeedRead, in which Jeff demonstrates how to apply JavaFX's RSS and Atom newsfeed capabilities to create a snazzy little JavaFX app that can run stand-alone or in a browser. We're also still featuring my recentInterview with Java Champion Adam Bien: Java EE 8, Closures, and More.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


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.

-- Kevin Farnham
O'Reilly Media

We've just published Jeff Friesen's new article, Reading Newsfeeds in JavaFX with FeedRead. This article is a follow-up to Jeff's recent article Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds. The earlier article provides an introduction to JavaFX's newsfeed capabilities; the new article shows how to take those capabilities and apply them to create a snazzy little JavaFX feed reader application.


The FeedRead app demoed in "Reading Newsfeeds in JavaFX with FeedRead"

Jeff built and tested FeedRead using NetBeans IDE 6.5.1 and JavaFX 1.2. The application can be run in stand-alone mode, or within a web browser. Running the app in a web browser provides the advantage that when you click on a feed item, the full article will be loaded into a new browser window.

Jeff provides large snippets of the code that performs the key functions for the app, and talks about what the individual sections do, and why certain elements that might appear surprising had to be that way. Because JavaFX is so young a technology, there are still some work-arounds that are required when you build an application of any complexity. For example, Jeff refers to Amy Fowler's JavaFX 1.2: Layout post in describing why it was necessary to subtract flowRef.layoutBounds.minX in thelayoutX: bind statement (and also do the equivalent for layoutY).

It all goes back to the question of coordinate systems that has always been a part of graphics development: is the position or offset you're working with in absolute coordinates, or is it a relative coordinate? Programming it the wrong way can produce some surprising and often-times dazzling results, that may cause the developer to burst out in laughter and subsequently spill their coffee all over the keyboard. So, you do want to be careful to get relative versus absolute coordnates right in each situation.

Another aspect of JavaFX's newness: bugs in the platform itself that may not have quick work-arounds when you develop an application. For example, in Jeff's app, JavaFX issue JFXC-3431: Signed javafx-applet does not get focus before html page area is clicked rears its ugly head, causing the text box to not always receive focus when FeedRead runs as an applet. To reassert the proper focus, you need to reload the applet or switch to another browser window, then come back to window where you're running FeedReed. In addition, there is an oddity wherein active buttons are sometimes grayed out, as though they were disabled, when that's not really the case.

In sum, Reading Newsfeeds in JavaFX with FeedRead is an excellent demonstration of how to apply JavaFX's newsfeed capabilities to develop an application, runnable in stand-alone mode or within a browser.

I'll close this discussion by pointing you to Jeff's "Happy Holidays" JavaFX app, which won the recent JFXStudio Holiday Challenge:

HappyHolidaysScreenSnapz001.png
Happy Holidays [click to run]


In Java Today, Java Champion Bruce Hopkins looks at Bluetooth 4.0 - What does it mean?

Ok, so did you hear the news about Bluetooth 4.0? Now, you many be wondering, “Why are they announcing all these new features in Bluetooth 4.0, when there’s hardly any 3.0 devices available?”. True, I agree with you there — I wish that there would be more Bluetooth 3.0 devices available so that my camera can download pictures to my PC, which I think will be one of the major use cases for Bluetooth 3.0. Now, before I explain Bluetooth 4.0, I want you all to do a little experiment for me...

Adam Bien details Five Features that Make NetBeans 6.8 my IDE of Choice:

1. Out-of-the-box experience: with a single download, you get not only the IDE with all useful plugins, but also an application server (Glassfish v3) and an integrated database (Derby DB). The whole procedure takes few minutes and is dead simple. The only thing what can go wrong is installing the application server (Glassfish) to a directory, which contains spaces in its name on Windows. The Java package (is actually Java EE) is 146 MB for Mac OSX, but the feature list is impressive: profiler, debugger, SQL / DB explorer, JSF 2.0 editor with (CDI / EJB 3 databinding) auto-completion, sub second incremental deployment (=deploy on save), maven, ANT, Hudson, JIRA, SVN, mercurial support, HTML editor, nice Swing WYSIWYG editor, JSR-311 (REST), JSR-181 (SOAP) support...

Peligri announces Recordings of GlassFish Virtual Conference Now Available:

The recordings of the JavaEE 6 and GlassFish v3 Virtual Conference are now available. Slides are also available. Registration is required in both cases; enjoy! The VC was a great success; more info on it after the Holiday break...

In today's Weblogs, I'm including a new post by Cay Horstmann, and two posts that were temporarily lost during the recent java.net outage.

In his new post, Cay wonders Is @javax.faces.bean.ManagedBean Dead on Arrival?:

Java EE 6 has three different ways of defining “beans” that are “managed” in one way or another. Here is a quick recap. JSR 314: JSF 2.0 introduced annotations to avoid the tedium of declaring managed beans in faces-config.xml ...

Last week, Lance Andersen wrote about Generating the JPA 2.0 Static MetaModel classes using Eclipselink 2.0 and Netbeans 6.8 for your Entity Classes:

Eclipselink 2.0 includes an annotation processor for generating the static metamodel classes from your Entity classes for use with the Criteria API which is one of the new features in JPA 2.0. Here is an example of generating the metamodel classes from the command line using the Eclipselink annotation processor...

Just before the outage, Vivek Pandey announced GlassFish gem 1.0.0 is available:

This is 1.0.0 release of GlassFish gem. This release is based on GlassFish v3 final release. Unlike other gem releases which used to get posted on the RubyForge gem repo. Now its pushed to Gemcutter. The end result is pushing is easy and the gem is available moments after its pushed. Also now I can see how many of each release get downloaded. To install, simply type the following on a JRuby installation...

In the Forums,mobilist is having problems rendering page created through Graphics Object with Sliding Transition: "Dear All! I am trying to render a set of pages with few components Like Menu Bar, Title Bar , Texts and some Images created through LWUIT Graphics object on a single Form. I am able to display the pages normally, but..."

cain05 gets a Glassfish V3 exception in JPADeployer when trying to deploy: "When I try to deploy my EAR I get an exception. I'm using Hiberate as my JPA provider. I downloaded hibernate using the update tool. I even tried using the hibernate jar files from my GF v2.1 install but they don't work either..."

noelopan is trying to use the JXMultiThumbSlider: "Has anyone succeeded in using this component? I see that even the swingx demo ignores it. There doesn't seem to be a default track or thumb renderer."


Our current Spotlightis Ed Ort's three part article series, Introducing the Java EE 6 Platform: "Java Platform, Enterprise Edition (Java EE) is the industry-standard platform for building enterprise-class applications coded in the Java programming language. Based on the solid foundation of Java Platform, Standard Edition (Java SE), Java EE adds libraries and system services that support the scalability, accessibility, security, integrity, and other requirements of enterprise-class applications..."


Our current java.net Poll asks "Do you plan to upgrade to NetBeans IDE 6.8?" Voting will run through Thursday or Friday (depending on where you live).


We have a new java.net Feature Article, my recent Interview with Java Champion Adam Bien: Java EE 8, Closures, and More. We're also featuring Jeff Friesen's Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


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.

-- Kevin Farnham
O'Reilly Media

 

At this time of year, with so many of the world's cultures celebrating holidays, winding down their daily work schedules, it's natural to think about the past year, try to gain a little more perspective on what actually happened and its import, then look forward to the coming year...

As 2009 comes to a close, for me there are some events and trends that stand out, that I believe will affect what happens in 2010, along with situations that came about in 2009 that will reach some kind of resolution in 2010.

In the latter category, of course, Oracle's acquisition of Sun is a primary example. The way things have played out, with the EU's decisions to delay approval of the acquisition, the global economy's slow recovery, the U.S. economy's even slower recovery (no recovery thus far if Federal spending is subtracted from the equation) -- by the time the acquisition goes through in 2010 (if indeed that happens), Oracle will be acquiring a vastly different Sun Microsystems from the one it bid on in April 2009.

For this reason, that the acquisition will actually happen cannot be considered a certainty. Acquisition deals have fallen apart in the past when post-announcement events drastically change the value of the company that is to be acquired. Has Sun's actual value drastically changed since April?


Sun Microsystems (JAVA) stock value over past year (from MarketWatch.com)

Here's the Sun Microsystems (JAVA) stock chart for the past year (from MarketWatch.com). If you're a stock market hobbyist, you'll recognize what the wobbles and dips in the mid October through early December mean: this was investors dumping Sun stock out of fear that the acquisition deal will collapse. The sudden rise back to near the agreed on purchase price reflects the recent news that the EU will indeed ultimately approve the acquisition.

What would happen to the value of Sun's stock if the acquistion deal collapsed? How much has the actual value of Sun changed since the acquisition by Oracle was announced? There's no easy way to measure this, because Sun's stock price since April is dominated by the assumption that the acquisition will ultimately happen.

I think we have to assume that the deal will indeed happen. But, the delays have changed a lot. Uncertainty over what Sun will be under Oracle has driven customers who need to make decisions about new hardware purchases to other vendors.

Decisions to upgrade a data center or create a new one are necessarily long-term decisions. I may buy an HP or Dell or Systemax computer for my home office one year, and add one of the others year or two later. But when you build / reconstruct a data center, you're making a very long-term commitment to a technology. Once someone switches to IBM, they cannot easily come back to Sun, even 5-10 years later, because once the switch is made, you then invest enormous human resources in attaining expertise in working with theAt this time of year, with so many of the world's cultures celebrating holidays, winding down their daily work schedules, it's natural to think about the past year, try to gain a little more perspective on what actually happened and its import, then look forward to the coming year new hardware. You hire people who are expert working with your new systems, etc. Six months or a year into your new data center, you can't say "Oh, OK, so Sun really will be viable after all. I guess we'll just toss out all these IBM machines, and lay off all these IBM experts, and go back to Sun!"

In my view, the EU-induced delays have destroyed enormous amounts of Sun's value. Destroying a company's value destroys jobs -- that is, there is a human toll for the EU's actions. And for what benefit?

Yes, I think the Oracle/Sun deal will go through in 2010. But on the day when the acquisition is finalized, it will look very different from the way it looked on the day when the acquisition was announced. The economics and business aspects will be worlds apart from what they were initially.

Anyway, these are some of my opening thoughts and speculations as 2009 comes to a close and we look ahead to 2010. Feel free to comment and/or disagree.

Much more to come!


In Java Today, Toni Eppel provides Quick Tip 46: Download the NetBeans Platform Refcard!

Hurray! The NetBeans Platform has its own Refcard. It's full of very useful tips. You can get it here: http://refcardz.dzone.com/refcardz/essential-netbeans-platform...

Frank Sommers reports Groovy 1.7 Released:

Following two beta releases and the same number of release candidates, Groovy 1.7 reached its final release this week. Over the last several years, a veritable ecosystem has built up around the Groovy language, such as the Grails framework, the Griffon UI framework, several build tools, as well as specialized libraries, such as the parallel computing library Gpars. Almost all of Groovy 1.7's new features came about because of growing practical experience with the language and its various frameworks...

Mitch Pronschinske announces CometD 1.0 Released, Work Begins on 2.0:

Any application that receives server-side events such as online games, stock information, sport results, content sharing, etc. can use the CometD project libraries to greatly simplify development. CometD is an HTTP event routing bus for AJAX web applications. Using Comet, an AJAX Push technology pattern, CometD facilitates multi channel messaging between client and server, and vice versa. The bus implements the publish/subscribe asynchronous paradigm of the Bayeux protocol in JavaScript, Java, Perl, Python and other languages. The Dojo Foundation houses the CometD project...

In today's Weblogs, Terrence Barr notes published java.net restored:

After the attack last week java.net now has been restored and should be (mostly) functional, including the Java Mobile & Embedded Community. Please note that recently added content may still be missing and needs to be reposted...

John Ferguson Smart provides Bootcamps and TDD Training in 2010 - a sneak preview:

As the year draws to a close, I wanted to give everyone a heads-up about some of the Wakaleo training sessions already lined up for 2010. The next big training dates are in Europe - in collaboration with Skills Matter, I will be running the Java Power Tools Bootcamp in London (February 15-19) and Paris (February 22-27), and then in Wellington in March (March 22-26). I'm also lining up sessions for Syndey,Canberra, Melbourne, and other sites to be announced soon. This is a great workshop that covers the whole build lifecycle, including managing the build process with Maven,automated testing, automated code quality tools and all the way to Continuous Integration and automated deployment and releases using Nexus and Hudson. The course is very popular with students, and is continually being updated to keep tabs on the latest evolutions in build tools...

Evan Summers posted Swing Event Pump Redux:

Having blogged this hack some years ago (Event Pump DTs), today i actually used it. The idea is to execute a long running task in the background, while blocking our app, seemingly on the EDT, while waiting for the task to complete. The hack involves using a zero-sized dialog. In this case, the EDT is not blocked from handling other events in the queue eg. as a response to user actions in the meantime, eg. repainting and whatever...

In the Forums,violetfairy posted MediaPlayer: Problems with setting of volume and mute properties: "Hi, sorry for my bad English... I'm Italian... I'm trying to set the properties volume and mute of a MediaPlayer instance but if I set volume:0 or mute: true and..."

ayang is working with JAX-WS wsgen and returning collections: "I've been playing around with JAX-WS and have come across something odd when running wsgen. If I have a service class that does something like: @WebService public class Foo { public ArrayList..."

mcneillk notes V3 of J3DWorkbench available on sourceforge: "J3DWorkbench, a powerful tool for building and delivering complex Java 3D scenes was released on https://sourceforge.net/projects/j3dworkbench/. Many aspects of the runtime API and the tool..."


Our current Spotlightis Ed Ort's three part article series, Introducing the Java EE 6 Platform: "Java Platform, Enterprise Edition (Java EE) is the industry-standard platform for building enterprise-class applications coded in the Java programming language. Based on the solid foundation of Java Platform, Standard Edition (Java SE), Java EE adds libraries and system services that support the scalability, accessibility, security, integrity, and other requirements of enterprise-class applications..."


Our current java.net Poll asks "Do you plan to upgrade to NetBeans IDE 6.8?" Voting will run through Thursday or Friday (depending on where you live).


We have a new java.net Feature Article, my recent Interview with Java Champion Adam Bien: Java EE 8, Closures, and More. We're also featuring Jeff Friesen's Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


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.

-- Kevin Farnham
O'Reilly Media

Today's lead Java Today item is Geertjan Wielenga's recent interview with Dale Thoma, of Saab Systems Grintek (SSG), in South Africa. Dale supervises application development within the tactical communications environment. The team applies NetBeans as the foundation in their strategy for helping the South African National Defense Force to accomplish its broader objectives.

Dale describes his team's work as follows:

... we are involved with the tactical interoperability of defence platforms. Amongst other things, we implement Command & Control type applications (in particular relating to Situational Awareness (SA)), data links, translations between 3rd party systems (such as Combat Management Systems (CMS) or Electronic Warfare Systems (EWS)) and tools for interoperability management.

So how does the NetBeans platform relate to what Dale is doing?

The NetBeans Platform is heavily ingrained into our strategies for future development. We are currently implementing several projects on top of the NetBeans Platform for the South African National Defence Force (SANDF). These projects relate to the upgrading of the tactical communications backbone for the SANDF. Eventually, we'll see somewhere in the region of several thousand defence platforms that will make use of the NetBeans Platform.

Geertjan and Dale talk in some detail about the Kaizen Integrated Tactical Technologies (KITT) project. Dale describes this as:

our development strategy for the next 10-15 years. It is the result of a Research & Development project within our organization to create a common platform for all our future tactical applications.


NetBeans-based architecture

The interview continues with discussion of some specific subprojects, including diagrams of developed applications in action. Then, the architecture of the systems is outlined (see the above diagram), followed by Dale's discussion of how and why NetBeans was chosen as the base platform over its competitors.

As Geertjan is making clear in his YANPA (Yet Another NetBeans Application) series on his blog, NetBeans forms the basis of a great many complex technology systems, spread across business, finance, engineering, science, and even military realms. You may recall that, at JavaOne 2009, engineers from ndsatcom.com won a Duke's Choice Award for the development of the NetBeans Satellite Tracking System.

Long-term engagement of technologies by national departments of defense doesn't happen unless the technology is seen as being flexible, reliable, robust, secure, and durable. Looking at the types of organizations that are applying NetBeans as their core platform -- staking their future on it -- NetBeans is clearly viewed as being this type of platform.


In Java Today, Geertjan Wielenga has a new article, South African National Defence Force on the NetBeans Platform

Dale Thoma works for Saab Systems Grintek (SSG) in South Africa, where he supervises application development within the tactical communications environment. His roles at SSG include that of project manager, systems engineer, and line manager...

The Java Tools community has published JavaTools Community Newsletter - Issue 208:

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.

The Java ME SDK team announces a Screencast: Device Selector:

Some time ago I asked you how are you familiar with Device Selector. I'd like to thank everybody who answered the question. We have got lots of interesting information. More than half of participants answered "I don't know what Device Selector is." I didn't expect so high percentage of votes for this option so this is a good chance to say a few words about Device Selector functionality...

In today's Weblogs, John Ferguson Smart provides Bootcamps and TDD Training in 2010 - a sneak preview:

As the year draws to a close, I wanted to give everyone a heads-up about some of the Wakaleo training sessions already lined up for 2010. The next big training dates are in Europe - in collaboration with Skills Matter, I will be running the Java Power Tools Bootcamp in London (February 15-19) and Paris (February 22-27), and then in Wellington in March (March 22-26). I'm also lining up sessions for Syndey,Canberra, Melbourne, and other sites to be announced soon. This is a great workshop that covers the whole build lifecycle, including managing the build process with Maven,automated testing, automated code quality tools and all the way to Continuous Integration and automated deployment and releases using Nexus and Hudson. The course is very popular with students, and is continually being updated to keep tabs on the latest evolutions in build tools...

Evan Summers posted Swing Event Pump Redux:

Having blogged this hack some years ago (Event Pump DTs), today i actually used it. The idea is to execute a long running task in the background, while blocking our app, seemingly on the EDT, while waiting for the task to complete. The hack involves using a zero-sized dialog. In this case, the EDT is not blocked from handling other events in the queue eg. as a response to user actions in the meantime, eg. repainting and whatever...

Fabrizio Giudici notes ... and Santa brought OpenSolaris:

I've been trying to install OpenSolaris since 2006, with no luck. At that time, probably, there were some blocking bugs of the installer when working in a MacBook Pro; furthermore network drivers were only available for 64 bits (and I only got a first generation MacBook Pro). About one year ago I bought a 64-bit MacBook Pro and probably the bugs had been fixed by that time, but I filled my 500GiB disk (I like to keep all my digital photos with me and I don't trust external drives) and had to give up with the extra partition for Solaris. Also, the Solaris installer worried me a bit as I always fear to erroneously scratch all the partitions (partly because I'm really not accustomed with the way Solaris designates disks)...

In the Forums,nielzw notes Compiling JSP is slow on v3 GlassFish: "Upgraded from v2 to v3. After each deploy, JSPs are compiled on request. This is much slower on v3. The Precompile option in admin delays the deployement to 20 minutes. Compiling all JSPs in NetBeans occurs within 4 seconds..."

neethu is working on Object OverLapping in virtual Universe: "I tried to add, a array of cube at different position.I have use HiResCoord since my cube size is big (say 50m). But the problem here is all the cubes are getting overlaped. I dunno where i have gone wrong???can you please help me... "

And 14gautam needs help with File Transfer Using Web Services (JAX-WS): "Hello everyone! I am using NetBeans 6.8 and GlassFish v3. I believe NetBeans uses JAX-WS to create web services. Can anyone tell me how I can transfer files using these web services..."


Our current Spotlightis Ed Ort's three part article series, Introducing the Java EE 6 Platform: "Java Platform, Enterprise Edition (Java EE) is the industry-standard platform for building enterprise-class applications coded in the Java programming language. Based on the solid foundation of Java Platform, Standard Edition (Java SE), Java EE adds libraries and system services that support the scalability, accessibility, security, integrity, and other requirements of enterprise-class applications..."


Our current java.net Poll asks "Do you plan to upgrade to NetBeans IDE 6.8?" Voting will run through Thursday or Friday (depending on where you live).


We have a new java.net Feature Article, my recent Interview with Java Champion Adam Bien: Java EE 8, Closures, and More. We're also featuring Jeff Friesen's Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


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.

-- Kevin Farnham
O'Reilly Media

In this week's java.net Spotlight, we're featuring Ed Ort's new three-part article series, Introducing the Java EE 6 Platform. Ed Ort is a Sun Developer Network staff writer; he's written extensively about database, programming, and web services technology.

Part 1 of the series looks at the goals of the Java EE 6 platform. These include:

  • More flexible technology stack
  • Enhanced extensibility
  • Further ease of development

Among the leading new Java EE 6 technologies, Ed cites the Java API for RESTful Web Services (JAX-RS), JSR 311. JAX-RS:

enables you to rapidly build lightweight web services that conform to the Representational State Transfer (REST) style of software architecture. An important concept in REST is the existence of resources, each of which can be referred to with a global identifier, that is, a URI. In particular, data and functionality are considered resources that can be identified and accessed through URIs. To manipulate these resources, components of the network, clients and servers, communicate through a standardized interface such as HTTP and a small, fixed set of verbs - GET, PUT, POST, and DELETE - and exchange representations of these resources.

Ed then provides an example of JAX-RS in action, in a code example.

Ed also covers Contexts and Dependency Injection (CDI), JSR 299, in Java EE 6:

These services allow Java EE components, including EJB session beans and JavaServer Faces (JSF) managed beans, to be bound to lifecycle contexts, to be injected, and to interact in a loosely coupled way by firing and observing events. Perhaps most significantly, CDI unifies and simplifies the EJB and JSF programming models. It allows enterprise beans to replace JSF managed beans in a JSF application.

An code example of CDI in action is provided.

The first article in the series completes with a discussion of Bean Validation, JSR 303, and example code.

Part 2 in the series covers Java EE 6's enhanced web tier capabilities, support for web fragments in Servlet 3.0, shared framework pluggability, asynchronous processing in Servlet 3.0, simplified page authoring in JSF 2.0, facelets, templating, composite components, JSF 2.0 AJAX support, and other Servlet 3.0 and JSF 2.0 new features.

Part 3 of the series talks about ease of use improvements, the no-interface view, singletons, asynchronous session bean invocation, simplified packaging, EJB 3.1 features, Java Persistence API 2.0, object/relational mapping enhancements, Java Persistence Query Language enhancements, the Criteria API, pessimistic locking support, annotations in Java EE components, profiles and pruning, the Web Profile, and more.

All in all, Ed Ort's Introducing the Java EE 6 Platform series is a comprehensive overview of what's new in Java EE 6. It's a good place to start if you've heard the news that Java EE 6 was approved, but haven't yet had a chance to learn what's actually in it.


In Java Today, James Gosling is Looking forward to a little Peace on Earth...

Alan Bateman asks Is the JDK losing its edge(s)?:

One of the goals for JDK 7 is to get us to a modular platform. Getting there will be hard as it's a very interconnected code base with many undesirable dependencies between APIs and different areas of the implementation. These dependencies have built up over many years and releases. To give an example (from a couple of builds ago but mostly applicable to JDK 6 too): Suppose you are using the Logging API (meaning java.util.logging)...

Josh Marinacci announced the JFXStudio Challenge Winner: Holiday:

The JFXStudio is proud to announce the winner of Challenge:Holiday. The winner is Jeff Friesen with his entry: Happy Holidays. Be sure to turn on the sound. Jeff will receive a twenty dollar gift certificate and a badge to put on his home page. Congratulations Jeff! ...

In today's Weblogs, Alois Cochard posted Integrating Spring Security with NTLM + Crowd:

For the purpose of implementing a SSO (Single Sign On) system into our application, I investigated the use of spring-security and successfully implemented it using NTLM and Crowd...

Remi Forax asks Tailcall anyone?:

Last June, Arnold Schwaighofer push a patch to mlvm repository that allow to transform tail call invocation of a method to a jump.
Even if this transformation is classical in language like Lisp, Scheme or Caml, the JVM was not offering any help to optimize this kind of call until this patch.
Recently, Tom Davies has refreshed the patch in order to be used with a more recent jdk7 beta VM. Really cool, indeed....

Fabrizio Giudici talks about focus on A single thing at a time:

You know, everybody has been saying it for years, that when we design a software in object-oriented way we must focus on one single thing at a time. Baby steps. It means setting small, reasonable goals; one tiny step at a time. It's one of the most important best practices for software development...

Our current Spotlightis Ed Ort's three part article series, Introducing the Java EE 6 Platform: "Java Platform, Enterprise Edition (Java EE) is the industry-standard platform for building enterprise-class applications coded in the Java programming language. Based on the solid foundation of Java Platform, Standard Edition (Java SE), Java EE adds libraries and system services that support the scalability, accessibility, security, integrity, and other requirements of enterprise-class applications..."


Our current java.net Poll asks "Do you plan to upgrade to NetBeans IDE 6.8?" Voting will run through Thursday or Friday (depending on where you live).


We have a new java.net Feature Article, my recent Interview with Java Champion Adam Bien: Java EE 8, Closures, and More. We're also featuring Jeff Friesen's Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


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.

-- Kevin Farnham
O'Reilly Media

I first met Java Champion Adam Bien at JavaOne, where we made a podcast titled Real World Java EE Patterns: Rethinking Best Practices. With Java EE 6 having just been approved, I thought now was a good time to reconnect with Adam, and get his view on the latest news in Java. So, last week we did an interview, which I've just published.


Java Champion Adam Bien

As I've said before, I learned a lot about the recent history of Java EE and EJBs in my talk with Adam at JavaOne. The rumors of Java EE being overly bloated and EJBs being heavyweight components are true only if you look at them with respect to their potential capabilities and potential complexity. That is, Java EE and EJBs have wide-ranging potential, rock-solid, thoroughly tested, enterprise level capabilities. But, enactment of the more complex capabilities is not required. At their most basic level, EJBs are lightweight, fully-scalable, components.

Adam reiterated this point in our interview last week, when I asked him if EJBs are an option that Java developers could apply in meeting the "Multicore Challenge":

EJBs are lightweight since 2006. They were always perfectly scalable on multicore systems because of their procedural nature. I actually never had any scalability problems with EJBs and was always surprised by their good performance...

With the availability of the embeddable container in EJB 3.1 you could even run them on a desktop, or at least in a JUnit test. Glassfish EJB 3.1 container is about 1 MB, openEJB and JBoss are also very lightweight - it could really work.

I asked Adam this question because of the ongoing discussions wherein adding closures to Java is seen by some as necessary for meeting the Multicore Challenge -- that is, parallelizing desktop applications such that they'll utilize the many core processors that we expect to become common even in fairly low-level office and home computers in the coming years. Do we really need closures to accomplish this if we already have a scaling technology that's been put through the wringer via deployment in massive distributed enterprise systems over the past 10 years?

Regarding the significance of Java EE 6, Adam said:

Java EE 5 was the revolution - Java EE 6 is the evolution. JSF 2.0 is a significant step in the right direction. Introduction of annotations, easy creation of components, and integration with facelets are huge news. You can create a JSF 2.0 application in minutes without having sophisticated tools.

EJB 3.1 / REST synergy is very interesting and the Context and Dependency Injection JSR-299 / JSR-330 marriage greatly extends the DI capabilities of the platform. Now even a spec led by the head of Spring (Rod Johnson) is a part of the Java EE 6 spec.

See the full article, "Interview with Java Champion Adam Bien: Java EE 6, Closures, and More", for the rest of our discussion.


In Java Today, Jagadish Ramu writes about DataSource Resource Definition in Java EE 6:

Java EE applications use DataSourceobjects when they access relational databases through the JDBC API. A DataSource has a set of properties that identify and describe the real-world data source that it represents. These properties include information such as the location of the database server, the name of the database, and the network protocol to use to communicate with the server. In addition, aDataSource object works with a Java Naming and Directory Interface (JNDI) naming service. After aDataSource object is registered with a JNDI naming service, an application can use the JNDI API to access thatDataSource object, which can then be used to connect to the datasource it represents...

Ed Burns invites people to Add Your JSF 2 Content to Sun Java Certification Exam:

In November, Servlet 3.0 Specification Lead Rajiv Mordani, and I started providing technical advice to the team at Sun developing the successor to the Sun Certified Web Component (SCWD) certification exam. This new exam covers Java EE 6, including JSF 2. All this week, the work will continue in the form of an offsite workshop at the mansion...

Adam Bien provides NetBeans 6.8 Java FX Editor for Production? - First Smoke Test:

The editing experience was dramatically improved in NetBeans 6.8 (comparing to NetBeans 6.7 or the "old" eclipse plugin), especially: 1. # renaming (refactoring) of functions, classes etc. works like in Java...

In today's Weblogs, Masoud Kalili notes And GlassFish v3 is Here:

The long awaited and the most looked upon version of GlassFish released today. GlassFish v3 fully implements Java EE 6 specification which means EJB 3.1, Servlet 3, JAX-RS, JPA 2, Contexts and Dependency Injection for Java EE, Bean validation, Java EE profiles and so on...

Masoud also notes that NetBeans 6.8 joined the GlassFish v3 in the release feast:

NetBeans 6.8released coordinated with GlassFish v3 today. NetBeans 6.8 can be considered a fine step ahead of NetBeans because Sun is officially supporting the NetBeans RCP platform as a product from now on. NetBeans 6.8features are as follow...

Jean-Francois Arcand talks about Using Google Guice with Atmosphere:

Starting with Atmosphere 0.5, you can now use Google Guice to configure Atmosphere. Google Guicesupport is enabled by referencing the Guicefilter GuiceFilter and an application specificServletContextListener that extends fromGuiceServletContextListener in the web.xml. For example, the web.xml may be as follows...

Our current Spotlightis the NetBeans community's announcement that NetBeans IDE 6.8 is now available: "The NetBeans team is proud to announce the availability of NetBeans IDE 6.8! Download NetBeans IDE 6.8. NetBeans IDE 6.8 offers best-in-class support for the entire Java EE 6 specification and the GlassFish Enterprise Server v3 platform. Simplify Java application development with Java EE 6 language features: less XML configuration and more POJO-like development; easily target and deploy to GlassFish v3..."


The new java.net Poll asks "Do you plan to upgrade to NetBeans IDE 6.8?" Voting will run through next Thursday or Friday (depending on where you live). The voting is extended due to this week's java.net site outage.


We have a new java.net Feature Article, my recent Interview with Java Champion Adam Bien: Java EE 8, Closures, and More. We're also featuring Jeff Friesen's Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2.


The latest Java Mobility Podcast is Java Mobile Podcast 91: MIDP 3.0: Excerpts from the JavaOne 2009 MIDP 3.0 session with Angus Huang, Roger Riggs, and Paul Su.


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.

-- Kevin Farnham
O'Reilly Media

 

This past couple weeks has seen a near flood of major software releases (GlassFish 3.0, NetBeans IDE 6.8), approvals of major specifications (Java EE 6 and a host of related JSRs), and the creation of Project Lambda (devoted to developing an implementation of closures for Java). I don't think there has been another period in the past year where so many important events have coincided. Even the stream of releases that occurred around JavaOne seem less significant than what we've seen in recent weeks.

The lastest event in this sequence was the FCS release of NetBeans IDE 6.8. We're featuring the NetBeans release as this week's java.net Spotlight. The Version 6.8 release information provides the following overview of the release:

NetBeans IDE 6.8 is the first IDE to offer complete support for the entire Java EE 6 spec with improved support for JSF 2.0/Facelets, Java Persistence 2.0, EJB 3.1 including using EJBs in web applications, RESTful web services, and GlassFish v3. We also recommend it for developing with the latest JavaFX SDK 1.2.1, and for creating PHP web applications with the new PHP 5.3 release or with the Symfony Framework.

Our unique integration of Project Kenai, a collaborative environment for hosting open-source projects, now comes with full JIRA support, and improved instant messenger and issue tracker integration. We also added features to the IDE's Maven and database integration, and improved the editor and tools integration of Ruby, Groovy, and C/C++ projects.

The release page highlights these features as being most significant in the NetBeans 6.8 release:

  • Java Enterprise Edition 6
  • Web Projects with JavaServer Faces 2.0 (Facelets)
  • JavaFX SDK 1.2.1 support
  • Kenai.com: Connected Developer (full JIRA support)
  • PHP 5.3 support
  • Enhanced Maven support
  • Enhanced Ruby support
  • Enhanced C and C++ support


NetBeans IDE 6.8 Kenai Connected Developer integration

This week's java.net poll is also about the new NetBeans release. It asks "Do you plan to upgrade to NetBeans IDE 6.8? Voting will be open through Thursday into Friday.


In Java Today, Mark Reinhold posted Closures for Java: The Straw Man:

As promised I

This past week's java.net poll shows that, while DEVOXX is considered to be a great Java conference, JavaOne is still consided the premiere Java conference by most people who express some knowledge of both conferences. A total of 223 votes were cast. The exact question and results were:

Is DEVOXX now the premier Java conference?

  • 24% (54 votes) - Yes
  • 42% (93 votes) - Only if there are no more JavaOnes
  • 4% (10 votes) - No, another conference is more important
  • 26% (59 votes) - I don't know
  • 3% (7 votes) - Other

The results of the (unscientific) survey reflect the prominence of both DEVOXX and JavaOne within the Java developer community, with JavaOne having the edge in terms of importance. The voters consider DEVOXX to be the second most important conference. No one who disagreed chose to name a conference other that JavaOne that ranks above DEVOXX in importance.

The high "I don't know" vote is not unexpected, since it's difficult to appraise the importance of conferences you've never attended. You can guess, certainly, based on reading reports from the conferences, and assessing the significance of the major news events the emanate from each conference; but, a more conservative approach is to select "I don't know" is you really don't have personal experience with one or both the conferences in question.

New poll: NetBeans IDE 6.8

Our new poll asks: "Do you plan to upgrade to NetBeans IDE 6.8?"

NetBeans IDE 6.8 was released yesterday.


In Java Today, the java.net NetBeans community announces NetBeans IDE 6.8 Now Available :

The NetBeans team is proud to announce the availability of NetBeans IDE 6.8!

Download NetBeans IDE 6.8

NetBeans IDE 6.8 offers best-in-class support for the entire Java EE 6 specification and the GlassFish Enterprise Server v3 platform. Simplify Java application development with Java EE 6 language features: less XML configuration and more POJO-like development; easily target and deploy to GlassFish v3...

The java.net Java User Groups community announces: Silicon Valley JavaFX JUG hold its First Meeting w/Richard Bair:

The very first JavaFX JUG meeting in Silicon Valley was held on Dec 9th, 2009. http://www.svjugfx.org/. We had a special guest speaker in Richard Bair who gave an introductory talk on JavaFX. Also, Josh Marinacci happened to be in town from Portland, Or. Stephen Chin plugged Josh into the talk line-up before Richard. Josh commented that he was the "appetizer" before the main course...(i.e. Rich's talk). Josh showed-off his Project MaiTai (an open source tool for building interactive artwork-written in JavaFX) and he also demo'd the Java Store...showed how easy it is to get involved and perhaps make a little $$ on the side...

Mark Reinhold's proposed OpenJDK Project Lambda has been approved:

The goal of this Project is to formulate a proposal to add first-class functions, function types, and lambda expressions (informally, "closures") to Java, and to implement a prototype suitable for inclusion in JDK 7 so as to enable broad experimentation. If all goes well then this will serve as the basis of a language-change JSR which will, in turn, be proposed as a component of the eventual Java SE 7 JSR...

In today's Weblogs, Eileen Loh posted her first java.net blog, JRuby Performance on Glassfish V3 -- Part 1:

One of the new features of Glassfish V3 is directory deployment of ruby applications.  This makes is much easier to develop and deploy ruby applications on Glassfish since developers no longer need to package ruby apps as wars using goldspike or warbler as was required for Glassfish V2.  However there are other good reasons to run your rails applications on Glassfish V3.  One of those reason is performance...

Cay Horstmann writes about Running PHP Apps on GlassFish:

For the upcoming semester, I want to run a learning management system into which I can integrate an experimental feature for evaluating student programs. It needs to be open source so that I can modify it. I was first going to go with Sakai, which is based on Java, butjust about everyone else is going to Moodle, and there are reasons for that. The problem is, Moodle is written in PHP, and I am not a LAMP guy. I run Java, PostgreSQL, OpenSolaris, and GlassFish. (Thanks Sun for donating the server!) What's a JPOG guy going to do? ...

Wouter van Reeven also posted his first java.net blog, Java EE 6 and GlassFish 3.0 released!:

In the past few month several Java EE 6 related JSRs (Java Specification Requests) have been finalized. The final ballot for them ended on November 30 and all were approved. Today, December 10, 2009, Java EE 6 and GlassFish v3, THEreference implementation of Java EE6, are released. Four and a half year after the release of Java EE 5 we enter the next Java EE era. GlassFish v3 is the first application server that fully supports all Java EE 6 technologies. The list of supported technologies includes, but is not limited, by...

In the Forums,rsoika has a problem with Glassfish v3 - EAR/Web Service deployment failed?: "Hi, I have a question about the right deployment of EARs with shared libs. My EAR which deploys successfully in Glassfish v2 can not be deployed with GlassfishV3. I got the following error message during deployment: ..."

shlee4851 wonders How to captual http request header using java proxy: "I write a java proxy to intercept all the request from apache server to tomcat server. I need to capture all the request header to do some filtering and redirection. I face an issue is BufferedInputStream don't know when the end of file. at..."

And aliatis finds that JVoiceBridge not works at all. JProvino, please, take a look.: "I have disabled user password of asterisk (user name is 37) and tried to call outside my network to PSTN. That doesn't work. Where is place to put my username in softphone or jvoicebridge?. Office's ip network works fine..."


Our current Spotlightis parts 2 and 3 of the Chris Wright and James Weaver article series "What's New in JavaFX 1.2 Technology." Both articles were published in November on the Sun Developer Network. Part 2 coversRSS, Storage, and Charts. Part 3 covers JavaFX Charts in greater detail. Thanks to Janice Heiss for pointing us to the latest additions to this series.


The new java.net Poll asks "Do you plan to upgrade to NetBeans IDE 6.8?" Voting will run through next Thursday or Friday (depending on where you live).


Our Feature Articles include Jeff Friesen's new article Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2. We're also featuring Sanjay Dasgupta's in-depth article Simplify Native Code Access with JNA.


The latest Java Mobility Podcast is Java Mobile Podcast 91: MIDP 3.0: Excerpts from the JavaOne 2009 MIDP 3.0 session with Angus Huang, Roger Riggs, and Paul Su.


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.

-- Kevin Farnham
O'Reilly Media

Harold Carr attended the SF MusicTech Summit this past Monday, and shares his notes from the summit in his latest blog post.

The conference focused on music, technology, networking, and marketing:

The SF MusicTech Summit brings together visionaries in the music/technology space, along with the best and brightest developers, entrepreneurs, investors, service providers, journalists, musicians and organizations who work with them at the convergence of culture and commerce. We meet to discuss the evolving music/business/technology ecosystem in a proactive, conducive to dealmaking environment.

One might ask: "what does this have to do with Java?" Well, if you look at Harold's notes, even though the word "Java" doesn't appear there, it's clear that mobile phones and smart phones are an increasingly significant, even critical, aspect of the music business. And, wherever phones are, Java is, increasingly.

A couple of examples from my own recent experience. My daughter damaged her phone -- a pretty basic one, actually, but one that had lots of music stored on it. She got a new phone (again, a basic model) from a friend who had upgraded to something fancier. But, she didn't want to part with the old phone, because as an MP3 player it still worked. So she now has two phones, one which she uses for phone calls and texting, the other being used as an MP3 player.

Another story about my daughter. She's a (currently part-time, hopes to be full-time ASAP) music professional. She's just produced her second CD, a live album consisting of recordings from her concerts this past summer. Normally, she is able to sell quite a few CDs when she performs at venues such as coffee houses and restaurants that are frequented by a mixed age crowd.

Yesterday, she performed at Central Connecticut State University, in a lunchtime performance. She set out her standard array of CDs, business cards, mailing list sign-up sheet, on a table near the stage. The audience was fairly sizeable, as students came in to grab a lunch or snack and relax after morning classes and before their first afternoon class.

So guess how many CDs she sold to this college audience? A single CD. And this isn't because the audience didn't appreciate her music. The appreciation was evident in terms of applause, etc. So, why did she sell only a single CD to a largish, appreciative audience? Because college students don't listen to music using CDs, in general. Music on hard media is fading as a means of distribution.

What was the biggest draw on the table of goodies set out for the students? The business card, which lists her primary web addresses and other information. The people who were interested enough in her music to walk up to the table took the card. Probably some other people who found her music interesting simply copied her name (which is prominently displayed on the back of her keyboard, facing the audience) into a notebook, or into their phone, or they went directly to her site as she played.

Most people in this particular audience who are interested in music don't need or want a CD. Rather, they find their music online, and they purchase any music they'd like to purchase as downloadable MP3 files. In many cases, they'll download the music to their phones -- just as my daughter herself did not want to part with a phone that could no longer make calls, but which held a still-viable library of music. As for CDs? Who wants them, or needs them, in this audience? Very few.

So, the business of music today is indeed becoming fused with mobile phone technology. See Harold's notes and the SF MusicTech Summit site for more details.

A long time ago, I suggested that one of Oracle's primary objectives in purchasing Sun was the importance of Java on mobile phones and other handheld devices. I suggested that Oracle perhaps saw the Sun acquisition as an opportunity to invest in and create new client applications and software and hardware that would interact with data centers running Oracle databases on Sun hardware -- enabling Oracle to span the spectrum from large to small -- which they can't do right now. At JavaOne, it was even hinted that Oracle/Sun might get into the mobile phone hardware business.

The traditional, hard-media-based music business is in decline. But that doesn't mean music itself is in decline. If anything, today's young people have more songs they own and can listen to than earlier generations did. The means of distribution has changed. The business model has changed. Mobile phones and hand-held devices are at the center of this change. Hence, Java's emerging importance as a critical technology within the music business.


In Java Today,IntelliJ IDEA 9 Is Out! :

IntelliJ IDEA 9 is out, bringing lots of new features and a brand new free edition! These are the highlights:

  • Two editions: Community Edition, free and open-source, and Ultimate Edition, encompassing 100% of the famous IntelliJ IDEA functionality
  • Much faster environment, with background indexing on startup
  • Extensive Java EE 6 support
  • Many productivity features in core Java functionality
  • Best-of-breed PHP support, with dedicated debugger, PHPUnit, etc.
  • Visual editor for defining the structure of project deliverables (.war, .ear archives, etc.)
  • AIR support, ActionScript refactorings, and other Flex support improvements
  • And lots more! ...

Alexismp writes about the GlassFish Hands-on-Labs at javapassion.com:

It's been a while since we haven't mentioned Sang Shin's "Java Passion" classes. Sang is a tireless creator of material for training and hands-on labs (HOL) with detailed step-by-step instructions. The already very long list of hands-on labs now includes :

GlassFish Programming/Development (with Passion!) Online Course (main page)
GlassFish OSGi Hands-on Lab
GlassFish Embedded Hands-on Lab

Arun Gupta provides TOTD #116: GlassFish v3 Administration using JavaFX front-end - JNLP available:

As mentioned in TOTD #113, this Tip OfThe Day (TOTD) provides a working version of the JavaFX front-end for GlassFish v3 administration. Please click here to launch the JNLP or click here to a page that provides some introduction along with the link to JNLP. You may like to enable Java Console as explained in TOTD #114 for any log messages ...

In today's Weblogs, Harold Carr provides his SF MusicTech Summit notes:

I attended the SF MusicTech Summit.  Here are my notes. Sun Startup Essentials is a sponsor: http://www.sfmusictech.com/
FutureHit.DNA: You've got 7 seconds to impress your audience; Getting first impression is easy. Getting second impression is hard; Music is still created like it was 1999 ...

Felipe Gaucho announces the Jazoon'10 Call for Papers:

Jazoon 2010 is calling for papers, with a renewed website and some surprises reserved for the ones accepted in the conference. Jazoon is an international Java conference in the heart of Europe, for the ones looking for the quality of the technical content and a comfortable venue. You find better info in the conference website, but below you have the important shortcuts if you are a prospective Jazoon speaker...

Ahmed Hashim announces his upcoming Spring Integration Talk:

Shadow copy of http://www.egjug.org/node/956. I would like to invite you to the Spring Integration session organized by EGJUG. We will talk also in quick about the upcoming JDC 2010 and may go to public restaurant to have light dinner after the SpringFramework night. Date: 15 December 2009 Time: 6:30 PM - 8:30 PM...

In the Forums,aliatis is working on issues relating to a Virtual Phone to place calls to land line. Configure Trixbox problem?: "Hi, guys. Thanks to jprovino, I can place calls in my LAN. Now, I have a problem: externals call. Here is my properties file: voicebridge.sip.port:5060 voicebridge.sip.gateways=192.168.1.5 My trixbox..."

ronenp is Porting a Java Project with JAXB to Maven: "Hi All, I am porting a project from Ant to Maven. this project is using JAXB and I want to create the source files as part of the build process. The Ant usage was: ..."

And nailuenlue is seeing a JAXB DTD <--> XML issue: "Hiho, I have an issue that i cant get rid of. In attached my schema and sample XML to this post. When i unmarshal the XML, i get the following error: DefaultValidationEventHandler: [FATAL_ERROR]: unexpected element..."


Our current Spotlightis parts 2 and 3 of the Chris Wright and James Weaver article series "What's New in JavaFX 1.2 Technology." Both articles were published in November on the Sun Developer Network. Part 2 coversRSS, Storage, and Charts. Part 3 covers JavaFX Charts in greater detail. Thanks to Janice Heiss for pointing us to the latest additions to this series.


This week's java.net Poll asks "Is DEVOXX now the premiere Java conference?" Voting will run through Thursday or early Friday.


Our Feature Articles include Jeff Friesen's new article Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2. We're also featuring Sanjay Dasgupta's in-depth article Simplify Native Code Access with JNA.


The latest Java Mobility Podcast is Java Mobile Podcast 91: MIDP 3.0: Excerpts from the JavaOne 2009 MIDP 3.0 session with Angus Huang, Roger Riggs, and Paul Su.


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.

-- Kevin Farnham
O'Reilly Media

In his latest post, Terrence Barr highlights the final release of JavaFX Mobile 1.2 for Windows Mobile. Since the early access release this past July, the development team "has been busy polishing the code, fixing bugs, and implementing some major performance improvements."

The downloads page currently includes four packages:

  • NetBeans IDE 6.7.1 for JavaFX 1.2
  • JavaFX 1.2 Production Suite
  • JavaFX 1.2.1 SDK
  • JavaFX Mobile 1.2 for Windows Mobile

The JavaFX Mobile 1.2 for Windows Mobile Release Notes (PDF) state that Windows is the only supported platform if you want to use NetBeans to build and test applications using an emulator.

Minimum hardware for development is 2 GB disk, 1 GB RAM, and a 1 GHz Pentium CPU. The host OS can be Microsoft Windows XP or Vista 32-bit with recent service packs. Also required are the Java SE Development Kit and NetBeans 6.7.1 with JavaFX SDK 1.2. On the device, you'll need ActiveSync 4.5 for Windows XP or Windows Mobile Device Center for Windows Vista, and Windows Mobile 6.0 or 6.1. The device itself must have a 32-bit RISC microprocessor and at least 64 MB RAM.

JavaFX Mobile 1.2 for Windows Mobile implements MIDP 2.1 (JSR 118) and the Connected Limited Device Configuration (CLDC) 1.1a (JSR 139). Many optional JSR packages are also supported (see the Release Notes for details).

See Terrence's earlier post (published when the early access version was released) for additional information, including a screencast titled "Getting Started with JavaFX Mobile 1.2 EA for Windows Mobile."


In Java Today, Geerjan Wielenga published How to Create a Swing CRUD Application on NetBeans Platform 6.8 :

This article shows you how to integrate a Java DB database into a NetBeans Platform application. We start by exploring a Java DB database, from which we create entity classes. Next, we wrap the entity classes into a module, together with modules for the related JPA JARS. Note: These instructions are not applicable to Java DB only. Rather, they are relevant to any relational database, such as Oracle or MySQL. Several applications on the NetBeans Platform, many of which are listed here, use these databases too. Java DB was chosen for this article because it is easiest to get started with, since it comes with the JDK...

Terrence Barr announces the Final Release: JavaFX Mobile 1.2 for Window Mobile:

JavaFX Mobile 1.2 for Windows Mobile was released as Early Access in July. Since they, our team has been busy polishing the code, fixing bugs, and implementing some major performance improvements. Yesterday, the final release hit javafx.com. You can download the release bundle from the downloads page and start writing and deploying applications to your mobile phone immediately. Check out theRelease Notes, which are part of the download bundle, for more information. Also, if you haven’t done so yet, see my previous blog post regarding JavaFX Mobile for Windows Mobile, including a full screencast...

Josh Marinacci notifies us that the JFXStudio Holiday Challenge is almost over:

The JFXStudio Challenge:Holiday challenge is almost over. You

James Gosling announced that he is in Sao Paulo, Brazil for a Sun Tech Days event this week. In his post, he also states that two major FCS releases are also expected this week:

High on the exciting list are the joint FCS releases ofGlassFish V3 and NetBeans 6.8 (probably on the 10th, depending on how the Release Gods smile).

James notes with enthusiasm the confluence of significant events with which this year is drawing to a close:

These are both hot after the approval of the EE 6 ballot. The spec is done, the implementation is done, and the tools are done. Things of beauty! Enjoy!!

Marcelo Carvalho Fernandes posted a comment saying he'll be at the Sun Tech Days event, adding:

JavaEE 6 is certainly the best news for Java this year and it shines with Netbeans 6.8.

The Java EE 6 approval is significant news. Even though the approval was not unanimous, the reasons for the no vote and two absentions was a dispute about licensing. All voters agreed that based solely on technical merits, the Java EE 6 specification deserved to be approved.

It's interesting to me that closures are being talked about as a means for enabling Java to meet "the multicore challenge." Because, don't Java EE 6 and EJB 3.0 already do that? In my conversation with Java Champion Adam Bien at JavaOne this past June, I was surprised to hear how lightweight EJBs have become. For example, here's a quote from the blog post I wrote about my interview with Adam:

Are EJB applications portable? Extensible? Many think not. But Adam shows that in fact these ideas are illusory, especially when it comes to EJB 3.

What about performance? Adam found a difference of only 3% between a well-designed EJB and an equivalent POJO in his testing. EJBs are actually lightweight in their minimal implementation. But, what they give you is free added capabilities that you don't have to develop and implement on your own - which you'd have to do if you were working on your own trying to extend a legacy POJO into the enterprise realm.

I found Adam's discussion of the conception that "EJBs are too complex" really interesting. I had suggested that the perception of complexity was one reason why developers avoid EJBs. Adam quickly distinguished "essential complexity" and "accidental complexity." Essential complexity is, for example, when you're working with distributed systems. You have to think about things like caching, synchronization. You can't have a genuinely working distributed system that doesn't fully solve these issues. So - do you want to develop your own infrastructure to solve these problems? Well, EJBs do it for you, for free.

So, is perhaps the news of Java EE 6 approval actually more significant for Java than the closures in Java 7 surprise?

Anyway, as James Gosling suggests, this really is an exciting and significant moment for Java.


In Java Today, James Gosling says Hello, Brazil!:

This week I'm in Sao Paulo, Brazil for Tech Days. If you're in the neighborhood, come join us. We've got lots of great speakers who will be covering a wide range of topics. High on the exciting list are the joint FCS releases of GlassFish V3 and NetBeans 6.8 (probably on the 10th, depending on how the Release Gods smile). These are both hot after the approval of the EE 6 ballot. The spec is done, the implementation is done, and the tools are done. Things of beauty! Enjoy!! ...

Bruce Hopkins has a Quick Question - Upcoming Java Card 3 article:

Here's a quick question for you. I

Our java.net Spotlight this week is the latest two additions to the SDN What's New in JavaFX 1.2 article series, which is written by Chris Wright and James L. Weaver. Parts two and three of the series were published in November.

Chris Wright is a JavaFX developer for VNImedia, where he applies JavaFX to create interactive software on LCD touchscreens. James Weaver is a Java Champion; he is VP of technology at Veriana Networks, and he regularly blogs on his JavaFX Blog (which we frequently cite in Java Today).

Part two of the article series is titled What's New in JavaFX 1.2 Technology: RSS, Storage, and Charts. The introduction summarizes the entire series to date:

The first article in this series, What's New In JavaFX 1.2 Technology: New Layouts and Effects, introduced you to new layout classes such as ClipView,Flow, and Stack, and demonstrated how to use these classes within your applications.

Unlike the many articles that concentrate on graphical user interface (GUI) features and application design in JavaFX technology, this article and the next will provide insight into the more technical features such as RSS and Atom tasks, local storage using JavaFX's built-in storage classes, and the use of JavaFX charts.

The article covers:

  • the RSSTask class
  • adding the user interface (UI)
  • local storage

An example program that reads and displays stock quotes is illustrated in the article.

The third article in the series is What's New in JavaFX 1.2 Technology: JavaFX Charts. This article continues the development of the stock quote program from the previous article, and uses it to demonstrate the types of charting functionality that is available in JavaFX 1.2. The article covers:

  • bar charts
  • pie charts
  • line and area charts
  • bubble and scatter charts

The "What's New in JavaFX 1.2" series demonstrates that very nice looking applications can be developed using a relatively small number of lines of JavaFX code.


In Java Today, the java.net Mobile&Embedded Community reports that Android

The results of this past week's poll demonstrate varying views among the Java developer community on Java's current support for parallel programming, and the need for additional support (for example, through the addition of closures). A total of 256 votes were cast in the poll. Here is the exact question and the results:

Is Java's parallel programming support sufficient to meet 'the Multicore Challenge'?

  • 34% (86 votes) - Yes, Java's existing thread libraries, etc., meet the need
  • 18% (45 votes) - No, but support for closures in Java 7 will meet the need
  • 20% (52 votes) - No
  • 14% (36 votes) - What's 'the Multicore Challenge'?
  • 14% (37 votes) - I don't know; other

The first thing I notice is the relatively small number of respondants who believe the addition of closures to Java will have a significant impact on Java's parallel programming support. In Mark Reinhold's Closures for Javapost, he cites the necessity to write scalable parallel programs as the primary reason why it's critical that closures be added to Java now. Yet, only 18% of the voters in our non-scientific survey believe that adding closures to Java will make Java sufficiently capable with respect to parallel programming.

Meanwhile, all of the other response options received a considerable share of the vote. The range between the option with the highest and lowest share of the vote was only 20%. That hasn't happened too often in java.net polls.

34% of voters believe the parallel programming support Java currently offers is sufficient to meet today's and future needs. 20% believe that even with the addition of closures to Java, its parallel programming support will still be inadequate going into the future.

Then, there are the 14% who wondered what 'the Multicore Challenge'is. This isn't surprising, because, through today, very few developers have had to develop multithreaded software. And prior to the breakdown of Moore's Law with respect to single core processors, it has been historically the case that for most applications there was no need to develop multithreaded code: the application got faster because the speed of individual processor cores kept increasing rapidly over time.

Speaking of Moore's Law and its possible breakdown, here's an interesting article I just found on a possibility whereby there may be New life for Moore's Law. The article was written in 2005, and I'm not sure what's happened to the technology it discusses since then. But, if a way was found to keep the Moore's Law template chugging along on single processor cores, then the "Multicore Challenge" would be postponed at least for a while, obviating the need for developers to learn how to write threadsafe code, and the need for Java itself to include robust and not-too-difficult-to-implement parallel programming support.

Getting back to the poll, another 14% answered "I don't know; other." There were no comments posted, so this 14% may consist mostly of people who simply haven't given the need for parallel programming in Java much thought, or they haven't had to do it yet and know they don't know enough of the details of Java's current support to select one of the other options. Again, the size of this group is not surprising.

All in all, in spite of the fervent discussion that has proceeded from Mark Reinhold's announcement at DEVOXX that Java 7 will include a limited form of closures, the results of our poll don't suggest that developers see a strong need for closures in Java as a means of addressing parallel programming deficiences in the language. That's an interesting result, one that's at considerable variance from Mark Reinhold's view.

New poll: is DEVOXX now the premiere Java conference?

The recent DEVOXX conference was the venue for one of the bigger Java announcements of 2009 (that closures will be included in Java 7). According to Andrew Phillips, the DEVOXX content "seems to be more or less on a par with JavaOne". Clearly, there is some doubt about whether there will be another JavaOne. If not, perhaps there will be a new section of Oracle Open World devoted to Java -- but what would be the "look and feel" of something like that?

So, this week's new java.net poll asks: "Is DEVOXX now the premiere Java conference?" Voting will run through next Thursday or early Friday.


In Java Today, Java Champion James Weaver documents JavaFX 1.3 Leakage at Devoxx 2009:

I love it when Sun employees like Richard Bair and Jasper Potts demonstrate features, and show code samples (in wet concrete of course), for upcoming JavaFX releases. In this post I'd like to bring some of these Sun-leaked features and code samples to light. Please note that this talk was a preview, and things will of course change before the final JavaFX 1.3 release...

peligri posted Jersey Improvements - Tracing and Google AppEngine Support:

Jersey is the JAX-RS Reference Implementation but also is fully production quality component of GlassFish v3, and includes many features (Jersey@TA) to expand its usefulness. Paul just reported on two recent additions...

The java.net Mobile&Embedded Community reports App developers struggle to profit from Android:

Software developers writing applications for Google Android are struggling to turn a profit from the mobile operating system. New research published on Tuesday by positioning system firm Skyhook Wireless found that 57% of mobile application developers were not satisfied with their profits from Android. Only 4% of the respondents reported being very satisfied. "Rather than creating opportunity, platform divergence has just created further problems; we simply can't afford to test across all Android phones," said Android app maker James Grafton, in a statement.

In today's Weblogs, Aaron Houston provides Reflections of DEVOXX09 -- A List of Tweets:

This is Houston... Just cleared out my iTouch of Tweets from the DEVOXX09 conference....Man! were there a lot of Tweets... Here's a list of the one's I've "starred"... Ack! there were hundreds more...

Carol McDonald writes about using Wicket, JPA, GlassFish and Java Derby or MySQL:

This Pet Catalog app explains a web application that uses Wicket, JPA, GlassFish and MySQL. I took this example JSF 2.0, JPA, GlassFish and MySQL  http://java.sun.com/developer/technicalArticles/glassfish/GFandMySQL_Part2.html and modified it to use Wicket instead of JSF...

Fabrizio Giudici discovered forceTen geographic APIs, a simple example about RDF design:

forceTen has been born as the container of components for rendering geographic views and representing the related modes for the geotagging capabilities of blueMarine; but it has been also reused in two more server-side projects, where a special focus has been given to the models. The most trivial feature is the capability of managing accurate geo tags: for instance, no duplicates and no erroneous spelling when entering the name of a place. These features imply the need to keep a hierarchical structure of names, in order to disambiguate places that might have the same name, but are in different provinces or countries...

In the Forums,aloleary wonders if it's possible to Lock layer without busy icon ?: "Hello, i would simply like to lock a panel - but i dont want the busy mouse effect... is this possible ? Thanks in advance -A"

syc17 has a question regarding Metro 1.5 + STS issued token with SAML2.0 attribute statements: "Hi. I've implemented my own STSAttributeProvider to write SAML2 assertions in my STS issued tokens. However, I have some questions on how to customise the attribute statements:1) is there a way to set the Attribute's FriendlyName (which..."

And dmaroto83 needs the Number of vertex the renderer is working with: "Hi, Only one question: Does anybody know how to obtain the number of vertex that the renderer is showing every moment? It`s important to me, because I want to make a comparative study between "frames per second" and "vertex", and wonderland..."


In our current Spotlight, Sebastien Arbogast talks about My Devoxx Discoveries of the Year : "Every year, the main reason why I go to Devoxx is to discover new stuff. For me it

Mark Reinhold provided a significant clarification of issues surrounding the surprise announcement that closures will be included in Java 7 in his new blog post Closures for Java: The Q&A. I'm featuring Mark's post in Java Today.

http://blogs.sun.com/mr/resource/closures-at-devoxx.jpg

Mark spends some time both defending himself and stating that there is good reason why he ended up being the one to initiate a new proposal for inclusion of closures in Java 7. He says:

At heart I

As Roberto Chinnici points out, the JCP Executive Committee has approved JSR 316, the Java EE 6 specification. Roberto says that "the final release will happen on December 10, when GlassFish v3 will be available.

Roberto notes that:

Several other Java EE component JSRs were approved at the same time: Servlet 3.0, JPA 2.0, EJB 3.1, Connector 1.6, CDI 1.0. All other components, be they full JSRs or maintenance releases (MRs, for insiders), had been previously approved. I should also mention here that, being part of the platform JSR (JSR-316) the Java EE 6 Web Profile too was approved, and so was the Managed Beans 1.0 specification I talked about in prior blog entries. So, yes, now we really have profiles in Java EE: let's put them to good use!

The Java EE 6 approval, however, was not without dissent. In thevoting, only 12 of the 16 members of the Java SE/EE Executive Committee voted to approve the Java EE 6 specification. Two members abstained (SAP AG and Intel Corp.), one member voted against approval (Apache Software Foundation), and one member did not vote (SpringSource).

None of the members found the technical aspects of the specification to be lacking in critically important matters. IBM, which voted to approve the specification, noted:

With the exception of the JSR 330 and JSR 299 injection support defined by the EE 6 platform, we believe that this new specification brings value to the industry. We remain concerned that the injection support defined by the platform will create unnecessary difficulties for the community. IBM will continue to support both expert groups in the development of a single integrated and extensible injection programming model.

Intel stated:

We were not satisfied with some of the information accompanying this ballot and have informed the Spec Lead. No technical issues. It's a good spec.

Both SAP AG and Apache Software Foundation cited actions by the tech lead (Sun) related to licensing as the reason for their abstention and no votes. SAP is:

disappointed that Sun Microsystems as the Spec Lead of the Java EE 6 specification has not managed to produce the promised "full license terms" of the Java EE 6 TCK until the begin of the two week voting window for Java EE 6. Given the complexity of this license, we are unfortunately not in a position to complete a thorough legal review. At a minimum, we would expect that the TCK is not used to prevent access to the Java marketplace, including open source implementations. This JSR has been filed in July 2007; we believe there would have been ample time to share and discuss the proposed full license terms with the community.

For the Apache Software Foundation, this was a sufficiently significant issue for them to vote "no" on approving JSR 316:

The Apache Software Foundation's vote is based on the point of view that this spec lead - Sun - is in violation of the JSPA http://www.apache.org/jcp/sunopenletter.htmland therefore shouldn't be allowed to lead other JSRs until the above matter is resolved.

Still, both SAP and Apache both stated that their voting decisions were not a reflection of the technical merits of Java EE 6.


In Java Today, TheServerSide.com published Developers split on open sourcing Java:

Developers are divided on the issue of whether or not Java should be fully open sourced. On the one hand, some say handing the Java Community Process (JCP) over to the industry at large would create an open field for different implementations and features to compete and improve. Skeptics to this view say this "free market" scenario would be the death of the language and that Java needs a centralized leadership to keep it focused...

Geertjan Wielenga continued a conversation on Swiss JUG and What We Forgot to Mention:

As Toni reported here, we were in Zurich end of last week, where we gave a 1 hour introduction to the NetBeans Platform to the Swiss JUG. There were just under 30 people in attendance, some with a NetBeans Platform background, some with an Eclipse RCP background, some with a JSR-296 background, and some without foreknowledge of these frameworks. Here's a pic of me and the group, taken by Toni...

peligri announces 3-in-1 - Patch 6 for GlassFish v2.1 Now Available:

We released GlassFish v2.1.1 at the end of October. As with GlassFish v2.1, this release played two roles: it was a public, no-fee, release, and it was also a commercial patch for earlier versions in the GlassFish v2 family. GlassFish v2.1.1 is, thus, also GFv2.1 p6 and SJS AS 9.1U2 p12. GFv2.1.1 addresses 121 new defects since the previous patch...

In today's Weblogs, Roberto Chinnici announces Java EE 6 platform approved today:

With the closing of the final approval ballot earlier today, it is now official: the JCP Executive Committee has given a green light to the release of the Java EE 6 platform specification. The final release will happen on December 10, when GlassFish v3 will be available. For more details of the ballot, with comments from several EC members, please refer to the JCP web site. Of course the excitement of the event drove me to watch live the ballot close at midnight PT and tweet about it! ...

Remi Forax asks Why extension methods are evil ?:

Mark Reinhold recently blogs about the renaissance ofclosure in Java (*). In his blog, he also wrote that in order to have closures in Java, Java will have to include another feature namedextension methods. As you may already know, I'm a big fan of closures but the introduction of extension methods in Java really scary me...

Aaron Houston publicizes Voices From DEVOXX -- What is Your Greatest Concern for Java? +more:

"This is HOUSTON...." -- Here is a collection of voices and quotes from the DEVOXX conference last week... Well... DEVOXX is over... It was a busy week; and, I had planned to record a 100 voices from DEVOXX... Well it didn't happen...just like at JavaOne.... the events, the technical sessions, BOFs, and the personal time I spend with the JUG Leaders and community leaders all took its toll on my best intentions. However, I did come up with some interesting recordings and my question got into the Java Posse BOF (thanks to Kevin Nilsson SVWUG) -- they will be last on my list compiled below. FYI, some of the speakers are not native english speakers, but I wanted to interview them anyways, because they had a lot of passion for Java. And of course, if there are any corrections, I can be contacted from the JUGs Community Page (look in the right-hand column for an email address to jugprograms) ...

In the Forums,ghady_rayess posted IMPORTANT! Long text in Dialog is badly rendered: "Hello, I've just noticed that if you add a long text to a Dialog, some text will be repeated and in random places. I'm using SVN version 774, but i have an old version which showed the same behavior as well. so don't know how much..."

meetsanthi is working on Keybindings for Cut,Copy,Paste!: "Hi, I have the following code works for a "Cut" operation using key Ctrl+X. myCutAction = createAction("Cut", myEditMenu, false,KeyStroke.getKeyStroke(KeyEvent.VK_X , KeyEvent.CTRL_MASK)); I want the same "Cut"..."

sysprv asks about asadmin and long Oracle connection strings - what to escape?: "Hi! Trying to create a jdbc connection pool with asadmin, and ran into problems with a long Oracle connection string... It starts with jdbc:oracle:thin: and has parentheses, spaces, equal signs. I'm running create-jdbc-connection-pool on..."


In our current Spotlight, Sebastien Arbogast talks about My Devoxx Discoveries of the Year : "Every year, the main reason why I go to Devoxx is to discover new stuff. For me it

Filter Blog

By date: