August 2002 Java News

Wednesday, August 28, 2002

I'm travelling for the next couple of days so there probably won't be any more updates until Sunday.


Erich Gamma's released version 3.8 of JUnit, the de facto standard library for unit testing in Java. Changes in this release include:

JUnit is published under the Common Public License. If you aren't using this, you should be.


The Apache Commons Group has released Commons BeanUtils 1.4.1. This provides some easier-to-use wrappers around Java's built-in Reflection and Introspection APIs. This is a bug-fix release.

Wednesday, August 28, 2002

The NetBeans Project has released version 3.4 of NetBeans, a mostly open source integrated development environment (IDE) for Java. New features in this release include:

Based on this feature list, I think somebody's been looking at Eclipse. :-)


Michael B. Allen's posted jCIFS 0.7.0b3, 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. jCIFS is published under the LGPL.

Tuesday, August 27, 2002

Abbot 0.7.1 is a framework for testing Java GUIs. Using simple XML-based scripts, you can launch a GUI, play back arbitrary user actions on it, and examine its state. It also includes the Costello editor which facilitates creating, debugging, and modifying scripts. Test scripts can be run as a JUnit TestCases. This release improves class loading and adds support for several more components. Abbot and Costello are published under the LGPL.

Monday, August 26, 2002

The Jakarta Apache Project has released Cactus 1.4, a simple test framework for unit testing server-side Java code such as servlets, Enterprise JavaBeans, tag libraries, etc.


Slava Pestov's posted the fourth prerelease of version 4.1 of jEdit, an open source programmer's editor written in Java. This release fixes some nasty bugs in the last release and adds AppleScript syntax highlighting.


Sunday, August 25, 2002

Today's a Sunday and a slow news day, so I just wanted to post a few random notes of no great significance that have been banging around in my head for a while now.

First off, since switching PCs and choosing Linux as my main work environment a few months ago, I've noticed a disturbing tendency for the keyboard to type the backtick character `. (This is not the same as the single quote character '.) I am such a bad typist that it took me a while to be absolutely sure I wasn't accidentally pressing that key (on the upper left corner of my keyboard) but now I'm sure. I finally caught it doing it when I know neither of my hands was anywhere near that key. It seems sporadic. Sometimes it happens. Sometimes it doesn't. It only seems to happen when I type another key, most commonly the page down key. I've never seen this in Windows, only Linux, but it doesn't really feel like a software bug. Is my seven year old Microsoft natural keyboard finally dying? Should I just chuck it and replace with a $10 bargain basement brand? Has anyone seen this behavior before? Comments appreciated.

And now a tip: if U.S. prices are too high for your taste, try shopping Canada. In the Internet age there's no reason Americans (or anyone else) have to shop in the U.S. Given the exchange rate, it's often possible to buy products significantly cheaper at Canadian online stores. Recently, I purchased Steve Wolfram's A New Kind of Science from Chapters.ca for $42 American, including international shipping, about a third less than the cheapest price I could find in the States, even after comparison shopping multiple online stores and using half.com.

Even cooler, sometimes you can find books and movies that just aren't available in American stores On the same order, I picked up the entire first season of Lexx on DVD, also for about $60. For some reason I've never quite understood, the first season of Lexx isn't distributed in the U.S. but you can order it from Canada. You can also bid for it on eBay, but I noticed that the reserve prices tend to be about the same in American dollars as the prices in Canadian dollars on Chapters. I suspect some micro-arbitragers are making a nice profit by ordering DVDs from Canada and reslling them on eBay in the states.

Saturday, August 24, 2002

RefactorIT 1.1 Ê can read Java source code and rewrite it by means of automated refactorings such as Rename Field/Method/Variable/Class/Package, Extract Method or Move Type. In addition, RefactorIT provides a comprehensive set of smart query functions that make it possible to analyze and track large volumes of code such as dependency checking and structure search. It calculates common code metrics that can be exported and analyzed. RefactorIT may be used as a standalone tool or installed as an add-in to IDEs like NetBeans, Forte, JDeveloper, and JBuilder. RefactorIT is $200 payware.


JDebugTool 1.6 is a standalone graphical Java debugger built on top of the Java Platform Debugger Architecture (JPDA). Version 1.6 speeds up load performance and fixes a few bugs. JDebugTool is $99 payware.

Friday, August 23, 2002

The Jakarta Apache Project has posted the first beta of Ant 1.5.1, the popular open source build tool for Java. Version 1.5.1 fixes most bugs reported against Ant 1.5.


