March 2001 Java News

Saturday, March 31, 2001

Unicode 3.1 has been released. The primary new feature of Unicode 3.1 is the addition of 44,946 new encoded characters. Together with the 49,194 already existing characters in Unicode 3.0, that comes to a grand total of 94,140 encoded characters in Unicode 3.1. The new characters cover several historic scripts, several sets of symbols, and a very large collection of additional CJK ideographs. Unicode 3.1 also features new character properties, and assignments of property values for the much expanded repertoire of characters.

Existing Java runtimes and class libraries are not prepared to handle Unicode 3.1. In particular the char data type makes the assumption that all code points can be represented in two bytes, which is now false. Scuttlebutt at the O'Reilly Conference on Enterprise Java last week was that Sun has not yet decided how to rectify the problem, and that whatever fix is eventually adopted will almost certainly not appear in Java 1.4. The current front-runner for a solution is to add a new char32 primitive data type that's equivalent to an int. Of course you'd also need a String32 type as well. And then you'd have to revise all the APIs that depend on String. Frankly, this is a huge mess, and may not be able to be truly fixed without breaking backward compatibility.

Version 1.1.3 of the open source BlueJ IDE has been released. BlueJ is a free Java development environment specifically aimed at learning and teaching Java and object-oriented programming. It is implemented in pure Java and runs on Java 2 platforms. BlueJ automatically generates and displays UML-style class diagrams, allows interactive object creation, interactive invocation of methods, and more.. This release fixes assorted bugs, lets you instantiate library classes via a menu item in the Tools menu, and can be installed on MacOS X.

OpenJNLP is an attempt to produce an open source implementation of the Java Network Launching Protocol. JNLP is the core technology that Sun uses in their Java Web Start. The initial version of OpenJNLP is 0.0 and lets you enter URLs and view information about the retrieved JNLP document.

Friday, March 30, 2001

IBM's alphaWorks has released an MPEG-4 Video CODEC for the Java Media Framework. The encoder is a native implementation for Windows only. The decoder is pure Java and can be used on any JMF capable platform.

Thursday, March 29, 2001

Sun's posted the final versions of the Java 2 MicroEdition (J2ME) Foundation Profile Specification 1.0 and J2ME Connected Device Configuration (CDC) Specification 1.0. As usual you'll have to click on an annoying and pointless licensing agreement drafted by Sun's attornies before you can actually read these specs.

I've been talking to various people from Sun about these sorts of issues at the O'Reilly Conference on Enterprise Java this week, and most of them seem to think that Sun will eventually get rid of this silliness and move to a true open source model. However nothing is certain, and it isn't going to happen tomorrow. Internally, Sun is very divided over these issues, and has been for a long time. Sun has always had a love/hate relationship with open source.

Simon Phipps, Sun's chief technology evangelist, keynoted the conference, and talked up open source very heavily. Unfortunately he persistently and repeatedly misused the term "open source" to refer to very closed technologies like Java. Then, to compound the problem, he denied having done so when an attendee called him on it during the question and answer period. Simon, you need to listen to a tape of your presentation. You're not saying what you think you're saying.

Wednesday, March 28, 2001

A baker's half dozen of new Java Specification Requests (JSRs) have moved into the Java Community Process (JCP) over the last few weeks. These include:

JSR 107, the JCACHE Java Temporary Caching API

Oracle's proposed a generic object cache API for J2EE in the javax.util.jcache package. Programs often use temporary data which is expensive to create, but has a lifetime over which it can be reused. For example, a servlet might need to do a lot of work to create a web page from multiple database queries, network connections, and expensive computations. However, the HTML page this produced might be able to be reused to respond to multiple requests. The JCACHE API would define semantics for temporary, in memory caching of all Java objects, regardless of type. Services provided would include object creation, shared access, spooling, invalidation, and consistency across virtual machines.

JSR 108, the Units Specification

