November 2003 Java News

Sunday, November 30, 2003

A fourth U.S. Army soldier stationed at Guantánamo Bay has been charged with mishandling classified information Jackie Duane Farr is a lieutenant colonel in Army intelligence. The Army claims to have found classified material in his luggage without the appropriate covers when he was leaving Guantánamo Bay in October. Farr was director of the intelligence collection operation in Joint Interrogations Group, the group responsible for "questioning" the prisoners held at Camp Delta. According to the Army, Farr is still working in intelligence at Guantánamo Bay, and has not been jailed.

Unlike the previous three soldiers arrested, Farr is not a Muslim, and it's not clear if he had any direct contact with the prisoners or whether he speaks Arabic. If I had to guess, I'd say this was a simple cock-up on his up that's being blown way out of proportion in the general climate of suspicion. What he's accused of appears to be a very technical violation. Apparently he was allowed to have what he have. He just didn't have it in the right colored folders marked secret, or some such bureaucratic detail. The again, it's also possible he developed serious moral concerns about what was happening in his command and was planning to do something about it. It's just not plausible that this was a genuine espionage operation.

Saturday, November 29, 2003

Tip of the day: Avoid using instanceof if at all possible. It's ridiculously slow in many virtual machines. While profiling XOM, I have repeatedly traced bottlenecks down to instanceof checks. Removing all the instanceof checks from XOM boosted performance by about 10%. If I had to pick one area to optimize in future releases of Java, it would be instanceof and the rest of the reflection API. I see no fundamental reason this shouldn't be as fast as a couple of adds or a method invocation.

Friday, November 28, 2003

Today is Buy Nothing Day in the United States and tomorrow is International Buy Nothing Day. (The rest of the world doesn't get Friday off to go to the mall.) Why not celebrate them both?

Buy Nothing Day logo
Thursday, November 27, 2003

I was more than a little surprised to hear that Orbitz is planning an IPO. You may remember Orbitz as the online travel agency set up to help the major U.S. airlines keep control of bookings, and which is majority owned by five of the six major U.S. airlines (Delta, Northwest, American, United, and Continental). As one would suspect from such a venture, I've rarely if ever found the lowest price on Orbitz compared to other sites, especially on routes where low-cost airlines like JetBlue and America West also fly. I hear the same is also true for routes served by Southwest, though since Southwest doesn't fly to my home airports in New York City I can't vouch for that personally.

I understand why Orbitz was formed. What I don't understand is why anyone who isn't a major airline would think this is a good investment. This is not a company that exists to bring direct value to its stockholders. It is now and will remain in all but name a subsidiary to the five airlines that control it. Its purpose is to shore up the airlines' fares and profits. If you feel like investing in the five major airlines, why not invest directly in the stocks where any real profits and growth caused by Orbitz would be disbursed?

Not that any of these airlines are all that likely to see any profits or growth anytime soon, of course. In fact, if I had to guess why the IPO is occurring now, I'd say it's because four of the five partners selling the stock are desperate to get some cash from somewhere. United's in bankruptcy and all but Delta (which isn't selling its Orbitz stock) are teetering on the brink. If they were seeking to maximize the cash from the sale, they would have planned the IPO for the week after Google goes public and sets off the next insane Internet bubble.

Simone Bordet has posted the first beta of MX4J 2.0, an open source implementation of Java Management Extensions (JMX) 1.2.1 and the JMX Remote API 1.0. MX4J 2.0 is published under the Mozilla Public License.

Linus Tolke has posted ArgoUML 0.15.2, an open source UML modelling tool written in Java. This is a bug fix release. ArgoUML is published under a BSD license.

R. Rawson-Tetley has posted SwingWT 0.73, an open source, "100% pure Java library which very closely resembles the interface of Swing. The difference is that instead of using the Swing library, it drives native peer widgets from SWT" (the Eclipse GUI toolkit). With this library, Java/Swing applications can be compiled natively under Linux using gcj. It also allows Swing apps to use native widgets. This version adds an Ant build file, and supports accelerator display on menu items and borders. Several other components were improved. SwingWT is published under the Common Public License.

Eisvogel Flieg has posted version 0.9.4 of JKMapIME, an open source Unicode input method engine for Java based on the Yudit data. This is a bug fix release. JKMapIME is published under the GNU General Public License (GPL).

Wednesday, November 26, 2003

