August, 2005 Java News

Tuesday, August 30, 2005 (Permalink)

I've posted the notes from my first two talks at EclipseWorld, Test Driven Development with Eclipse and XML Editing with Eclipse.

Monday, August 29, 2005 (Permalink)

Werner Randelshofer has released the Quaqua Look and Feel 3.3, "an extension for Apple's implementation of the Aqua Look for Swing. Quaqua aims at fixing inconsistencies between user interface elements implemented in Swing and those of native Mac OS X applications. To achieve this, Quaqua selectively replaces UI elements of Apples Aqua Look And Feel with elements of its own." Quaqua is dual licensed under the BSD license model and the LGPL. Java 1.3 or later and Mac OS X 10.2 or later are required. This release avoids overlaps of the scroll bars with the grow boxes in JScrollPane and adds Color Wheel and Crayons panels for the color chooser.


Gaudenz Alder has released JGraph 5.7, 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. In version 5.7, the "routing interface has changed so that the routing methods now return a list of points instead of accepting a list of points as a parameter. The routing of loops has been separated from the non-loop implementation for the default case so that it is easier to create a new routing implementation and inherit the default loop routing algorithm. Children cells moved as part of a collapsed group now are moved when the parent cell is, if required, using the movesChildrenOnExpand flag."

Friday, August 26, 2005 (Permalink)

Sun has posted the proposed final draft of JSR-245, JavaServer Pages 2.1, in the Java Community Process (JCP). According to the draft,

JSP 2.1 extends the JavaServer Pages 2.0 Specification (JSP 1.2) in the following ways:

  • The JSP specification now features a unified expression language, which is the result of the integration of the expression languages defined in the JSP 2.0 and Faces 1.1 specifications. The new unified expression language is defined in its own specification document, delivered along with the JSP 2.1 specification.
  • The JSP 2.1 specification uses the Servlet 2.5 specification for its web semantics.
  • The JSP 2.1 specification requires the Java™ 2 Platform, Standard Edition version 5.0 or later.

Sun has also posted the proposed final draft of JSR-252, JavaServer Faces 1.2. According to the preface, "Previous versions of the JavaServer Faces included an innovative, EL tailored to the needs of Faces. The main emphasis of this version of the Faces spec, and also the focus of the JSP spec corresponding to it, is to take those innovations and expose them to JSP page authors by creating a Unified EL that leverages the combined power of the Faces and JSP ELs. The Faces EL would then be deprecated, and the deprecated implementation would be written in terms of the Unified EL to preserve backwards compatability" [sic].

Thursday, August 25, 2005 (Permalink)

The Fall conference season is upon us, and I am racing to finish my notes for four different shows that all have their deadlines at the end of this month. The first show is a new one, EclipseWorld, at the Roosevelt Hotel in Manhattan Monday-Wednesday next week. (August 29-31). The show seems to cover pretty much everything Eclipse related from RCP to SWT to TTPP to WST to ABCDEFG to WXYZ. I'll be delivering four sessions on XML Editing in Eclipse, Macifying SWT, Test Driven Development with Eclipse, and Static Code Analysis in Eclipse.


The next show I'll be at is Software Development Best Practices in Boston (September 26-29). As well as hosting a panel on next generation client side technologies I'll be talking about Effective XML, GUI Testing, JUnit 4, Testing XML, and User Interface Principles in API Design. The show is looking for a few more volunteers to man doors, distribute notes, and similar tasks. For each day a you volunteer you get to attend the conference for a day free, and most volunteer days involve nothing more strenuous than sitting in the back of the room listening to the presentation, and collecting eval forms at the end; so really, it's a nice way to attend the show for free.


Then it's back to New York October 15-16 for the kickoff event in a new Weekend with Experts series devoted to J2EE. I'm not much of a J2EE person, but I'll fake it by talking about Effective XML.


