September, 2005 Java News

Friday, September 30, 2005 (Permalink)

The GNU Project has released version 4.0.2 of GCC, the GNU Compiler Collection. GCC contains frontends for C, C++, Objective C, Chill, 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.4 level with some omissions. 4.0.2 is a bug fix release.


Sleepycat Software has released Berkeley DB Java edition 2.0.83. Berkeley DB JE is an open source, 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." This is a bug fix release.


The Apache Software Foundation has posted the second 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."

Thursday, September 29, 2005 (Permalink)

I've posted the notes from today's talks about Testing GUIs with Abbot and Costello and User Interface Principles in API Design at SD Best Practices.

Tuesday, September 27, 2005 (Permalink)

I've posted the notes from today's What's New in JUnit 4 talk at SD Best Practices. This is derived from my earlier article at developerWorks, but includes new (still tentative) information about parameterized test cases, skipping tests, and writing TestListeners.

Monday, September 26, 2005 (Permalink)

This week I'm at Software Development Best Practices in Boston. I'll be talking about a number of topics including Effective XML, Testing XML, JUnit 4, Human Factors in API Design, Next Generation Web Clients, and GUI Testing with Abbot and Costello. Updates may be a little slow here in the meantime.


jPOS 1.5.1 has been released. jPOS is an "ISO-8583 library/framework that can be used to implement financial interchanges, protocol converters, payment gateways, credit card verification clients and servers (merchant/issuer/acquirer)." Alejandro Revilla writes, "This version include bugfixes, performance tuning and new components."


Saturday, September 24, 2005 (Permalink)

The Jakarta Apache Project has released version 5.5.12 of the Tomcat open source servlet container and official reference implementation of the Java Servlet API 2.4 and Java Server Pages (JSP) 2.0. This release is considered to be an alpha that "contains several bug fixes, including an import change to session attribute storage concurrency that is required by the upcoming Servlet Specification v2.5." "Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires configuration to run on J2SE 1.4....In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling JSP pages. This means you no longer need to have the complete Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment (JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the binary Tomcat distributions. Tomcat can also be configured to use the compiler from the JDK to compile JSPs, or any other Java compiler supported by Apache Ant."

Friday, September 23, 2005 (Permalink)

Three years after the initial JSR, Oracle has also posted the first public review draft specification of JSR-198 A Standard Extension API for Integrated Development Environment . According to the draft,

There are a diverse set of IDE products that are designed from the ground up to be extensible platforms where third parties can plug-in new extensions that enhance the IDE with additional features. In general, the layer that integrates an extension to an IDE is only compatible with the integration API of that single IDE. If we examine the IDE integration layer that typical IDE platforms provide we can see that:

  • It is a very thin layer of code (compared to the amount of code generally written by the third party to implement a useful feature)
  • There are many areas of similarity between the integration layers of the different IDEs

The Extension Software Development Kit (ESDK) proposed by this specification defines a standard application programming framework for extending IDEs written in Java with new functionality. It is designed to eliminate the need to write multiple versions of the integration layer that plugs-in the new functionality across different IDEs.

Where there are many areas of integration that could be addressed by this specification, for purposes of the first scope, viability, and time, this version of the ESDK covers integration points that allow extension writers to:

  • Extend the IDE with new menus and commands
  • Extend the IDE data model with additional document types
  • Extend the IDE with new document creation wizards
  • Extend the IDE with new editor types
  • Extend the IDE new log pages
  • Extend the IDE preferences and project settings with new property pages
  • Define extension specific extension points
  • Access the IDE Environment information
  • Access extension registration information
  • Access project information
  • Access the Java structure model
  • Access the XML structure model
  • Access textual data
  • Manipulate documents through a virtual file system
  • Listen for data model change events
  • Listen for IDE events
  • Interact with the compiler
  • Interact with the debugger
  • Use IDE utilities such as message, warning, and error dialogs

These integration points provide enough coverage to allow building realistic and useful extensions. Integration points not covered by this version of the specification will be addressed in future versions.

Comments are due by October 17.


Apple has posted a security update for Mac OS X 10.3.9 and 10.4.2. Among other fixes, this plugs a hole in QuickTime for Java that allows an untrusted applet to "call arbitrary functions from system libraries." This affects QuickTime 6.5.2 and earlier.

Thursday, September 22, 2005 (Permalink)

