October, 2005 Java News

Monday, October 31, 2005 (Permalink)

The Apache Maven Project has released Continuum 1.0, a "continous intergration server for building Java based projects." Continuum supports projects based on Ant, Maven 1, and Maven 2. It exposes web and XML_RPC interfaces, and provides e-mail notification of build failures. Code can be checked out of CVS and Subversion repositories.


Eric Lafortune has released ProGuard 3.4, an open source Java "class file shrinker, optimizer, and obfuscator. It can detect and remove unused classes, fields, methods, and attributes. It can then optimize bytecode and remove unused instructions. Finally, it can rename the remaining classes, fields, and methods using short meaningless names. The resulting jars are smaller and harder to reverse-engineer." Version 3.4 fixes bugs and adds some more optimizations. Proguard is published under the GPL.


The Apache Project has released MyFaces 1.1.1, an open source implementation of Java Server Faces that tries to avoid the use of servlet sessions or cookies for saving the client state. This release is compatible with the JSF 1.1 specification. 1.1.1 is a bug fix release.


Nathan Fiedler has released version 3.0 of JSwat, a graphical, stand-alone Java debugger built on top of the Java Platform Debugger Architecture. Features include breakpoints, source code viewing, single-stepping, watching variables, viewing stack frames, and printing variables. Version 3.0 adds a few new features. JSwat is published under the GPL.


Robert Oloffson has posted version 0.48 of Java Memory Profiler (JMP). JMP uses the Java Virtual Machine Profiling Interface (JVMPI) interface to track objects and method times in a JVM. It uses a GTK+ interface to display statistics. The current instance count and the total amount of memory for each class is shown as is the total time spent in each method. 0.48 fixes bugs. JMP is written in C for Linux.


Julien Ponge has released IzPack 3.8, an open source tool for building cross-platform installers in Java. 3.8 adds new compression options, improves Mac support, and fixes bugs. IzPack is published under the GPL.

Friday, October 21, 2005 (Permalink)

I'll be travelling for the next week. Updates here will be slow to nonexistent until next month.


The Apache Portal Project has released Pluto 1.0.1, the open source reference implementation of the Java Portlet Specification. According to the web page,

Portlets are designed to run in the context of a portal. They are written to the Portlet API which are similar to the Servlet API.

In contrast to servlets, portlets may not do things like sending redirects or errors to browsers directly, forwarding requests or writing arbitrary markup to the output stream to assure that they don't distract the portal web application which uses them. Another difference compared to servlets is that portlets rely on portal specific infrastructure functions such as access to user profile information, standard interface for storing/retrieving persistent settings, getting client information, etc. Generally, portlets are administrated more dynamically than servlets typically are.

A portlet container provides a runtime environment for portlets implemented according to the Portlet API. In this environment portlets can be instantiated, used and finally destroyed. The portlet container is not a stand-alone container like the servlet container; instead it is implemented as a thin layer on top of the servlet container and reuses the functionality provided by the servlet container.

Pluto serves as portlet container that implements the Portlet API and offers developers a working example platform from which they can test their portlets. However, it's cumbersome to execute and test the portlet container without a driver, in this case, the portal. Pluto's simple portal component is built only on the portlet container's and the JSR 168's requirements. (In contrast, the more sophisticated, Jetspeed project concentrates on the portal itself rather than the portlet container, and considers requirements from other groups.)


1.0.1 is a bug fix release.


Diomidis Spinellis has released UMLGraph 3.3, an open source (BSD license) tool for declaratively specifying UML diagrams. UMLGraph uses text files that look vaguely like source code to specify how UML class and sequence diagrams are drawn. A doclet converts this into a Graphviz diagram that can be easily converted to Postscript, GIF, SVG, JPEG, etc. This release adds support for Java 1.5 enumerations. Version 3.3 adds support for drawing comments and frames in sequence diagrams.

Thursday, October 20, 2005 (Permalink)

The Apache Software Foundation has released of Maven 2.0, an open source build tool for Java that's more declarative and less procedural than Ant. (That was a lot faster than I expected. I thought this release was months away. I guess some projects move faster than others.) According to the announcement,