The University Corporation for Atmospheric Research has submitted this JSR to propose a javax.units package that supports "programatic unit handling via an abstract Unit class, run-time checking and conversion, unit arithmetic, unit parsing and formatting, and a units database." The finished specification would include

  • Abstract classes with methods for the following unit operations:
    • Checking of unit compatibility
    • Conversion of numeric values
    • Arithmetic operations on units (scaling, multiplication, etc.)
  • Concrete classes implementing the standard types of units (base, supplementary, derived, etc.) and unit conversions.
  • An abstract class for parsing unit specifications in string form and a concrete implementation for parsing unit specifications in standard form (e.g. furlongs/fortnight).
  • A database of pre-defined units.

This strikes me as a very interesting idea in principal. Unit analysis was one of the simplest and most powerful techniques I learned in physics, and I've long felt that the lack of support for units has been a major flaw in virtually all programming languages from Fortran through C#.

Nonetheless I wonder if Java is really the right language in which to do this. While a class library for unit handling would certainly be useful, I'd be a lot more excited to see a language built around this idea in which all primitive numeric variables had units (or were explicitly dimensionless). Such a language would probably need to eliminate the distinction between primitive and object types to allow for new units to be attached to the base types. Does any uch language already exist?

JSR 109, Implementing Enterprise Web Services

IBM's submitted this very hazy proposal for defining "the initial programming model and runtime architecture for implementing web services in Java." The biggest problem is that it never actually defines what it is they mean by the very ambiguous phrase web service. Like application server, what qualifies as a web service depends most heavily on what the vendor is trying to sell you. The only section of the proposal that's a little concrete is this:

Specifically, we will focus this JSR on:

  • The programming model for implementing a web service. This may include defining a new server side base classes and frameworks, specifying new APIs, defining new concrete subclasses of JSP, Servlet or an existing EJB type like MessageBean. Any extensions would be analogous to HttpServlet extending generic Servlet or the approach the Enterprise MediaBeans takes in defining subtypes of EntityBeans.
  • The client side programming model for using web services from Java. This would be analogous to the client programming model that EJB defines. This would explain how to use the APIs defined in JSRs 67, 93 and 101 in tandem. Again, the intent is to minimize new concepts introduced.
  • The specification would state how existing concepts, like the EJB transaction model, security for Servlets, EJBs, or HttpSession State materialize in web services usage and implementation.
  • Defining how to extend the basic Servlet/HTTP model to include dispatching web services over FTP, e-mail, etc. Again, this ideally references the existing JSRs/Java standards and focuses on the programming model and parts needed to support web services.
  • Define the concrete model for developing and deploying a web service on top of J2EE.
JSR-000110 Java APIs for WDSL

IBM's also submitted this proposal to define "a standard set of APIs for representing and manipulating services described by WSDL (Web Services Description Language) documents. These APIs will define a way to construct and manipulate models of service descriptions. The service descriptions can be treated by a client in a uniform manner, regardless of the origin of the descriptions. That is, the descriptions can be built as a result of parsing a WSDL document, constructed programmatically by direct invocation of the APIs, built using information provided by a user via a command-line or graphical interface, or built using information retrieved from a network source."

JSR-000111 Java Service Framework

Hewlett Packard submitted this proposal to develop "a framework for hosting Java service components. It will define the methodology, APIs, and lifecycle for creating software services that can be hosted by a compliant services framework and assembled into Java server applications." Comments are due by April 2, 2001

JSR-000112 J2EE Connector Architecture 2.0

Sun's submitted this proposal to extend the J2EE Connector Architecture 1.0 with several new features including "asynchronous integration with enterprise information systems, Java Message Service (JMS) provider pluggability, Common Client Interface (CCI) metadata and XML support." Comments are due by April 2, 2001

JSR-000113 Java Speech API 2.0

This JSR proposes to revise the Java Speech API (JSAPI) 1.0 "to support the embedded space, particularly J2ME platforms, and will consider how to support other spaces such as the desktop and telephony with J2SE and JSEE platforms. The API will incorporate elements of the W3C Speech Interface Framework where applicable. The API will identify the 'core' packages required for minimal functionality as well as optional packages to support extended functionality." Comments are due by April 9, 2001

Tuesday, March 27, 2001

The Apache Jakarta Project has posted the second beta of Tomcat 3.2.2, the open source reference implemention of the Java Servlet API and Java Server Pages (JSP). This release contains several bug fixes mostly to improve compliance with the Servlet 2.2 and JSP 1.1 specifications.