IBM's alphaWorks has updated the Resource Bundle Inspector For Java, a tool that "enables initial verification and inspection of translated messages in resource bundles before product testing is done. These translated messages have come from different geographical translation centers. This tool helps testers to speed up the verification of messages before integrating them into any product. Bugs found in translated messages can be detected at early stage of product testing cycle; this helps in increasing the testing cycle efficiency." This release adds support for 16 more languages and 39 more countries.


The Apache Project has released MyFaces 1.1.0, 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.

Wednesday, September 21, 2005 (Permalink)

Sun has posted the fifth update release for Java 5.0 Tiger with dozens of assorted bug fixes. As usual it's available for Solaris, Windows, and Linux.


Version 1.1.6 of the Kaffe open source Java virtual machine for various Unixes has been released. This release adds a PowerPC JIT among other new features and bug fixes. According to developer Jim Pick, "It has been tested, but not as thoroughly as a production release would be. It contains major improvements over 1.1.5, which was released six months ago. I anticipate that most people will have less trouble with this release, and more fun."


The Maven Project has posted the fourth alpha 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. Alpha 4 adds schedule support, build definitions, and Jabber and MSN notifiers.


Enterprise Distributed Technologies has released edtFTPj 1.5.2, a free (LGPL) FTP library for Java. A $1999 payware version adds support for FTP over SSL. 1.5.2 fixes bugs and adds a restart() method.

Tuesday, September 20, 2005 (Permalink)

Nokia and Vodafone have submitted Java Specification Request 258, Mobile User Interface Customization API, to the Java Community Process. According to the JSR,

The overall goal is the specification of an API that allows the customization of the look and feel of the user interface components in a mobile device or platform. This can be achieved by allowing the API to access the customization properties of user interface (i.e. the themes), providing a mechanism to achieve a uniform customized look and feel in the user interface components, regardless of their underlying implementation mechanism.

The API should have the following functionality:

  • Querying the customization properties of user interface themes of a mobile device or platform.
  • Modifying the customization properties of user interface themes of a mobile device or platform.

The initial requirements for the API are:

  • Independence of specific user interface toolkits. The API should work with any graphical user interface toolkit, including (but not limited to) the LCDUI of MIDP, AGUI of JSR 209 or AWT of PBP/PP.
  • Providing an open framework for access to customization properties, without being fixed to any specific named collection of customization properties.

Access to a collection of customization properties is provided through a vocabulary. This vocabulary may be specific to a device or a platform. The customization API will try to identify a common vocabulary for the properties. However, the API should be an open and flexible framework for accessing any device-specific or platform-specific properties. The properties are not limited to UI APIs, but may include also application platform properties like application icons, tones etc.

The specification enables implementations where the customization uniformly affects all user interface elements of applications (both native and Java) in the device or platform, thereby achieving a unified user experience across the device.

The JSR expert group will study whether there is a need to have application-specific customization capabilities, or the need to extend the customization capabilities to functional elements such as menu extensions and browser bookmarks.

This JSR will specify the UI customization API as an Optional Package API, and does not assume any specific application model or UI toolkit. The Optional Package can be used by any J2ME application using any supported application model, running on any J2ME Profile.

The API can be utilized in the creation of a customized look and feel for custom UI components, but it does not define any APIs for creating those custom components. The custom components are created using the facilities available in existing UI toolkits.

The expert group will also study whether there is a need to specify an over-the-air (OTA) transmission/serialization format for the customization property / UI theme data.

Comments are due by October 20.

Monday, September 19, 2005 (Permalink)

The Legion of the Bouncy Castle has released version 1.30 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, 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. Version 1.30 adds support for the Canmellia cryptography algorithm and fixes various bugs. Download it while it's still legal.

Sunday, September 18, 2005 (Permalink)

The Apache Software Foundation has posted the first 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. Right now I'm struggling with a Maven extension to support Cobertura, and it ain't pretty; even though most of the work has already been done by other people.

Saturday, September 17, 2005 (Permalink)

Tom Copeland has released PMD 3.3, an open source tool for automatically checking Java code for various classes of bugs. Version 3.3 adds seven new rules:

I tested this release out on XOM. This time it didn't locate any real bugs. It found a couple of places where I was making unnecessary checks for null values before an instanceof. The new rules also flagged many places where I was writing s.equals("literal") instead of "literal".equals(s) though none of those seemed to be actual bugs. (I'm pretty rigorous about checking for and avoiding null in my variables.) It also noted a few places where I could eliminate a local variable; and there were several string literals it wanted replaced with constant fields. However, the switch statement rules generated lots of false positives because XOM uses lots of switch statements in very precise but unusual ways.

Friday, September 16, 2005 (Permalink)

