April 2001 Java News

Monday, April 30, 2001

Compaq, a company we haven't heard much from in the Java space, has released the Compaq Extended Static Checker for Java (ESC/Java), a tool for finding errors in Java programs using automatic theorem proving. ESC/Java detects at compile time some common programming errors that ordinarily are not detected until run time such as null dereference errors, array bounds errors, type cast errors, and race conditions.

ESC/Java includes an annotation language with which programmers can express design decisions using light-weight specifications. For example, one may give a method precondition that says that a parameter is not null, or declare an object invariant that says that an integer field lies between 0 and the length of some array field. ESC/Java uses the given annotations in reducing spurious warnings, and also checks that the program is consistent with the given annotations.

ESC/Java runs on Windows, Linux, Solaris, and Compaq Tru64 Unix. (I can't say I've ever heard of that flavor of Unix before. Is it what used to be called Ultrix?) It is currently free-beer with registration. Licensing details remain to be worked out.

Sunday, April 29, 2001

Sun's posted release candidate two of the Java Development Kit 1.3.1 on the Java Developer Connection (registration required) for Solaris, Windows, and X86 Linux. This is a bug fix release. JDK 1.4 is still in private beta and will probably be released to the public in beta form within the next couple of months, possibly at JavaOne.

Saturday, April 28, 2001

The expert group for JSR-000036 Java2 Micro Edition (J2ME) J2ME Connected Device Configuration (CDC) has released the final version of the J2ME CDC specification.

The expert group for JSR-000046 J2ME Foundation Profile has released the final version of the J2ME Foundation Profile specification.

Friday, April 27, 2001

Sun's posted the second proposed final draft of the Enterprise JavaBeans (EJB) 2.0 specification.

Thursday, April 26, 2001

I've noticed that in the last few weeks I've suddenly gotten a rash of questions from readers about remote method invocation (RMI), specifically about the examples in Chapter 18 of Java Network Programming, 2nd edition. A number of people are telling me they can't get the examples to work; and while RMI is tricky and difficult to get running, I've never seen people have this much trouble with it before. In my tests, all my examples still work so I'm wondering if maybe some people have upgraded to something I haven't upgraded to that breaks my examples somehow. Is anyone aware of anything about RMI that might have changed in the last couple of months? Any ideas?


As a cost cutting move, Sun is going to shut down all U.S. offices during the week of July 4th. Employees are being required to take vacation time if they want their usual paycheck for that week. Hewlett Packard is doing something similar, but in a slightly more flexible fashion that doesn't shut down the entire company at any one time, or require employees who've already used up their vacation for the year to go without pay.


Sun's launched Project JXTA. This is an open source effort to define a protocol for peer-to-peer applications for distributed computing. The O'Reilly Network has a several articles about this right now on both OpenP2P and ONJava.


Version 2.2.1 of jBoss, an open source Enterprise JavaBeans application server server has been released. This is a maintenance release with assorted bug fixes inlcuding patches for a few security holes.


Sun's released version 2.1.2 of the Java Card Development Kit basedd on the Java Card 2.1.1 specifications. This release adds a new off-card verifier, an executable implementation of the Java Card Runtime Environment, and an improved converter.

Wednesday, April 25, 2001

From the "this should have happened ten years ago" department, the Public Library of Science is asking scientists to sign a pledge to boycott all journals that refuse to provide free public online access to their articles within 6 months of publication. More than 15,000 have already signed. If you've published at all in the peer-reviwed literature, I encourage you to sign.

Traditionally, publication in the peer-reviewed scientific literature pretty-much requires authors to give up their copyrights to the publisher who then redistributes the articles at a fee for their profit. Sometimes the publishers are non-profits like the ACM. Other times they're for-profit companies like Elsevier. Regardless, they're increasingly dinosaurs that add less-and-less to the scientific process. Despite (or perhaps because of) the increasing number of scientists and scientific papers published each year, fewer people are actually reading the articles. Real scientific research is being distributed through preprints and the Internet, not in the journals. (Exactly how true this is varies somewhat from field-to-field. It's completely true in physics and astronomy, less so in medicine and biology.)

Peer-review is important, but this can easily take place in the context of a free, electronic system. And there's some archival benefit to shipping dead trees to libraries around the world, though libraries that are truly committed to archiving for the next millenium can easily print out the electronic journals. None of this should be allowed to stand in the way of a more free, open, and fair scientific record.


Ximian's released their Gnome 1.4 distro including the Nautilus 1.0 file manager and Mozilla. Numerous people responded to last Saturday's request of how to figure out what version of Gnome and X I was already running. Ineterstingly, not a single one of you offered the same solution! It's like standards: the best thing about them is that they're so many you can choose the one you like. :-) It turns out my laptop is currently running XFree86 3.3.6 and Gnome 1.2.