Staying in New York (I'm really glad to see so many shows coming to New York) November 1-3 will be the Software Test & Performance Conference at the Roosevelt Hotel. Here I'll talk about Testing XML and Measuring JUnit Code Coverage.


Then I'll be travelling to Los Angeles for the first time November 14-18 for STARWest 2005. I'll be teaching a one-day intro tutorial to JUnit designed for testers, and then talking about Testing XML again.


In December, there's a tentative trip planned to Antwerp, Belgium for Javapolis. Details still remain to be worked out but I'll probably be talking about XML related subjects.


Moving even further out, next year I'll definitely be at Software Development 2006 West, March 13-17, 2006, in Santa Clara once again. I'm on the advisory board for that show and we're just starting to pick next year's sessions, but it looks like it's going to be really hot. In particular, it looks like there'll be a lot of AJAX, scripting, and web app content in addition to the usual batch of Java, C++, .NET, XML, and Testing. Plus I'm expecting to host the world's first ever 6:00 A.M. BoF.


If there are any other shows you'd like to see me at, just drop me a line or ask the show organizers to recruit me. (Believe it or not they really do read the evaluation forms you fill out at the end of every session, and if you ask for particular speakers, they will notice.) I also talk to user groups if travel expenses can be covered and they're not too far from New York City, or if they can be scheduled in conjunction with a show I'm already attending. (Contrary to popular belief, publishers do not have unlimited budgets for author tours. In fact, for midlist computer book authors, they tend to have no such budget at all. :-) ) I also do occasional corporate training on XML, test driven development, and Java.

Laid out like that, it looks like quite a lot. It always seems more doable when I'm signing up for these shows and don't have four simultaneous deadlines staring down my throat. :-) But it's usually a good time, and I hope to meet some of you there.


Since I'm thinking about conferences today (and avoiding working on my notes) I've also made some updates to the conferences page. I'm thinking the next update will move this page to pure XML styled with an XSLT stylesheet. No server side transformation. I'm just going to send this straight to the browsers. Apologies to Opera users, but it really is time for Opera to join the 21st century and support client side XSLT, HÃ¥kon Wium Lie's CSS wizardry notwithstanding. I was looking at what I have to do every time I want to make a simple update to the tradeshows page, and it's just way too complex to manually edit and sort the HTML. More often than not I make silly mistakes, and I certainly don't update the page as often as I should. I really see two options here:

  1. Develop a comprehensive, complex, database backed system accessed via PHP. That's the MIT solution, and one I've been meaning to get around to for years; but never have and probably never will. However it would work in 100% of the browsers out there.
  2. Hack together a kludge using XML as a database and XSLT as a presentation layer. It will work today in 98% of what people access this site with. That's the New Jersey solution, and it will probably take me a few hours spread out over a few days, and I may actually get it done.

Michael B. Allen has posted jCIFS 1.2.3, a free (LGPL) SMB client library written in pure Java. It supports Unicode, named pipes, batching, multiplexing I/O of threaded callers, encrypted authentication, full transactions, domain/workgroup/host/share/file enumeration, NetBIOS sockets and name services, the smb:// URL protocol handler, RAP calls, and more. The API is similar to java.io.File. Version 1.2.3 adds DCE/RPC pipes support, fixes bugs, and improves speed.

Wednesday, August 24, 2005 (Permalink)

JCraft has released JZlib 1.0.7, a reimplementation of Jean-loup Gailly and Mark Adler's zlib compression library in pure Java. This offers more complete functionality than java.util.zip.


JetBrains has released IntelliJ IDEA 5.0.1, a popular $499 payware integrated development environment for Java that runs on Windows, Mac OS X, Linux, and Unix. Mostly this is a bug fix release, but it also adds a @NonNls for marking strings that don't need to be localized.

Tuesday, August 23, 2005 (Permalink)

Mark Doliner has released Cobertura 1.6, a free-as-in-speech (GPL) code coverage tool for Java. Version 1.6 adds support for multiple source directories. If you're not already using another code coverage tool, this is definitely worth a look. Java 1.4 or later is required.

Monday, August 22, 2005 (Permalink)

Panasonic Information and Networking Technologies has posted the proposed final draft of Java Specification Request (JSR) 187, Instant Messaging to the Java Community Process (JCP). According to the draft,

The Instant Messaging API provides protocol independent application control of standard instant messaging and presence protocols. The standard protocols include: IETF SIP/SIMPLE, OMA Wireless Village, and IETF XMPP. ... The API defines a core set of generic operations and uses a client-server interaction model. The client-server interaction is represented as request-response pairs. Requests are abstracted using instances of IMPSRequest entity; responses are accessed using instances of IMPSStatus that are passed to the application's previously registered listener(s).

The details of the underlying protocol are generally hidden, except that error results return protocol-specific values. However selected portions of protocol specific functions are available for advanced applications where Extensible is used in the API.

Sunday, August 21, 2005 (Permalink)

Yes, I uploaded the wrong index.html page here yesterday. It's fixed now. Thanks to everyone who wrote in to tell me. Mea culpa. Mea maxima culpa.

Friday, August 19, 2005 (Permalink)