The Omni Group has released OmniGraffle 4, a general purpose Mac OS X diagramming tool and my UML editor of choice. New features in 4.0 include Bezier curves, SVG export, and improved import and export to/from PICT and Visio. OmniGraffle ranges from $79.95 to $149.95.


Cenqua has posted the second beta of FishEye 1.1, a $999 payware tool for viewing CVS activity. I've been using FishEye lately as part of my work with the Jaxen Project. As well as drawing graphs of activity, it lets you see who's committing what when to CVS, what individual committers have been up to, what's going on in different branches, what's happened to particular files, and so forth. It automatically wraps up tarballs and zip files of the current code base. The big new feature in 1.1 is Subversion support.


The Big Faceless Organization has released the Big Faceless PDF Library 2.5.2, 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.5.2 fixes bugs and adds RGBA and CMYK as color models for TIFF output and can draw PDFs with non-white backgrounds.

Thursday, September 15, 2005 (Permalink)

An early look at JUnit 4 got slashdotted.


Software Development Best Practices in Boston (September 26-29) is looking for a few more volunteers to man doors, distribute notes, and similar tasks. For each day a you volunteer you get to attend the conference for a day free, and most volunteer days involve nothing more strenuous than sitting in the back of the room listening to the presentation, and collecting eval forms at the end; so really, it's a nice way to attend the show for free.

Wednesday, September 14, 2005 (Permalink)

IBM's developerWorks has published my latest article, An early look at JUnit 4. This is a fast introduction to the next version of the popular unit testing framework. JUnit 4 takes advantage of Java 5 features like annotations, varargs, and generics to simplify unit testing still further. If you're committed to Java 5, then JUnit 4 is big leap forward. Unfortunately while JUnit 4 is backward and forwards compatible with JUnit 3 test suites and test runners, it's completely incompatible with Java 1.4 and earlier so I'm afraid most of us will be sticking with JUnit 3 for some years to come.


Apple's posted Java 1.3.1 and 1.4.2 Release 2 for Mac OS X 10.4 (Tiger). "Java 2 Platform Standard Edition (J2SE) 1.3.1 and 1.4.2 Release 2 improves functionality of J2SE 1.4.2 on Mac OS X v. 10.4 Tiger and updates J2SE 1.3.1 for better interaction with J2SE 1.4.2. Release 2 includes Java 2 Platform Standard Edition versions 1.3.1_16 and 1.4.2_09." Apple has also posted a Java Security Update for Mac OS X 10.3.9 and later.


In related news the recent QuickTime 7.0.2 update seems have disabled virtual machine sharing for a lot of users including myself. The symptom is a message stating "HotSpot not at correct virtual address. Sharing disabled." every time you run anything with Java 5. Various fixes have been suggested, but none have proven effective. Another update from Apple may be required here.

Tuesday, September 13, 2005 (Permalink)

The Apache Software Foundation has posted the second beta of Maven 1.1, an open source build tool for Java that's more declarative and less procedural than Ant. Maven is also much more authoritarian and less configurable than Ant.

The 1.1 release focuses on the following objectives:

  • Integration of Maven 2 technologies such as Maven Wagon, Maven SCM and the new model code
  • Apache Ant 1.6.5 support, including forkmode="once"
  • Upgrade to later releases of dependencies, in particular Jelly
  • Significant improvements in memory usage
  • Improved POM layout
  • Bugfixes

With just a few exceptions [1], Maven 1.1 is backwards compatible with Maven 1.0.

I've been using Maven lately as part of my work with the Jaxen project, and it has some nice features; but I really can't recommend it. It's too controlling. If your build process doesn't look like what Maven wants it to look like, you're going to be fighting against it. Maven's probably a little easier to set up than Ant for basic tasks like build, test, and deploy. However, as soon as you want to do something a little different than Maven expects, you're S.O.L. It's really Maven's way or the highway.

Monday, September 12, 2005 (Permalink)

I've posted the third beta release 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 3 focuses on performance. This release is measurably faster than beta 2 for many common operations, and probably at least twice as fast as XOM 1.0. This probably the penultimate beta before the final release of XOM 1.1. XOM requires Java 1.2 or later and is published under the LGPL.

Sunday, September 11, 2005 (Permalink)

Novell has released Mono 1.1.9, an open source implementation of Microsoft's .NET framework that runs on Linux, Unix, Mac OS X, and Windows. Mono includes an ECMA Common Language Infrastructure (CLI) runtime engine, a cross platform IKVM Java runtime engine, a C# 1.0 compiler, class libraries implementing the .NET 1.1 profile, the Gtk# 1.0 GUI programming toolkit, GNU Classpath for the CLI and a Visual Basic runtime. In version 1.1.9 the JIT compiler adds support for the Itanium and ARM processors. It also introduces SSL support on XSP, a reusable Web server, Cairo 1.0 bindings, and new .NET-compatible international collation code.