I'd also like to thank everyone who wrote in to tell me that my laptop was probably set at too high a refresh rate for the projector at SDExpo. I've cranked it down to 56Hz, and we'll see if that works better at the next conference. (Most people suggested 60Hz but that doesn't seem to be an option for my graphics card.)

Tuesday, April 24, 2001

Apple's released QuickTime 5 for Windows and the Mac. This release adds a new digital video CODEC "for enhanced speed and quality"; gives content creators the ability to design custom interfaces for the delivery of their QuickTime content; adds a component downloader for integrating Apple's own enhancements as well as third-party plug-ins on the fly. QuickTime 5 supports MPEG-1, Flash 4 and QuickTime's own Cubic Virtual Reality technology.


Sun's released Java 3D 1.2.1_01 for Windows and Sparc Solaris. This release fixes about eight bugs in version 1.2.1.


Bare Bones Software has released version 6.1.1 of BBEdit to fix a few bugs in BBEdit 6.1 released yesterday.

Monday, April 23, 2001

Bare Bones Software has released version 6.1 of BBEdit, the $119 payware Macintosh programmer's editor I use to produce this site. Version 6.1 is available as a native MacOS X application. Other new features include:

Upgrades from 5.x and earlier are $39. Upgrades from 6.0 are free.

Saturday, April 21, 2001

At the SDExpo conference last week I tried make sopme of my presentations using Linux with Gnome and Mozilla 0.8.1. My laptop (a Dell Latitude LS) could talk to the projection system as long as I was only using the command line. However, as soon as I launched X the picture vanished from the big screen even though I could see it on my laptop. Does anyone have any ideas why I might be able to use a second monitor (in effect) without X but not with X? Is this is a driver issue with the video card (NeoMagic 128 I think)? and is there anything I can do about it?

On a possibly related matter: is there an easy way to tell which versions of XFree86 and Gnome I've got installed? Or other components for that matter? If you have any ideas about any of this, please send email to me at elharo@ibiblio.org. Thanks.

Friday, April 20, 2001

www.cafeaulait.org is up and running again on a temporary host. I have no idea when my SDSL line is likely to get fixed so I can move it back to its permanent host. Nonetheless, given the troubles IBiblio's been having lately, it's probably best to use www.cafeaulait.org for the time being. I realy hate all this moving around, and I will get it fixed just as soon as I possibly can.


Sun's posted an alpha of version 1.3 of the Java3D API Specification.


Cogent Logic Corporation has released a JNDI for Windows, a Java-based Java Naming and Directory Interface (JNDI) Service Provider for Windows Registries. Pricing is $299 Canadian per developer.

Thursday, April 19, 2001

Version 0.1 of OpenJNLP is now available. The major new feature in this release is the ability to launch Java Network Launching Protocol (JNLP) applications. Only applications can be launched (not applets) and all launched apps run in the same virtual machine.


Mandrake Linux 8.0 has been released. New versions of various important things include kernel 2.4.3, KDE 2.1.1, GNOME 1.4, Nautilus 1.0, Evolution 0.9, XFree86 4.0.3, and RPM 4.0. So far Mandrake is the only distro that was fully able to install on my Dell Latitude LS laptop. However, please get it from somewhere other than IBiblio. We're already getting hammered by the RedHat 7.1 release and have gone down several times in the last couple of days.


Version 2.0.0 of JXUnit, a testing facility which builds on jxquick and junit, has been released XML files are used for both test scripting and test data. Installation has been enormously simplified in version 2. In addition, the main method can be invoked from a test script, and absolute file names are better supported.


