July 2003 Java News

Friday, July 25, 2003

Unless there's wireless on the beach, this will be my last update for the next couple of weeks. I'm taking a much needed vacation. I may pop in here occasionally over the next two weeks if any of the hotels I'm staying in have Internet access, but don't count on it. Regular updates should resume August 11.

I've posted version 1.0d19 of XOM, my open source streaming/tree API for processing XML with Java. This release makes a couple of backwards incompatible changes to NodeFactory. makeElement has been renamed startMakingElement and endElement has been renamed finishMakingElement. startMakingElement behaves the same as the old makeElement. However, finishMakingElement now has a slightly different contract. If it returns null, the entire element is deleted from the tree. It is no longer necessary to explicitly call detach. If it returns a different element than the one passed to it, then the old element is deleted from the tree and the new one is inserted in its place. This is more consistent with the other methods in this class. Return the node you want added to the tree, or null for no node at all.

The second big change has no API-level impact. By default, the Serializer class and toXML methods now use numeric character references to to escape all tabs, carriage returns, and line feeds in attribute values and all carriage returns in text nodes. This helps make round tripping more reliable and robust. XOM is published under the LGPL.

In related news, Linux Magazine has posted online Rogers Cadenhead's article about XOM that was published on paper a few months ago. The article covers XOM 1.0d8 so it's a little dated, but there's still some good stuff in there.

Bare Bones Software has released BBEdit 7.0.4. This is a free update for all 7.0 users. BBEdit is the Macintosh text/HTML/XML/programmer's editor I normally use to write this page. This is a bug fix release. Mac OS 9.1 or later is required.

Thursday, July 24, 2003

Sun's posted the second early access release of the Java Management Extensions (JMX) Remote API, which is being developed in the Java Community Process (JCP) as Java Specification request (JSR) 160. This API enables programs to export JMX API instrumentation to applications running on other computers. Free registration on the Java Developer Connection is required to download.

Wednesday, July 23, 2003

Sun reported disappointing results yesterday for the fiscal fourth quarter that ended June 30. Net income was $12 million, a decrease of 80 percent from the fourth quarter of 2002. Revenues were $2.98 billion, down 13 percent from the previous year. Oh well, at least they didn't lose money.

Sun has posted a new prototype implementation of a Java compiler that supports generics (templates to C++ programmers). This is based on the syntax being developed for Java Specification Request 14, Adding Generics to the Java Programming Language.

The Eclipse Project has posted the second milestone beta of Eclipse 3.0, an open source integrated development environment (IDE) for Java. It 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. New features in this release are mostly minor. Overall this feels more like a 2.2 than a full version shift. New features since milestone 1 include

Tuesday, July 22, 2003

David Hovemeyer has posted FindBugs 0.6.1, a tool for detecting a variety of common Java coding mistakes, including thread synchronization problems and misuse of API methods. It includes both Swing and command line interfaces. Version 0.6.1 adds several new bug detectors:

I tested this version out on the current XOM code base, and it didn't find any real bugs. However, that's not quite a fair test since earlier versions have found real bugs that I then fixed. Java 1.4 or later is required. FindBugs is published under the LGPL.

debugtools.com has released version 3.0 of JDebugTool, a standalone graphical Java debugger built on top of the Java Platform Debugger Architecture (JPDA). Despite the major version number, there are only a couple of minor user interface changes in this release. JDebugTool is $99 (personal)/$199 (corporate) payware.

Speaking of debuggers, here's a feature I've been aching for while debugging XOM, and I've never seen it in any debugger over the years. I'd like to be able to set a breakpoint that's conditional on another method being executed. For example, I'd like to stop in the startMakingElement method, but only when the testZ method has been called. I don't want to stop in startMakingElement for testA through testY. Right now I can fake it by setting my breakpoint in testZ and then adding the breakpoint in startMakingElement only when I'm stopped in testA. However, it would be convenient to be able to do this without having to manually change the breakpoints every run, or set special debugging variables to kmey conditional breakpoints off of. Is this clear? Is there a debugger with this ability?

Monday, July 21, 2003

Version 4.0.2 of ICEMail, an open source email client in pure Java, has been released.. ICEMail supports SMIME, vCard, and PGP and is based on the Java Mail API, Java Activation Framework (JAF), and JavaHelp. This is a bug fix release. Java 1.2 or later is required.

Sunday, July 20, 2003

Sun's posted the second proposed final draft specification for Java Specification Request (JSR) 172, J2ME Web Services Specification, in the Java Community Process (JCP). This basically describes subset of JAXP, JAX-RPC, and XML intended for talking to SOAP services from Java 2 Micro Edition devices. "The goal of this optional package is to define a strict subset wherever possible of the XML parsing functionality defined in JSR-063 JAXP 1.2 [2] that can be used on the Java 2 Micro Edition Platform (J2ME)". On first reading, this draft appears to be substantially more XML-conformant than previous drafts.