Friday, September 9, 2005 (Permalink)

The GNU Project has released version 0.18 of GNU Classpath, an incomplete free implementation of the core Java class libraries. According to the announcement,

The GNU Classpath developer snapshot releases are not directly aimed at the end user but are meant to be integrated into larger development platforms. For example the GCC (gcj) and Kaffe projects will use the developer snapshots as a base for future versions.

This is our first release after "The Big Merge" with GCC/GCJ. GNU Classpath can now be used as a subdirectory of libgcj inside the GCC tree so it will be much easier to keep GCC up-to-date with the latest GNU Classpath developer release snapshots.

Some highlights of changes in this release (more extensive list below):

Added GNU JAWT for awt native interface support. Datatransfer clipboard updated to 1.5 including support for copy/paste of serialized objects, images and files. Completed the org.omg PortableInterceptor, DynamicAny and Portable Object Adapter packages. Multi plaf support for Free Swing. Editing support for JTree and JTable. Lots of icons and look and feel improvements for Free Swing basic and metal themes. NIO FileChannel.map implemented and DirectByteBuffer put method speedups. Image loading speedups for awt. Support for darwin and solaris out of the box.

Since this is a clean room project, it doesn't always line up exactly with any particular Java version; but it's roughly at the level of Java 1.4 with a few missing pieces and an increasing number of pieces pulled in from 1.5. GNU Classpath is published under the GPL with library exception.


The Jakarta Apache Project has released version 1.2.12 of Log4j, a logging toolkit for Java. "This new version contains a number of bug fixes, the addition of the much requested TRACE level, and is compile and runtime compatible with the earlier JDK's 1.1 and 1.2 (this feature had been inadvertently broken in version 1.2.11). Other than the addition of the TRACE level, the API is identical to earlier versions of 1.2.X."

Thursday, September 8, 2005 (Permalink)

IBM's alphaWorks has released HeapAnalyzer 1.3.5, a tool for locating possible memory leaks through "heuristic search engine and analysis of the Java heap dump in Java applications. Java heap areas define objects, arrays, and classes. When the Garbage Collector allocates areas of storage in the heap, an object continues to be live while a reference to it exists somewhere in the active state of the JVM; therefore the object is reachable. When an object ceases to be referenced from the active state, it becomes garbage and can be reclaimed for reuse. When this reclamation occurs, the Garbage Collector must process a possible finalizer and also ensure that any internal JVM resources that are associated with the object are returned to the pool of such resources. Java heap dumps are snap shots of Java heaps at specific times." Version 1.3.3 adds support for the .phd format, types 4 and 5.


Teodor Danciu has released JasperReports 1.0.2, an open source (LGPL) Java library for generating reports from XML templates and customizable data sources (including JDBC). The output can be displayed on the screen, printed, or written to XML or PDF files. Version 1.0.2 adds support for simple HTML tags inside styled text elements

Wednesday, September 7, 2005 (Permalink)

Does anyone happen to know of a class in Java 5 that changed in such a way that its serialized format was incomaptible with Java 1.4, either forwards or backwards? i.e. I'm looking for a class whose Java 5 serialized instances could not be deserialized in Java 1.4 or vice versa. In the examples I've looked at so far Sun's been quite careful to maintain forwards and backwards compatibility despite dire warnings that one can't rely on this. If you happen to know of such a case, please drop me a line. Or failing a Java 5 difference, I could also use differences between Java 1.4 and 1.3. Thanks.


Day Software has submitted JSR-283 Content Repository for Java Technology API 2.0 to the JCP. According to the JSR:

Since this JSR represents an enhancement of JSR-170, the same general goals apply to this JSR as to JSR-170 (from the JSR-170 proposal):

The aim is to produce a content repository API that provides an implementation independent way to access content bi-directionally on a granular level. A content repository is a high-level information management system that is a superset of traditional data repositories. A content repository implements ?content services? such as: author based versioning, full textual searching, fine grained access control, content categorization and content event monitoring. It is these ?content services? that differentiate a content repository from a data repository. Many of today?s (web) applications interact with content repositories in various ways. This API proposes that content repositories have a dedicated, standard way of interaction with applications that deal with content. This API will focus on transactional read/write access, binary content (stream operations), textual content, full-text searching, filtering, observation, versioning, handling of hard and soft structured content.

