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.
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 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.
The Apache Harmony project has released the first stable build 5.0 M1. "Apache Harmony 5.0 M1 represents our best build so far, and we encourage users to download and try the runtime or development kit, and report their experiences to the Harmony mailing list."
This article examines aspects of threading and synchronization that an implementation of the Real-time Specification for Java (RTSJ) must support.
"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.
"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."
"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."
"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."
"2007 will go down in history as the year Sun Microsystems gave up the reins of the Java platform, releasing it under an open source license to the Java developer community. In this article, Java developer Elliotte Rusty Harold predicts new directions for the Java platform, in everything from scripting to bug fixing to new syntax."
"Simple Persistence for Java is an open source object-relational persistence library that uses a custom query language and built-in database support to simplify object persistence in Java applications. In this article, software architect Sami Salkosuo introduces the library and walks you through its zero-admin, zero-config approach to object persistence."
Thanks largely to the open sourcing of the JDK, 2007 promises to be the most exciting year in Java programming. With the developer community in the driver's seat, expect to see Java programming propelled forward, backward, and sideways, probably all at once. This article takes a look at what's ahead for Java in Open Source and predicts what is coming for the Java platform.
Examine three traps you could fall in when porting Java Web applications from Windows to AIX, and learn how to maneuver around them.
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."
"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."
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.
Maybe cats and dogs can live together, after all. Sources close to the matter revealed today that the Eclipse Foundation has joined the Java Community Process. A quick check of the JCP membership list reveals that the Foundation is listed as a member. The sources also said that Eclipse joined the JCP this week, and that the formal announcement is scheduled for next week.
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."
Java can provide a simple way to submit z/OS batch jobs to run -- but that is just the beginning. You can also use Java, from any platform, to check on the status of your z/OS batch jobs. This article showes you how to use Java to access z/OS JES Sysout files. In addition, extending the Commons Net Library allows the specific JES file attributes to be encapsulated in Java objects.
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.