The Apache Jakarta Project has also posted the second milestone release of Tomcat 3.3. Tomcat 3.3 also implements the Java Servlet API 2.2 and JSP 1.1. Version 3.3 focuses mostly on cleaning up the Tomcat code base. This release fixes various bugs found in Milestone 1. Be sure to read the "README" file found in Tomcat's "doc" directory to find out about the more important changes to Tomcat 3.3.

I've posted the updated notes from my tutorials yesterday at the O'Reilly Conference on Java:

These are essentially the same talks I gave a couple of weeks ago at XMLOne in Austin.

Sunday, March 25, 2001" will be going down later today (Sunday) for electrical work in the building where it's housed. If all goes well, it should come back up Monday night. will not be affected.

John Brewer has written a FAQ about Extreme Programming (XP). It currently covers the basic practices of XP, as well as some common objections to XP.

Saturday, March 24, 2001

I really hate to do this since for the last few months I've been working very hard to convince readers to switch from and to However, due to both planned power outages in the building where is hosted on Monday and a possible Northpoint shutdown next week, you should plan on using for your news for the next week. I'll keep both mirrors running if I can, but I may not be able to. Cafe con Leche should be unaffected. On the other hand, IBiblio/Metalab is going down later today (Saturday) for a planned upgrade from Solaris to Linux, which will take out both cafe au Lait and Cafe con Leche. God only knows how much that will break. It never rains but it pours, and all when I'm travelling of course.

I'm back from XMLOne London. Tomorrow I leave for the O'Reilly Java Conference in Santa Clara. Last year the O'Reilly conference had much better Internet connectivity than any other conference I've ever been at, so I should be able to maintain my Web sites while there. In London, I'm afraid I was stuck with email only access at best. I was unable to plug my laptop into either an Ethernet connection or a phone line. I did not have a local dialup that worked in London, unfortunately, and had to make use of very poorly designed Internet cafes, that didn't even have FTP. I was very disappointed that the conference did not provide a place for me to plug my laptop into so I could work while at the conference. In the future, I'm going to be cutting down on the conference appearances I make, and one criterion for choosing which ones to attend is going to be the Internet access they provide.

Verisign has been tricked into issuing two digital certificates for Microsoft to persons unknown who are not in fact affiliated in any way with Microsoft. These could be used to sign ActiveX controls, Word macros, acause it appeared to come from Microsoft. Many users have already told their computers to trust all code from Microsoft automatically. It isn't clear whether or not they'll automatically trust the code with the new certificates. Due to a poorly designed verification protocol which does not check each certiciate with the central authority (Verisign) before use, there is no way effective to revoke these certiciates. Microsoft will rev some software to detect them. However, the bottom line is that for the foreseeable future any code that claims to be signed by Microsoft is even less trustworthy than before.

Thursday, March 15, 2001

Sun's released version 1.0 of Java Web Start. This is what applets should have been. Quoting from the Sun hype (which is fairly accurate in this case), "With Java Web Start, you launch applications simply by clicking on a Web page link. If the application is not present on your computer, Java Web Start automatically downloads all necessary files. It then caches the files on your computer so the application is always ready to be relaunched anytime you want -- either from an icon on your desktop or from the browser link. And no matter which method you use to launch the application, the most current version of the application is always presented to you." "Java Web Start includes the security features of the Java 2 platform, so the integrity of your data and files is never compromised. In addition, Java Web Start technology enables you to use the latest Java 2 technology -- with any browser."

Wednesday, March 14, 2001

Sun's asking for input about the Java Community Process (JCP) through an online survey. Despite the funky URL this does appear to be an actual Sun survey, and is linked from their main JCP page. They probably just subcontracted the details out to somebody else. This is a good opportunity to let Sun know that you want a really open process that treats all participants equally. If you're not a member of the JCP, you get the question, "Why did you or the company or organization you work for elect NOT to join the JCP Program?" I selected "Other" and answered, "The process is too biased in favor of Sun. I am not willing to do Sun's work for free. I don't participate in closed source projects, and I will not sign nondisclosure agreements". You'll also get an opportunity to give your general opinion of several other standards bodies with varying levels of openness including Apache, ECMA, IETF, OASIS, OMG and the W3C.

