June, 2008 Java News

Saturday, June 28, 2008 (Permalink)

The Eclipse Project has released Eclipse 3.4 Ganymede, their open integrated development environment for Java. Version 3.4 adds numerous small new features and user interface improvements. There's no one killer new feature here, but the gradual accumulation of small improvements does add up over time.

For the last few months I've been using IntelliJ 7 in my day job on a regular basis, so I think I can finally reasonably compare these two. IntelliJ has the reputation of being more expensive but much more productive, while Eclipse is thought to be somewhat rougher but free. After several months of using IntelliJ in anger for the first time, I have to say that while this may have been true a few years ago, it isn't true today. Eclipse is far from perfect, but it has noticeably better refactoring, code completion, editing, and browsing facilities. IntelliJ's Swing UI looks prettier than Eclipse's SWT UI, but the user experience is far inferior. IntelliJ still screws up basic things like the keyboard shortcuts for Close and Find Next. I can work with IntelliJ because I have to (certain proprietary plug-ins our build system depends on have been developed for IntelliJ only) but I don't like it. Coding in IntelliJ is like being working with my keyboard covered in hot tar. Coding in Eclipse is like working with my keyboard covered in hot molasses, bad but better than the alternative.

I won't say Eclipse is the best IDE for Java. I've still never really used NetBeans 6 in anger, so it may be superior. I don't know. But I am willing to say that in 2008 that there's no reason for most programmers to pay money for a Java IDE. Whichever IDE is the best one, that IDE is a free IDE.

Friday, June 27, 2008 (Permalink)

Red Hat's IcedTea open source JVM has passed the Java Compatibility Kit tests. Thus on paper we now have a fully open source Java virtual machine. Now the work starts to begin noticing and reporting areas where the Sun VM and the Red hat VM diverge in significant ways, and thus indicate bugs in the specifications and compatibility kit. Nonetheless this is a major milestone.

Thursday, June 26, 2008 (Permalink)

LG Electronics has posted the first public review draft specification of JSR-300 DRM API for Java ME. According to the draft,

This specification defines an optional JavaME package that enables applications to access DRM protected content on the device in a secure manner. This package can be used along with the Connected Limited Devices Configuration (CLDC) or Connected Devices Configuration (CDC). This specification defines generic APIs to access DRM protected content, abstracting the difference between the underlying DRM agent implementations a device might have. i.e. the DRM APIs are not tied to any specific DRM technology.

The features of DRM APIs are following:

  • Generic interface for JavaME Applications to underlying DRM Agents.
  • Accessing the content in a secure manner for rendering
  • Identifying that the content is DRM protected.
  • Obtaining the information about the rights associated with the content.
  • Support for acquiring rights
  • Support for handling proprietary rights and properties.
  • Protecting locally created contents
  • Move, copy, backup and restore of contents

Comments are due by July 21.


Sun's posted a maintenance release of JSR-252 JavaServer Faces 1.2. Changes seem to be extremely minor.

Friday, June 20, 2008 (Permalink)

Subversion 1.5, an open source version control system designed to replace CVS, has been released. Major new features include:

  • Merge Tracking [foundational]
  • Sparse checkouts (see new '--depth' option)
  • Interactive conflict resolution
  • svn:externals handles relative URLs and peg URLs
  • Changelist support
  • WebDAV transparent write-through proxy
  • Better support for large FSFS deployments (via sharding and partitioning)
  • Cyrus SASL support for ra_svn and svnserve
Wednesday, June 18, 2008 (Permalink)

Atlassian has released Clover 2.3.1, a $1200 payware test coverage tool. Clover modifies the source code to enable it to follow which statements are executed when, and keeps a running count of how many times each statement is executed during the test suite. Any statement that executes zero times is not being tested. I use Clover with Ant, but there's also an Eclipse plug-in. Clover can generate test coverage reports in XML, HTML, PDF, or via a Swing Viewer. Version 2.3.1 improves the integration with Maven, IntelliJ IDEA, Eclipse, and Ant.