Maven 2.0 is a rewrite of the popular Maven application, designed to both address previous functional requirements and provide a stable platform for extending and enhancing its build management framework.

This release is significantly faster and smaller than Maven 1.0 and includes the following usability and performance improvements:

  • Enhanced Dependency Management - includes dependency closures (transitive dependencies), version ranges, automatic build numbering, and automatic updating on a configurable interval
  • Defined Build Lifecycle - developers can build any type of project using standard commands such as compile, test and install
  • Unified Project Definition - manages all required build information in a single POM now, including project information, dependencies and plugin configuration
  • Extended Plugin Architecture - supports Java and scripting languages such as Beanshell for plugin development
  • Better Repository Support - includes separated snapshot repositories, a new more managable layout and per-project definitions of new repositories
  • Expanded Reactor Operation - offers built-in support for multiple projects (without the need to perform a full install cycle to compile all projects) and support for project aggregation
  • New Site Management Tools - supports multiple input and output formats, with input formats including wiki-like APT format and docbook, while continuing to support traditional Maven XDoc and FAQ format.
  • New Reporting API - offers a standardised method for producing project information and reports

The elimination of Jelly in favor of Java should be a real improvement. Extending Maven 1.0 is vastly too difficult. If plug-ins exist to do what you want, it's no big deal. If not, you really don't want to try writing your own. However, not all plugins have been upgraded to supoprt Maven 2.0 yet, so you may not want to upgrade quite yet.


I've posted the fifth beta of XOM 1.1, my free-as-in-speech (LGPL) dual streaming/tree-based API for processing XML with Java. Version 1.1 maintains backwards compatibility with XOM 1.0 while adding a number of important new features including XPath queries, document subset canonicalization, exclusive XML canonicalization, external XSLT parameters, and xml:id support. The API is now considered to be stable, and probably won't change before 1.1 final. Beta 5 fixes one bug in the Canonicalizer and makes a couple more small optimizations. This may be the last beta before the final release of XOM 1.1. XOM requires Java 1.2 or later and is published under the LGPL.

Wednesday, October 19, 2005 (Permalink)

Jeff Chapman has posted the third release candidate of BrowserLauncher2, a free-as-in-speech (LGPL) Java library that loads a URL into the user's default browser on Mac, Windows, Unix, and Linux.


jutils.com has released lint4j 0.9.0, a free-beer "static Java source code analyzer that detects locking and threading issues, performance and scalability problems, and checks complex contracts such as Java serialization by performing type, data flow, and lock graph analysis." Version 0.9.0 fixes bugs and adds warnings for empty method implementations in an abstract class and an abstract method shadowing another abstract method in a superclass. I tested this out on the current Jaxen code base. It found a couple of places where I could remove method calls in favor of direct field access, but nothing too major or important. I also tested it on the Apache Commons Math project. Here it found quite a bit more, especially a number of issues with incorrect handling of Serializable.


Lorenzo Bettini has released GNU Source-highlight 2.2, a GPL'd tool for reading Java, C/C++, Prolog, Perl, PHP3, Flex, ChangeLog, JavaScript, LUA, CAML, SML, Log, and Python code and translating them into syntax highlighted HTML and XHTML. Binaries are available for Unix, and it should compile on Windows with the appropriate libraries. This is mostly a bug fix release.

Tuesday, October 18, 2005 (Permalink)

This past weekend an Apple time bomb disabled QuickTime for Java 7 on Windows. I am told that the compiling the following class and adding it to your classpath ahead of the usual QTJ classes will disable the timebomb:

package quicktime.util;

public final class QTBuild
{

    public static final int getVersion()
    {
        return 6;
    }

    public static final int getSubVersion()
    {
        return 1;
    }

    public static final int getQualifyingSubVersion()
    {
        return 1;
    }

    /**
     * @deprecated Method expired is deprecated
     */

    public static final void expired()
    {
        isValid();
    }

    public static final void isValid()
    {
       return;
    }

    private QTBuild()
    {
      //no use
    }

    public static String info()
    {
        return "[QTJava:Decompiled 6.1.1a1]";
    }

    public static final int version = 6;
    public static final int subVersion = 1;
    public static final int qualifyingSubVersion = 1;
    public static final int build = 1;
    public static final String buildStage = "a";
}
Monday, October 17, 2005 (Permalink)