On the question, "Taking into account all of your experience with the Java Community Process Program, what is your overall impression of the JCP Program? Please be as specific as possible.", I answered the following:

It's far too closed. Participation should be open on a non-discriminatory basis to anyone with the interest and knowledge to participate. At most participants should be asked to divulge any knowledge of patents and other intellectual property restrictions which may affect the development of a specification, so that participants in the process can make informed decisions about whether to use patented technology without being blind sided. Participants should not be required to turn over any such IP to Sun or anyone else.

Participants might also be asked to pledge on their personal honor that they will put the best interests of the community and the world ahead of their personal and corporate benefit. (This should be asked of Sun as well. To date, they have pretty clearly demonstrated that Sun's profits matter more than what's right for the Java community.)

Finally, the end product, including specification, implementation, and test cases should be placed in the public domain for all participants and non-participants to do with as they see fit.

The final free-form answer question was, "What could Sun do to make the JCP membership more valuable to you?", to which I responded:

Stop giving Sun a privileged place in the JCP. Let anyone who wants to participate participate without any restrictions. Conduct all development and discussion in a completely open fashion.
Tuesday, March 13, 2001

Nautilus 1.0, the open source user interface for Linux written by the people who invented the Macintosh, has been released. Unlike almost everyone working at Apple and Microsoft today (as well as most other Linux programmers) the Eazel team really understands how to develop an easy-to-use user interface. I haven't tried 1.0 yet, but the betas I've seen have astonished me. This is simply the most gorgeous and functional GUI I have ever seen. It leap frogs both Windows and the Mac. I suspect there are still a few rough edges, but these should be smoothed out in the next few months. I fully expect that this is the product that will break the Windows monopoly on the desktop. Within a year, I should be able to recommend Linux to my mother. Within five years, I expect open source OSs (Linux and otherwise) to occupy more than half the desktop and Internet appliance market.

RPMs are available for RedHat 6.x and 7.x. (Will that work on my Mandrake based Linux laptop?) Source is available for other distros.

Tuesday, March 13, 2001

Nautilus 1.0, the open source user interface for Linux written by the people who invented the Macintosh, has been released. Unlike almost everyone working at Apple and Microsoft today (as well as most other Linux programmers) the Eazel team really understands how to develop an easy-to-use user interface. I haven't tried 1.0 yet, but the betas I've seen have astonished me. This is simply the most gorgeous and functional GUI I have ever seen. It leap frogs both Windows and the Mac. I suspect there are still a few rough edges, but these should be smoothed out in the next few months. I fully expect that this is the product that will break the Windows monopoly on the desktop. Within a year, I should be able to recommend Linux to my mother. Within five years, I expect open source OSs (Linux and otherwise) to occupy more than half the desktop and Internet appliance market.

RPMs are available for RedHat 6.x and 7.x. (Will that work on my Mandrake based Linux laptop?) Source is available for other distros.

Monday, March 12, 2001

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

And as usual, there are also numerous bug fixes.

Sunday, March 11, 2001

Today I thought I'd check in on the Java Community Process. Since the last time, five new Java Specification Requests (JSRs) have been posted.

In addition, several proposed specifications have been updated including:

Saturday, March 10, 2001

IBM's alphaWorks has released version 4.7 of the J323 Engine, a Java API for controlling H.323 terminals. H.323 is an international standard for multimedia telephony over IP networks. This release fixes several bugs, adds an H.323 Gatekeeper (RAS server) for address registration and resolution that support H.323 / PSTN gateways, and bundles a utility for drawing message sequence charts from protocol traces.

Sun's posted a beta of the Java 3DFly Through on the Java Developer Connection (registration required). This is a demo application of Java 3D. Release 1.0 of this application can load scenes from a number of formats including obj, lws, 3ds, and flt. Once a scene has been loaded users can move around the scene using either the Fly, Hover or Drive behaviors. Users can monitor the frame rate of the application and can manipulate the scene in some simple ways. Sun Java 3D Fly Through requires Java 3D 1.2.1 Beta 2 or later.

