Java Archive

Take Charge of Your Architecture

The architecture you think you have is often different than what you actually have. It's time to take charge of your architecture and learn how you can discover deviations by writing tests using JUnit, JDepend, and Ant to discover problems proactively instead of long after the fact.

Free GNU Classpath/OpenJDK Hybrids Appear

Red Hat just made it possible to bootstrap OpenJDK using only Free Software by building on top of gcj and replacing the binary blobs with code from GNU Classpath. The result is called IcedTea. IKVM also made a GNU Classpath/OpenJDK hybrid making it possible to run parts of the OpenJDK class libraries on mono and .net. And finally the Cacao team released a new version of Cacao that can use either GNU Classpath for a full J2SE implementation or that uses the Sun GPL J2ME libraries, including jits for lots of different architectures (alpha, arm, mips, ppc, ppc64, x86 and x86_64).

Sun Open Sources Java

Sun Microsystems has announced the release of an open-source version of its Java Development Kit for Java Platform Standard Edition. Sun has contributed the software to the OpenJDK Community as free software under the GNU GPLv2. Sun also announced that OpenJDK-based implementations can use the JCK (Java SE 6 Technical Compatibility Kit) to establish compatibility with the Java SE 6 specification. OpenBSD has already started importing the release.

GNU Classpath 0.95 ‘Take Five’ Released

"Full merge of 1.5 generics work. Bootstrappable with OpenJDK javac compiler. URLConnection timeout support. TimeZone can use platform zoneinfo file when available. The Collection classes, lang.management and util.spi have been updated to 1.6. Addition of 1.6 ServiceLoader. Speedup for cairo and freetype Graphics2D support. The ASM library is now included. Better detection of browser plugin mechanisms for gcjwebplugin applet support in mozilla, iceweasel and firefox." See also the full announcement and some nice screenshots.

Using Java for Real-Time Systems

"This article, the first in a five-part series on real-time Java, describes the key challenges to using the Java language to develop systems that meet real-time performance requirements. It presents a broad overview of what real-time application development means and how runtime systems must be engineered to meet the requirements of real-time applications. The authors introduce an implementation that addresses real-time Java challenges through a combination of standards-based technologies."

Desktop Java, Desktop Linux: Match Made in Heaven?

"Although the .NET vs. Java war is basically over for control of the Windows desktop, where .NET is sure to become the managed language of choice for new Windows desktop applications, there is a new battle brewing. That battle is for the Linux desktop. Now that Java has been open sourced under the GPL, even the most strict of the 'free software only' distributions can start bundling it and integrating it into their Linux distributions out of the box."

Using Java 5 Language Features in Earlier JDKs

"Java 5 added a number of powerful language features: generics, enumerations, annotations, autoboxing, and the enhanced for loop. However, many shops are still tied to JDK 1.4 or earlier and may be for some time to come. But it's still be possible for those developers to take advantage of these powerful language features while continuing to deploy on earlier JVMs. Brian Goetz returns from his hiatus in this installment of Java theory and practice to demonstrate how."

The LWJGL Project Reaches 1.0

Version 1.0 of the LWJGL has been released. "The Lightweight Java Game Library is a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. LWJGL provides developers access to high performance crossplatform libraries such as OpenGL and OpenAL allowing for state of the art 3D games and 3D sound. Additionally LWJGL provides access to controllers such as Gamepads, Steering wheel and Joysticks."

Installing JDK6 on Debian Etch

"I find Debian an outstanding distro for server needs with its latest version Etch nearly been released as of the day I'm writing this. Java 6 isn't available from its repositories and I doubt it would for Etch. So it's time to grab the situation into your hands and install it manually."

SDK for Java v6 Early Release Program for Linux

IBM has released an SDK for Java 6. Product binaries are available for Linux on x86 and 64-bit AMD, and AIX for PPC for 32- and 64-bits. In addition to supporting the Java SE 6 Platform specification, the new SDK also focuses on, Data sharing between Java Virtual Machines, Enhanced diagnostics information, Operating system stack backtraces, Updated jdmpview tool, platform stability, and performance.

Groovy 1.0 Released

Groovy 1.0 has been released and is available for download from the project homepage. "Groovy is a dynamic language for the JVM that integrates seamlessly with the Java platform. It offers a Java-like syntax, with language features inspired by Smalltalk, Python or Ruby, and lets your reuse all your Java libraries and protect the investment you made in Java skills, tools or application servers. Groovy can be used for various purposes, from ad-hoc shell scripting leveraging Java APIs, to full-blown web applications built on Spring and Hibernate through the Grails web framework. It can also be integrated very easily in your applications to externalize business logic, create Domain-Specific Languages, or to provide templating capabilities, and much more."

In Pursuit of Java Code Quality

Performance testing is usually left for last in the application development cycle - not because it's unimportant, but because it's hard to test effectively with so many unknown variables. In this month's In pursuit of code quality, Andrew Glover makes a case for performance testing as part of the development cycle and shows you two easy ways to do it.