March, 2005 Java News

Thursday, March 31, 2005

NEW! Jayasoft has released Ivy 0.8, a free Java based dependency manager, that features transitive dependencies, Ant integration, Maven compatibility, and continuous integration. Personally I'm trying to eliminate dependencies from my code. I just spent quite a bit of effort to remove XOM's dependency on IBM's ICU, and to bundle Jaxen directly into the main JAR file rather than distributing it separately. In fact, in Java 1.4 and later only the main XOM JAR archive should be required for almost all uses. (XOMTestCase still requires junit.jar. However, if you're using that class you probably already have JUnit in your classpath.) The fewer dependencies a code base has, the easier it is to install and deploy.

Nathan Fiedler has released version 2.34 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. Version 2.34 improves French localization, better supports JSP and Nice, and fixes bugs. JSwat is published under the GPL.

Wednesday, March 30, 2005

Cenqua has released FishEye 1.0, a $999 payware tool for viewing CVS activity. I've been using FishEye lately as part of my work with the Jaxen Project. As well as drawing graphs of activity, it lets you see who's committing what when to CVS, what individual committers have been up to, what's going on in different branches, what's happened to particular files, and so forth. It automatically wraps up tarballs and zip files of the current code base. FishEye's not essential, and I doubt I'd pay for it if Cenqua hadn't given Codehaus a free copy. XOM doesn't use it, and I haven't missed it there. However, it is a nice tool that's a definite improvement over standard CVS and ViewCVS.

