Guice is Google's open source dependency injection framework for Java development. It enables better testing and modularity by taking away the pain of writing your own factories. This article offers a tour of the most important Guice concepts that will leave you ready to Guice up your applications.
Sun has released the first version of JavaFX, aptly named JavaFX 1.0. "JavaFX 1.0 returns to the sales pitch that Sun used during Java's launch more than 13 years ago: a foundation for software on a wide variety of computing "clients" such as desktop computers or mobile phones. JavaFX builds on current Java technology but adds two major pieces. First is a new software foundation designed to run so-called rich Internet applications--network-enabled programs with lush user interfaces. Second is a new programming language called JavaFX Script that's intended to be easier to use than traditional Java."
The JNode team has released the latest version of their operating system written in Java (it does have a small assembler nano kernel). "This release features the integration of the OpenJDK implementation of Swing and AWT, and significant improvements to the overall JNode GUI including improved painting and font rendering, generic VESA support and graphical console. The release also includes a new command argument framework for the shell, reworked shell commands, a configure tool for the JNode build environment, Samba file system with read/write support and many stability and bug fixes across the whole system." They have screenshots, a changelog, and (surprise!) a download page.
Today was one of those days when I wished Java would support multiple return values. I had to develop a rather CPU-intensive algorithm which would compute a solution for a knotty constraint problem. Having a solution alone is sometimes not enough and you also need to add some parameters which measure the quality of the computed outcome. Most of these accompanying parameters can or have to be computed within the algorithm itself, but Java allows you to return only one value either an object or a primitive type. People working with Lisp, MATLAB or Perl, just to mention a few, don't have a problem like this at all. Functions supporting multiple return values is already implemented at the language level and frameworks make heavy use of this. But as a Java programmer you are pretty much stuck here and need to consider some other means to come out of this situation. In the following I would like to give some hints on that topic. Hopefully they are of help for anyone having the same problem every now and then.
Wildcards can be very confusing when it comes to generics in the Java language, and one of the most common mistakes is to fail to use one of the two forms of bounded wildcards ("? super T" and "? extends T") when needed. You've made this mistake? Don't feel bad, even the experts have, and this month Brian Goetz shows you how to avoid it.
Now that Java has a fully open sourced implementation in RedHat's IcedTea, Neil McAllister questions whether an open Java even matters: "Even as Java has stretched outward to embrace more concepts and technologies - adding APIs and language features as it goes - newer, more lightweight tools have appeared that do most of what Java aims to do. And they often do it better."
Back in May 2006, Sun announced during the JavaOne conference it would release Java as open source, licensed as GPL software. While it was released as GPL, it still contained about 5 percent proprietary, non-free code - the Java trap, as the FSF calls it. The FSF called to dismantle this trap, and now the IcedTea project has reached an important milestone.
JNode 0.2.6 has been released. "JNode is a free, open source Java technology based OS written fully in Java language (with a very small assembler nano-kernel). This release features over 99 percent java 6 api compatibility, hotswapping, nfs, hfs+, even more openJDK integration, jetty6 and of course bug fixes and improvements."
The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools and provides replacements libraries for the binary plugs with code from the GNU Classpath project. This release adds the "Zero-assembler" port which will allow IcedTea to run with zero (ok, minimal) porting effort on any GNU/Linux architecture that has a gcc and libffi port available. JNLP support has been added through the addition of NetX, which makes a lot of java webstart applications work out of the box. Check out the screenshots. Gary Benson will give a talk about the zero-assembler port at FOSDEM during the free Java developer meeting where GNU Classpath, OpenJDK and many other Free Java projects come together to plan the future of Free Java on GNU/Linux.
The IcedTea project added a PowerPC Java port (both 32 and 64 bit) of OpenJDK. IcedTea 1.5 now also tracks the mercurial repo, provides better GNU/Linux integration by using standard system libraries (libpng, libjpeg, zlib, giflib) and can be bootstrapped with the free gcj/ecj/classpath toolchain. OpenJDK just accepted a new porters group and Gary Benson wrote a guide to porting IcedTea that might be the start of a lot of other Java ports.
Straight from the ADC site (a free online account is enough to gain access to the download): "Java SE 6 Developer Preview 8 is an implementation of Sun's Java SE 6 for Mac OS X v10.5.1 and later. This Preview includes Java SE 6 version 1.6.0_01. This Developer Preview does not change the default version of Java. This release is only for Mac OS X v10.5.1 and later, and should not be installed on earlier versions of Mac OS X. This release is for 64-bit Intel-based Macs only and cannot run on PowerPC-based or 32-bit Intel-based Macs."
Sun's starting to phase out mobile Java that's been the standard on cellphones and other small devices in favor of their standard edition, which are made for PCs everywhere. Sun VP James Gosling's reasoning for shifting everyone over to Java Standard Edition is because 'cellphones and TV set-top boxes are growing up', meaning they're getting enough processing power to handle all the demands of full-featured Java.
GNU Classpath 0.96 "Staying Alive!" and IcedTea 1.4 just got released. GNU Classpath is slowly turning into a bootstrapping platform for IcedTea/OpenJDK by providing the necessary free software plugs that are missing from Sun's OpenJDK to provide various GNU/Linux distributions with the fully free GPLed IcedTea Java platform implementation that will be in the Fedora (Werewolf), Debian, and Ubuntu (Gutsy) releases.
Java Platform, Standard Edition 6 focuses on performance, with expanded tools for managing and monitoring applications as well as diagnosing common problems. This article outlines the basis of monitoring and management in the Java SE platform and provides detailed information about the relevant enhancements in Java SE 6.
"After nearly a year of hard work the JNode team is proud to announce the release of JNode 0.2.5, the new intermediary development version of the JNode operating system. JNode is a free, open source Java technology base OS written fully in Java language (with a very small assembler nano-kernel). This release features OpenJDK integration, Java 6 support, substantially impoved consoles, experimental support for isolates and a large set of bug fixes and improvements to all parts of the system, including better memory mamagement and increased performance."
For cost reasons the space agency is more and more interested in using Java for safety-critical missions. Until recently the lack of a time-predictable standard library has been a major hurdle to Java adoption in that particular field. It is no more the case as demonstrated by this AIAA (American Institute of Aeronautics and Astronautics) paper presented the first day of the Space 2007 conference (Long Beach, CA) and introducing the first fully time-deterministic (and open-source) library for Java: Javolution.
"I recently gave a presentation at the Portland Java Users Group about Java FX. After talking to some of the fine members of PJUG I realize that there is a lot of confusion about JavaFX and JavaFX script. JavaFX Script is just one part of the larger JavaFX umbrella. In fact, you don't even have to use JavaFX Script to gain many of the benefits of JavaFX! This weblog posting is my attempt to clear up a few things and get you excited about the future of client Java. After reading it I hope you will come away with a better understanding of what JavaFX is and why we created it."
Just in time for Fedora 8 test 2 IcedTea has landed in Fedora RawHide. The IcedTea project provides a harness to build the source code from the Sun OpenJDK project using Free Software build tools (gcj) and provides replacements for the non-free binary plugs with code from the GNU Classpath project. Installing this experimental GPL Java platfom is now as easy as yum install java-1.7.0-icedtea. In addition, Sun has promised to provide a Test Compatibility Kit soon so people can see how 'officially Java' this package really is.
Sun has unveiled a new open mobile platform called JavaFX, which it hopes will bring open rapid open development to the mobile space, an environment long dominated by telcos and cellular carriers.
Mac OS X is a powerful platform for Java development. While the Java development environment is fully integrated into Mac OS X, the Eclipse integrated development environment brings a fully integrated Java development environment to Mac OS X that provides a consistent cross-platform experience. This article shows you how to use this environment to import existing Xcode projects into Eclipse, tweak key bindings, and integrate Eclipse with the Mac OS X-bundled Concurrent Versions System.