ÊXNap 2.2 is a plugin-based Java OpenNap file sharing client. It can connect to multiple servers, perform multiple concurrent searches, do automatic downloading, and resume incomplete downloads. Support for Gnutella and OpenFT is underway. You can view and search your Media files and play them conveniently from within XNap. It also provides a command line interface for use on a terminal. Java 1.3 or later is required. XNap is published under the GPL.


JFCUnit 1.01 is a tool for building JUnit test cases for Java Swing-based applications. It can obtain references to windows opened by your program, locate particular components, and submit events to them. JFCUnit is published under the LGPL.


David A. Wheeler's ÊSLOCCount 2.15 is a suite of programs for counting physical source lines of code (SLOC) in possibly large software systems (such as the Linux code base). SLOCCount runs on GNU/Linux, FreeBSD, and Windows with Cygwin. SLOCCount can count most major languages including Java. SLOCCount is published under the GPL.


Armed Bear's J 0.16.3 is yet another open source programmer's editor written in Java. It provides the usual batch of features including syntax highlighting, automatic indentation, directory buffers, regular expressions, multifile find and replace, autosave and crash recovery, undo/redo, FTP/HTTP support, customizable keyboard mappings, and themes..


Gert Van Ham's open source JCE taglib uses the Java Cryptography Extension to add strong encryption and message digests to Java Server Pages (JSP).

Thursday, August 22, 2002

Sun's released the final version of Java Specification Request 120, Wireless Messaging API 1.0 for J2ME. (PDF format as usual) According to the spec:

The messaging API is based on the Generic Connection Framework (GCF), which is defined in the Connected Limited Device Configuration (CLDC) 1.0 specification. The package javax.microedition.io defines the framework and supports input/output and networking functionality in J2ME profiles. It provides a coherent way to access and organize data in a resource-constrained environment.

The design of the messaging functionality is similar to the datagram functionality that is used for UDP in the Generic Connection Framework. Like the datagram functionality, messaging provides the notion of opening a connection based on a string address and that the connection can be opened in either client or server mode. However, there are differences between messages and datagrams, so messaging interfaces do not inherit from datagram.


Sun's posted the proposed final draft specification of Java 2 Enterprise Edition (J2EE) 1.4.

Wednesday, August 21, 2002

Sun's posted a release candidate of the Java 2 Software Development Kit, Standard Edition 1.4.1 (a.k.a. JDK 1.4.1). This is mainly a bug fix release, but it does add support for 64-bit Itanium processors. It also includes a release candidate of Java Web Start 1.2. Several new sample applications for Java Web Start are also available that demonstrate CORBA, file access, extension installers,and native library support.


Michael B. Allen has released jCIFS 0.7.0b2, 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. This release simplifies the NTLM HTTP Authentication interface, adds a Network Explorer-like file browser servlet, and can read files larger than 4GB. jCIFS is published under the LGPL.


Slava Pestov's posted the third prerelease of version 4.1 of jEdit, an open source programmer's editor written in Java. This release adds regular expression matching, supports syntax highlighting for CHILL,and improves AWK, CSS, COBOL, and Perl syntax highlighting.


Matthew Pekar has released version 0.93 of Pounder, a GUI testing tool for Java. Developers can record scripts that are then run in JUnit. Version 0.93 adds a window showing assertion functionality and more informative error handling. It also fixes some bugs and speeds up a few operations. Java 1.4 is required. Pounder is released under the LGPL.

Monday, August 19, 2002

Joerg K. Wegner's JOELib is a Java class library for computational chemistry. It supports SMARTS substructure search, descriptor calculation, processing/filtering pipes, and conversion of different chemical file formats. JOELib is published under the GPL.

Sunday, August 18, 2002

NEC has posted the proposed final draft of Java Specification Request 130, OSS IP Billing API. According to the original JSR:

In Operation Support Systems (OSS), the area of IP Billing is vast and complete standards or even de-facto standards in this area are lacking. Several products manage specific parts of Billing. They can be integrated into an end-to-end solution, but these custom integrated solutions are tremendously complex and difficult to achieve, due to the lack of integration standards.

Therefore, the ability to reduce the integration effort via a set of standard, reusable software components to assemble OSS applications in a much shorter time is an appealing prospect for all players in the OSS marketplace.

The OSS IP Billing API specification will define an API via the OSS through Java initiative that enables construction of total OSS solutions for IP Billing by assembling commercial-of-the-shelf components.


Brian Westphal has released version 1.0.1 of his Java Parser/Parser Generator. It builds parsers from straight EBNF notation files. It's published under the GPL. This is a bug fix release.


Saturday, August 17, 2002