The Jakarta Apache Project has released log4j version 1.1b2, the first release candidate of this logging package for Java. This is primarily a bug fix release.

IBM'a alphaWorks has also updated their Logging Toolkit for Java with a FileHandler that changes log files on a daily basis, a DataStore that operates from a single Properties file, and a few other minor enhancements and bug fixes.

Wednesday, April 18, 2001

Sun has submitted a Java Specification Request (JSR) for an Application Isolation API Specification According to the proposal,

This API provides a uniform mechanism for managing Java application life cycles that are isolated from each other, at least with respect to object reachability, but that can potentially share underlying implementation resources. It provides a means of deploying new Java implementation features that enable and enhance scalability while providing an alternative to ad hoc control schemes.

The API is intended to dictate implementation as little as possible. Different implementations may provide different levels of isolation. All conformant implementations must guarantee at least isolation of Java state (i.e. logically disjoint heap spaces, per application mutable static fields, etc). Additional forms of isolation possible include separation of JNI state and separation of process state. Current Java implementations that provide execution of applications in separate virtual machine instances can be wrapped with the Isolation API by adding only a few mechanisms for control. Other implementations might arrange for Java isolation in combination with high degrees of class, bytecode, and native code sharing within the same VM or between multiple VMs. Research by Sun and IBM has demonstrated these additional forms of isolation and sharing (see section 3.1)

Selection of implementation specific features within the context of this API will be via a combination of vendor specific and standard command line arguments and properties. There will be a way to detect and select specific features so API users know what they're getting. Additional interfaces may be required to control implementation features related to isolation and sharing, but these are outside the scope of this API.

The API consists of the Isolate class, which can be thought of as a handle to an isolated computation, and a few new exception classes. Isolate object instantiation corresponds to preparation of an isolated computation (an application). Methods for starting, suspending, resuming, and terminating the isolated computation are present, as well as methods for determining state, waiting for termination, and determining familial relationships of computations.

Comments are due by April 30, 2001.


Siemens ICM has submitted a Java Specification Request (JSR) for Wireless Telephony Communications APIs to the Java Community Process. APIs might be provided for sending and receiving text messages, application push, application trigger, and usage as data bearer. The WTCA is designed to run on Java2 MicroEdition (J2ME), the VM used in cell phones. It will address

Comments are due by April 30.

Tuesday, April 17, 2001

David Stoutamire of Sun reported that the slower Fast Fourier Transforms in Java 1.3.1, first noted by J.P.Lewis and reported here over the last couple of days, are likely a result of changes to the sin() and cos() methods in the new version. Prior to 1.3.1 the X86 native SIN and COS instructions were used. However, it turns out that those instructions don't behave precisely like Java requires. Consequently Java now does sine and cosine calculations itself. This sort of thing has been a perennial problem with Java in high performance numerical and scientific computing, especially when floating point numbers are involved. Java often trades performance for cross-architecture consistency.


