October, 2009 Java News

Wednesday, October 28, 2009 (Permalink)

Sebastiano Vigna has released version 5.1.5 of fastUtil, a collection of type-specific Java lists, maps and sets with a small memory footprint and faster access and insertion. The classes implement their standard counterpart interfaces such as java.util.Map and can be plugged into existing code. However, they also contain type-specific methods. For instance, the CharList class has not only the usual add(Object o) method but also an add(char c) method. Version 5.1.x adds new fast iterators with mutable entries and a hierarchy of function interfaces.

fastUtil suffers from the a common problem of open source projects: good code and thoroughly inadequate documentation. If it were just a question of poorly written documentation, it could be patched. Unfortunately the problem is more serious than end user documentation. The library is severely underspecified. For instance the add() method in IntCollection doesn't say whether the new element is added at the beginning of the list, the end, or some random location. Sure, you can test to find out the answer in this version (It's at the end) but how do I know that this will still be the right answer in 5.1.6 or 6.0? I don't. I can't tell if adding new items at the end is a deliberate decision or an accident of implementation. I thought there might be unit or acceptance tests, but if there are I couldn't find them anywhere. That gives me even less confidence that the contract is stable.

I am seriously considering reimplementing the parts of this library I actually need (just the primitive collection classes) from scratch using fully designed, documented, specified, and tested contracts. You don't need this level of detail for all projects, but for core libraries like this it's critical. fastUtil is published under the GNU Lesser General Public License (LGPL), so if I want to I could just fork it.

Friday, October 23, 2009 (Permalink)

Sun has posted the first beta of NetBeans 6.8, its open source IDE for Java. New features in this version include:

  • EJB 3.1 support
  • RESTful web services (JAX-RS 1.1), GlassFish Metro 2.0 web services (JAX-WS 2.2), JAXB 2.2
  • Java Persistence JPA 2.0, deployment, debugging and profiling with GlassFish v3 application server
  • Code completion, error hints, namespace completion, documentation popups, and tag auto-import for Facelets
  • Editor support for Facelets libraries, composite components, expression language, including generators for JSF and HTML forms
  • Customizable JSF components palette generates JSF forms and JSF data tables from entities
  • JavaFX SDK 1.2.1
  • Editor Hints: Fix Imports, Surround With, Implements Abstract Methods, and more
  • Improved navigation: Hyperlinks, Go to Type, Find Usages
  • Full JIRA support
  • Project dashboard with more member and project details, improved search and navigation, easier project sharing
  • Improved instant messenger integration
  • Improved issue tracker integration
  • PHP 5.3
  • Symfony Framework support
  • PHPUnit, Code Coverage, FTP/SFTP integration improvements, exclude PHP project folders from scanning/indexing
  • New Project from Maven archetype catalog and improved support for Java EE 6, Groovy, Scala projects
  • Support for Rails 2.3.2 apps with dispatchers, JRuby 1.3.1, Ruby 1.9 debugging, and RSpec 1.2.7
  • C++ Profiling: New Microstate Accounting indicator, Thread Map view, Thread Analyzer, Hot Spots view, Memory Leaks view, Sync Problems view
  • C++ Parallelization Adviser
  • Support for gdbserver attach and easier attaching to already running processes

Looks good, though Netbeans is going to have an even harder time making headway now that IntelliJ is open source too.

Thursday, October 22, 2009 (Permalink)

Subversion 1.6.6, an open source, server-based version control system designed to replace CVS, has been released. This is a bug-fix release.

Wednesday, October 21, 2009 (Permalink)

The Gnu Project has released version 4.4.2 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. "This release is a bug-fix release, containing fixes for regressions in GCC 4.4.1 relative to previous releases of GCC." GCC is released under the Gnu General Public License.

Friday, October 16, 2009 (Permalink)

JetBrains has announced plans to release IntelliJ IDEA 9.0 as open source under the Apache 1.0 license (and you can download the in-development preview version now). The community version won't have quite all the features of the payware Ultimate version--no Ruby, JavaScript, or Perforce support for example--but now that it's open source it may be possible for 3rd parties to fill those gaps, and the open product is still pretty well-featured for basic Java development. Structured search and replace is the most notable omission. It will be nice for IDEA, NetBeans, and Eclipse to finally be able to complete on a relatively level playing field based on features, usability, and speed without excessive concern over price. Personally I've always chosen Eclipse, even when price wasn't an issue; but I know a lot of developers who prefer IDEA.