The U.S. Army has released Captain James Yee, the first of three Arabic speaking soldiers arrested at Guantánamo for helping the prisoners. He will be allowed to return to duty at Fort Benning, Georgia. However, the original charges (taking classified information home without the proper covers) have not yet been dropped, and several new ones have been added including adultery and storing porn on a government computer. I haven't heard of pornography charges like this before, though if this particular offense were prosecuted uniformly, I somehow doubt the Army could muster 100 troops in Iraq, much less 100,000. The Army does have a long history of bad faith and malicious prosecution with respect to adultery charges. Who gets charged has a lot to do with who's screwing who (quite literally). In this case I suspect the adultery and pornography charges, factual or otherwise, were cooked up to try to justify an arrest that couldn't stand on its own merits. I think the original arrest of Captain Yee was based on nothing more than religious bigotry. In all likelihood he pissed off some higher up by treating the political prisoners at Guantánamo like human beings.

This whole disgusting affair (and that of the other two Arabic speaking soldiers still imprisoned on similar charges) should give pause to any Muslims or Arabic speakers considering serving in the U.S. military. Just because you're willing to serve, does not mean the rest of the military is willing to let you serve. You will not be treated fairly. Not only will you be subject to the little racisms, to fellow soldiers snickering behind your back, making ethnic slurs, and passing you over for promotions and assignments you deserve. You will be subject to vicious, institutional racism and legal lynching. You may be charged with capital offenses for no reason other than the language you speak in your home or how you choose to pray. You may be placed in solitary confinement and locked in manacles on trumped up charges that would never have been pressed against a white Christian in the same circumstances. Your service will be rewarded with hatred, isolation, and betrayal.

Tuesday, November 25, 2003

The Eclipse Project has posted the fifth milestone beta of Eclipse 3.0, 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. New features since milestone 4 include

The Big Faceless Organization has released the Big Faceless PDF Library 2.0.2, a $400 payware (more if you want support) Java class library for creating PDF documents. The $1000 Extended Edition adds the AcroForms support, digital signatures, and the ability to import and edit and existing PDF documents. 2.0.2 is a bug fix release. Java 1.2 or later is required.

Frederic Lavigne posted version 1.2.7 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.

Monday, November 24, 2003