The only major problems I noticed were in the SAX subset. Sun is using the confusing, underspecified SAXParser and SAXParserFactory instead of the much cleaner, better specified XMLReader and XMLReaderFactory. They've also removed ContentHandler completely and replaced it with DefaultHandler. Since this requires altering many signature in JAXP, this makes it substantially more difficult to port standard SAX programs to J2ME.

In related news, IBM's alphaworks has updated its Web Services Tool Kit for Mobile Devices to support the latest draft of this specification. This tookit also supports WCE and SMF environments (whatever those are). However, it only supports a subset of SOAP 1.1.

Saturday, July 19, 2003

jZonic has posted jLo 0.9, an open source logging framework for Java that supports multiple log-configurations. It allows users to switch targets on or off independently of each other, rather than by threshold. jLo is published under the LGPL.

Jim Menard has posted version 0.7.10 of DataVision, an open source "database reporting tool similar to Crystal Reports". DataVision is written in Java and supports multiple databases including PostgreSQL, MySQL, and Oracle. This release make some small user interface improvements, and fixes bugs on Mac OS X.

Friday, July 18, 2003

Sun has posted the public review draft specification of Java Specification Request (JSR) 168, the Portlet API. Comments are due by August 13.

The Jakarta Apache Project has posted the first beta of Cactus 1.5, a simple framework for unit testing server-side Java code such as servlets, Enterprise JavaBeans, tag libraries, etc. New features include

Thursday, July 17, 2003

Every so often I get interested in putting my money where my mouth is, and look into moving my investments out of my boring index funds into a "socially responsible" fund. However, every time I receive a prospectus from a so-called socially responsible company, invariably one of their top holdings is Microsoft. It's hard to take any fund seriously as caring about social responsibility if they think Microsoft is a good example of corporate ethics.

I guess I can see how Microsoft gets into their portfolios. As a software company, Microsoft doesn't pollute the environment. It pays relatively high wages (though it does run a two-class shop in which some workers are treated much better than others). It doesn't make weapons (though they sell a lot of Windows and Office to the DoD). It doesn't sell liquor, tobacco, or guns. It doesn't contract with sweatshops. Or does it? According to a message posted on the Politech mailing list (not yet in the archive on the Web), it seems Microsoft is now selling T-shirts promoting the "Freedom to Innovate" that were made in a Haitian sweatshop. Maybe this will wake up a few fund managers who've let Microsoft profits blind them to their illegal and unethical business practices.

Websina has released BugZero 2.7.2, a $999 payware 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. This is a bug fix release.

Will Ready has released JavaWizardComponent 1.1, an open source Swing component that designed to be traveled through using Next, Back, Finish, Cancel. Version 1.1 makes JWizardComponents an interface so that developers can implement their own JWizardComponents classes. JavaWizardComponent is published under the LGPL.

Wednesday, July 16, 2003

Sun has posted beta 2 of the Doc Check Doclet 1.2, an extension to the Javadoc tool that generates an HTML report identifying empty comments and other irregularities in the doc comments. This release now works with Java 1.2.2 to 1.4.2. I tested this on the current XOM code base. It found a few dozen minor errors, mostly missing @see tags for getter and setter methods, but nothing serious.

Tuesday, July 15, 2003

ej-technologies GmbH has released version 2.0 of exe4j, a $99 payware tool for integrating Java programs into Windows with your own process name, task-bar grouping, native splash screens, and so forth. Upgrades from 1.0 are free.

The third beta of BlueJ 1.3 has been posted. BlueJ is a free integrated development environment (IDE) for Java aimed at education. The major new feature in 1.3 is a project submission extension developed at the University of Kent in Canterbury that enables students to submit BlueJ projects via file copy, email, ftp or http. This beta features a completely reimplemented debugger that can debug multithreaded applications. This release now uses a separate virtual machine for each open project, so memory usage has increased accordingly.

Monday, July 14, 2003

Gaudenz Alder has released version 2.2 of JGraph, an open source graph component for Swing that requires Java 1.4 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. It is available in English, German and French. This release improves performance and refactors the code and API. JGraph is published under the LGPL.

The Object Refinery has posted version 0.9.9 of JFreeChart, an open source library based on Java2D. JFreeChart can produce pie charts, line charts, various kinds of bar charts, XY plots and scatter plots, time series, high/low/open/close charts, candle stick charts, and combination charts. JFreeChart is published under the LGPL.

Sunday, July 13, 2003

Slava Pestov has uploaded the third pre-release of jEdit 4.2, an open source programmer's editor written in Java with extensive plug-in support and my preferred text editor on Windows and Unix. New features in this release include syntax highlighting for LOTOS and SDL/PL. In addition many bugs were fixed.

Saturday, July 12, 2003