Atlassian has released version 3.3 of JIRA, a $1200-$4800 payware J2EE-based bug tracking and project management server application. Version 3.3 adds multiple project filtering, new bulk move capabilities, extended date and number searching, and Italian and Slovakian translations, I've been using Jira lately with Jaxen and Apache. It's a definite improvement over Bugzilla. I'm not sure it really does anything that Bugzilla doesn't do (at least not anything I use) but the user interface is about a hundred times cleaner.


The Apache Jakarta Project has released Regexp 1.4, a 100% Pure Java, open source Regular Expression package. This is primarily maintenance release containing several bug fixes.

Thursday, August 18, 2005 (Permalink)

The Jakarta Apache Project has released Cactus 1.7.1, a simple framework for unit testing server-side Java code such as servlets, Enterprise JavaBeans, tag libraries, etc. Java 1.4 or later is required. Java 1.2 and 1.3 are no longer supported.

Wednesday, August 17, 2005 (Permalink)

Sun has posted the early draft review of JSR 199, Java Compiler API. According to the draft,

The Java Compiler API is a set of interfaces that describes the functions provided by a Java Language Compiler. This API has three main objectives:

  • Allow invocation of a Java compiler from a Java program using standardized interfaces.
  • Interfaces enabling the compiler to report diagnostics in a structured way.
  • Interfaces enabling clients of the compiler to override how source objects are found. Source objects is a common term for Java source files and Java class files.

I'm pleased to see that the draft is written in HTML instead of PDF, but is it too much to ask that it be distrbuted in HTML. Why do I have to downoad and unzip a zip file? HTML should be browsable and searchable on the Web. It's amazing that 15 years in, Sun still doesn't understand the Web. Other JSR specs and drafts have been published in browsable, searchable HTML, though as I far as I know none of those were led by Sun.

Monday, August 15, 2005 (Permalink)

The Eclipse Project has posted the first milestone of Eclipse 3.2, an open source integrated development environment (IDE) for Java. It also doubles as a base platform for your own applications, an alternative to the AWT and Swing, and a powerful floor wax and dessert topping. There's not a lot new in 3.2, some minor user interface improvements, sort direction indicators in table and tree headers, reorderable columns in tables. The cool new feature is the ability to paste a code snippet into the Package Explore and have Eclipse automatically create a compilation unit for that snippet. That shoudl be useful for testing and experimentation.

Sunday, August 14, 2005 (Permalink)

Sun's posted the first public draft of the JavaMail 1.4 specification. JavaMail is a basic library for performing POP, SMTP, and IMAP. I wrote about this in the final chapter of Java Network Programming. So far, this is just a description of the changes since JavaMail 1.3, which are mostly some convenience methods and properties. The focus seems to be on improved MIME support, non-ASCII data, mail account quotas, and shared input streams (an interesting idea.) Nothing seems backwards incompatible in any way, and existing code should still work. This release of the API will require Java 1.4 or later. Earlier versions will no longer be supported. Comments are due by September 6.

Friday, August 12, 2005 (Permalink)

Bare Bones Software has released version 8.2.3 of BBEdit, my preferred text editor on the Mac. 8.2.3 is a a Universal Binary that runs natively on Mac OS X for X86. 8.2.3. also adds Objective-C++ syntax coloring and function navigation. BBEdit is $179 payware. Upgrades from 8.x are free. They're $49 for 7.0 owners and $59 for owners of earlier versions. Mac OS X 10.3.9 or later is required.

Thursday, August 11, 2005 (Permalink)

Sun's posted a minor maintenance update to the Java 2 Software Development Kit 1.4.2, version 1.4.2_09. This version improves error logging and fixes a couple of dozen assorted bugs. It's available for Windows, Linux, and Solaris.

Wednesday, August 10, 2005 (Permalink)

I've posted version 1.0d3 of QuickTime Amateur, an open source clone of Apple's QuickTime Player that is uncrippled and free as in speech and beer. Currently this has only been tested, designed, and run on the Mac, though a Windows port is on the TODO list.

d3 improves fullscreen playback, and enables or partially enables several other features; but Amateur is still rather rough. Saving, in particular, needs a lot of work. However if you just want to play your movies in full screen mode without paying $30, it's good enough to do that now. Various other Pro functionality such as printing, editing, and copying and pasting movies is also enabled.


Andy Roberts has released jTokeniser 1.2.1, an open source Java library for separating strings into a list of tokens based on white space, regular expressions, sentences, or break iterators jTokeniser is published under the LGPL.