Florent Cueto has released the Java FTP API 2.6, a free-as-in-speech (GPL) FTP class library.


Michael Fuchs has posted version 0.70.1 of his DocBook Doclet that creates DocBook SGML and XML documents from JavaDoc. This release fixes some bugs.

Friday, October 14, 2005 (Permalink)

No Magic has released MagicDraw UML 10.0, a $149 to $2549 payware "visual UML modeling and CASE tool with teamwork support." 10.0 adds UML 2.0 metamodel support. Models are stored in XMI 2.1.

Thursday, October 13, 2005 (Permalink)

IBM has posted a beta of their Java 5 VM for Linux and AIX.


The Jakarta Apache Project has posted the fourth release candidate of HTTPClient 3.0. New features in 3.0 include:

RC4 fixes assorted bugs.


Matthias Kempka has released Coverlipse 0.9.4, an open source (Common Public License) Eclipse 3.1 plugin for code coverage visualization of JUnit tests. Interestingly, the code coverage can be shown right in the Java editor in Eclipse. This is the first release that can be installed through the Eclipse update mechanism.

I tried this out on a simple test case for a single class, and it worked beautifully. If this scales to larger projects, this should make it quite a bit easier to fill in holes in test coverage without going to the trouble of setting up Clover or Cobertura, and manually inspecting the HTML reports (or alternately I should just try the Eclipse plugins for those projects).


The Big Faceless Organization has released the Big Faceless PDF Library 2.6.1, a $700 payware (more if you want support) Java class library for creating PDF documents. The $1300 Extended Edition adds the AcroForms support, digital signatures, and the ability to import and edit and existing PDF documents. Version 2.6.1 can now preflight PDFs.

Wednesday, October 12, 2005 (Permalink)

Spike Source has commenced work on TestGen4J, "a collection of open-source tools that automatically generates unit test cases. The first released component of TestGen is TestGen4J. TestGen4J automatically generates test cases from your own Java class files, or source files. Its primary focus is to exercise boundary value testing of the arguments passed to the method. It uses a rules engine, with a user-configurable XML file, that defines boundary conditions for the data types. The test code is separated from test data with the help of JTestCase." The current version is alpha 2.

I tried this out on XOM. The private constructors in some of my classes seemed to confuse it. I tried it on Jaxen, but CLASSPATH issues seemed to throw it. Overall it doesn't feel ready for practical use.


Cedric Beust has released TestNG 4.0, an open source testing (unit, functional, and integration) framework based on annotations. This should have been labelled TestNG 3.0, but the developers didn't want a version number less than JUnit's. Version 4.0 adds data providers, methods that return two-dimensional arrays of test data to be used as test parameters. I'm not sure why a two-dimensional array is used here rather than an iterator. A 2-D array is simpler, but an iterator would be a lot less heavyweight since objects could be created before each test and disposed after each test rather than having everything initialized upfront. TestNG is released under the Apache Software License. Java 1.4 or later is required.


I've updated the conferences page. If you know of any other Java-centric conferences I'm missing, please send in their info. This Saturday I'll be at the first Weekend with Experts show in New York to talk about Effective XML. In November I'll talk about testing XML at both STPCon and STARWest. In December, the Weekend with Experts arrives in Philadelphia, where I'll talk about Effective XML one more time. In January, I'll be at the XML Developers Network of the Capital District in Albany on the 17th to talk about XOM; and on February 8, I'll be at the Capital District Java Developers Network, also in Albany, to talk about Measuring JUnit Code Coverage. Then in March it's back to Santa Clara for Software Development 2006 West. If you'd like me to talk to your user group, just send me an e-mail. I do ask that groups outside the New York City area cover my travel expenses, though sometimes we can piggy back a user group talk on top of a conference in the same general vicinity. See you there!


JCraft, Inc has posted JSch 0.1.23, an open source, pure Java implementation of SSH2 that supports port forwarding, X11 forwarding, file transfer, etc. This version adds some minor features including handling hostkeys included in known_hosts file and setting timeout values for opening sockets. Java 1.2 or later and the JCE are required. JSch is released under a BSD license. This release fixes bugs.