I will note one problem with FishEye: its search interface is decidely non-RESTful and violates the web architecture in a major way. FishEye has a very sophisticated, very powerful SQL-like language for searching the repository. (Actually, that's another problem. The query language is more sophisticated than anyone is likely to actually use. Google and other web search engines have proven that people want smarter engines, not smarter languages.) Complex queries written in this powerful language are submitted via POST rather than GET. The result is that queries can't be bookmarked, e-mailed to people, linked to, or otherwise saved. At Software Development Expo a couple of weeks ago, one of the Cenqua folks told me all about some complicated new system they're inventing for a future release that will allow users to save their searches. Guys: you're doing way too much work here. Just switch from POST to GET, and the query saving comes for free. That's what bookmarks are for. Why reinvent the wheel? Let the browser do the work for you.

Sebastiano Vigna has released version 4.4.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. However, they also contain type-specific methods. For instance, the CharList class has not only the usual add(Object o) method but also an add(char c) method. Version 4.4.1 adds some extra methods and constructors. fastUtil is published under the GNU Lesser General Public License (LGPL).

JAPISoft has released JSyntaxColor 1.2.8, a €159 Java library for coloring user text input in real time. JSyntaxColor provides samples for Java, SQL, and Formula syntax, and can be customized for other languages. This is a bug fix release.

Tuesday, March 29, 2005

Bare Bones Software has released version 8.1 of BBEdit, my preferred text editor on the Mac. The major new feature is support for the Subversion source code control system. BBEdit is $179 payware. Upgrades from 8.0 are free. They're $49 for 7.0 owners and $59 for owners of earlier versions. Mac OS X 10.3.5 or later is required.

Gaudenz Alder has released JGraph 5.4.4, a free-as-in-speech (Mozilla Public License/LGPL) 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 fixes a few bugs and adds some small features and API.

Monday, March 28, 2005

NEW! Ewan Mellor has released the CHIP Code Highlighter 2.5.2, a syntax colorer written in PHP and designed to be used on Web servers. It supports C, C++, Java, Lisp, Python, PHP, HTML, and JavaScript code. CHIP is released under an MIT/X license.

The Jakarta Apache Project has posted version 5.5.9 of the Tomcat open source servlet container and the official reference implementation of the Java Servlet API 2.4 and Java Server Pages (JSP) 2.0. The version numbering is funky but this is basicaly an alpha release that mostly fixes bugs. "Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires configuration to run on J2SE 1.4....In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling JSP pages. This means you no longer need to have the complete Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment (JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the binary Tomcat distributions. Tomcat can also be configured to use the compiler from the JDK to compile JSPs, or any other Java compiler supported by Apache Ant."

YourKit, LLC has released YourKit Java Profiler 4.0.3, a 295€ payware tool for detecting memory leaks and memory consumption bottlenecks. It features memory leak detection, an object heap browser, JUnit integration, IntelliJ IDEA, Borland JBuilder, and Eclipse 3.1 integration. Version 4.0.3 is a bug fix release.

Sunday, March 27, 2005

Filip Pizlo has commenced work on the Profiler That Doesn't Suck, a free-as-in-speech (GPL) profiler for Java. It has the useful ability to measure the memory usage of individual objects. Current version is 0.0.3.

Diomidis Spinellis has released UMLGraph 3.1, an open source (BSD license) tool for declaratively specifying UML diagrams. UMLGraph uses text files that look vaguely like source code to specify how UML class and sequence diagrams are drawn. A doclet converts this into a Graphviz diagram that can be easily converted to Postscript, GIF, SVG, JPEG, etc. This release adds support for Java 1.5 enumerations.

Saturday, March 26, 2005

The Eclipse Project has released version 3.0.2 of their namesake integrated development environment. This is a bug fix release. The automatic update seems to be broken. (Error Mar 26, 2005 09:01:48.883 Unable to complete action for feature "Eclipse Project SDK" due to errors. org.eclipse.core.runtime.CoreException[0]: org.eclipse.core.runtime.CoreException[0]: so you'll have to download the whole thing and reinstall. Unfortunately, Eclipse doesn't seem to have yet learned that well-behaved applications don't store user data in the application itself. After reinstalling, Eclipse forgets various settings, most importantly the location of the project work directory. Lately Eclipse has been crashing a lot when I try to set break points inside a relatively large class with a large lookup table. Eclipse can't refactor inside this class either. I hoped this release would fix that, but apparently not. It's still showing internal errors when I set break points.

Sebastien Vauclair has posted the first beta of Extensible Java Profiler 2.2, a free-as-in-speech (GPL) Java Virtual Machine Profiler Interface (JVMPI) based profiler for Java. About: Extensible Java Profiler (EJP) is a profiling tool for Java with a scalable and extensible architecture. Java 1.4 or later is required.

SolarMetric Inc. has released Kodo JDO 3.3.0, an implementation of Sun's Java Data Objects (JDO) 1.0 specification plus "preview features of the upcoming JDO 2.0 specification." JDO permits Java objects to be transparently stored in relational databases. Version 3.3 adds support for Apache Derby and JMX 1.2. It also offers finer grained control over timed cache invalidation. Kodo JDO Standard Edition sells for $1100 per developer license. Kodo JDO Enterprise Edition which adds J2EE application server support sells for $4000 per developer license.

Friday, March 25, 2005

Tom Copeland has released PMD 3.0, an open source tool for automatically checking Java code for various classes of bugs. Version 3.0 adds support for Java 1.5 and adds seventeen new rules including:

My efforts to test this release against XOM are failing with OutOfMemoryErrors. I suspect PMD is getting tripped up by some very large switch statements I've recently added that I intend to remove before 1.1 ships. I also tried it on Jaxen. It found a few minor issues, but no real bugs.

Novell has released Mono 1.1.5, an open source implementation of Microsoft's .NET framework that runs on Linux, Unix, Mac OS X, and Windows. Mono includes an ECMA Common Language Infrastructure (CLI) runtime engine, a cross platform IKVM Java runtime engine, a C# 1.0 compiler, class libraries implementing the .NET 1.1 profile, the Gtk# 1.0 GUI programming toolkit, GNU Classpath for the CLI and a Visual Basic runtime. Version 1.1.5 adds support for nullable types and fixed size buffers.

Excelsior has released JET 3.7, a Java virtual machine for Linux and Windows that uses a combination of a traditional machine code compiler and just-in-time compilation from byte code. Version 3.7 adds support for Java 1.5. JET costs start at $150 and run up to $3375 depending on which version and how much support you want. There's a sale running until April 15. Support is available by e-mail and Web site only.

Thursday, March 24, 2005

Sun's posted the early draft review of JSR-250 Common Annotations for the Java™ Platform. According to the draft,

With the addition of JSR 175 (A Metadata Facility for the JavaTM Programming Language) in the Java platform we envision that various technologies will use annotations to enable a declarative style of programming. It would be unfortunate if these technologies each independently defined their own annotations for common concepts. It would be especially valuable to have consistency within the J2EE 5.0 component technologies, but it will also be valuable to allow consistency between J2EE and J2SE.

It is the intention of this Specification to define a small set of common annotations that will be available for use within other Specifications. It is hoped that this will help to avoid unnecessary redundancy or duplication between annotations defined in different JSRs. This would allow us to have the common annotations all in one place and let the technologies refer to this specification rather than have them specified in multiple specifications. This way all technologies can use the same version of the annotations and there will be consistency in the annotations used across the platforms.

Java 1.5 or later will be required for this work. Comments are due by April 22.

Wednesday, March 23, 2005

The Omni Group has released version 3.2 of OmniGraffle and OmniGraffle Pro, Mac OS X based drawing and diagramming tools. OmniGraffle is my tool of choice for drawing UML diagrams on the rare occasions when I need to do that. Version 3.2 adds support for importing OmniOutliner 3 files. OmniGraffle 3.2 is $69.95. The pro version is $119.90. Mac OS X 10.2 or later is required.

Tuesday, March 22, 2005

YourKit, LLC has released YourKit Java Profiler 4.0.1, a 295€ payware tool for detecting memory leaks and memory consumption bottlenecks. It features memory leak detection, an object heap browser, JUnit integration, IntelliJ IDEA, Borland JBuilder, and Eclipse 3.1 integration. It's not immediately clear what's new in 4.0.1, but coming rapidly on the heels of 4.0 a few weeks ago, I'd assume it's a bug fix release.

Gaudenz Alder has released JGraph 5.4.3, a free-as-in-speech (Mozilla Public License/LGPL) 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 fixes various bugs and improves performance.

Jim Menard has posted version 0.9.2 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 fixes bugs and improves the menus. DataVision is published under an Apache license.

The Gnu Project has released version 0.14 of GNU Classpath, an incomplete free implementation of the core Java class libraries. This release fills in numerous holes in support across the core libraries including ImageIO, NIO, and Swing. Since this is a clean room project, it doens't always line up exactly with any particular Java version, but it's roughly at the level of Java 1.4 with a few missing pieces. GNU Classpath is published under the GPL with library exception.

Enterprise Distributed Technologies has released edtFTPj 1.4.7, a free (LGPL) FTP library for Java. A $1999 payware version adds support for FTP over SSL. 1.4.7 adds support for the cdup command and deprecates all constructors except the noargs constructor in favor of setter methods.

Dan Creswell has released version 2.1.19 of the Blitz JavaSpaces Server Edition and version 1.0.7 of the pure Java edition. Blitz is an open source (BSD license) implementation of JavaSpaces that is Jini 2.0 enabled and implements smart indexing, tuneable persistence, and active/passive lease cleanup. This release adds per Entry-type constraints, FIFO ordered matching, and entry browsing in the dashboard.

Monday, March 21, 2005

Someone in London once asked me if London was my "second city". I responded, "No, San Jose is." At the end of last week's trip to Santa Clara for Software Development Expo 2005, I had dinner with a new speaker who hadn't been to the Valley before, and hadn't really seen anything outside the hotel and convention center. That inspired me to write up a few notes about the whole Santa Clara Convention Center/Westin Hotel complex and surrounding area, a place where I've spent way too much time over the last decade or so.

Sunday, March 20, 2005

I've updated the conferences page.

Saturday, March 19, 2005

Etienne Gagnon has released version 1.11.1 of SableVM, a Java bytecode interpreter (that is, a virtual machine) written in 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 available for GNU/Linux, Solaris, and FreeBSD. Version 1.11.1 is basically a bug fix release. SableVM is published under the GNU Lesser General Public License (LGPL). The developers claim it's written in portable C, but in my experience it's unlikely to be able to be built on anything except the latest and greatest Linux and possibly BSD. It will not build on Mac OS X or older versions of Linux:

checking for poptGetContext in -lpopt... no
***ERROR: libpopt is missing


On the one hand code reuse is good, and you don't want to reinvent the wheel. On the other hand dependencies are bad. Depending on libraries that are not likely to be available, or not likely to be available in the right version, severely hinders an application. (By the way, the SableVM developers list noticed my last post about this, and I got a lot of offers to help me build it, though most of them implied that it was Apple's fault that the libraries they needed weren't installed on the Mac by default. I don't think anyone noticed that I had also tried to install SableVM on Linux and failed there too due to unresolved library dependencies.) Ideally you want an application to require no external libraries, and to run on as old a version of the operating system as well. In XOM, I'm currently going to some effort to remove dependence on all external libraries so it will be possible to run it out of the box in Java 1.4 and later with only a single JAR file. It's not easy to do, and I may not succeed, but it's worth trying.

One interesting product that does this right is Cenqua's Clover code coverage tool. That tool depends on a lot of third party jars. However, rather than just bundling the JARs and requiring CLASSPATHs to be set up to include them all, they repackaged the JARs into their domain, and included them in the main clover.jar file. This means they don't need to be separately added to the CLASSPATH. It also means the versions they bundle don't conflict with other versions I may be using elsewhere. It's a nice touch, and one that makes the product quite a bit easier to use. Sun has also learned this lesson. In Java 1.5, the JRE includes the Apache Project's Xerces and Xalan. However, they've repackaged these classes into the com.sun hierarchy so these don't conflict with any later versions one may have installed elsewhere.

Dynamic libraries may have made sense ten years ago when computers with 8 megs of RAM and 40 megabyte hard disks were still common. In 2005, I think their time may be coming to an end. Dynamic libraries cause more problems than they solve. It's time to seriously rethink whether this is something we want to force on our users.

Thursday, March 17, 2005

Mark Doliner has released Cobertura 1.2, a free-as-in-speech (GPL) code coverage tool for Java. Version 1.2 fixes bugs and removes a dependence on a third party library. If you're not already using another code coverage tool, this is definitely worth a look. I hope to have some time to seriously review this product once I return from SD Expo. Java 1.4 or later is required.

Tuesday, March 15, 2005

Sun has posted update 2 of Java 1.5; i.e. Java 2 Standard Edition 5.0 version 1.5.0_02. This release fixes several dozen assorted bugs and adds three new certification authorities.

Saturday, March 12, 2005

I'm leaving today for Software Development 2005 West in Santa Clara. Hope to see everyone there, but updates here will be a little slower for the next week or so. Looks like a fun show. If you're in the Valley, and you haven't registered yet, expo only passes are still free and provide access to the keynotes and special panels and events. I'm not sure if BoFs are included or not, but I promise I won't look too closely at the badges (or lack thereof) at my Effective XML BoF Monday night by the pool at the Santa Clara Westin. 7:00-8:30. Hope to see you there!

Jonas Bonér and Alexandre Vasseur have released AspectWerkz 2.0, an open source aspect oriented programming framework for Java. According to the web page, "AspectWerkz utilizes bytecode modification to weave your classes at project build-time, class load time or runtime. It hooks in using standardized JVM level APIs. It has a rich and highly orthogonal join point model. Aspects, advices and introductions are written in plain Java and your target classes can be regular POJOs. You have the possibility to add, remove and re-structure advice as well as swapping the implementation of your introductions at runtime. Your aspects can be defined using either Java 5 annotations, Java 1.3/1.4 custom doclets or a simple XML definition file." New features in 2.0 include:

AspectWerkz is published under the LGPL. Following this release, the AspectWerkz and AspectJ projects will be merging, with an eye toward an AspectJ 5 release sometime later this year.

Friday, March 11, 2005

Motorola has posted the initial Java Specification Request (JSR) for the Mobile Information Device Profile 3 in the Java Community Process (JCP). According to the JSR, changes and new features include:

  • Enable and specify proper behavior for MIDlets on each of CLDC, CDC, and OSGi, for example:
    • Enable multiple concurrent MIDlets in one VM
    • Specify proper firewalling, runtime behaviors, and lifecycle management issues for MIDlets
    • Enable background MIDlets (e.g. UI-less)
    • Enable ?auto-launched? MIDlets (e.g. started at platform boot time)
    • Enable inter-MIDlet communications
  • Enable shared libraries for MIDlets
  • Tighten spec in all areas to improve cross-device interoperability
  • Increase functionality in all areas. E.g.
    • Improve UI expressability and extensibility
    • Better support for devices with larger displays
    • Enable MIDlets to draw to secondary display(s)
    • Enable richer and higher performance games
    • Secure RMS stores
    • Removable/remote RMS stores
    • IPv6
    • Multiple network interfaces per device
  • Specify standard ways for doing MIDlet provisioning through other means (e.g. OMA (SyncML) DM/DS, Bluetooth, removable media, MMS, JSR-232, etc.)
  • Extensive device capabilities query Localization & Internationalization (if appropriate, integrating/augmenting JSR-238 as needed)

A key design goal of MIDP3 will be backward compatibility with MIDP2 content

Thursday, March 10, 2005

Gaudenz Alder has released JGraph 5.4.2, a free-as-in-speech (GPL/MPL) graph component for Swing that requires Java 1.3 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. 5.4.2 fixes bugs and improves performance. It is available in English, German and French.

Excelsior has posted the first release candidate of JET 3.7 for Linux and Windows. Excelsior JET is a Java virtual machine that uses a combination of a traditional machine code compiler and just-in-time compilation from byte code. JET costs start at $200 and run up to $2300 depending on which version and how much support you want. Support is available by e-mail and Web site only.

Wednesday, March 9, 2005

Cenqua has posted the first release candidate of FishEye 1.0, a $999 payware tool for viewing CVS activity. I've been using FishEye lately as part of my work with the Jaxen Project. As well as drawing graphs of activity, it lets you see who's committing what when to CVS, what individual committers have been up to, what's going on in different branches, what's happened to particular files, and so forth. It's not essential, and I doubt I'd pay for it if Cenqua hadn't given Codehaus a free copy. XOM doesn't use it, and I haven't missed it there. However, FishEye is a nice tool that's a definite improvement over standard CVS and ViewCVS.

Dan Creswell has released version 2.1.18 of the Blitz JavaSpaces Server Edition and version 1.0.6 of the pure Java edition. Blitz is an open source (BSD license) implementation of JavaSpaces that is Jini 2.0 enabled and implements smart indexing, tuneable persistence, and active/passive lease cleanup. This release expands configurability and improves performance.

Tuesday, March 8, 2005

Mark Doliner has released Cobertura 1.1, a free-as-in-speech (GPL) code coverage tool for Java. Version 1.1 fixes bugs and speeds up the execution. If you're not already using another code coverage, this is definitely worth a look. I hope to have some time to seriously review this product in a couple of weeks.

Derrick Oswald has released the HTML parser 1.5, a free (LGPL) class library for parsing "real-world HTML." This is a bug fix release.

Teodor Danciu's posted version 0.6.5 of JasperReports, an open source (LGPL) Java library for generating reports from XML templates and customizable data sources (including JDBC). The output can be displayed on the screen, printed, or written to XML or PDF files. Version 0.6.5 provides more control of image loading and display, adds some more samples, and fixes bugs.

Monday, March 7, 2005

developerWorks has published my latest article, Test your tests with Jester . This article describes how to use Jester to verify test suite coverage and thereby find bugs you didn't know you had. I have a love-hate relationship with Jester. On the one hand, it's based on a brilliant, radical idea. The underlying approach (changing the code and seeing what doesn't break) almost always reveals interesting and useful information about your code base. At the same time, Jester is so incredibly difficult to configure and takes so long to run that I don't use it nearly as often as I should. I hope this article sets down enough information about just how to get Jester working that I don't have to continually rediscover this every time I use this tool. Next up will be an article on more traditional code coverage tools that perhaps don't have the same level of insight that Jester does, but are much easier to configure and faster to run.

Sun has begun posting the JavaDocs for Java 1.6/a.k.a. Java 6/Mustang on I'm glad to see this, though the "DRAFT" watermark is very annoying. Fortunately Chris Pederick's Web Developer Toolbar for Mozilla/Firefox lets me turn that off.

Milestone 0.7 of JDesktop Network Components (JDNC) has been released. This package aims to provide higher level Swing abstractions for data-aware grid controls and the like. (Damn, I just flashed back to Visual Basic.) New features in 0.7 include a DataSet API to bind to tabular data stores such as SQL databases and a Login & Authentication API. based on JAAS.
Sunday, March 6, 2005

Sun has posted the public review draft of Java Specification Request 208, Java Business Integration (JBI). According to the draft, "JBI defines an architecture that allows the construction of integration systems from plug-in components, that interoperate through the method of mediated message exchange. The message exchange model is based on the web services description language 2.0." Changes since the last draft include:

  • The Normalized Message Service has been renamed Normalized Message Router (NMR). The messaging model has been reworked to allow bindings and engines to work as service providers, consumers, or both. There are no longer separate DeliveryChannel types for bindings and engines.
  • The management chapter has been rewritten. It previously used a use case-driven set of illustrations of system management. It now uses functional definitions of the JBI-provided management pieces, and how they interact with management tools as well as the JBI components being managed.
  • The three separate framework chapter have been consolidated into one, reflecting the convergence of bindings and engines in the NMR.
  • The the separate binding and engine packages have been combined into one javax.jbi.component package.
  • A new "component" interface has been added, and the component-provided interfaces refactored to use it
  • All JavaDocs for all JBI-defined APIs and SPIs are included in this specification.

Comments are due by April 4.

Siemens AG has posted the proposed final draft of JSR 229, Payment API (PAPI). According to the draft,

The scope of this JSR is to define the following:

  • A generic optional API to initiate payment transactions in secured manner to transparently expedite the chargeable service requests, which are originated from J2ME applications, with external operator charging service delivery, payment service protocols, pricing management and implementation logic,
  • The syntax for the description of the associated provisioning data, enabling API implementers to support different payment adapters.

Both will allow 3rd party developers to build applications with control of features and services that are chargeable. The JSR API may include methods for:

  • Requesting a payment transaction
  • Requesting feature and service price management
  • Payment service availability

The definition of provisioning data makes sure that service providers and payment service providers can select a suitable set of payment adapters provisioned for applications on application deployment time. The following types of payment adapters are primarily addressed:

  • Operator charging
  • 3rd party payment service providers

This JSR enables application developers to initiate mobile payment transactions from J2ME applications. It is an optional package for the J2ME CLDC configuration and targeted for MIDP and IMP devices. Scope of this JSR is to provide a generic payment initiation mechanism, which hides the actual payment architecture and complexity from the developers. This JSR does not define and imply any concrete payment implementation and mechanism but is generic enough to support different implementations. It is up to the implementing party to realize the API based on one or more technical solutions enabling the application initiated payment. The JSR also does not define any user behavior or user interface but leaves them open to be defined by the actual implementation of the API.

Nokia has posted a maintenance draft review for Java Specification Request 184, Mobile 3D Graphics API for J2ME. This draft clarifies a few dozen ambiguities in the original spec. Comments are due by April 4.

Friday, March 4, 2005

I'm going nuts trying to find the original cite for something I know is out there, but I can't find the right words to get Google to tell me the answer. There's something I've been calling the "double bump adoption curve", which is where first there's a lot of hype, interest and excitement in a technology. Then the backlash starts and it all falls apart. Finally the second wave hits when the spec/standard/software/whatever is actually useful. I didn't come up with this idea, but I do seem to be the only person who uses the phrase "double bump adoption curve" to describe it. I need a cite to the original paper/page that mentioned this, or at least to something that describes it well. I have a vague recollection that this used to be part of James Gosling's personal home page at, but that page now redirects to his blog, which doesn't seem to have the old content. Does anyone know what I'm talking about? Can anyone point me to the right phrase and source? I have an end of the day deadline, so I'd really appreciate this. Please e-mail me if you know the answer. Update: Rogers Cadenhead found it in the Wayback Machine. My memory did not fail me. It was a James Gosling piece from his no longer existent personal site on James, Cool URIs Don't Change! It appears that although Gosling wrote about this, Toshi Doi was the first to come up with the idea. Several people have also pointed out that this is silimar to what Geoffrey Moore calls Crossing the Chasm. David Clark calls this the "apocalypse of the two elephants". The Gartner Group calls this the "hype cycle".

Achim Westermann has released JChart2D 1.03, a thread-safe, libré (LGPL) Swing widget for drawing x-y plots.

Thursday, March 3, 2005

I've posted the second alpha release of XOM 1.1, my free-as-in-speech (LGPL) dual streaming/tree-based API for processing XML with Java. Version 1.1 maintains backwards compatibility with XOM 1.0 while adding a number of important new features including XPath support. Alpha 2 speeds up XPath queries by roughly a factor of 10. It also fixes assorted small bugs, and adds an XPathTypeException class that distinguishes syntactic errors from the case where an XPath expression returns something other than a node-set.

Beta 10 of Groovy, a JVM hosted scripting language that combines the speed of GW-Basic with the clarity of Perl, has been posted. This beta fixes assorted bugs and introduces an "Early Access Preview of the new parser developed as part of the JSR effort." Apparently Groovy has now split into two versions, a so-called "classic " version and the new one being developed in the Java Community Process (JCP).

Frederic Lavigne posted version 1.2.11 of his Skin Look And Feel for Java. SkinLF allows Java developers to use Skins (GTK and KDE themes) in their Swing applications. This release supports theming text component borders and JDK 1.4 frame decoration. It also provides theme converters to port themes written for other skin engines to SkinLF themepacks. This release adds support for the indeterminate progress bars introduced in Java 1.4. Java 2 is required.

Jim Menard has posted version 0.9 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 can set a default format and border for the entire report and runs formulas using the Bean Scripting Framework. DataVision is published under an Apache license.

IBM's alphaWorks has updated their Enterprise Media Beans, a "rich media framework based on the JSR086 standard proposal for J2EE-compliant applications; media is treated as just another data type. EMB enables applications to integrate rich media data, such as audio, video, or image, into applications based on Enterprise Java Beans (EJB) Entity BeansTM within the J2EE application development model. It allows the embedding of rich media assets into business logic without the worry about client type, server media protocols, media format, or streaming technology. It is a standardized, component-based application model for rich media integration throughout the enterprise -- back-end and infrastructure." The update "contains the Open-Source Reference Implementation and Technology Compatibility Kit code that reflects final changes to the JSR 086 specification." According to the site, Windows 2000 is required. I suspect it may work on XP, and they just forgot to update the platform requirements, but I'm a Mac and Linux user these days so I can't easily check.

Wednesday, March 2, 2005

The first release candidate of version 3.0 of  Hibernate, an open source (LGPL) object relational mapping system for Java, has been posted. "Hibernate lets you develop persistent classes following common Java idiom - including association, inheritance, polymorphism, composition and the Java collections framework. The Hibernate Query Language, designed as a "minimal" object-oriented extension to SQL, provides an elegant bridge between the object and relational worlds. Hibernate also allows you to express queries using native SQL or Java-based Criteria and Example queries." According to Gavin King, new features in 3.0 include

  • Much more flexible O/R mapping: support for exotic association and inheritance mappings, and greater flexibility when working with legacy data.
  • Hibernate3 filters: a unique feature for working with temporal (historical), regional or permissioned data.
  • Unprecendented flexibility for mixing handwritten and generated SQL within a single application or even a single entity: full support for "derived" entities and attributes defined in the mapping document, full support for overriding any generated SQL statement with handwritten SQL, support for stored procedures.
  • Object/Relational/XML mapping: query XML directly from the database for reporting, replicate data between databases via intermediate XML, externalize entity data as XML when interacting with remote systems.
  • Enhanced ease of use: better defaulting, an unchecked exceptions model, simplified natural (and composite) key support, simplified CMT integration.
  • Enhanced Criteria query API: with full support for projection/aggregation and subselects.
  • Runtime performance monitoring: via JMX or local Java API, including a second-level cache browser.
  • Brand new AST-based HQL parser: bulk update/delete enhancement, better syntax validation.
  • JBoss EJB 3.0 preview: support for annotation-based O/R mappings, full support for EJB-QL 3.0, support for EJB 3.0 persist()/merge() lifecycle, JACC-based security model.
  • Hibernate Tools preview: a full suite of Eclipse plugins for working with Hibernate 3.0, including mapping editor, interactive query prototyping, schema reverse engineering tool.
  • Many new extension points: including a new, extensible, event-driven architecture
  • Documentation enhancements.
  • Brand new test suite, including many useful examples of exotic Hibernate mappings.
Tuesday, March 1, 2005

ByteConsult GmbH has released nib4j 1.1, a $169 payware tool that enables Apple's Interface Builder be used to design cross-platform Swing user interfaces.

IBM has withdrawn Java Specification Request (JSR) 92 Localizable Text from the Java Community Process. I'm not sure what happened to this one. Five years after the working groups founding, they never even got to early draft review. Whether everyone lost interest or other technologies filled the needs this spec was trying to address, I don't know.

Day Software has posted the proposed final draft specification for JSR-170, Content Repository for Java™ Technology API. The spec has now been split into two compliance levels:

Level 1 defines a read-only repository. This includes functionality for the reading of repository content, introspection of content-type definitions, basic support for namespaces, export of content to XML and searching. This functionality should meet the needs of presentation templates and basic portal applications comprising about 80% of the existing code-base of content-related applications.

Level 2 additionally defines methods for writing content, assignment of types to content, further support for namespaces, and importing content from XML.

Finally, a number of independently optional features are defined that a compliant repository may support. These are transactions, versioning, observation, access control, locking and additional support for searching.

Nokia has released the maintenance draft of JSR-212 Server API for Mobile Services: Messaging. The changes are minor but functional. There are three major changes in this review:

Open Cloud and Sun have posted the early draft review of JSR-240 Java Advanced Intelligent Networks (JAIN) Service Logic Execution Environment (SLEE) API Specification 1.1.

Greg Hinkle has posted the fifth beta of MC4J 1.2, an open source (MPL) GUI interface for Java Management Extensions (JMX) based servers. Supported servers include JBoss, WebLogic, WebSphere, and Tomcat. MC4J is built on top of netbeans 3.6.

Older news:

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

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

Copyright 2005 Elliotte Rusty Harold