Tuesday, June 17, 2008 (Permalink)

The Apache Jakarta Project has released JMeter 2.3.2, an open source (Apache 2.0 license) load testing application written in Java. "Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load." This is mostly a bug fix and optimization release, but there a couple of new features including:

  • The Proxy server can now record binary requests.
  • The CSV Dataset configuration element has three new file sharing options: per thread group, per thread, per identifier.
Monday, June 16, 2008 (Permalink)

Oracle has released Berkeley DB Java Edition 3.3 on the Oracle Technology Network. This is a non-relational embedded database written in Java. The data is exposed through "a Java Collections-style interface, as well as a programmatic interface similar to the Berkeley DB API." New features in this release include:

  • Significant scalability improvements
  • Deferred write mode can now be configured for either purely temporary databases or for databases that will later be put into service at some later point in a more concurrent, transactional fashion.
  • Less disk space usage in log file format.
  • Support for Google Android's Dalvik JVM
  • Maven Support
Friday, June 13, 2008 (Permalink)

The Eclipse Project has posted the third release candidate of Eclipse 3.4 Ganymede, their open source integrated development environment for Java.

Wednesday, June 11, 2008 (Permalink)

Mort Bay Consulting has released Jetty 6.1.11, an open source servlet engine that supports version 2.5 of the Java Servlet API and version 2.1 of Java Server Pages, and my personal favorite embeddable web server. This is a bug fix release.

Tuesday, June 10, 2008 (Permalink)

The Gnu Project has released version 4.3.1 of GCC, the GNU Compiler Collection. GCC contains frontends for C, C++, Objective C, Fortran, Ada, and Java as well as libraries for these languages. GCC's Java is a clean room implementation that doesn't use any Sun code, so it doesn't always exactly match Sun release versions, but this is roughly at the Java 1.5 level with some omissions. 4.3.1 is a bug fix release.

Monday, June 9, 2008 (Permalink)

Sun has posted the early draft review of JSR-314 Java Server Faces 2.0. I''m not a big JSF user, but near as I can make out the primary new feature in this release is improved support for AJAX applications. Comments are due by July 2.

Friday, June 6, 2008 (Permalink)

Nobody guessed what I think is the second obvious choice for a Jolt award this year, though there was one interesting suggestion I hadn't noticed: The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions by Donald Knuth. That's actually a very good idea, though Fascicles 1-3 didn't make the final 6 in previous years, so I may be safe there. (Then again maybe Knuth and Addison-Wesley didn't think to nominate them, in which case, I probably shouldn't have mentioned it here. Damn. Too late. )

However the other book I think would be a sure winner most years may have slipped by readers of this web site because it's not a Java book at all. Rather it's a book about JavaScript. Specifically it's JavaScript: The Good Parts by Douglas Crockford. This book manages to combine an introductory JavaScript tutorial with best practices ideas for advanced developers. Language aficionados tend to look down on JavaScript, but Crockford makes a really good case that if you ignore all the singing, dancing web pages it's been used to create, JavaScript is actually a pretty damn interesting language (albeit one that has little to nothing to do with Java.)

So that makes three tough competitors, and two I'd usually classify as sure winners; and the year's not half over. Oh well. Maybe Refactoring HTML can sneak out with a Productivity Award.

Thursday, June 5, 2008 (Permalink)

Addison-Wesley has published the second edition of Joshua Bloch's Effective Java. This edition updates the book with coverage of features from Java 5 and beyond, including generics, enums, and java.util.concurrent. The Builder pattern also gets expanded treatment. Highest recommendation.

Muprhy's Law applies. The same year I publish Refactoring HTML, my best shot yet at a Jolt award, two other books come out that would be obvious winners in any other year, and 2008's not half over yet. Tomorrow I'll reveal the second obvious choice for the Jolt award. In the mean time, anyone want to guess?

Wednesday, June 4, 2008 (Permalink)