Tuesday, October 11, 2005 (Permalink)

The Apache Commons Team has released Commons IO 1.1, a class library that provides utility classes and methods for copying streams, endianness conversion, safely closing streams, creating Strings and byte arrays from streams and Readers, filtering files, and querying and manipulating the file system. Version 1.1 adds:

Commons IO is published under the Apache license.

Saturday, October 8, 2005 (Permalink)

The Maven Project has posted the first beta of Continuum, a "continous intergration server for building Java based projects." Continuum supports projects based on Ant, Maven 1, and Maven 2. It exposes web and XML_RPC interfaces, and provides e-mail notification of build failures. Code can be checked out of CVS and Subversion repositories. Beta 4 adds User/Group management, a blame mechanism, a working copy browser, and a configuration page.


The Eclipse Project has posted the fourth milestone release of AspectJ 1.5/5.0 (borrowing a version numbering scheme from the JDK). M4 "contains a large number of bug fixes and enhancements since M3, including the new reflection and weaver tools APIs." AspectJ is a derivative of Java that allows programmers to write code that applies across multiple classes. The AspectJ compiler requires Java 1.3 but can generate code for Java 1.1 and later. This release is focused on Java 1.5/5.0 compatibility.

Friday, October 7, 2005 (Permalink)

Excelsior has released JET 4.0, a Java virtual machine for Linux and Windows that uses a combination of a traditional native code compiler and just-in-time compilation from byte code. Version 4.0 adds support for Java 5. JET costs start at $240 and run up to $3600 depending on which version and how much support you want. Support is available by e-mail and Web site only.

Thursday, October 6, 2005 (Permalink)

The Apache Software Foundation has posted the third beta of Maven 2.0, an open source build tool for Java that's more declarative and less procedural than Ant. According to the Maven site,

Maven 2.0 will feel very different to a Maven 1.0 user - and perhaps a little strange. But it is a lot simpler to work with! The key changes from Maven 1.0 are:

  • Faster and smaller - The Maven core no longer uses Ant, Jelly or Xerces making it much smaller, has fewer dependencies and is perfect for embedding in other tools.
  • Defined build lifecycle - No more prereqs, preGoals and postGoals. The build is a series of well defined phases. This also means that the normal goal names are not used - compile, test and install work for any project type.
  • Built-in multiple project handling - Use the same goals on a set of projects, and aggregate the results.
  • Improved SNAPSHOT handling - Snapshots are now checked for updates only once per day by default - though can be configured to be once per build, on a particular interval, or never. A command line option can force a check - making it more like updating from an SCM.
  • No more properties files - All plugins are now configured from the POM (which is now called pom.xml).
  • No more maven.xml - Plugins are now easier to build and integrate, and are the only way to script your builds. (Note that additions may later be made to the POM to allow simple things that scripting was used for, such as goal aliasing).
  • No more Jelly - Plugins are primarily written in Java, though there are providers for other scripting languages. This release includes support for Marmalade, a scripting framework that supports an XML syntax similar to Jelly which can be used to integrate Ant tasks and has a Jelly compatibility layer.
  • Improved repository layout - Maven 2.0 supports both the existing layout, and an improved repository layout that has deeper, partitioned structure making it easier to browse.

The elimination of Jelly in favor of Java should be a real improvement. Extending Maven 1.0 is vastly too difficult. If plug-ins exist to do what you want, it's no big deal. If not, you really don't want to try writing your own. "This release is considered stable with a feature set comparable to Maven 1.0. Further betas and the final are expected to be backwards compatible, with a primary goal of bugfixes, usability improvements, and documentation."

Wednesday, October 5, 2005 (Permalink)

Version 5.5 of SuperWaba, an open source Java virtual machine for handheld operating systems including PalmOS and Windows CE devices, has been released. 5.5 speeds up performance on various platforms. SuperWaba is published under the LGPL.


JCraft, Inc has posted JSch 0.1.22, an open source, pure Java implementation of SSH2 that supports port forwarding, X11 forwarding, file transfer, etc. This version adds some minor features including handling hostkeys included in known_hosts file and setting timeout values for opening sockets. Java 1.2 or later and the JCE are required. JSch is released under a BSD license. This release fixes bugs.