Wednesday, October 14, 2009 (Permalink)

Google has posted version 1.2.6 of the AppEngine for Java SDK. "With App Engine, you can build web applications using standard Java technologies and run them on Google's scalable infrastructure. The Java environment provides a Java 6 JVM, a Java Servlets interface, and support for standard interfaces to the App Engine scalable datastore and services, such as JDO, JPA, JavaMail, and JCache.":

App Engine uses the Java Servlet standard for web applications. You provide your app's servlet classes, JavaServer Pages (JSPs), static files and data files, along with the deployment descriptor (the web.xml file) and other configuration files, in a standard WAR directory structure. App Engine serves requests by invoking servlets according to the deployment descriptor.

The JVM runs in a secured "sandbox" environment to isolate your application for service and security. The sandbox ensures that apps can only perform actions that do not interfere with the performance and scalability of other apps. For instance, an app cannot spawn threads, write data to the local file system or make arbitrary network connections. An app also cannot use JNI or other native code. The JVM can execute any Java bytecode that operates within the sandbox restrictions.

Version 1.2.6 adds the ability to receive e-mail, data store statistics, and the ability to delete applications. I dedicated a day last week to learning appengine, but it only took me about 30 minutes. If you already know servlets, this is really straight-forward stuff.

Tuesday, October 13, 2009 (Permalink)

The Legion of the Bouncy Castle has released version 1.44 of the Bouncy Castle Java Cryptography API, an open source, clean-room implementation of the Java Cryptography Extension (JCE). It supports X.509 certificates, PKCS12, S/MIME, CMS, PKCS7, TEA, XTEA, SHA224, and lots of other juicy acronyms. It also includes its own light-weight crypto API that works in Java 1.0 and later, and does not depend on the JCE. "GCM mode is now around 10x faster, PSS signature support has been added to CMS and S/MIME, and support for EC encrypted keys has been added to the openSSL PEM classes. Bug fixes include correction of a date calculation error in GeneralisedTime when the time included microseconds, support for ECDH with the JSSE, and the J2ME SecureRandom now uses common seed material within the VM. A number of other fixes and enhancements have been made."

Monday, October 12, 2009 (Permalink)

I've released XOM 1.2.3, my free-as-in-speech (LGPL) dual streaming/tree-based API for processing XML with Java. 1.2.3 fixes a few minor bugs:

  • Closed a loophole by which a buggy parser could create a malformed internal DTD subset.
  • Unit tests no longer load the XHTML DTD from the W3C web site (A series of bad decisions in several specs caused the W3C to initiate a DDOS attack on their own servers, and they finally collapsed under the load.)
  • Fixed bug that allowed nulls to be inserted into a document.
  • The JAR file and build process should now be more OSGI friendly.

Please upgrade when you get a chance. I'll post maven packages soon.

Friday, October 9, 2009 (Permalink)

BlueJ 2.5.3, a free integrated development environment (IDE) for Java aimed at education, has been released. "This is a bug-fix release, with important fixes to Java ME support, Subversion support, and for recent Mac OS versions." Java 5 or later is required.

Thursday, October 8, 2009 (Permalink)

The Eclipse Project has released Jetty 7.0, 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. Version 7 adds some Servlet 3.0 features such as fragments, JASPI for pluggable standard authentication modules, and a modular start.jar mechanism. There is also now jetty-hightide:

Hightide is to jetty as ubuntu is to linux. It is fully open source and contains additional modules and integrations:

  • JSP from glassfish
  • JTA from atomikos
  • maven plugin
  • ant integration
  • setuid
  • spring configuration

Both distributions are available via maven as artefacts or complete bundles

Jetty 6 will continue to be maintained for some time, but all new features will now be developed on Jetty-7. Jetty-8 will be in prelease in the next few months and will support servlet 3.0.


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

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

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