Well, another month has passed and its time for the second monthly review of whats been going on at Jakarta. The Ant team have been working through some of the ideas dubbed too controversial for 1.5, while the Avalon bunch have been fixing up their documentation. CLI have been merging the Avalon-CLI code with their own new features and the Discovery and Morphos projects finally got some CVS space. Finally OJB and Struts have been in a bug fixing phase.
Once again I want to thank those who contributed and hope that you enjoy the read. If you would like to comment further on any of the highlighted discussions then please do so on the appropriate list, if you want to comment on the newsletter itself then please point your comments to email@example.com.
Editor: Rob Oxspring
After being "beaten up heavily" the last time he proposed it, Pier Fumagalli decided to have a second attempt at allowing people to be members of the Jakarta community without being involved in a particular codebase first . The opinions were mixed as before and one of the proposed solutions was to promote the jakarta-site CVS module to normal subproject status, again views were mixed .
Apache software often involves external tools and libraries and a recurring topic on the mailing lists involves how the licences of these libraries interact with the ASF's own licences. This month there were a couple of useful summaries of the major points to watch out for  although as ever, don't expect a definitive answer here - speak to a good software lawyer instead.
Richard Pitt of TogetherSoft offered Jakarta an academic licence for ControlCenter so that UML diagrams could be produced and maintained for jakarta projects .
The POI team were a little concerned that some potential new logos may come a little close to the MS Office(tm) originals, the discussion took place on general to get a broader opinion base and the community felt that the logo in question was legally risky .
"Apache Ant is a Java-based build tool"
Editor: Erik Hatcher
Ant has been modified to support all tasks outside of <target> (in the current CVS version only, at the moment) .
Costin Manolache is spearheading an implementation of an <import> facility with much discussion of the gory details of how this will work especially with the -projecthelp switch. This work is in the proposal/embed tree of Ant's CVS .
Erik Hatcher and Steve Loughran, with Manning's permission, contributed a concise and accurate Ant 1.5 PDF task reference from their hot-off-the-press Java Development with Ant book. This lives in Ant's CVS and will likely be included in any bug fix releases of Ant 1.5 [14, 15].
Splitting optional.jar into separate JAR libraries was a hot topic in July .
Conor MacNeill withdraws his Mutant Ant2 proposal .
By far the most active thread was on the never-ending topic of Ant2, with notable discussions of importing reusable project pieces and project extensibility and overridability .
dIon Gillard stirred things up with an "inflamatory e-mail" early in the month, sparking lots of Ant2 discussion .
Last, but not least - Ant 1.5 was released and has proven itself solid .
"The Avalon project is an effort to create, design, develop and maintain a common framework and set of components for applications written using the Java language"
Editor: Leo Simons
The Avalon team has been busy fixing the ills that have plagued their document building for so long. It has also been brought to our attention that the current avalon skin (derrived from the Tigris/Maven sites) displays rather poorly with IE 5.5, but ok with many other browsers. The Avalon team is looking at upgrading the skin shortly, which is easy to do with the Cocoon doc build system.
In other news, The Avalon team is looking at unifying two of their component containers. Merlin and Fortress were being developed with separate goals in mind, but they both recognize the strengths that the other container had. As a result, Fortress will be taking on the meta-info features of Merlin, and Merlin will be adding the more robust component instance management of Fortress.
On the topic of 'avalonized' applications is good news as well. A wrapper for Catalina (the servlet engine in Tomcat) has been developed. The proposed avalonized version of Turbine's Services Framework is also making good progress.
The last major recent addition to Avalon concerns JMX management. Avalon Phoenix has improved its automatic management capabilities even further, and a GUI client is in the works.
Due to the diverse nature of the commons group, this section has been split up to make it easier to pick out the topics of interest. This months stories come from the following:
"Commons-BeanUtils provides easy-to-use wrappers around the Java reflection and introspection APIs"
Editor: Robert Burrell Donkin
In terms of code, it's only been bug fixes this month, pushing towards a new release sometime soonish.
There was a lot of talk about Beanutils, Lang, reflection and refactoring. It's generally agreed that there is a lot of useful code here in commons that needs to be organized better so that it can be re-used.
If you look at the archives, you can't miss discussions of these issues but here are a few examples:
"Betwixt provides services for mapping JavaBeans to XML documents, and vice versa"
Editor: Robert Burrell Donkin
Initial activity pushing towards an early release has stalled a little. Work on other projects such as Jelly and Maven have diverted some energy away from Betwixt. But Betwixt is used in these project and so ideas have also been fed back the other way. A SAXWriter (which maps beans directly into SAX events) was created in response to needs in Maven.
"Commons CLI provdes a simple API for working with the command line arguments and options"
Editor: John Keyes
July was a month of consolidation for CLI with refactoring the current code base and implementing new features.
Parsers are now constructed using the CommandLineParserFactory.
Usage information is now automatically generated.
Options can now be created using OptionBuilder. This makes it much easier to add features to Option.
Validation for Option creation has also been added.
"Commons-Digester is a rule-base XML-to-Java-object mapping utility"
Editor: Robert Burrell Donkin
Another quiet month in terms of extra features but lot's of bugs have been stomped. We're pushing towards a new release very soon.
"Locates, configures and manages implementations of given Java interfaces"
Editor: Richard A. Sitze
New subproject that represents the recurring pattern (JAXP/Xerces, commons-logging, ??) for finding a class implementing a given interface. Locating, instantiating, and caching (assumes singletons, or at least singletons within some context) of classes (factories), and locating property files for configuring same. Includes best-practices guide for usage.
As a separate subproject, I (and I assume others as the interest strikes them) am more inclined to devote some effort to improving efficiency and increasing smarts of this facility. In this light, current improvements over original code (extracted from commons-logging):
"HttpClient provides client side HTTP 1.0/1.1 connectivity to any Java component"
Editor: Jeff Dever
HttpClient component may be of interest to anyone building HTTP-aware client applications such as web browsers, web service clients, or systems that leverage or extend the HTTP protocol for distributed communication.
There has been renewed interest in HttpClient lately, with very active contributions and discussions from new contributors and veterans alike. In the month of August we expect to release a milestone build with new content for the upcoming 2.0 release.
"Commons.Lang, a package of Java utility classes for the classes that are in java.lang's hierarchy"
Editor: Henri Yandell
Jakarta Commons Lang have released a beta of their highly reusable utility classes dedicated to improving classes in java.lang. The immediate aim of the Lang component has been to serve other Jakarta projects, unifying such things as NestedException structures, String utilities and various Object handling methods. Lang is already being used by a host of projects, both inside Jakarta and outside, and the code involved is mature and stable having been assembled from existed Jakarta and non-Jakarta projects.
"a project called Morphos with the scope of transforming file formats."
Editor: Nicola Ken Barozzi
Morphos in commons-sandbox has finally had its initial code checkin by nicolaken, after very fruitful discussions on the commons-dev list.
Basically it became evident that a Morpher should not deal with immutable objects, and that will be done by Transformer(s), the interface of which is in commons-sandbox Patterns project. Avalon-Excalubur has a Converter package that can be the base for a package of Transformer implementation.
Sven Kuenzler firstname.lastname@example.org has been very active in this month on Morphos, both in discussions and patches, and is the first real Mrphos developer. Thank you Sven :-)
"allows developers to control which log statements are output with arbitrary granularity"
Editor: Mark Womack
Mark Womack submitted an initial implementation of the Receiver concept he proposed in June () . No decision has been made to include this design in the next major version of log4j, though most comments seem positive to date.
Ceki Gülcü announced the availability of a draft version of his ebook, "The Complete Log4j Manual" .
Version 1.2.5 of log4j was released with minor changes and bug fixes .
There was a good discussion about socket performance and methods to increase the throughput performance for remote logging . Performance can be easily increased by having LoggingEvent implement the Externalizable interface instead of the Serializable interface, but at the cost of backward compatibility. Looking for ways to increase performance and still maintain backward compatibility.
The log4j-cvs mailing list was folded into the log4j-dev mailing list . CVS messages are now posted to the dev mailing list.
Kevin Steppe outlined some future directions and features for the JDBCAppender class .
Mike McAngus submitted changes to the date format related classes to support locale, decimal separator, and timezone  (see his 7/14/2002 message). The changes included the ability to set these values as sub-settings of the date conversion operator (%d) from a configuration file. Useful and extensive test cases were also included as part of the submission. After reviewing the code, it was decided to include these changes in the next major release of log4j (v1.3). The changes will be checked into cvs in the near future once a merge of the 1.2 branch is completed.
"an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases"
Editor: Thomas Mahler
Being exposed as a Jakarta project brought us many new users who found several bugs and had many ideas for improvements and new features. Thus we had to react quickly and launch two public releases in July!
There have been major improvements to the setup routine. We have incorporated several user suggestions to make setup as easy as possible.
The documentation has been completely restructured and updated.
We redesigned the connection management. OJB is now able to cooperate better with app-server connection pools. For non-managed environments we now provide a commons-pool based connection pool.
There is now a tool that allows verification of the mapping repository against the target database.
We also implemented a forward engineering tool that generates all required tables from the mapping repository.
The loading of 1:n associations has been redesigned. This resulted in a drastic performance gain.
"APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format"
Editor: Andrew C. Oliver
Japanese translations began
A number of people started working on better i10n and i18n support for HSSF still working on getting workable patches into the sourcebase.
A discussion started on when to move HDF out of the scratchpad - The prevailing view that HDF needs more website exposure to attract a larger community more than it needs to move out of the scratchpad and would do users a disservice by claiming greater maturity. Some believed that mature read support was enough, while a majority believed that read and write support is required.
Jason Height did so much on Andy Oliver's contrib module "SuckyViewer" that it no longer sucks. This has caused Jason's status to reach "Really Cool Guy & you rock" proportions. So now we have a nice swing Applet/Application for viewing Excel/XLS spreadsheets over the internet or on the local filesystem. "SuckyViewer" has been renamed SheetViewer. (and while this Applet/Application no longer sucks, Andy still thinks swing/applets and JAVA GUIs in general... tend to suck). From a recent extract of POI do ./build.sh contrib and then type sheetviewer at the prompt.
Andy Oliver gave a live presentation to the Triangle Java User's Group (trijug.org), one of the most active/thriving JUGs in the US, on POI and generating XLS spreadsheets using XML in Cocoon and POI. There won't be a POI presentation at the Apachecon this year but you can catch the "slides" still (below) and Andy's working on getting the videotape digitally recorded. (If anyone has the equipment and will please email acoliver.AT.apache.DOT.org)>
"to provide an open source framework for building Web applications"
Editor: Joe Germuska
* Struts 1.1b2: Twelve Bugs Away
* Struts meets JSTL-EL
* Commons File Upload component integrated
* Extending Struts XML Configuration
* Other Struts News: http://jakarta.apache.org/struts/news.html