Red Hat 7.1 has been released. That may explain why IBiblio, one of the major Linux mirror sites, is down as I write this and has been for the last twelve hours or so. Of course by the time you read this it will be up again (or you wouldn't be able to read it, natch).

This is the first Red Hat release with the 2.4 kernel and USB support. They claim they turned off all the extra, insecure junk they used to turn on by default. I hope that's true, though past experience makes me skeptical. I wish the distro vendors would stop competing based on how much crap they can load into a machine and come out with a really simple, base installation that installs the minimum of functionality needed to get a machine up and running, and makes the rest easily available on as as-requested basis. Really, is there any reason my laptop should be running Apache and PostgreSQL?


IBM's alphaWorks has released AIX j3D, a Java API that integrates with AIX's native j3D three-dimensional Scene Graph API. This is for AIX only, at least for now.

Monday, April 16, 2001

NOAA has released the Scientific Graphics Toolkit 2.0 (sgt). Features include:


Slava Pestov's posted the fifth beta of jEdit 3.1, an open source programmer's editor written in Java. New features include Reverse search, Ada95 syntax highlighting, BCEL Java disassembler syntax highlighting, and a tree of available documentation in the help viewer.


Kevin Herrboldt's released OpenJNLP v0.0.1. It improves the user interface and lets you view the source of a launched Java Network Launching Protocol (JNLP) file.


The Proposed Final Draft for JSR-000058 Java 2 Platform, Enterprise Edition 1.3 Specification has been posted in the Java Community Process.

The second Proposed Final Draft Specification for JSR-000016 J2EE Connector Architecture is now available.

Several new Java Specification Requests (JSRs) have been posted to the Java Community Process, including:

JSR-000118 Mobile Information Device Next Generation
Comments are due by April 23rd.
JSR-000119 JAIN SPA Integrity Management
This is the Java specification of the Parlay API Version 2.1 Integrity Management interface (part of the Client application view). If you don't work for a phone company, you probably don't care about this. Comments are due by April 23rd.

The Maintenance Review Draft Specification of JSR-000056 Java Network Launching Protocol is now available for Maintenance Review. Comments are due by May 7.

Finally, the Java 2 Micro Edition (J2ME) Executive Committee approved development of JSR-000113 Java Speech API 2.0 by a 16-0 vote.

Sunday, April 15, 2001

IBM's alphaWorks has released an MPEG-4 Video CODEC for the Java Media Framework (JMF). The encoder is native code for Windows, but the decoder should run on any java platofrm that supports JMF.


J.P. Lewis wrote in to comment on the JDK 1.3.1 beta mentioned here Friday. According to Lewis on Linux,

The jdk131_rc1 release notes mention fixing bug 4242172, a performance problem in array-intensive numerical calculation in the hotspot server VM.

But, I have an array-intensive benchmark that is roughly twice as *slow* as under 1.3.0! People with numerical code might want to test their performance before switching to 1.3.1.

The benchmark in question is a one dimensional fast Fourier transform.


A public review draft of JSR 72, the Generic Security Services API Specification 0.1 has been posted in the Java Community process.

Saturday, April 14, 2001

Www.cafeaulait.org is up again, at least sporadically. However, it's being served by a 56K modem with only a 33Kbps upload capability so I'd much appreciate it if you could continue to use http://www.ibiblio.org/javafaq/ until I get it moved onto the other side of my dialup connection, probably early next week. In fact, if you came to http://www.cafeaulait.org/ you've probably already been auto-redirected to http://www.ibiblio.org/javafaq/.


Claude Pany's re-released Scriptmeal Kit, a means of invoking AppleScript 'scpt' resources within Macintosh Runtime for Java (MRJ) applications.

Friday, April 13, 2001

Sun's posted release candidate one of the Java Development Kit 1.3.1 on the Java Developer Connection (registration required) for Solaris, Windows, and X86 Linux. This is a bug fix release. JDK 1.4 is still in private beta and will probably be released to the public in beta form within the next couple of months, possibly at JavaOne.

Speaking of JavaOne, I'm often asked if I'll be attending. The short answer is no, I've been travelling way too much lately, and I don't generally speak at or attend out-of-town conferences that aren't at a minimum willing to cover my expenses. However, at SDWest last week I also heard some more disturbing information from people who are planning to speak at JavaOne. I don't know whether or not this is a new thing, but Sun is now requiring all speakers to submit their slides in advance so they can be vetted by Sun's lawyers before they'll accept a talk. At most conferences an abstract is all that's required, but that's not too unusual. What is unusual is that Sun will place the submitted slides on PCs in the presentation room, and will not allow speakers to hook up their own laptops. They are insisting that no slide be used that they have not had a chance to review and approve.

I don't know whether Sun is doing this because they want to make sure that all speakers adhere to the official Sun party line, because their lawyers are hyperactive and excessively paranoid, or simply because they want to have minimum switchover time between different speakers. Regardless, The potential for censorship is obvious. JavaOne is becoming excessively bureaucratic and way too focused on just the Sun party line. If I had been planning on speaking, I would have refused to adhere to these rules. And if you're planning on attending, it may be worth asking yourself if it's really worth the expense just to hear Sun propaganda.

Thursday, April 12, 2001

The Jakarta Commons project has posted the first beta of Cactus 1.0 (formerly known as J2EEUnit). Cactus is a testing tool for unit-testing server-side Java code that integrates easily with JUnit. Cactus enables developers to test code in a servlet/JSP environment by providing access to common servlet/JSP objects such as HttpServletRequest, HttpServletResponse, PageContext and JspWriter. Cactus was donated to the Apache Software Foundation by Vincent Massol.


The PropsPopper Kit provides support for visualizing the Macintosh Runtime for Java (MRJ) System properties within a Java program.

Wednesday, April 11, 2001

www.cafeaulait.org is temporarily down as a result of Northpoint's demise. It should be back online early next week. In the meantime this site, http://www.ibiblio.org/javafaq, is still going strong.


Bill la Forge has released version 1.2 of JXUnit, an open source unit testing tool based on XML. JXUnit takes a data-centric approach to testing, using XML to define both test data and a test script. New features added in this release include support for multiple test case files to be run against the same test and a RegularExpression-based subst command for manipulation of test property values, and improved documentation.


The Jakarta Apache Project has posted Tomcat 3.2.2 beta 3. Beta 3 contains a fix for a security hole that has been identified in the Tomcat 3.2.2 beta 1 and beta 2 releases. The security hole had the potential to expose directory listings and file contents outside a web application. The problem first appeared in Tomcat 3.2.2 beta 1 and does not exist in Tomcat 3.2.1. If you are using any Tomcat 3.2.2 beta release, you should upgrade to Beta 3 as soon as possible.

Saturday, April 7, 2001

Sun's released version 1.1 of the Java API for XML Processing (JAXP) specification. This essentially describes DOM2 core, SAX2, TRAX, and a few factory classes for finding a parser and bootstrapping new documents. This will probably become a standard part of the Java class library in the near future, at least if the second news item today can be relied on.

Sun's also posted the Proposed Final Draft Specification for: JSR 59 J2SE Merlin Release Contents. This document describes the planned packages for JDK 1.4, which will probably be released in public beta within the next couple of months. (It's in private beta already.) I'm afraid I don't have time to summarize this right now, but it does promise better Unicode support, JAXP, asynchronous I/O and lots of other long-requested features.