In particular, the following functional areas will be reviewed by the expert group for possible inclusion in version 2.0:

  • Extensions in the area of management of a content repository such as access control management, workspace and nodetype management, retention aspects of content or repository construction patterns.
  • Improvement of content repository interoperability through the addition of new standardized node types, including node types for meta information and internationalization.
  • Extensions to content modelling capabilities.
  • Federation, cross-repository and cross-workspace functionality.
  • Active development of existing query-languages, versioning and observation.
  • Remoting and client/server protocol mappings.
  • Possibly other enhancements.

Comments are due by September 19.

Tuesday, September 6, 2005 (Permalink)

Cenqua has posted the first beta of FishEye 1.1, a $999 payware tool for viewing CVS activity. I've been using FishEye lately as part of my work with the Jaxen Project. As well as drawing graphs of activity, it lets you see who's committing what when to CVS, what individual committers have been up to, what's going on in different branches, what's happened to particular files, and so forth. It automatically wraps up tarballs and zip files of the current code base. The big new feature in 1.1 is Subversion support.

Monday, September 5, 2005 (Permalink)

Version 2.3 of CruiseControl has been released. CruiseControl is an open source (BSD license) "framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds." In other words, it checks all the source out of CVS, compiles the code, runs the tests, builds the product, and then deletes everything and starts over again. Thus if anything breaks, you hear about it very quickly. FYI, this is the product whose name I was trying (and failing) to remember in the Q&A part of my Test Driven Development session at EclipseWorld last week.


Teodor Danciu has released JasperReports 1.0.1, an open source (LGPL) Java library for generating reports from XML templates and customizable data sources (including JDBC). The output can be displayed on the screen, printed, or written to XML or PDF files. Version 1.0.1 adds RTF and plain text reports.


ObjectWeb has released C-JDBC 2.0.1, an open source (GPL) "database cluster middleware that allows any Java application (standalone application, servlet or EJB container, ...) to transparently access a cluster of databases through JDBC(tm). The database is distributed and replicated among several nodes and C-JDBC balances the queries among these nodes. C-JDBC handles node failures and provides support for checkpointing and hot recovery."


Websina has released BugZero 4.1.6, 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.6 handles the current and default projects independently.


Nigel Mckie has released GeSHi 1.0.7.2, a generic syntax highlighter for PHP that highlights source code in 49 languages (including Java) in XHTML and CSS. It uses CSS to cusotmize the highlighting. GeSHI is released under the GPL.


Lorenzo Bettini has released GNU Source-highlight 2.1.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 a bug fix release.


Andrei Kouznetsov has released Unified I/O 2.5.1, an open source (BSD license) class library that "allows random access to any data or stream (even over HTTP), and gives a clear difference between read only and read/write access." This is a bug fix release.


The Big Faceless Organization has released the Big Faceless PDF Library 2.5.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.5.1 fixes bugs. Java 1.2 or later is required.

Sunday, September 4, 2005 (Permalink)

David Hovemeyer and Bill Pugh have posted FindBugs 0.9.3, an automated open source tool for finding potential bugs in Java code. New detectors in this version include:

I tested this out on XOM where it "found" over 3000 bugs. Almost all of them were false positives. In particular, it objected to the numerous times XOM uses the same code in different branches of a switch statement. (Sometimes it's important to do this to optimize by using table switches.) However, it did find one minor but real problem that is now fixed. If I hadn't used this tool frequently in the past, it would have found more.

Thursday, September 1, 2005 (Permalink)

As promised (threatened?) I've updated the conferences page; and it is now written completely in XML and styled with XSLT. If you notice any weirdnesses in the page, holler. The old HTML version is still available; but it's now statically generated once a day from the XML version. (It's not like I change the page more often than that, and cron is just easier to set up than Cocoon or something fancier. The RSS feeds have been generated out of cron for a couple of years now, and that seems to work well.)

XML is eight years old now, and I really think it's time to start experimenting with real XML served directly to clients for a change. I'm also hopeful that it will be easier to edit and update the page than it was to maintain the old HTML page. A lot of the internal links, duplicate content, and old data can be managed automatically by XSLT so I actually have to type quite a bit less to enter a new show. Semantic markup is not just better for machines than presentational markup. Done right, it's also easier for humans to author.


I've posted the notes from my two talks yesterday at EclipseWorld, Static Code Analysis with Eclipse and Macifying SWT. The next EclipseWorld is scheduled for September 6-8 in Boston.


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