Dan Streetman has released javax.usb 1.0.2, an open source Linux library for communicating with USB devices from Java. According to Streetman:

This includes all changes/fixes that were waiting in CVS since 1.0.1, including the change to work with the new /dev/bus/usb/001/001 and /dev/bus/usb/1/1 location/naming of the usbfs filesystem.

No RPMs or binaries are provided with this release; too many incompatibilites with old/new java compilers/jres, as well as the native library incompatibilities, make the binary releases not very useful.

To install, download either the tar.bz2 or .zip file for the API, RI, and Linux imp, and build all 3; then install all 3 jarfiles into your JRE's jre/lib/ext/ directory, the properties file into your JRE's jre/lib directory, and the native .so library into /usr/lib/.

Tuesday, June 3, 2008 (Permalink)

Kevin Bourillon has released version 0.7 of the Google Collections library, which extends the standard JDK collections classes with:

  • BiMap. A Map that guarantees unique values, and supports an inverse view.
  • Multiset. A Collection that may contain duplicate values like a List, yet has order-independent equality like a Set. Often used to represent a histogram.
  • Multimap. Similar to Map, but may contain duplicate keys. Has subtypes SetMultimap and ListMultimap providing more specific behavior.

There are also more than a dozen collection implementations, mostly of the interfaces above, but not all. ReferenceMap, for example, is a ConcurrentMap implementation which easily handles any combination of strong, soft or weak keys with strong, soft or weak values.

Static utility classes include:

  • Comparators. Natural order, compound, null-friendly, ad-hoc . . .
  • Iterators and Iterables. Element-based equality, cycle, concat, partition, filter with predicate, transform with function . . .
  • Lists, Sets and Maps. A plethora of convenient factory methods and much more.
  • PrimitiveArrays: "boxing"/"unboxing" of primitive arrays

And there's more:

  • Forwarding collections
  • Constrained collections
  • Implementation helpers like AbstractIterator

To understand everything offered by this library, you'll have to explore the API using the "API documentation" link at the right. Or download a recent snapshot, including the binary, source, and docs, from the "Featured Downloads" section. Further information can be found using "Wiki" tab above.

Java 5 or later is required.

Monday, June 2, 2008 (Permalink)

The Gnu Classpath Project has released IcedTea 1.7. IcedTea "provides a harness to build the source code from OpenJDK (http://openjdk.java.net) using Free Software build tools and provides replacements libraries for the binary plugs with code from the GNU Classpath project." Also available are:

  • IcePick to enable the OpenJDK language tools (javac, javadoc, javah, javap, apt) to be built separately using any 1.5 compliant Java compiler and be used by any GNU Classpath based runtime
  • BrandWeg adds elements of OpenJDK to the existing sources of GNU Classpath.

Older news:

200820072006200520042003
January, 2008 January, 2007 January, 2006 January, 2005 January, 2004 January, 2003
February, 2008 February, 2007 February, 2006 February, 2005 February, 2004 February, 2003
March, 2008 March, 2007 March, 2006 March, 2005 March, 2004 March, 2003
April, 2008 April, 2007 April, 2006 April, 2005 April, 2004 April, 2003
May, 2008 May, 2007 May, 2006 May, 2005 May, 2004 May, 2003
June 2007 June 2006 June, 2005 June, 2004 June, 2003
July, 2007 July, 2006 July, 2005 July, 2004 July, 2003
August, 2007 August, 2006 August, 2005 August, 2004 August, 2003
September, 2007 September, 2006 September, 2005 September, 2004 September, 2003
October, 2007 October, 2006 October, 2005 October, 2004 October, 2003
November, 2007 November, 2006 November, 2005 November, 2004 November, 2003
December, 2007 December, 2006 December, 2005 December, 2004 December, 2003

[ Cafe au Lait | Books | Trade Shows | FAQ | Tutorial | User Groups ]

Copyright 2008 Elliotte Rusty Harold
elharo@metalab.unc.edu