Friday, March 9, 2001

I've returned from the XMLOne Conference in Austin. A good time was had by all, even if this is a town that's growing so fast they don't have time to build bridges across all the rivers, and instead just run the roads straight through the rivers. (I am not making this up. You really do have to drive through rivers in Austin. Maybe this is just a spring thing, and by the summer all the rivers have dried up. Nonetheless, a four-wheel drive truck with a really high wheel base would be a big help in this town. I grew up in New Orleans, where rivers also occasionally decided to cross the road; but when that happened we called it a hurricane and stayed home. In Austin, they just drive though the rivers! )

I stayed at the Renaissance Hotel, which managed to thoroughly annoy me, as hotels almost always do. This time at check-in they told me they didn't need a credit card because the conference was picking up my room tab, but then they wouldn't send me room service because they didn't have a credit card! On the other hand, their pay-per-view system was broken so I did get free movies at unpredictable times of day, though I couldn't choose what to watch or when. Mostly it seemed to alternate between Space Cowboys and pornography.

Like a lot of hotels in the Marriott family, this one did have better than average Internet access. I just plugged my laptop into the Ethernet port on a little box on the desk and for $9.95 a day I surfed at T1 speeds. I'm curious to know how this worked. I did not have to reconfigure my Windows 2000 laptop to use it, even though it was set up with a static IP address and static DNS addresses for my home network. It was specifically not configured to use DHCP. Perhaps there's some sort of gateway/proxy server in the box that automatically converts whatever IP address I'm using to the box's own address? It did look like there might be a security flaw in the box. You didn't actually have to agree to the $9.95 a day charge until you used your web browser. You could telnet away to your heart's content without being asked to pay for it.

Sun's posted a beta of the Java Message Service Tutorial. This tutorial introduces the JMS API to new users, with simple JMS client program examples and shows how to use the JMS API within the J2EE platform. The tutorial assumes that you are familiar with the Java programming language and that you have some experience with earlier versions of the J2EE platform.

Thursday, March 8, 2001

TacTix Software has released Mr. j, CSM, a Macintosh Control Strip Module for accessing MRJ-related information. It currently includes support for:

Wednesday, March 7, 2001

Slava Pestov's posted the second pre-release of jEdit 3.1. jEdit is a popular open source programmer's editor written in pure Java. New features in this version include a startup macro and an 'Expand All Folds' command as well as many bug fixes and minor improvements in the user interface.

Tuesday, March 6, 2001

The Java Apache project has released Ant 1.3, a popular open source build manager for Java.

Monday, March 5, 2001

Version 29.107 of the open source Jacob is now available. Jacob, the Java Commando Base, is a Java browser and project manager for Emacs. This version fixes assorted bugs and adds a Batch Wizard to create the initial source code for non GUI applications.

Sunday, March 4, 2001

I've posted the notes from my Java I/O presentation at the International Conference for Java Development here in New York Friday. This week I'm at XMLOne in Austin through Thursday. Consequently, updates may be a little spotty here until I get back on Friday.

Saturday, March 3, 2001

Sun's released version 1.0.1 of the Java Access Bridge for Windows. The Java Access Bridge makes it possible for a Windows based Assistive Technology to interact with the Java Accessibility API in Swing. This is primarily a bug fix release.

Sun's refreshed the beta implementation of the Java Advanced Imaging API 1.1. The software is available from the Java Developer Connection (registration required).

Friday, March 2, 2001

Struts is a new open source project sponsored by the Apache Software Foundation to produce a framework useful in building web applications with Java Servlet and JavaServer Pages (JSP) technology. Struts encourages application architectures based on the Model-View-Controller (MVC) design paradigm. Struts includes the following primary areas of functionality:

The current version is 1.0 beta 1.

IBM has released version 1.13 of their open source Jikes Java compiler.

Thursday, March 1, 2001

Sun's released version 1.3.0_2 of the Java2 Standard Edition (i.e. JDK 1.3) for Windows, Linux, and Solaris. This is a bug fix release.

You can also read the news from January, 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
Last Modified March 29, 2001