Tip of the day: if you need a modal dialog that blocks input to the parent frame but does not block the current thread, just show the dialog in a newly created thread like so:

            Thread dontBlockMe = new Thread(new Runnable() {
                public void run() {

Downside to this approach: depending on circumstances there can be a subtle race condition here. The dialog should not be hidden until after the dialog is shown on the screen. This isn't a problem if the only way for the dialog to be hidden is for the user to dismiss it explicitly since they won't be able to do so until it's drawn. However, in my case I was using this for a progress dialog that could vanish without user intervention very quickly in some (not all, and not reproducible) circumstances. I couldn't join the main thread to dontBlockMe because it doesn't exit until the dialog disappears. I couldn't use wait() and notify() because dontBlockMe blocks until the dialog is hidden. Solution: poll the dialog every 50 milliseconds until you're sure it's on the screen:

            while (!(modalDialog.isVisible())) {
                try {
                catch (InterruptedException ex) {
                    // try again

This seems to work. It brings up a modal dialog without blocking the main thread, and does not allow the main thread to continue until the dialog is shown. (Normal behavior for modal dialogs is not to allow the thread to continue until the dialog is hidden.) However, I'm still nervous about it. Threads are tricky. It needs more testing on different systems. Does anybody see anything wrong with this? Complete code is part of the QueryFrame class in XQuisitor.

The Jakarta Apache Project has released Cactus 1.5, a simple framework for unit testing server-side Java code such as servlets, Enterprise JavaBeans, tag libraries, etc. New features since 1.4.1 include

Sunday, November 23, 2003

Siemens AG has posted the proposed final draft of Java Specification Request (JSR) 205 Wireless Messaging API 2.0, to the Java Community Process (JCP). According to the draft spec,

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

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

The interfaces for the messaging API have been defined in the javax.wireless.messaging package.

Saturday, November 22, 2003

Apple has posted the second developer preview releases of Java 3D and Java Advanced Imaging for Mac OS X 10.3 on the Apple Developer Connection (registration required). Log in at: and go to the downloads section. These will replace the earlier prereleases, and cannot be uninstalled short of reformatting.

Friday, November 21, 2003

Sun's Joshua Bloch has posted the public review draft specification Java Specification Request (JSR) 175 A Metadata Facility for the Java Programming Language to the Java Community Process. According to the draft,

This document describes a simple program annotation facility for the Java programming language. This facility allows developers to define custom annotation types and to annotate fields, methods, classes, and other program elements with annotations corresponding to these types. These annotations do not directly affect the semantics of a program. Development and deployment tools can, however, read these annotations and process them in some fashion, perhaps producing additional Java programming language source files, XML documents, or other artifacts to be used in conjunction with the program containing the annotations. For example, a tool called a stub generator could generate remote procedure call stubs as directed by annotations indicating which methods were designed for remote use.

Think of this as JavaDoc won steroids. An example from the spec follows:

// Normal annotation type declaration with several members

 * Describes the "request-for-enhancement" (RFE) that led to the presence of 
 * the annotated API element.
public @interface RequestForEnhancement {
    int    id();        // Unique ID number associated with RFE
    String synopsis();  // Synopsis of RFE
    String engineer();  // Name of engineer who implemented RFE
    String date();      // Date RFE was implemented

On a very positive note, the specification is published in HTML rather than PDF like most Sun specs. Now if we could just convince Sun to make it available on the Web instead of forcing users to download a zip file. (And just to head off a frequent comment, this would in no way prevent Sun from enforcing license agreement as they do now. A document such as this can easily be a response to a POST request. Whether you should have to accept the license to read the document is another story, but there's no technical problem with it.) Comments are due by December 5.

Thursday, November 20, 2003

Borland has released JBuilder X Enterprise, a $3500 payware integrated development environment for Java that runs on Windows and Linux. The cheaper developer edition is not yet shipping. Upgrades from JBuilder 9 are $1900 until the end of the year, when the price jumps another $200. New features in this release include:

Apple has posted the QuickTime for Java Update 2.0 for Mac OS X 10.2.x on Software Update. This now lets you use QuickTime 6.4 with either Java 1.4.1 or Java 1.3.1.

The Apache Jakarta Project has released Jakarta Commons DbUtils, an open source class library that abstracts "out all of the cleanup tasks from your code leaving you with what you really wanted to do with JDBC in the first place: query and update data." Java 1.2 or later is required.

JCraft, Inc has posted JSch 0.1.9, a pure Java implementation of SSH2 that supports port forwarding, X11 forwarding, file transfer, etc. JSch is released under a BSD license. This release supports keyboard interactive authentication, can now run on IBM's JDK 1.4.1, and fixes some bugs.

Eisvogel Flieg has posted version 0.9.3 of JKMapIME, an open source Unicode input method engine for Java based on the Yudit data. This release adds support for non-BMP characters and many new languages inlcuding Azerbaijani, Bambara, Bislama, Buhid, Chamorro, Chichewa, Cornish, Cypriot, Deseret, Dinka, Frisian, Fula, Gothic, Greenlandic, Hanunoo, Hausa, Ibo, Kurdish, Malagasy, Maltese, Marshallese, Rhaeto-Romance, Sami, Samoan, Sorbian, Tagalog, Tagbanwa, Tswana, Turkmen, Ulithian, Ugaritic, Venda, Wallon, Wolof, and Yapese. JKMapIME is published under the GNU General Public License (GPL).

R. Rawson-Tetley has posted SwingWT 0.72, an open source, "100% pure Java library which very closely resembles the interface of Swing. The difference is that instead of using the Swing library, it drives native peer widgets from SWT" (the Eclipse GUI toolkit). With this library, Java/Swing applications can be compiled natively under Linux using gcj. It also allows Swing apps to use native widgets. This version adds support for the AWT Toolkit/Clipboard, basic Java2D support (Graphics API), JCheckBoxMenuItem/RadioItem, menu separators, keyboard accelerators, and custom cell renderers for JTree/JTable. SwingWT is published under the Common Public License.

Wednesday, November 19, 2003

Sun has submitted Java Specification Request (JSR) 233 J2EE Mobile Device Management and Monitoring Specification, to the Java Community Process (JCP). According to the JSR,

There is considerable interest in the Java Community in writing software applications that remotely manage the configuration and software residing on mobile devices. Currently, part of such a software application deals with the system integration task of building a particular set of business policies into such a system, and part of such a software application deals with the systems level details of how the management and monitoring can be supported for a heterogeneous class of mobile devices.

The proposed specification will define an extension to the J2EE platform to support management functionality with in J2ME based mobile devices; and will not depend on specific configurations or profiles of J2ME.

The extension will allow the applications to:

  • Initiate reprovisioning of the platform software and libraries on devices on the wireless network, including provisioning new software and
  • libraries, upgrading existing software and libraries to fix bug to get the new version, remove software and libraries.
  • Initiate dynamic reconfiguration of the software and libraries, modifying default settings and configuration parameters and supporting security policies,
  • initiate reprovisioning of new application level software onto the device, and remove, upgrade, version manage it.
  • Provide a view of the software and application stack configuration of the remote device, including a dependency resolution mechanism.
  • Monitor application usage on mobile devices for mobile devices supporting standard protocols for such purposes.

This functionality can be made accessible to various participants, e.g. Mobile Equipment OEM, Carrier, or even End User, under specific access roles.

This extension will not store the individual software components, but will contain the needed rule sets that will lead to the above described behaviour. To support the storage and delivery of the individual components, systems like provisioning servers will receive a notification from this extension and trigger the needed steps. Both access roles and management rules will than allow the enablement of such software applications on mobile devices.

The same kind of notification will be used to communicate monitoring information to network based management software applications.

Tuesday, November 18, 2003

The Eclipse consortium has launched the Visual Editor Project, "a new effort to create and deliver an open visual GUI construction and editor platform. The project is dedicated to generically supporting any user interface framework and programming language supported by Eclipse, and will initially implement a reference GUI builder for the Java Swing/JFC and SWT graphical user interface frameworks." The current version is 0.5.0, a very development milestone based mostly on contributed IBM code. It's all open source, naturally.

Monday, November 17, 2003

My e-mail's on the fritz at the moment, apparently due to a change in the IBiblio root certificate. If you absolutely have to contact me right now, use the telephone. (Anyone who absolutely has to contact me right now already knows the number.)

Swing lesson of the day: Never use Event.CTRL_MASK directly. Instead one should call Toolkit.getDefaultToolkit.getPreferredMetaKey() so your application picks up the right meta key for different platforms.

I should be demoing the app for which I discovered this tip tonight at the New York XML SIG, and posting it here later this month. Late last night it occurred to me that I might not want the first test of the app on Mac OS X to be on my PowerBook in front of a 100-person audience. :-) The app still won't look perfectly native--I still have to fix that damn menu bar--but at least that's one bug fixed.

French lesson of the day: The verb apprendre can mean both learn and teach. This one's going to take some getting used to. Like most American schoolchildren I had it drilled into me from a very early age that "learning somebody something" was the depths of low class English. The nuns at my school may not have been allowed to rap our knuckles when we got this one wrong, but they weren't happy about it. I don't think "learning somebody" is particularly common in modern, colloquial American English--television and movies mostly use this phrase as a humorous indicator of a backwoods yokel (think Cletus on the Simpsons)--but the text books still warn against this alleged atrocity.

Frederic Lavigne posted version 1.2.6 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 a new Aluminium Alloy Toxic theme pack and fixes a couple of bugs. Java 2 is required.

Sunday, November 16, 2003

Sun has posted the proposed final draft of the next version of the Java Community Process (JCP). Changes since the last version of the Java Community Process include changing the community review to an early public draft review. The rules for technology compatibility kits are also tightened up. Final balloting is scheduled for November 24.

BEA Systems, Inc. has posted the proposed final draft of Java Specification Request 94, a Java Rule Engine API, in the Java Community Process. "A rule engine may be viewed as a sophisticated if/then statement interpreter. The if/then statements that are interpreted are called rules. The if portions of rules contain conditions such as shoppingCart.totalAmount > $100. The then portions of rules contain actions such as recommendDiscount(5%). The inputs to a rule engine are a rule execution set and some data objects. The outputs from a rule engine are determined by the inputs and may include the original input data objects with possible modifications, new data objects, and side effects such as sendMail('Thank you for shopping')." This API describes how applications load and use rule engines. It does not define a standard rule description language. The zip file for the proposed final draft includes a reference implementation. Java 1.3 or later is required.

Julien Ponge has released IzPack 3.3.0, an open source tool for building cross-platform installers in Java. This release fixes assorted bugs. It's published under the GPL.

Saturday, November 15, 2003

Peter Eastman has posted the first beta of Buoy 1.0, a public domain "library for creating user interfaces in Java programs. It is built on top of Swing, but provides a completely new set of classes to represent graphical components." Among other features, Buoy can serialize user interfaces as XML. Java 1.4 or later is required.

Aspect Security has posted the first alpha of Stinger, an open source "HTTP request validation engine based on regular expressions for use in J2EE (servlet and JSP) environments. Developers specify simple rules in an XML format called Security Validation Description Language (SVDL0 and Stinger applies them to requests. The philosophy of Stinger is to provide developers with all the information they might need about what went wrong and let them take the appropriate action." Stinger uses XOM to manage the XML. Stinger is published under the LGPL.

Friday, November 14, 2003

I've updated the Java Conferences page. There are definitely fewer of these than there used to be. If anybody has firm dates for any shows not on this list, now is the time to let me know. For myself, I'll be chairing the XML track at Software Development 2004 West again next year, but I won't be doing any Java talks at that show, and I have no other Java conference engagements scheduled yet in 2004. It looks likely to be a dry year.

Christian Hargraves has released Jameleon 1.4.2, an open source "acceptance-level automated testing tool that separates applications into features and allows those features to be tied together independently, creating test-cases. These test-cases can then be data-driven and executed against different environments. Even though it would be possible to write unit tests using Jameleon, Jameleon was designed with integration and acceptance-level testing in mind. Most bugs are found and fixed by good unit tests. However, this does not eliminate the need to test the application as a whole." Jameleon is published under the LGPL.

Jim Menard has posted version 0.80 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 allows reports to contain subreports, improves PDF output, and fixes assorted bugs.

Bare Bones Software has released BBEdit 7.1. This is a free update for all 7.0 users. BBEdit is the $179 payware Macintosh text/HTML/XML/programmer's editor I normally use to write this page. New features in this release include secure FTP support and live preview for HTML files. Mac OS X 10.2 or later is required. Mac OS 9 is not supported.

R. Rawson-Tetley has posted SwingWT 0.71, an open source, "100% pure Java library which very closely resembles the interface of Swing. The difference is that instead of using the Swing library, it drives native peer widgets from SWT" (the Eclipse GUI toolkit). With this library, Java/Swing applications can be compiled natively under Linux using gcj. It also allows Swing apps to use native widgets. This release adds support for JScrollPane and JSplitPane, as well as fixing numerous bugs. SwingWT is published under the Common Public License.

Thursday, November 13, 2003

Apple has posted Java Update 1.4.1 for Mac OS X 10.3. (Earlier releases of Mac OS are not supported.) This replaces the earlier, pulled release. According to the web page, "The Java Update delivers functional enhancements and improved stability for running Java applications and applets. It contains support for both Java 1.4.1 and Java 1.3.1. It is strongly recommended that all users install this update." I don't have a URL yet, but you should be able to download it through software update.

In addition, Java 1.4.2 Developer Preview 1 for Mac OS X 10.3 is now available to all registered Apple Developer Connection members members. According to Apple, "this a prerelease build which will overwrite the standard Java 1.4.1 installation on Panther. Please install this build on non-critical systems if you are concerned with changes that may affect your work or Java applications. The only way to revert to the standard Panther 1.4.1 will be to archive or erase reinstallation of Panther."

The Mozilla Project has released Bugzilla 2.16.4, the popular open source bug tracking system. This release fixes various bugs including three security bugs found in Bugzilla 2.16.3. It's also more compatible with MySQL 4 and Perl 5.8. All 2.16.x users should upgrade.

William Ready has released JWizardComponent 1.2, an open source Swing component that presents information to the user in a step-by-step manner such as those used in many installers. JWizardComponent is published under the LGPL.

The Big Faceless Organization has released the Big Faceless PDF Library 2.0.1, a $400 payware (more if you want support) Java class library for creating PDF documents. The $1000 Extended Edition adds the AcroForms support, digital signatures, and the ability to import and edit and existing PDF documents. 2.0.1 is a bug fix release. Java 1.2 or later is required.

Wednesday, November 12, 2003

R. Rawson-Tetley has posted an alpha of SwingWT, an open source, "100% pure Java library which very closely resembles the interface of Swing. The difference is that instead of using the Swing library, it drives native peer widgets from SWT" (the Eclipse GUI toolkit). With this library, Java/Swing applications can be compiled natively under Linux using gcj. It also allows Swing apps to use native widgets. SwingWT is published under the Common Public License.

TriActive JDO 2.0 (TJDO) has been released. TJDO is an open source implementation of Sun's Java Data Objects specification that is "designed to support transparent persistence using any JDBC-compliant database." Supported databases include Cloudscape, DB2, Firebird, MySQL, Oracle 8i, PostgreSQL, SAP DB, and MS SQL Server. Features include:

TJDO is published under the Apache License.

Atlassian has released JIRA 2.5, a $1000 payware J2EE-based bug tracking and project management server application. According to Ben Naftzger, "JIRA 2.5 represents the biggest update to JIRA since its inception and adds many customer driven improvements such as bulk editing, internationalisation, more reports and project categories."

Tuesday, November 11, 2003

Sun has posted the public review draft specification of Java Specification Request (JSR) 177, Security and Trust Services API (SATSA) for J2ME to the Java Community Process (JCP). According to the draft spec,

The Security and Trust Services API specification defines optional packages1 for the JavaTM 2 Platform, Micro Edition (J2METM). The specification has been produced in response to Java Specification Request 177 (JSR-177). The purpose of this JSR is to specify a collection of API that provides security and trust services by integrating a Security Element (SE). A SE, a component in a J2ME device, provides the following benefits:

  • Secure storage to protect sensitive data, such as the user’s private keys, public key (root) certificates, service credentials, personal information, and so on.
  • Cryptographic operations to support payment protocols, data integrity, and data confidentiality.
  • A secure execution environment for custom and enabling security features. J2ME applications would rely
  • on these features to handle many value-added services, such as user identification and authentication,
  • banking, payment, loyalty applications, and so on.

A SE can be in a variety of forms. Smart cards are commonly used to implement a SE. They are widely deployed in wireless phones, such as SIM cards in GSM phones, UICC cards in 3G phones, and RUIM cards in CDMA phones. For example, in GSM networks, the network operator enters the network authentication data on the smart card, as well as the subscriber's personal information, such as the address book. When the subscriber inserts the smart card into a mobile handset, the handset is enabled to work on the operator’s network. In addition to a smart card-based implementation, a SE can also be implemented by a handset itself. Such implementation may utilize, for example, embedded chips or special security features of the hardware. Alternatively, a SE may be entirely implemented in software. This specification does not exclude any of the possible implementations of a SE even through some of the packages are optimized for smart card implementation.

Comments are due by November 28.

Monday, November 10, 2003

Excelsior has posted the third beta of FlawDetector 1.0, yet another lint-like static code checking tool for Java. This one is payware and runs only on Windows. FlawDetector is a JBuilder OpenTool, but can also be used from the command line. Pricing has not yet been announced for the release version.

jTunes is an open source iTunes clone written in Java. It uses Strangeberry's JRendezvous for music sharing, javazoom's javalayer for playing MP3s, and the iLeech Project's DAAP-part. jTunes is published under the LGPL.

Walter Stroebel has posted UML/Dot 0.1.0, a Java program that generates UML class diagrams from Java source or byte code. The diagrams are generated using GraphViz Dot. Java 1.4 is required. UML/Dot is published under the GPL.

Sunday, November 9, 2003

The Big Faceless Organization has released the Big Faceless Graph Library 1.1.5, a $400 payware (more if you want support) 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. Java 1.2 or later is required.

ej-technologies GmbH has released version 2.4 of JProfiler, a $548 payware profiler based on the Java virtual machine profiling interface (JVMPI that can report on CPU usage, memory size, threads, and "VM telemetry" (whatever that is). Version 2.4 improves "allocation recording for the dynamic memory views. Memory profiling can now be switched on and off during a profiling session. This can save a lot of memory, makes memory leak detection easier and allows for a tighter focus on problem areas. A new method in the API has also been added for this feature."

Bodo Tasche has posted JCalendar 0.7, an open source calendar GUI widget for Java that "provides a ComboBox (JCalendarComboBox) for selecting a Date and a simple Panel (JCalendarPanel) for showing and editing a Date." This release fixes a few bugs. JCalendar is published under a BSD license.

The Ping Software Group has released version 1.4.3 of the Kiwi Toolkit, an open source (LGPL), Swing-based GUI class library that includes a TreeTable component, a DateChooser, an MVC charting package, a plugin framework, an application resource manager, and more. There's some useful stuff here. The obvious flaw is that it doesn't adhere to standard Java package naming conventions.

Saturday, November 8, 2003

TRIEMAX Software has released Jalopy 1.0, a $40 payware source code formatter.

Gentleware has released Poseidon for UML 2.1 a Unified Modeling Language CASE tool based on the open source ArgoUML. Poseidon for UML integrates with NetBeans/Forte/SUN One Studio, and features generation and import of Java code. This release a improves performance, adds multiple stereotypes for all elements, and can pan the diagram with ctrl-right mouse button. There's a free beer community edition and several payware editions depending on which features you want that range in price from $149 to $599. Upgrades from 1.x range from $49 to $229.

Friday, November 7, 2003

Tom Copeland has released PMD 1.3, an open source tool for automatically checking Java code for various classes of bugs. PMD scans Java source code and looks for potential problems including:

I've used past versions of PMD, but this release seems to be completely non-functional, probably because the rule sets are missing from the distribution. It doesn't help that the documentation is poor, out of date, and often contradictory. The user interface is even worse, a very common problem for these sorts of tools that's hardly unique to PMD. I suppose the personalities that are good at writing syntax checkers and compilers don't tend to excel at human-computer interface design or documentation. :-( Despite the version number I wouldn't classify this as release quality.

The Big Faceless Organization has released the Big Faceless PDF Library 2.0, a $400 payware (more if you want support) Java class library for creating PDF documents. The $1000 Extended Edition adds the AcroForms support, digital signatures, and the ability to import and edit and existing PDF documents. New features in 2.0 include alpha transparency and support for multibyte fonts. Java 1.2 or later is required.

Thursday, November 6, 2003

Picture of a Cat, Tomcat logo The Jakarta Apache Project has released Tomcat 5.0.14, the servlet container for the Apache web server and the official reference implementation of the Java Servlet API and Java Server Pages (JSP). Tomcat 5.0 implements version 2.4 of the Java Servlet API 2.4 and version 2.0 of Java Server Pages. The numbering is a little confusing, but this appears to be the third beta release in the 5.0 series. It should really be numbered 5.0b3. Only users interested in testing beta software and reporting bugs should upgrade. Less adventurous users may wish to upgrade to the more stable 4.1.29 release.

The Apache Jakarta Project has released Jakarta Commons Primitives 1.0. This is a set of container classes (List, Iterator, Collection, etc.) for holding the Java's eight primitive data types (boolean, byte, char, double, float, int, long, and short). They claim these are "faster, smaller and easier to work with than their purely Object based alternatives."

The Apache Jakarta Project has posted the first release candidate of POI 2.0, an open source Java library for "manipulating various file formats based upon Microsoft's OLE 2 Compound Document format. OLE 2 Compound Document Format based files include most Microsoft Office files such as XLS and DOC."

IBM's alphaWorks has updated their Focus code coverage tool. "FoCuS is a tool that implements the functional coverage methodology and improves testing of applications by providing detailed coverage information on the areas in which testing is lacking. Functional coverage refers to testing the performance and functionality of an e-business application and making sure that the design of the test is complete and covers every aspect of what the application is meant to do." This release makes some speed ups and adds an API for hole analysis.

Wednesday, November 5, 2003

New Atlanta has released ServletExec 5.0, a payware servlet engine that supports the Java Servlet API 2.4, JavaServer Pages (JSP) 2.0, JSP Standard Tag Library (JSTL) 1.1, annd JavaServer Faces (JSF) 1.0. It runs opn top of Apache, IIS, and several other web servers. Pricing starts at $695 per CPU. Upgrades are cheaper.

The polls are open for Java 2 Standard Edition (J2SE) executive committee positions in the Java Community Process (JCP). Doug Lea knows what he's up to, and deserves to be elected. I have no particular endorsements among the remaining candidates. For myself, I stay out of the Java Community Process and will continue to do so as long as it remains closed and secretive.

Saturday, November 1, 2003

Sun has released a Java implementation of the W3C's Composite Capability/Preference Profiles (CC/PP). This is a library and API that allows J2EE applications to receive CC/PP data from client devices and tailor the content they generate to fit the device. For instance, a server might want to send different content to a cell phone or a PDA than to a desktop computer.

Older news:

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

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

Copyright 2003 Elliotte Rusty Harold
Last Modified November 12, 2003