Friday, April 6, 2001

I'm leaving tomorrow (Saturday) for the Software Development West show in San Jose. I should have at least occasional Internet access while I'm at the show, but updates may still be a little slow for the next week. And I'm still worried about www.cafeaulait.org going down while I'm away (It's served over a Northpoint SDSL line), so if you can't reach www.cafeaulait.org, please try http://www.ibiblio.org/javafaq/ instead. If my SDSL line survives another week, I should be able to switch my web site over to a different provider without a significant interruption in service. Keep your fingers crossed.


IBM's alphaWorks has updated their DirectDOM Developer Kit. DirectDOM technology allows a Java developer to build applet GUIs using the browser UI instead of Swing or the AWT. A Linux version (Red Hat 7; IBM Java 2, version 1.3) is included for the first time. kits have been updated.


AlphaWorks has also released a beta Jinsight JInsight 2.1 for AIX and Windows. JInsight is a "visual tool for optimizing and understanding Java programs." Version 2.1 provides tracing for Java 2 and WebSphere 3.5 environments, and provides a new Jinsight 2.1 visualizer to read the new traces.


Sun's posted the second Proposed Final Draft of the J2EE Connector 1.0 Specification.

Thursday, April 5, 2001

Three new Java Specification Requests (JSRs) have been submitted to the Java Community Process:

JSR 115 Java Authorization Service Provider Contract

Sun proposed this specification in order to define new java.security.Permission classes in the javax.security.jacc package "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. The specification will define the semantics of policy providers that employ the new permission classes to address the authorization requirements of J2EE, including the following:

  • the definition of roles as permission collections
  • the granting to principals of permission collections corresponding to roles
  • the determination of whether a principal has been granted the permissions of a role (i.e.isCallerInRole)
  • the definition of identifier to role mappings that bind application embedded identifiers to permission collections corresponding to roles

The specification will define the installation and configuration of authorization providers for use by containers. The specification will define the interfaces that a provider must make available to allow container deployment tools to create and manage permission collections corresponding to roles. " Comments are due by April 16, 2001.

JSR 116 SIP Servlet API

The Session Initiation Protocol (SIP) is used to establish and manage multimedia IP sessions. DynmaicSoft submitted this proposal to develop a high-level extension API for SIP servers that enables SIP applications to be deployed and managed based on the servlet model. According to the JSR, "The proposed API enables SIP servers to be augmented with Java extension code which can be deployed and managed as a unit. The expert group will define an actual API as well as XML based deployment descriptors and related file formats. The SIP Servlet API is similar in nature to the HTTP Servlet API, but there are some important differences. HTTP servlets run only on origin servers. In SIP, proxy servers play a much bigger role, as do application servers which initiate requests. As such, SIP servlets must be able to run on these other server types." Comments are due by April 16, 2001.

JSR 117 J2EE APIs for Continuous Availability
This specification defines the programming model and runtime support for implementing J2EE applications that need 99.999% (five nines) or better uptime. More specifically, areas to be investigated include:

  • Availability-related functionality that the J2EE platform containers should perform transparently to application components such as fail-over
  • Field-Replaceable Units (FRU). "The J2EE platform uses the Enterprise Application Archive (EAR) file as the format for software distribution. This specification defines the application-packaging conventions that are necessary for using EAR files as self-describing Field-Replaceable Units. The support for FRUs might require an XML deployment descriptor as a supplement to the standard J2EE descriptors."
  • The ability to upgrade an application to a new version of its software without disruption in the service offered by the application to its users.
  • Application-specific error handling policies.

  • Conventions for using the Logging API (JSR 47) in the J2EE containers and in the application code to facilitate application tracing in order to diagnose the cause of an application's abnormal behavior.
  • Application programming model guidelines for applications requiring continuous availability.

Comments are due by April 16, 2001.


Sun's posted proposed final draft 3 of the Java2 Enterprise Edition (J2EE) Platform Specification in PDF and PostScript.

Wednesday, April 4, 2001

Idoox has released WASP (Web Application and Services Platform), a free Java tool to support development, testing and deployment of SOAP Web Services. It consists of Web Services Runtime pluggable to any Servlet API compliant engine, visual (Sun Forte for Java/NetBeans extensions) and command-line tools. WASP Runtime features:

WASP Tools features:


The Apache Jakarta Project has posted Tomcat 4.0-beta-3. This beta fixes a further security vulnerability related to potentially exposing JSP source that was only partially corrected in beta 2. Anyone using versions of Tomcat 4.0 earlier than the beta 3 release (or the nightly build dated 20010403 or later) is strongly encouraged to immediately update to the beta 3 release.

I hadn't gotten around to announcing Tomcat 4.0 beta 2 yet, but new features introduced in that version of the Tomcat servlet container include:


Slava Pestov's posted jEdit 3.1pre4, an open source programmer's editor written in Java. New features in this release include:

And as usual, there are also numerous bug fixes.

Sun's published the second edition of the Java Look and Feel Design Guidelines. It'a available both online and in print.

Tuesday, April 3, 2001

Sun's released the Java Advanced Imaging API 1.1 FCS.

Sun's posted the second proposed final draft of the JDBC 3.0 Specification.


IBM's alphaWorks has released RBManager 0.3.1a, a tool for managing resource bundles. Version 0.3.1a adds the ability to import and export resource bundles in a variety of formats, search through resource bundles, improved compliance to internationalization standards, and a code scanning feature in RBReporter.


Ben Spink's released CrushFTP 2.1.4, a $20 shareware FTP server written in Java. This release fixes a couple of bugs.

Monday, April 2, 2001

IBM's alphaWorks has updated HyperJ. HyperJ "supports advanced, 'multi-dimensional' separation and integration of concerns in standard Java software" (whatever that means). This release features simplified control files, support for different bracketing of the same method for different callsites, and some additional composition relationships.

Sunday, April 1, 2001

IBM's alphaWorks has updated Regex for Java, a regular expression class library that supports almost all features of Perl5's regular expression language including the subset needed for W3C XML Schema Language regular expressions. This release adds a new user-defined named character class, avoids a VisualAge for Java importing problem, and fixes a few bugs.


Sun's posted an early access release of Java Web Start 1.0.1 on the Java Developer Connection (registration required). They've also posted an early access release of the underlying Java Network Launching Protocol (JNLP) Developer's Pack 1.0.1.

You can also read the news from March, February, January, December, November, October, September, August, July, June or May if you like.


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

Copyright 2001 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified April 14, 2001