Tuesday, October 4, 2005 (Permalink)

Sebastiano Vigna has released MG4J a free-as-in-speech (LGPL) "full-text indexing system for large document collections written in Java. As a by-product, it offers several general-purpose optimised classes, including fast & compact mutable strings, bit-level I/O, fast unsychronised buffered streams, (possibly signed) minimal perfect hashing for very large strings collections, etc."


IBM's alphaWorks has released version 1.2.6 of the IBM Toolkit for MPEG-4, a Java class library for working with MPEG-4 video and audio. Version 1.2.6 can create players as lightweight rendering components.


Websina has released BugZero 4.1.8, a $1299 payware (+$300 for maintenance) Web-based bug tracking system that supports multiple projects, group-based access, automatic bug assignment, file attachment, email notification, and metric reports. Bug Zero is written in Java and can run on top of various backend databases including MySQL. 4.1.8 adds Unicode support for SQL Server databases.

Monday, October 3, 2005 (Permalink)

The second release candidate of Mantis 1.0, a free-as-in-speech (GPL) bug tracking system based on PHP and MySQL, has been posted. This release fixes bugs.


Werner Randelshofer has released the Quaqua Look and Feel 3.4, "an extension for Apple's implementation of the Aqua Look for Swing. Quaqua aims at fixing inconsistencies between user interface elements implemented in Swing and those of native Mac OS X applications. To achieve this, Quaqua selectively replaces UI elements of Apples Aqua Look And Feel with elements of its own." Quaqua is dual licensed under the BSD license model and the LGPL. Java 1.3 or later and Mac OS X 10.2 or later are required. This release adds JSheet that looks roughly like native NSSheet dialogs, a new help button style, and various other improvements and bug fixes.

Saturday, October 1, 2005 (Permalink)

I've posted the fourth beta of XOM 1.1, my free-as-in-speech (LGPL) dual streaming/tree-based API for processing XML with Java. Version 1.1 maintains backwards compatibility with XOM 1.0 while adding a number of important new features including XPath queries, document subset canonicalization, exclusive XML canonicalization, external XSLT parameters, and xml:id support. The API is now considered to be stable, and probably won't change before 1.1 final. Beta 4 fixes a few bugs here and there, especially in SAX conversion. The fat version of the Text class is also working again. This may be the last beta before the final release of XOM 1.1. XOM requires Java 1.2 or later and is published under the LGPL.


The Eclipse Project has released Eclipse 3.1.1, an open source integrated development environment (IDE) for Java. Eclipse also doubles as a base platform for your own applications, an alternative to the AWT and Swing, and a powerful floor wax and dessert topping. 3.1.1 is a bug fix release.


Older news:

20052004200320022001200019991998
January, 2005 January, 2004 January, 2003 January, 2002 January, 2001 January, 2000 January, 1999 January, 1998
February, 2005 February, 2004 February, 2003 February, 2002 February, 2001 February, 2000 February, 1999 February, 1998
March, 2005 March, 2004 March, 2003 March, 2002 March, 2001 March, 2000 March, 1999 March, 1998
April, 2005 April, 2004 April, 2003 April, 2002 April, 2001 April, 2000 April, 1999 April, 1998
May, 2005 May, 2004 May, 2003 May, 2002 May, 2001 May, 2000 May, 1999 May, 1998
June, 2005 June, 2004 June, 2003 June, 2002 June, 2001 June, 2000 June, 1999 June, 1998
July, 2005 July, 2004 July, 2003 July, 2002 July, 2001 July, 2000 July, 1999 July, 1998
August, 2005 August, 2004 August, 2003 August, 2002 August, 2001 August, 2000 August, 1999 August, 1998
September, 2005 September, 2004 September, 2003 September, 2002 September, 2001 September, 2000 September, 1999 September, 1998
October, 2005 October, 2004 October, 2003 October, 2002 October, 2001 October, 2000 October, 1999 October, 1998
November, 2005 November, 2004 November, 2003 November, 2002 November, 2001 November, 2000 November, 1999 November, 1998
December, 2005 December, 2004 December, 2003 December, 2002 December, 2001 December, 2000 December, 1999 December, 1998

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

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