Sun has released the Mobile Media API Emulator 1.0 (MMAPI) for the Java 2 Micro Edition Wireless Toolkit. MMAPI "extends the functionality of the J2ME platform by providing audio, video and other time-based multimedia support to resource-constrained devices." The MMAPI emulator runs on Windows 2000, and supports simple tone generation, tone sequencing, audio/video recording and playback, and interactive MIDI. It's published under the Sun Community Source License.


Sun's posted the proposed final draft of the JavaServer Pages 2.0 Specification in the Java Community Process.


Sun's posted the second beta of the MIF doclet, a tool for generating FrameMaker documentation from JavaDoc, on the Java Developer Connection.. Registration is required.

Friday, August 16, 2002

JDebugTool 1.5.9 is a standalone graphical Java debugger built on top of the Java Platform Debugger Architecture (JPDA). Version 1.5.9 adds a Methods Breakpoint column in the Methods Panel. JDebugTool is $99 payware.


The Apache Jakarta Project has posted a beta of version 4.1.9 of Tomcat, the servlet container/JSP engine for the Apache web server and the official reference implementation of the Servlet 2.3 API and Java Server Pages 1.2. Version 4.1.9 fixes various bugs.

Thursday, August 15, 2002

Echomine's ambitious Muse Communications API has "the goal of integrating all network-collaboration services into one. The API will give an easy-to-use interface that allows you to log on to multiple services i.e. ICQ, AIM, MSN, Yahoo Messenger, IRC, Napster, Gnutella, Jabber, and XMLRPC. There will be a client GUI Framework API to combine the use of all these services under one easy-to-access API, so that you can write the GUI client with much less effort."


The Eclipse AntView Plugin 2.2.5 runs Ant build file targets from within the Eclipse Integrated Development Environment (IDE). I've been using Eclipse 2.0 for a couple of projects lately, and it does have some various nice features. However, there are still enough quirks and outright bugs in the user interface that I don't think it's ready for prime time yet.


Etienne Gagnon's SableVM 1.0.2 is 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." SableVM is published under the GNU Lesser General Public License (LGPL).


Keane Jarvi's rxtx 2.1-4 is an LGPL'd implementation of the Java Communications API that runs on various Unixes, BeOS, and Windows. The Java Communications API allows Java programs to talk to devices hooked up to serial and parallel ports. It's described in the final chapter of my book, Java I/O.

Wednesday, August 14, 2002

The Jakarta Apache Project has released Commons Digester 1.3, a package that:

lets you configure an XML -> Java object mapping module, which triggers certain actions called rules whenever a particular pattern of nested XML elements is recognized. A rich set of predefined rules is available for your use, or you can also create your own. Advanced features of Digester include:
  • Ability to plug in your own pattern matching engine, if the standard one is not sufficient for your requirements.
  • Optional namespace-aware processing, so that you can define rules that are relevant only to a particular XML namespace.
  • Encapsulation of Rules into RuleSets that can be easily and conveniently reused in more than one application that requires the same type of processing.

Version 1.3 is mostly a bug-fix release.


The Jakarta Apache Project has also released Commons BeanUtils 1.4. This provides some easier-to-use wrappers around Java's built-in Reflection and Introspection APIs. Version 1.4 is mostly a bug-fix release.


Finally, the Jakarta Apache Project has released Commons Logging 1.0.1. This "is an ultra-thin bridge between different logging libraries. Commons components may use the Logging API to remove compile-time and run-time dependencies on any particular logging package, and contributors may write Log implementations for the library of their choice." This version is mostly a bug-fix release.


Refactorit 1.1 Ê can read Java source code and rewrite it by means of automated refactorings such as Rename Field/Method/Variable/Class/Package, Extract Method, or Move Type. Refactorit may be used as standalone tool or installed as an add-in to IDEs like NetBeans, Forte, JDeveloper, and JBuilder. Version 1.1 adds "Minimize Access Rights" and "Create Constructor" refactorings, as well as fixing various bugs. RefactorIt is $200 payware. Support costs $300 more. Free licenses are available for some classes of developers.


Tuesday, August 13, 2002

Julien Ponge'sÊIzPack 3.0.0 is an open source tool for building cross-platform installers in Java. It's published under the GPL.


The The Zaval CE Group has released version 1.1 of the Zaval JRC Editor. Zaval is a visual localization string editor. In rough scope it reminds me of the old Macintosh tool ResEdit, in particular because it allows you to hack the strings inside a closed source application. ResEdit actually went further, letting you hack all sorts of resources including dialogs, icons, menus, and more; all without knowing or using any C or Pascal. Almost 20 years later, the rest of the world still hasn't caught up to where Macintosh software development was in the 1980s. :-( Zaval is published under the GPL.