The Apache Jakarta Project has posted a beta of POI 2.0, an open source Java library for "manipulating various file formats based upon Microsoft's OLE 2 Compound Document format. OLE 2 Compound Document Format based files include most Microsoft Office files such as XLS and DOC."

Friday, July 11, 2003

Robert Oloffson has posted version 0.32 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. This release implements various speed-ups. JMP is written in C for Linux. This fix release enables users to expand Object[] and char[] in the instance inspector window. JMP is published under the GPL.

SSHTools.com has posted J2SSH 0.2.1, a Java implementation of the secure shell protocol that "provides a fully featured SSH2 implementation specifically designed for cross platform development. Higher level components representing both the standard SSH client and SSH servers are provided which implement the protocol specification for user sessions and port forwarding." Supported features include public key and password authentication the SFTP protocol. This beta adds supoprt for Java 1.3. J2SSH is published under the LGPL.

Michael B. Allen has posted jCIFS 0.7.11, an SMB client library written in pure Java. It supports Unicode, named pipes, batching, multiplexing I/O of threaded callers, encrypted authentication, full transactions, domain/workgroup/host/share/file enumeration, NetBIOS sockets and name services, the smb:// URL protocol handler, RAP calls, and more. The API is similar to java.io.File. Version 0.7.11 adds support for LMv2 authentication. jCIFS is published under the LGPL.

Luke Reeves has released the Java Financial Library 1.6.1, an open source (LGPL) Java class library that converts between currencies and retrieves stock information using data from Yahoo and Oanda. This is a bug fix release.

Thursday, July 10, 2003

Chris Stevenson's TestDox is a tool that automatically generates class documentation from Junit test cases. It's an interesting idea. It might actually inspire me to build greater grnaularity and better method names into my unit tests.

IBM's alphaWorks has released version 2.0 of ABLE, the Agent Building and Learning Environment. "The ABLE framework provides a set of Java interfaces and base classes used to build a library of JavaBeans called AbleBeans. The library includes AbleBeans for reading and writing text and database data, for data transformation and scaling, for rule-based inferencing using Boolean and fuzzy logic, and for machine learning techniques such as neural networks, Bayesian classifiers, and decision trees. Developers can extend the provided AbleBeans or implement their own custom algorithms. Rule sets created using the ABLE Rule Language can be used by any of the provided inferencing engines, which range from simple if-then scripting to light-weight inferencing to heavy-weight AI algorithms using pattern matching and unification. Java objects can be created and manipulated using ABLE rules. User-defined functions can be invoked from rules to enable external data to be read and actions to be invoked." Version 2.0 features an enhanced rules function, new Eclipse-based tooling, and enhancements to for life cycle services, security, and persistence.

The Jakarta Apache Project has posted the second beta of HTTPClient 2.0. "Although the java.net package provides basic functionality for accessing resources via HTTP, it doesn't provide the full flexibility or functionality needed by many applications. The Jakarta Commons HttpClient component seeks to fill this void by providing an efficient, up-to-date, and feature-rich package implementing the client side of the most recent HTTP standards and recommendations....Designed for extension while providing robust support for the base HTTP protocol, the HttpClient component may be of interest to anyone building HTTP-aware client applications such as web browsers, web service clients, or systems that leverage or extend the HTTP protocol for distributed communication."

Wednesday, July 9, 2003

Marc Prud'hommeaux has posted JLine 0.6.0, a Java library for reading and editing console input similar to BSD editline or GNU readline. JLine supports command line editing, command history, and customizable tab completion. JLine is published under the GPL.

Tuesday, July 8, 2003

SSHTools.com has posted J2SSH 0.2.1 beta, a Java implementation that "provides a fully featured SSH2 implementation specifically designed for cross platform development. Higher level components representing both the standard SSH client and SSH servers are provided which implement the protocol specification for user sessions and port forwarding." Supported features include public key and password authentication the SFTP protocol. This beta make sisgnificant changes to the J2SSH API and the SSH Ant task. Somme bugs have also been fixed. J2SSH is published under the LGPL.

Version 0.5.0 of JRat, an open source profiling tool that requires instrumentation of your code, has been posted. This release adds two new handlers. The Log handler records method invocations in a packed binary format and the Rate handler tracks method throughput over time. This release also fixes a few bugs. JRat is published under the LGPL.

Monday, July 7, 2003

Tagtraum Industries has released GCViewer 1.14, an open source Swing-based application "to visualize the data produced by the Java VM options -verbose:gc and -Xloggc:<file>." The data can also be exported as comma separated values.