Lorenzo Bettini has released GNU Source-highlight 2.1.1, a GPL'd tool for reading Java, C/C++, Prolog, Perl, PHP3, Flex, ChangeLog, JavaScript, LUA, CAML, SML, Log, and Python code and translating them into syntax highlighted HTML and XHTML. Binaries are available for Unix, and it should compile on Windows with the appropriate libraries. This is a bug fix release.


The Big Faceless Organization has released the Big Faceless Graph Library 2.0, an $800 payware (more if you want support or to distribute your applications that use the library) Java class library for plotting 2D or shaded 3D pie charts, line graphs, area graphs, bar graphs and exporting them to PNG, GIF and PDF. Vesrion 2.0 adds a Java Server Pages tag library, among other features. Java 1.2 or later is required.


Gaudenz Alder has released JGraph 5.6.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. Version 5.63 plugs memory leaks and allows zero width edges.


Nathan Fiedler has released version 2.39 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.39 restores compatibility with Java 1.4. JSwat is published under the GPL.


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


Websina has released BugZero 4.1.4, a $1299 payware (+$300 for maintenance) Web-based bug tracking system that supports multiple projects, group-based access, automatic bug assignment, file attachment, email notification, and metric reports. Bug Zero is written in Java and can run on top of various backend databases including MySQL. 4.1.4 fixes bugs.

Tuesday, August 9, 2005 (Permalink)

JetBrains has released IntelliJ IDEA 5.0, a popular $499 payware integrated development environment for Java that runs on Windows, Mac OS X, Linux, and Unix. Some of the most significant new features include:

The upgrade price is $299.


Cedric Beust has released TestNG 2.5, an open source ( testing (unit, functional, and integration) framework based on annotations. Version 2.5 adds an IDEA plug-in, an IDEA plug-in, an alwaysRun annotation, and the ability to specify testing of entire packages rather than individual classes. TestNG is released under the Apache Software License. Java 1.4 or later is required.

Monday, August 8, 2005 (Permalink)

The Apache Database Project has released Apache Derby 10.1.1.0 (formerly Cloudscape), an open source SQL database written in pure Java that supports JDBC. New features in this release include:

Friday, August 5, 2005 (Permalink)

Note to all java.net members: if you want to participate in a project (especially one of mine, but I suspect this is true in general) it is not enough to click the button and select the box for "Project Developer." If you do that, all I see is a message that "user username has requested the Developer role in the amateur project." (Honestly this is a design flaw in the Collabnet system java.net is built on top of. When rejecting such a request I'm asked to give a reason, but when making the request the user can't give a reason or even their real name or e-mail address.) I'll approve anonymous observer requests, but the chance of getting CVS commit access this way is virtually zero. Before you request a role, you need to communicate with me: send me e-mail, tell me who you are, what you want to do, why you need the role, send in some patches, participate in the mailing lists, etc. However, there's no way I'm granting write access to effectively anonymous individuals.

Thursday, August 4, 2005 (Permalink)

I'm at Extreme Markup Languages in Montreal this week. Detailed coverage is on Cafe con Leche Even though this is not specifically a Linux, Mac, or open source show, Windows seems to be a definite minority platform at this conference. Roughly half the audience and speakers are toting PowerBooks. Among the X86 laptops, Linux might actually outnumber Windows. This mirrors what I've seen at other shows. If I were Microsoft, I'd be very worried. The people who come to these shows are the thought leaders who often tell other people what to buy when it comes time to upgrade.

Wednesday, August 3, 2005 (Permalink)

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

The scope of this JSR is to define the following:

  • A generic, optional API to initiate payment transactions in a 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 payment 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 includes methods for:
  • Requesting a payment transaction
  • Requesting feature and service price management
  • Payment service availability

The definition of provisioning data ensures 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 MIDP applications. It is an optional package for the J2ME CLDC configuration and targeted at MIDP and IMP devices. The scope of this JSR is to provide a generic payment initiation mechanism that 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.

Tuesday, August 2, 2005 (Permalink)

Calvin Austin has posted the first alpha of TestGen4J, "an open-source tool that automatically generates, and then executes Java test cases using JUnit. In addition to cutting out the mundane task of writing tests, it provides a data driven test harness and an automatic failed test case management utility."

Monday, August 1, 2005 Permalink

Nokia has released the final version of JSR-234 Advanced Multimedia Supplements. This is a J2ME API that builds on the Mobile Media API (MMAPI) (JSR-135) with features for controlling multimedia features like cameras, videocameras, and audio playback on camera phones and the like.


Older news:

20052004200320022001200019991998
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
elharo@metalab.unc.edu