Jim Menard's posted DataVision 0.4.2, an open source "database reporting tool similar to Crystal Reports". DataVision is written in Java and supports multiple databases including PostgreSQL, MySQL, and Oracle.


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

Monday, August 12, 2002

Romain Guy's released version 3.1 of Jext, an open source programmer's editor written in Java. Version 3.1 adds many new syntax colorizing modes, many new plugins, fixes a lot of bugs (mainly with Java 1.4), and adds some new language packs.


Eric Lafortune's ProGuard 1.2 is a GPL'd class file shrinker and obfuscator. It can detect and remove unused classes, fields, methods, and attributes. It can then rename the remaining classes, fields, and methods using short, meaningless names. The resulting jars are more compact and more difficult to reverse engineer. This release improves performance and fixes bugs.


Nathan Fiedler's released version 2.8 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. JSwat is published under the GPL.

Sunday, August 11, 2002

Brian Westphal has released version 1.0 of his Java Parser/Parser Generator. It builds parsers from straight EBNF notation files. It's published under the GPL.


ÊHibernate is an "object/relational persistence and query service for Java. Hibernate lets you develop persistent objects following common Java idiom, including association, inheritance, polymorphism, composition and the Java collections framework. To support a rapid build procedure, Hibernate rejects the use of code generation or bytecode processing. Instead runtime reflection is used and SQL generation occurs at system startup time. Hibernate supports Oracle, DB2, MySQL, PostgreSQL, Sybase, SAP DB, HypersonicSQL, Microsoft SQL Server, Progress, Mckoi SQL and Interbase." The current version is 1.1 beta 4 and is published under the LGPL.


The Ping Software Group's Kiwi Toolkit 1.3.4 is an open source (LGPL), Swing-based GUI class library that includes a TreeTable component, a DateChooser, an MVC charting package, a plugin framework, an application resource manager, and more.

Saturday, August 10, 2002

The University of Utah's Flux Research Group posted version 0.8.0 of the JanosVM, an open source Java virtual machine forked from Kaffe that supports multiple, separate process-like entities called "teams" within a single VM, without reliance on any underlying OS or hardware support. It also supports separate per-team heaps, per-team garbage collection threads, inter-team thread migration, safe cross-team reference objects, and a spiffy tutorial. Version 0.8.0 includes "a new user level thread system that supports stride scheduling, optimized packet handling when using moab, a port of xprofiling to the nodeos/oskit, a resync with kaffe v1.0.7, an experimental java wrapper for the lmsensors library, an alpha version of the PowerPC jit3 back end for Mac OS X (darwin), a test suite for basic jitter operation, and the usual bug fixes." JanosVM is published under the GPL.


Sun's posted the proposed final draft specification for Java Specification Request (JSR) 115, Java Authorization Contract for Containers, in the Java Community Process (JCP). This spec defines "new java.security.Permission classes to satisfy the J2EE role-based, authorization model. The specification will define the binding of container access decisions to operations on instances of these permission classes."


IBM's posted the proposed final draft specification for JSR-110, Java APIs for WSDL, to the Java Community Process (JCP). According to the spec,

The Web Services Description Language [WSDL] is an XML-based language for describing Web services. WSDL allows developers to describe the inputs and outputs to an operation, the set of operations that make up a service, the transport and protocol information needed to access the service, and the endpoints via which the service is accessible.

Java™ APIs for WSDL [JWSDL] is an API for representing WSDL documents in Java.

Refreshingly, the reference implementation is open source, and you don't have to click through any license agreements to read the spec. Comments are due by September 29.

Friday, August 9, 2002

Sun's posted the proposed final draft specification for the Java Servlet API 2.4 in the Java Community Process (JCP). Quoting more or less directly from the draft spec, changes since version 2.3 include:


Brian Westphal's released his ÊJava Regular Expression Package 1.00, a Java class library that supports regular expressions and non-deterministic finite state automata (NFAs). It's published under the GPL.

Thursday, August 8, 2002

Jim Menard's posted DataVision 0.4.1, an open source "database reporting tool similar to Crystal Reports". DataVision is written in Java and supports multiple databases including PostgreSQL, mySQL, and Oracle. DataVision uses XML files to describe reports. This release adds many new formula operators including floor, ceil, round, sqrt, pow, **, max, min, abs, sin, cos, and tan.


Jpedal is a pure Java library for extracting content from Adobe's PDF file format and rasterizing it. Text fragments are extracted as XML elements with font and location information. Images are extracted in both their raw formats and their clipped and scaled formats as TIFF, PNG, or JPEG files. Jpedal is published under the LGPL.