ej-technologies GmbH has released version 2.3 of JProfiler, a $548 payware profiler based on the Java virtual machine profiling interface (JVMPI that can report on CPU usage, memory size, threads, and "VM telemetry" (whatever that is). Version 2.3 adds support adds "path to garbage collector root" analysis and a heap snapshot mode that excludes weakly referenced and unreferenced objects. The IDE integrations have been updated for the latest releases, and new integration wizards have been added for the Java browser plugin and several application servers.

jPOS 1.4.6 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)." Version 1.4.6 adds some new components, fixes a few bugs, and makes some optimizations.

Teodor Danciu's posted version 0.5.0 of JasperReports, an open source 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 0.5.0 adds a horizontal report filler, support for BeanShell, and customizable band split behaviour. It also fixes assorted bugs.

Sunday, July 6, 2003

The second alpha of Buoy, a library for creating user interfaces on top of Swing, has been posted. Java 1.4 or later is required. Buoy is in the public domain.

Saturday, July 5, 2003

Etienne Gagnon has released version 1.0.9 of SableVM, a Java bytecode interpreter (that is, a virtual machine) written in portable C. "SableVM requires an ANSI/ISO C compiler (but preferably GCC) and a POSIX platform. It requires a strong memory model (sequential consistency) on multiprocessor systems. SableVM is currently known to run on the i*86 and alpha processors with GNU/Linux." Version 1.0.9 now runs on various Debian systems and Mac OS X. It also fixes some bugs. SableVM is published under the GNU Lesser General Public License (LGPL).

Friday, July 4, 2003

Version 1.1 of Gnude, the Gnu Development Environment, has been released for Windows and various Unixes. Gnude is "a complete suite of GNU C/C++, Fortran, Java Cross Compilers, Insight/GDB Debugger, and additional utilities hosted on Windows NT/2K/XP for embedded ARM7, ARM9, and XScale CPU applications development. The Windows Installer distribution contains all of the following GNU Packages: Binutils 2.12, GCC 3.1, Newlib 1.10.0, GDB Insight 5.2, Make 3.79.1, DiffUtils 2.8.1, and FindUtils 4.1. The base libraries in the distribution are compiled to support an RDP debug monitor in target." Published under the GPL, natch.

Sebastiano Vigna's released version 3.0.1 of fastUtil, a collection of type-specific Java 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. Version 3.0.1 fixes bugs and adds a few new iterator methods. fastUtil is published under the GPL.

IBM's alphaWorks has released version 5.0 of their J323 Engine, a library that "implements the functions for Call Control and Media Control in an H.323 terminal. (H.323 is the most widely-used standard for multimedia telephony over IP networks.) J323 Engine includes the object-oriented, standard, Java Telephony API (JTAPI), so that developers can write their own user interfaces or can integrate the functionality of an H.323 terminal into their own applications." Version 5.0 supports H.323 Version 4 messages, uses the Java media Framework 2.1.1, and fixes various bugs.

Sun has released version 1.1 of JavaMail, a Java class library for e-mail that supports SMTP, POP, and IMAP. Version 1.3.1 adds DIGEST-MD5 authentication to the SMTP provider and fixes assorted bugs. Java 1.1 or later is required.

Currrent plans are that this is the last release of JavaMail that supports any VMs older than 1.4. If this is a problem for you, let the JavaMail team know.

Thursday, July 3, 2003

Julien Ponge has released IzPack 3.0.9, an open source tool for building cross-platform installers in Java. It's published under the GPL. This release adds a Romanian language pack and fixes a few bugs.

Francois Beausoleil has posted version 0.6.5a of his Java GUI Builder, an open source tool that  reads an XML description of a GUI and then generates windows, controls, menus, and other objects for later retrieval by the program. This release adds support for JTabbedPane with the sheet and tab elements. Java GUI Builder is now published under the LGPL. (Previously it was published under the GPL.)

Websina has released Bugzero 2.7, a $999 payware 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. Version 2.7 stores the user group and email template in database tables instead of in system files so they can be modified during runtime using the administration tool and so the email template can be customized for each project.

Wednesday, July 2, 2003

IBM's alphaWorks has updated their Logging Toolkit for Java to fix a class loader bugs. If you aren't familiar with logging APIs, think of it as System.err.println() refitted with a nitro engine. The Logging Toolkit for Java includes "loggers, handlers, filters, and formatters. Loggers generate the data to be logged; there are message loggers for end users and administrators and trace loggers for developers. Handlers process the event data generated by the loggers and correspond to a physical device, such as a console, file, or socket. Filters control which log records are written to the output devices controlled by the Handlers. Formatters present event data in a desired format and recognize specific types of events; multiple formatters may be attached to a handler, which allows the handler to process diverse event types."

IBM's alphaWorks has released Backward Compatibility Tester, a Java-based tool that "tests whether or not the libraries are backward-compatible in terms of arguments, exceptions thrown, or any other particular." However, a bad link seems to prevent this tool from being downloaded.

Older news:

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

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

Copyright 2003 Elliotte Rusty Harold
Last Modified July 14, 2003