It's been another good year at the JavaWorld Tools Awards for Apache. Xerces2 Java Parser 2.4 from the Apache XML Project won the Best Java-XML Tool award and Apache Ant 1.5 developed by the Apache Ant Project won the Most Useful Java Community-Developed Technology. Good work!
W3C has issued SOAP 1.2 as a recommendation. This means that the SOAP 1.2 specification is now (effectively) a web standard. Apache software related to SOAP can be found in the Web Services and XML projects. The press release is here.
This newsletter is the second wiki-built newsletter. See the http://wiki.apache.org/old?JakartaNewsletterDrafts for more details. Also, I sent the announcements to all the developers' list in jakarta. It was a bit annoying I suppose, however, this newsletter contains a lot of news from various projects, including Jakarta Related Projects.
As always, 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 firstname.lastname@example.org.
Editor: Tetsuya Kitahata
Special Thanks: Robert Burrell Donkin
" Ideas, suggestions, and comments on the overall Jakarta project "
Editor: Tetsuya Kitahata
Discussions on general mailing list have been fairly light-weight these 2 months. The Main page of the Jakarta Site has been updated in order to arrange the "Jakarta-Related" projects properly. Now, Jakarta website has renewed to become one of the most powerful "Java-Portal" sites. The JavaOne Conference was held in June, and there seemed many atendees from jakarta participants.
As Sun Microsystems set up the http://java.net/ site, there was alot of talk surrounding this issue.
Jakarta Tapestry, which had been longed to become a Top Project in Jakarta, finally joined in the Jakarta Umbrella in May. The first proposal was made at General Mailing List in October last year by Howard M. Lewis Ship, so it took about a half year. We look forward to the Tapestry Teams playing a more active part in Jakarta.
" creating and maintaining reusable Java components "
Editor: Robert Burrell Donkin, Tetsuya Kitahata
An OnJava Article  covering the components in Jakarta Commons  has been published. If you've ever wondered about what's all these components do, this is a good place to start. 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. These months' stories come from the following:
Editor: Robert Burrell Donkin
The Commons Team is pleased to announce the long-awaited release of commons-fileupload 1.0. Good work Martin!
For more information see the FileUpload component home page .
Thanks to Arnaud Vandyck FileUpload now is available as a Debian Package .
Editor: Serge Knystautas
There has been renewed interest in DBCP, which has sparked a requirements discussion. The list of bugs and tasks for the next release are becoming clear, as well as how to extend DBCP moving forward. We hope to have a good bug fix in the next month or two, and then have a major release later this year.
For more information see the DBCP component home page .
Editor: Michael Becke
HttpClient has continued to be busy. 2.0 beta 2 was released July 2 and a final 2.0 version should follow shortly.
2.0 branch will be created in early July so that 2.1 development can begin. The plan for 2.1 is coming together (2.1 release plan thread ) and will provide some significant refinement of the 2.0 release.
Adrian Sutton was warmly welcomed into the committer team in early June and has continued to be a valuable member of the HttpClient community.
For more information please see the HttpClient component home page .
Editor: Robert Burrell Donkin
For more information, see the Commons-Lang website .
Editor: Phil Steitz
Commons-math is a new Commons Sandbox component. The goal is a small, self-contained, ASL-licensed library of utilities addressing common math/stat programming problems that can't be solved directly using the JDK or the extensions in commons-lang.
Here is a sample of the kinds of things supported by the initial code base:
Suggestions for new components or enhancements to existing functionality are always welcome!
For more info, see the Commons-Math website .
" user customizable Java Enterprise Information Portal, using Java and XML and based on Turbine framework "
Editor: Tetsuya Kitahata
Jakarta Jetspeed Team realeased the Jetspeed 1.4 Beta 4 on 27 April 2003, and made a lot of changes after the Beta 4 Release . Now, our team is planning to release the official final release 1.4, long overdue however, around the end of July or thereabouts.
Jakarta Jetspeed has grown in recognition and influence as an internationalizable portal site system. The Jakarta Jetspeed Team welcomes any input, feedback or comments.
For more information, see the Jakarta Jetspeed website .
" Pure Java desktop application designed to load test functional behavior and measure performance "
JMeter has grown quickly in the past year, with new releases coming out about every 6 months. Right now, JMeter 1.9 is nearing completion (see the JMeter-1.9RC2 download page ). JMeter has become a full-fledged client/server testing tool, useful for both stress testing and functional testing of web apps, databases, ftp, soap services, ldap, and more.
In the past few months, several articles have been written about JMeter:
For more information, visit our pages / Jakarta JMeter Homepage .
" Log4j allows developers to control which log statements are output with arbitrary granularity "
Editor: Mark Womack, Ceki Gülcü
Scott Deboy and Paul Smith have been enthusiastically voted in as log4j committers. They have done extensive work on improving chainsaw and other parts of log4j. In relation with this vote, Mark Womack stated:
With all of our new contributors, I think it is a validation of the sandbox that we started. It is an excellent way to let people contribute, get familiar with the environment, process, etc. And then when merit is demonstrated, granting appropriate committer access. I like that we set up that process. I think it has really rejuvenated and helped the log4j development community, affecting my previous commentaries. I hope it continues and that more people out there will take advantage of it, start the process for themselves, and get involved at whatever level they can/want.
Chainsaw v2 has been moved out of the sandbox into log4j main.
Certain operations on Loggers are now made using ReaderWriterLocks which allows simultaneous read operations but only one write operation. This should significantly improve logging throughput in heavily loaded server environments.
Rolling can now be triggered based on time or size as was already the case in log4j 1.2. However, the new architecture allows for much more variation in the timing of the rollover and the actions taken during rollover (i.e on the fly compression, renaming, moving). The new architecture was suggested a long time ago by James P. Cakalic. A similar design can be found in the Avalon Logkit.
We have started to closely collaborate with the Avalon project in order to better cater for their needs.
" Lucene provides A high-performance, full-featured text search engine "
Editor: Otis Gospodnetic
Lucene is still at version 1.3 RC1. Last month a Lucene JSP taglib  was contributed to the Lucene project.
A new article entitled "Parsing, indexing, and searching XML with Digester and Lucene"  was published by IBM developerWorks.
The LARM web crawler project has moved from the Lucene Sandbox to SourceForge .
" APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format "
Editor: Tetsuya Kitahata
We updated the build system from Crysalys Centipede to XML-Forrest. Thanks to all the contributors to XML-Forrest. We are preparing the release of the Poi 2.0-pre2 within a few days. Poi TNEF -- Java implementation for MS-TNEF mail extraction -- will join to the Poi Team contributed by Amichai Rothman (TNEF ). HDF (Horrible Document Format, Microsoft Word compatible format reader/writer), inactive for some time, has become active again due to our excellend developers.
The other prominent news in the last 2 months:
" A model-view-controller framework for constructing web applications with servlets and JavaServer Pages "
Editor: Tetsuya Kitahata
The Struts team is proud, and extremely pleased, to announce the Final release of Struts 1.1. This release includes significant new functionality, as well as umerous bug fixes which were reported against the previous release, and supersedes the earlier 1.0.2 version as the latest official release of Struts from the Apache Software Foundation.
Both source  and binary  distributions, including a minimal binary distribution, are available through the usual Apache mirror sites. Please remember to verify the signatures of the distribution using the keys found on the main Apache web site when downloading from a mirror.
Also, as of June 25, 2003, there were 2744 subscribers to STRUTS-USER (plus an unknown number who read it through newsfeed mirrors). It has come to be the largest user mailing list at Jakarta, exceeding TOMCAT-USER that has about 2400 subscribers.
For more information, see the Struts web site .
" Tapestry provides web framework which seeks to find greater harmony between web designers and developers "
Editor: Howard M. Lewis Ship
The Jakarta Tapestry team is tickled pink by the ascension of Tapestry to a full Jakarta sub-project . The first beta release of Tapestry has been released . Tapestry distributions are now properly mirrored (now more SourceForge downloads!). A second beta is expected soon.
The Tapestry user list currently stands at 250 subscribers (as of July 5, 2003).
Christian Sell has written an article  comparing the WebWork and Tapestry frameworks. The article was published in the German language magazine Javamagazin . The text of the article is available (in German) at , and its very favorable to Tapestry. Tapestry continues to gain mind-share.
Editor: Richard Lewis-Shell
May saw Tapestry accepted as a full-fledged Jakarta project  - the incubator is behind us! Since then Tapestry has continued to thrive, making solid progress towards the first release under the Jakarta banner - 3.0. A feature complete beta-1, and a quick followup beta-1a, have been released , with beta-2 imminent. beta-2 will feature a number of bug fixes, and small enhancements over beta-1a, and Mind Bridge's converted code enhancer from BCEL to Javassist. Attention is starting to turn to 3.1 with a refactoring to Howard Lewis Ship's HiveMind  sandbox project on the cards.
In related news, Geoff Longman has made an early version of Spindle  available (the Eclipse IDE plugin for Tapestry) for Tapestry 3 looking quite unlike previous versions of Spindle, but showing great potential.
For more information, see the Jakarta Tapestry website .
" Tomcat is the official Reference Implementation of the Servlet 2.* and JavaServer Pages 1.* technologies "
Editor: Remy Maucherat
The Tomcat team is hard working on Tomcat 5, with the recent release of Tomcat 5.0.3, and the upcoming Tomcat 5.0.4 release (another alpha). The quality of Tomcat 5.0.3 seems to be quite high for an alpha (which isn't that surprising given it is a direct evolution of the Tomcat 4.1.x codebase), so we encourage fearless users to test drive it and report issues.
Planned July builds:
For more information, see the Jakarta-Tomcat Website .
" a servlet based framework that allows developers to quickly build secure web applications "
Editor: Henning Schmiedehausen
Since its last release on Dec, 6 2002, the Turbine Web Application Framework has undergone some significant improvements and changes.
Most of the sore points (Logging, Configuration, Component Integration) have been addressed, improved and resolved. Currently, the Turbine Developers are working hard towards the next release which is scheduled for Mid to End of July. A first Release Candidate (RC) is to be expected around July, 7th.
Changes from the last release include:
An Avalon Component Service is available which allows users to integrate Avalon components into Turbine applications. The Turbine Development Team recommends using this new Service for accessing the Torque object persistence framework which is the foundation for some of the Turbine Services such as Security Service and Scheduler Service.
For more information see the Homepage of the Jakarta Turbine Project .
" Velocity is a general purpose Java-based template engine "
Editor: Will Glass-Husain, Nathan Bubna
After a long period of quiet, the Velocity developer community has recently gained some new momentum. Work has begun on a patch to add floating point number capability to the velocity syntax. Other changes under discussion include
Also, the VelocityTools subproject has been stable for months now and is nearing first release. Among other things, it provides good support for rapid, clean development of web applications with Velocity and optional integration with the Struts framework. Anyone developing web applications with Velocity needs to check this out.
More info is on the velocity-dev list. Please come and share any comments you might have!
" Apache Ant is a Java-based build tool "
Editor: Conor MacNeill, Steve Loughran
In addition to Ant's Java World Editors' Award, the Apache Ant has also been awarded the Java Pro Readers' Choice award for Most Valuable Java Deployment Technology.
Anyone upgrading to Java1.4.2 should note that <javah> breaks, on account of the entry point to the javah code being moved. This is fixed in CVS, and may merit a release of an update of the 1.5.x branch simply to reduce developer grief. We must actually credit Sun for giving us an early warning of the change, but cannot fail to observe that leaving entry points alone would have been better.
In the Ant core itself work on the new task loading mechanism <antlib> is progressing; once this is stable it should improve how tasks load. To address with the related increase in .jar files that come from splitting optional.jar up by dependency Conor has recently added an alternate startup mechanism, Launcher, which should offload much of the work of the surprisingly troublesome startup scripts into the Java code itself. With a single means of adding ANT_HOME/lib jars to the classpath, finding the JDK and such like, life should be easier for everyone, especially those who insist on installing Java in directories with spaces in them.
Ant is gearing up for the 1.6 release. There will be a number of new features and improvements. There is still a lot of development to do so it's a month or two away at this stage. There are things such as the import task, xdocs documentation generation, possible type polymorphism, etc. There are nightly builds to try now if you want to see what sort of features are coming and you want to test them out.
There is a new task <scriptdef> allowing tasks to be created from BSF scripts. It's a piece of a larger, interesting discussion about scripting within Ant. One approach is speculating about the use of scripting based alternatives to the Ant XML representation that still leverage the tasks in the Ant codebase.
There is a new book on Ant in the stores, "Extreme Programming with Ant", by Niemeyer and Poteet. Covering Ant 1.5.3, JUnit, XDoclet and related tools with an XP build and deploy focus. It sounds like an interesting read.
Editor: Anton Tagunov
The long awaited Fotress 1.0 has finally been released.
Implementing full support for Avalon 4 interfaces Fortress provides a straightforward upgrade path from the outdated ECM Avalon container.
The most lightweight of the modern Avalon containers Fortress is easy to embed into managed environments like servlet engines. It features high scalability and facilates creation of application-specific avalon containers.
The difference that all ECM users will notice is the decomission of role files -- this information is now expressable via javadoc tags in component's source.
For more information, see the Avalon Fortress website .
" Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases "
Editor: Thomas Mahler
OJB is in the process of finalizing a 1.0 release. We plan to have a new release candidate in July and hope to get out the 1.o release by end of July. In the last months OJB attracted more public attention.
For more information, visit the Apache DB OJB (object relational bridge) website .
" Apache James offers a mail and news server, supporting Mailets, SMTP, POP3, NNTP, and soon..IMAP "
Editor: Serge Knystautas
The James team has been on a roll lately, incorporating several long-outstanding feature requests into the stable 2.X release branch. The biggest new feature is a custom class-loading system, so custom mailets and matchers do not need to be built and included within James itself. This will allow much faster and easier development of email based applications.
James was featured this month on IBM Developer works with two excellent articles by Claude Duguay. He first introduces "users to James"  and then gets into "building some custom mailets and matchers" .
Other recent changes include clarifying exception handling and adding the ability to configure how James should handle these unexpected errors. There have also been a large number of bug fixes, and we are rolling out releases almost every month. Some upcoming features include an enhanced mailing list system, better database connection pooling, and some improvements to the mailet API. The differences between the 2.X and the 3.X branch are gradually shrinking as features are being backported to the current stable branch.
Since becoming a top-level project (TLP), the James community continues to experience strong growth, this spring averaging over 12,000 downloads per month. Vincenzo joined us as a new ASF committer this month, and we plan to continue to grow the developer community. We have recently migrated our CVS and mailing lists to reflect our new TLP status, so please check the website if you want to subscribe or check out the source code.
For more information, visit the Apache James website .
" New Committers welcomed to Apache "
" Products List available as of the end of June "
Library, Tool, API
Jakarta Commons Component