Êej-technologies GmbH's JProfiler 2.0.4 is 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.0 adds snapshot saving and loading, monitor contention analysis, thread state selection in CPU views, integrated source and bytecode viewers, J2EE integration wizards, package level statistics, dynamic view filters, improved garbage collector functionality and data export capabilities. Version 2.0.4 fixes various bugs.


Tomas Gustavsson's EJBCA 2.0 pre2 Êis an open source certificate authority written in Java using J2EE. Version 2.0 relies on EJB 2.0 and adds a Web GUI for administration through SSL.

Wednesday, August 7, 2002

Sun has released version 1.0_01 of the Java Web Services Developer Pack (Java WSDP). This pack bundles together minor updates to its various component technologies. It includes:


Bruce Eckel's posted what amounts to a beta of the third edition of Thinking in Java. The biggest change in the third edition is a "Discovering Problems" chapter that "teaches you about tools that you can use to find and prevent problems during your development process. These include unit testing (JUnit, and a framework developed just for testing the examples in the book); Ant, for automatic building; debuggers, profilers, and even Doclets."


Sun's posted the proposed final draft specification for Enterprise JavaBeans 2.1 in the Java Community Process (JCP). Version 2.1 "extends the existing Enterprise JavaBeans 2.0 specification with new features, including support for JAXM message-driven beans, enhancements to EJB QL to support aggregate and other operations, support for linking of messaging destinations, support for web services usages within EJB, and a container-managed timer service."


Sun's also posted the proposed final draft of Java Specification Request (JSR) 45, Debugging Support for Other Languages, in the JCP. "This specification establishes standardized tools for correlating Java virtual machine byte code to source code of languages other than the Java programming language."

Tuesday, August 6, 2002

The Jakarta Apache Project has released version 1.2.6 of Log4j, a logging toolkit for Java. This is a "minor maintenance release." The most significant change is that Log4j now will check if a system property named "log4j.ignoreTCL" is set. If it is set, then it will ignore the Thread Context ClassLoader when loading classes.


Version 1.2.1 of BlueJ has been released. BlueJ is a free integrated development environment (IDE) for Java aimed at education. This release fixes some small bugs.

Monday, August 5, 2002

Sun's updated the Maintenance Review Draft Specification for JSR-59 J2SE 1.4.1 Release Candidate Comments are due by September 3. Changes in this release are extremely minor. In fact, according to the change document, "J2SE 1.4.1 is a maintenance release that contains no API changes at the signature level. The specification changes described here are in the category of clarifications and corrections to existing specifications made to address bugs that have been submitted against the platform specification."


On the other hand, I think that some far more major changes to standard Java are eventually going to be needed. In fact, some are long overdue. OnJava has just published 10 Reasons We Need Java 3.0, an article I wrote arguing that the time has come to break backwards compatibility and introduce a new version of Java that learns from the mistakes of the last seven years. If Java doesn't correct its own mistakes, it's going to collapse under the accumulated weight of design decisions made years ago in a world that no longer exists; and eventually another language is going to come along that does to Java what Java did to C++.


The Apache Jakarta Project has posted a beta of version 4.1.8 of Tomcat, the servlet container/JSP engine for the Apache web server and the official reference implementation of the Servlet 2.3 API and Java Server Pages 1.2. Version 4.1.8 fixes some major bugs in Jasper.

Sunday, August 4, 2002

IBM's alphaWorks has released a Session Initiation Protocol Tool Kit for Java, a Java software development kit for the MBone Session Initiation Protocol.


The ECTF has released the Java Telephony API 1.4 specification.


Older news:

20022001200019991998
JanuaryJanuary, 2002January, 2001January, 2000January, 1999January, 1998
FebruaryFebruary, 2002February, 2001February, 2000February, 1999February, 1998
MarchMarch, 2002March, 2001March, 2000March, 1999March, 1998
April April, 2002April, 2001April, 2000April, 1999April, 1998
MayMay, 2002May, 2001May, 2000May, 1999May, 1998
June June, 2002June, 2001June, 2000June, 1999June, 1998
July July, 2002July, 2001July, 2000July, 1999July, 1998
August August, 2002August, 2001August, 2000August, 1999August, 1998
September September, 2002September, 2001September, 2000September, 1999September, 1998
October October, 2002October, 2001October, 2000October, 1999October, 1998
November November, 2002November, 2001November, 2000November, 1999November, 1998
December December, 2002December, 2001December, 2000December, 1999December, 1998

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

Copyright 2002 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified August 15, 2002