The JavaPLT group at Rice University has posted a new build of DrJava, an integrated development environment (IDE) for Java that supports interactive evaluation of expressions. New features in this release include integrated JUnit support, an integrated debugger, a Preferences window for configuring DrJava, and online documentation. Many bugs have been fixed as well. DrJava is published under the GPL and requires JDK 1.3 or later.
Gert Van Ham's released version 0.4 of JCE taglib, and open source library based on the Java Cryptography Extension that adds strong encryption and message digests to Java Server Pages (JSP). Version 0.4 can create certificates from PKCS10 and Netscape requests.
IBM's released version 1.17 of the Jikes open source Java compiler. Version 1.17 fixes assorted bugs.
Teodor Danciu's posted version 0.4.1 of JasperReports, an open source 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.4.1 adds an HTML exporter and fixes assorted bugs.
debugtools.com has released version 2.1 of JDebugTool, a standalone graphical Java debugger built on top of the Java Platform Debugger Architecture (JPDA). Version 2.1 remembers the stack backtrace for each exception event and displays it in the Exception Event Dialog. Vversion 2.0 (which I don't think I announced here) added the ability to modify the values of primitive variables directly in the GUI. JDebugTool is $99 payware.
The Jakarta Apache Project has released Commons Logging 1.0.2. This "is an ultra-thin bridge between different logging libraries. Commons components may use the Logging API to remove compile-time and run-time dependencies on any particular logging package, and contributors may write Log implementations for the library of their choice." 1.0.2 introduces bug fixes for various NullPointerExceptions, and Security Exceptions in J2EE environments.
Sun's posted a proposed the proposed final draft specification for the Java Community Process (JCP) Program, version 2.5 (Java Specification Request 171).
MySQL AB has posted a beta of MySQL Connector/J 3.0.1, the JDBC driver for the open source MySQL database. This is published under the GPL. Non GPL licenses are also available for a fee.
Joe Walnes' has released QDox 1.0, an open source tool for extracting class/interface/method signatures and JavaDoc tags from Java source files. QDox is published under the Apache license.
Version 3.2 of GCC, the GNU Compiler Collection, has been released. GCC contains frontends for C, C++, Objective C, Chill, Fortran, and Java as well as libraries for these languages. This release should significantly speed up Java compilation. According to the release notes, "There is one platform-specific bug fix (for x86-64 - AMD's 64-bit architecture) Other than that, for users of C, Java, Objective-C, Ada, or Fortran, there are no significant changes with respect to 3.1.1."
Tom Copeland's PMD is an open source Java source code analyzer that finds unused variables, empty catch blocks, unnecessary object creation, and so forth.
RevJava 0.8.4 is a review assistant for compiled Java software. that checks "critics that point out possible design and style improvements for your Java program." It can calculate metrics and produce rudimentary graph. It loads bytecode, so source is not necessary. RevJava currently has 94 critics. RevJava is free beer.
Here's a quick prerelease shot of the cover for Processing XML with Java:
Yes, I know DOM is mentioned twice. That will be fixed before the book is printed. Still and all, it looks pretty cool, doesn't it? Amazon is taking pre-orders. The printed book should be available in mid-November.
Michael Fuchs has posted version 0.3.0 of his
DocBook Doclet that creates DocBook SGML and XML documents from JavaDoc.
This release adds support for
strike tags, and
fixes some bugs in handling
The Apache Jakarta Project has released version 4.0.5 and 4.1.12 of Tomcat, an open source servlet container/Java Server Page engine for the Apache web server. Tomcat 4.x implements the Java Servlet 2.3 and JavaServer Pages 1.2 APIs. Version 4.0.5/4.1.2 fix a bug that could disclose JSP page source. This could be a major security hole if, for example, the JSP code includes usernames and passwords for a database.
In related news, elharo.com, a Cobalt Qube I run off my SDSL connection, is back up; but getting Tomcat to work is giving me fits. My Qube uses a special hacked version of Tomcat 3.2 Sun publishes just for the Qube. I was able to get my servlets running using the /servlet/ServletClassName style paths but I haven't been able to map them to the URLs they're supposed to have. Right now I'm struggling with security violations when it tries add the mapping to a context.
Version 2.4.9 of the open source JBoss Enterprise JavaBeans application server has been released to fix a few bugs. JBoss includes JBossServer, an EJB container and JMX infrastructure, JBossMQ for JMS messaging, JBossMail for mail, JBossTX for JTA/JTS transactions, JBossSX for JAAS based security, JBossCX for JCA connectivity, and JBossCMP for CMP persistence. It integrates with the Apache Tomcat servlet container. JBoss is published under the LGPL.
Brian Westphal has released version 1.0.2 of his Java Parser/Parser Generator. It builds parsers from straight EBNF notation files. It's published under the GPL. This is a bug fix release.
The Jakarta Apache Project has released Cactus 1.4.1, a simple test framework for unit testing server-side Java code such as servlets, Enterprise JavaBeans, tag libraries, etc.
Jim Menard's posted DataVision 0.5.0, an open source "database reporting tool similar to Crystal Reports". DataVision is written in Java and supports multiple databases including PostgreSQL, MySQL, and Oracle.
SGI has posted a beta of Java 1.4 for IRIX. The client version of HotSpot is now the default VM.
IBM's released version 2.0.1 of the open source Eclipse Integrated Development Environment (IDE). This is a bug fix release, though looking at the list of bugs fixed, they don't seem to have fixed any of the ones I've noticed. I've been using Eclipse for the last few months, and it's OK but it still has a very rough feel to it. The worst problem is that the Help doesn't work, because Eclipse can't figure out how to connect to my browser. Of course, to figure out how to fix that and properly configure the Help, you have to read the Help about configuring the browser. Catch-22.
Eclipse also suffers from a classic bugaboo of both open source and Unix software: brilliant technical work, horrid user interface. Basic editing functionality is not up to the level of BBEdit or jEdit. For instance, the scroll wheel isn't supported. Menu items are rarely where you expect them to be. Copy and paste don't work in all dialog boxes. Eclipse just doesn't provide a clean and smooth user experience. I suspect The Eclipse Project desperately needs to involve some programmers with some Mac experience who know what a good user interface is and maybe even how to design one.
jTDS 0.3 is a 100% pure Java (Type 4) open source JDBC 2.0 driver for the Microsoft SQL Server series (6.5, 7.x and 2000). It's originally based on the work of the FreeTDS project but it's an independent project for over one year now. jTDS 0.3 supports read-only scrollable ResultSets, multiple concurrent Statements per Connection, and implements most DatabaseMetaData and ResultSetMetaData methods.
Sun's posted the public review draft specification for Java Specification Request 124 J2EE Client Provisioning Specification, in the Java Community Process (JCP). This is a Java standard for partitioning "server applications that provision client applications in such a way that the details of any one client provisioning model are abstracted and standardized." Comments are due by October 19, 2002.
A hole has been found in the Microsoft Java virtual machines that allows applets and other untrusted code to crack the local client system. Microsoft has posted a patch. This probably won't affect serious Java developers who long ago replaced the Microsoft VM with the Sun or IBM VM. However, it could hurt a lot of random Windows users.
Sun has announced plans to begin selling Linux desktop systems code named "Mad Hatter" early next year. These cheap commodity boxes, sold in lots of 100 for about $1000 apiece, are aimed at environments like call centers that don't need a lot of features. It will include Java, a web browser, possibly Star Office, and an identity card reader.
In my opinion, this could be very successful, but it's going to require Sun to do a lot of work on the software side. Linux could be ready for the desktop, but Linux distributions are not. A desktop Linux distribution should begin by removing most of the options, focusing on a core group of programs and functionality, and then going through the programs screen by screen, menu item by menu item, and carefully fixing all the user interface bugs and inconsistencies. The goal should be to produce a clean, integrated, consistent user experience, at least on a par with Windows. Current Linux distros compete by shovelling ever more crap onto more CDs. I'm waiting for the first minimalist distro that competes by removing software and making sure all the software it does include actually works like it's supposed to.
IBM's alphaWorks has updated JROM with new XML Schema-aware XML/JROM converters, independence from the Apache SOAP serializer, and suport for Axis1.0rc. The Java Record Object Model is "a tool that provides an in-memory tree representation of instances of structured, typed information and that is based on the XML Schema data type system. JROM values either are typed, simple values for first-level data, or they are complex values that can contain an arbitrary number of elements and attributes."
Gert Van Ham's posted version 0.3 of his open source JCE taglib that uses the Java Cryptography Extension to add strong encryption and message digests to Java Server Pages (JSP).
Xrefactory is a $29 shareware refactoring browser for Emacs and XEmacs. It supports C and Java, and runs on Unix and Windows.
Last night at the New York XML SIG meeting, I unveiled XOM, a new XML Object Model for Java published under the LGPL. Like DOM, JDOM, dom4j, and ElectricXML, XOM is a read/write API that represents XML documents as trees of nodes. Where XOM diverges from these models is that it strives for absolute correctness and maximum simplicity. XOM is based on more than two years' experience with JDOM development, as well as the last year's effort writing Processing XML with Java. While documenting the various APIs I found lots of things to like and not like about all the APIs, and XOM is my effort to synthesize the best features of the existing APIs while eliminating the worst. It's closest in spirit to JDOM. I had originally intended to fork JDOM, but it rapidly became apparent that very little actual JDOM code would be left when I was done and that starting from scratch would give me a flexibility I wouldn't have by using the existing JDOM code base. There is one non-public class hidden deep in the bowels of the API that uses some JDOM code (taken from, not coincidentally, the single JDOM class I was most personally responsible for) but otherwise, XOM was written starting with a blank screen.
I also attempted to write XOM according to a more modern understanding of Java in particular and API design in general
than I had two years ago when JDOM was started.
I've spent a lot of time over the last year
thinking about the ideas of (and in some cases arguing with)
Bruce Eckel, Joshua Bloch, Bertrand Meyer, Ken Arnold, Erich Gamma, Kent Beck, Martin Fowler,
and other design savants, sometimes in person, sometimes in e-mail, sometimes just in my own head.
It may not be obvious at first glance, but these gurus collectively had a huge effect on the overall design of the API. For instance, Joshua Bloch's
Effective Java gave me the courage to ignore the
Cloneable interface and give my classes copy constructors instead.
Bloch and Bruce Eckel together convinced me that many of the exceptions in XOM
deserved to be runtime exceptions, not checked exceptions, a decision that
makes a lot of code much cleaner.
The actual release date snuck up on me about a week earlier than I was expecting, and although the software was ready, not all the supporting documentation, mailing lists, CVS repository, web servers, etc. was, so I'm going to be filling a lot of that in today. Update: The XOM-interest mailing list is now live. You can subscribe by sending e-mail to firstname.lastname@example.org with just the word "subscribe" in the subject or body. or by filling in this form. This is a general discussion and development mailing list. For now, everyone's invited. Once XOM is more stable, I'll probably split out separate xom-development and xom-users lists, but it's too early in XOM's life cycle right now for the distinction to matter that much. The current web site on Cafe con Leche is temporary. I will eventually move it to its own domain at www.xom.nu, but I'll be sure to leave an automatic redirect behind when that happens.
In the meantime, if you're curious you can start by browsing the JavaDocs or looking over the notes from last night's presentation to the New York XML SIG. I consider the current version to be 1.0d1. In other words, the API is still open for discussion and change. Depending on what people think, it could take more or less time to reach an API freeze and begin an alpha and beta cycle. I do very much want to hear feedback. I'm going to try to get some mailing lists set up very quickly so we can have an ongoing discussion and back and forth, but that may take me a day or two. In the meantime, please keep good notes on any comments you have. :-)
Sun's released version 1.4.1 of the Java 2 Standard Edition (a.k.a. JDK 1.4.1) for Linux, Solaris, and Windows. Version 1.4.1 adds:
Over 2000 bug fixes
Experimental support for 64-bit application for the Intel Itanium processor. However, there's no JIT, and the Java Plug-in and Java Web Start are not yet supported.
Concurrent Mark and Sweep and Parallel garbage collectors.
The javac compiler is now thread safe, and contains several very picky fixes for conformance to the Java Language Specification, none of which seem likely to cause any major problems for existing code.
Java Web Start 1.2. New features in this include customizable splash screens, one-click installation on Windows, and support for Non-UTF-8 encoded JNLP files.
BEA Systems has released JRockit 7.0, a free-beer (registration required) Java virtual machine for X86 servers running Linux and Windows. This release is supposed to be much faster than previous releases, and adds a management console.
Sun's posted public draft 0.7 of the Java Architecture for XML Binding (JAXB) specification in the Java Community Process. JAXB compiles an XML schema into one or more Java classes. (First mistake: JAXB assume there's a schema. Second mistake: It assumes the schema is written in the W3C XML Schema Language. Third mistake: It assumes documents actually adhere to the schema.) JAXB can unmarshal schema-valid XML into Java objects; read, update and validate the Java objects against the schema, and write the result back out as XML. Changes since the last 0.21 release include:
Comments are due by October 16.
Silver Egg Technology's Java Service Wrapper 2.2.8 is a tool that allows Java applications to be installed and controlled like native NT/Unix services. It can automatically restart crashed or frozen JVMs.
Hibernate 1.1 has been released. Hibernate is an "object/relational persistence and query service for Java. Hibernate lets you develop persistent objects following common Java idiom, including association, inheritance, polymorphism, composition and the Java collections framework. To support a rapid build procedure, Hibernate rejects the use of code generation or bytecode processing. Instead runtime reflection is used and SQL generation occurs at system startup time. Hibernate supports Oracle, DB2, MySQL, PostgreSQL, Sybase, SAP DB, HypersonicSQL, Microsoft SQL Server, Progress, Mckoi SQL and Interbase." Hibernate is published under the LGPL.
Elharo.com and Macfaq.com will be down today while I attempt to upgrade the OS on the Cobalt Qube that hosts them. (E-mail to those addresses will still get through.) I've been putting this off for a while, but the security issues finally got too big to ignore, even for a site that only exposes a single port and one service through the firewall. The easy upgrade through BlueLinq just plain doesn't work, and very annoyingly it provides absolutely no error messages to tell you why it failed. Consequently, I have to backup my data, power down the box, reinstall the entire OS from scratch, then apply several dozen patches one by one, then reinstall the data. With luck it will be up again tomorrow. Fortunately, none of my major sites are hosted on this box.
Sun's posted the public review draft specification Java Specification Request 169, JDBC Optional Package for CDC/Foundation Profile. Comments are due by September 19.
Abbot 0.7.3 is a framework for testing Java GUIs. Using simple XML-based scripts, you can launch a GUI, play back arbitrary user actions on it, and examine its state. It also includes the Costello editor which facilitates creating, debugging, and modifying scripts. Test scripts can be run as a JUnit TestCases. This release has been internationalized. Abbot and Costello are published under the LGPL.
Oliver Burn's released
Checkstyle 2.4, a lint-like tool that checks Java code
for adherence to various coding standards.
This release adds pattern-based checks for package names, detects if the number of parameters in a declaration exceeds a specified amount, localizes error messages, and checks to determine if an unused
@throws exception is a subclass of
Checkstyle is published under the LGPL.
Sun's posted a maintenance release of Java Specification Request 63, the Java API for XML Processing 1.2. It's not immediately obvious to me what has changed.
The public review draft specification for Java Specification Request 142, OSS Inventory API has been posted in the Java Community Process. "The OSS Inventory API defines J2EE based interfaces between inventory repositories and other OSS components." Interestingly, this is the first JSR I've noticed that does not include a Sun representative in the expert group. Comments are due by November 10.
Francois Beausoleil's Java GUI Builder 0.5a reads an XML description of a GUI and then generates windows, controls, menus, and other objects for later retrieval by the program. New in this release is an XSLT stylesheet that can generate Java source code from the XML GUI description. This is published under the GPL.
Omnicore's CodeGuide 5.0 is a $299 payware integrated development environment Java and Javaserver Pages IDE featuring on-the-fly compilation and refactoring capabilities.
Matthew Pekar has released version 0.94 of Pounder, a GUI testing tool for Java. Developers can record scripts that are then run in JUnit. Version 0.94 adds native language support for French, German, and Korean, a "text equals" assertion, and an option for ignoring unnamed components during the recording process. Java 1.4 is required. Pounder is released under the LGPL.
PDFGo 1.0.3 is a $449 payware pure Java library that can parse and display PDF files. This release fixes a few bugs.
jPOS 1.4.4 has been released. jPOS is an "ISO-8583 library/framework that can be used to implement financial interchanges, protocol converters, payment gateways, credit card verification clients and servers (merchant/issuer/acquirer)." Version 1.4.4 adds
ej-technologies GmbH's JProfiler 2.1 is 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.1 adds support for "sampling as a new call tree collection method to allow for rapid troubleshooting of bottlenecks without filters." The IDE now integrates with Eclipse, Netbeans 3.4, and Borland JBuilder, as well as with the Websphere 5.0 and Sun ONE Application Server 6.5 application servers. Finally, a free-beer "JProfiler Monitoring Edition" for Netbeans/Sun ONE Studio has also been posted.
First, go read Bill Venner's interview with Ken Arnold quoted above. Then mark your calendar for Tuesday September 17, because I've been thinking along similar lines for a while, and two weeks from tonight, at at the New York XML Special Interest Group meeting in Manhattan, I'll be unveiling a new XML API that follows a lot of the principles Arnold outlines in his interview, including:
I think most existing XML APIs violate one or more of these rules. DOM violates all of them, and quite a few more besides. I believe something better is possible, and on the 17th I intend to prove it. If you're curious, and you'd like to be in the audience, just drop a note to Walter Perry to reserve a spot. The meeting begins at 7:00 P.M. at the Goldman Sachs Training Center, 125 Broad Street, in lower Manhattan. Security requires that those attending this meeting be registered at least a day in advance so that their names are available to check against attendance at the door. Please register before Monday 16 September to insure that you will be admitted.
P.S. If you can't be in New York on the 17th, I'll be posting everything online here on the 18th. Stay tuned.
Gentleware's Poseidon for UML is a $199/$399 payware 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.
Johann N. Loefflmann's Jacksum 1.1.0 is an open source checksum utility written entirely in Java. Supported algorithms include Adler32, BSD sum, POSIX cksum, CRC-16, CRC-32, MD2, MD5, SHA, and Unix System V sum. Jacksum is released under the GPL.
debugtools.com has released version 1.7 of JDebugTool, a standalone graphical Java debugger built on top of the Java Platform Debugger Architecture (JPDA). Version 1.7 makes a few small user interface enhancements. JDebugTool is $99 payware.
JMail 0.8.0 is an open source Java mail client based on the JavaMail API that supports attached files, HTML mail, LDAP and more. It's published under the GPL.
The Legion of the Bouncy Castle has released version 1.15 of the Bouncy Castle Java Cryptography API, an open source, clean-room implementation of the Java Cryptography Extension (JCE). It supports X.509 certificates, PKCS12, S/MIME, CMS, PKCS7, and lots of other juicy acronyms. It also includes its own light-weight crypto API that works in Java 1.0 and later, and does not depend on the JCE. Personally, I've always found the JCE to be a bit of a mess. Making it compatible with U.S. law made it a lot more complex than it otherwise would have needed to be. Thus, this lightweight API feels like a breath of fresh air. Version 1.15 makes improvements to the ASN.1 package, SMIME, PKCS12, and the CRL support. It also fixes some minor bugs and compliance issues and one problem with the key schedule for RC5-64.
The the Speech Integration Group of Sun Microsystems Laboratories has released FreeTTS 1.1.1, an open source speech synthesis system written in Java. It is based on Flite, a small runtime speech synthesis engine developed at Carnegie Mellon University. Flite is in turn derived from the Festival Speech Synthesis System from the University of Edinburgh and the FestVox project from Carnegie Mellon University.
The JBoss Project has released JBoss 3.0.2, an open source Enterprise JavaBeans application server implemented in pure Java. JBoss provides JBossServer, the basic EJB container and JMX infrastructure, JBossMQ for JMS messaging, JBossMail for mail, JBossTX for JTA/JTS transactions, JBossSX for JAAS based security, JBossCX for JCA connectivity, and JBossCMP for CMP persistence. It integrates with Tomcat Servlet/JSP container and Jetty Web server/servlet container, and enables you to mix and match these components through JMX by replacing any component you wish with a JMX-compliant implementation for the same APIs.
Christopher Clemens Lee has released JavaNCSS 21.41, a GPL'd source measurement suite for Java. It can tell you how many "Non Commenting Source Statements" (NCSS) there are in your code as well as calculating the "Cyclomatic Complexity Number (McCabe metric)". New features in this release include:
The Apache Tomcat team has released version 4.1 of Tomcat, the servlet container/Java Server Pages (JSP) engine for the Apache web server. New features in version 4.1 include:
Before upgrading from another Tomcat 4.x release, be sure to clear the Tomcat work directory.
WEBSina's Bugzero 1.5 is a $499 payware Web-based bug/defect/issue/case tracking system written in Java. Bugzero supports multiple projects, group-based access, automatic bug assignment, file attachment, email notification, charting, and metric reports.
Jeff Pace's released version 3.3.7 of DoctorJ, an LGPL'd Linux application written in C++ that analyzes Java source code in three areas:
This release adds spell-checking of Javadoc comments and fixes various bugs.
Teodor Danciu's posted version 0.4.0 of JasperReports, an open source 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. JasperReports is now published under both the Apache License and the LGPL.
Michael Fuchs has posted version 0.2.9 of his DocBook Doclet that creates DocBook SGML and XML documents from JavaDoc. This release adds internationalization support and fixes a couple of bugs.
Michael Hartmeier's Packlet installer tool 0.3 is a simple open source installer builder that creates executable GUI installers that can run on any machine with a Java 2 Runtime Environment installed:
Packlet is distributed under the LGPL.
The Zaval Creative Engineering Group has released version 2.0 of the Zaval Light-Weight Visual Components Library (LwVCL), an open source alternative to the AWT and Swing. This release adds Grid, Tree Grid, Status Bar, Progress indicator, and other components.. Java 1.1 or later is required. Version 2.0 is about 150K total. It's published under the GPL.
Sun's posted version 2.1.1b of the Java Media Framework. This release fixes a few bugs that arise in Java 1.4, but it's primary purpose is to remove the MP3 encoder and decoder, apparently due to licensing hassles. Most users should not upgrade.
The Jakarta Apache Project has released Cactus 1.4.1, an open source unit testing framework for testing server side Java code (servlets, Enterprise JavaBeans, Tag Libraries, Filters, etc.) based on JUnit. 1.4.1 is a bug fix release.
Jpedal 1.65 is now available. Jpedal is a pure Java library for extracting content from Adobe's PDF file format and rasterizing it. Text fragments are extracted as XML elements with font and location information. Images are extracted in both their raw formats and their clipped and scaled formats as TIFF, PNG, or JPEG files. The new release fixes a few bugs, and bundles everything into a single jar file. Jpedal is published under the LGPL.
Sun's posted a public review draft of the JavaServer Faces Specification 1.0 in the Java Community Process. JavaServer Faces aims to simplify building user interfaces for JavaServer applications through reusable user interface components that can be connected to application data sources and wiring between client-generated events and server-side event handlers. It includes APIs for "representing UI components and managing their state, handling events and input validation, defining page navigation, and supporting internationalization and accessibility" and a JavaServer Pages custom tag library for "expressing a JavaServer Faces interface within a JSP page." An early access implementation is available.
JDebugTool 1.6.2 is a standalone graphical Java debugger built on top of the Java Platform Debugger Architecture (JPDA). Version 1.6.2 adds a few small features and bug fixes. JDebugTool is $99 payware.
|January||January, 2002||January, 2001||January, 2000||January, 1999||January, 1998|
|February||February, 2002||February, 2001||February, 2000||February, 1999||February, 1998|
|March||March, 2002||March, 2001||March, 2000||March, 1999||March, 1998|
|April||April, 2002||April, 2001||April, 2000||April, 1999||April, 1998|
|May||May, 2002||May, 2001||May, 2000||May, 1999||May, 1998|
|June||June, 2002||June, 2001||June, 2000||June, 1999||June, 1998|
|July||July, 2002||July, 2001||July, 2000||July, 1999||July, 1998|
|August||August, 2002||August, 2001||August, 2000||August, 1999||August, 1998|
|September||September, 2002||September, 2001||September, 2000||September, 1999||September, 1998|
|October||October, 2002||October, 2001||October, 2000||October, 1999||October, 1998|
|November||November, 2002||November, 2001||November, 2000||November, 1999||November, 1998|
|December||December, 2002||December, 2001||December, 2000||December, 1999||December, 1998|