The third issue of the newsletter is upon us so lets have a look at what's been happening; I've been given an Apache account and so have been starting to beef up the newsletter archive page http://jakarta.apache.org/site/news/, hopefully I'll get around to a front page link soon to publicise this better. What about everyone else? Alexandria is attempting a come back, the Ant team have been resting themselves after a heavy couple of months and the guys at Avalon have been writing C# code. The Commons coders have been making the usual steady progress, as have Jetspeed, Lucene and POI, while James has introduced a new committer and begun to work on an IMAP implementation again. The developers of ObjectRelationalBridge developers have been tackling some bugs and features, and the Struts team get ever closer to a 1.1 release.
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.
"Ideas, suggestions, and comments on the overall Jakarta project"
Editor: Rob Oxspring
The Gmane effect was discussed at length thanks to a misdirected news posting from George Hester. The news <-> mail gateway is enabling people to discover and use the Jakarta mailing lists without having to look at the mailing lists guidelines . A couple of solutions were offered namely adding usage information to the list's tag line, and blacklisting the gateways but no real conclusion was drawn .
Thanks to a couple of enterprising Japanese guys, Japanese language versions of the Jakarta site are taking shape, already including pages for Alexandria, Ant, Bcel, Cactus, Commons, Ecs, JMeter, James, Jetspeed, Log4j, Lucene, Ojb, Oro, Poi, Regexp, Slide, Struts, Taglibs, Tomcat, Turbine and Velocity [3,4,5] and there was also some talk of how best to internationalise the site .
Sun's Scott McNealy expressed some controversial opinions about the open source approach. Sparks flew.
Can Jakarta have members who are not linked to a particular subproject? Is the Jakarta-Site CVS module a subproject? should it be? and should it have different voting rights to the other sub projects? All these questions and more were posed and discussed with few conclusive answers forthcoming, see what you think .
Nicola Ken pointed out that there can be a standard mechanism for fund raising for the ASF via merchandising. Discussion is still in progress 
"a CVS/Javadoc/Source code/Documentation management system "
Editor:Nicola Ken Barozzi
Nicola Ken has restarted development on Alexandria in CVS, and will soon publish a new web site.
Alexandria is a project that, like a big library, shall be able to give insight to all the Apache code base.
It is now based on many sub-projects, that concur to that goal; some are being done as a split / refactoring from the original Gump codebase, which remains in the proposals for stability till the refactoring is complete.
Contributors Welcome! :-D
NOTE: Gump, yes, the usual naggy Gump, is always in proposal / Gump, and is not being touched ATM. The "Gump" referred to above is the newly refactored Gump.
"Apache Ant is a Java-based build tool"
A quiet month in terms of discussions and code. It has mostly been bug fixes pushing slowly toward a new release sometime soonish.
Most of the developers have stepped aside a little bit to enjoy some well deserved vacation and reacquaint with friends and family.
In particular Stefan Bodewig managed to escape the flood in Germany by living in the good side of it and despite being in vacation periodically escape his wife and kids to connect and check emails and CVS commits, should it be for fixing the copyright date that I keep forgetting to change most of the time.
Erik Hatcher and Steve Loughran slowly decompress from the rush about their book 'Java Development with Ant' that they managed to deliver in time and synchronized with Ant 1.5 (despite all attempts of other committers to make changes until the last minute).
Magesh Umasankar after successfully being release manager for Ant 1.5 applies the same rigorous process for the 1.5.1 release.
Diane Holt keeps doing a tremendous job in ant-user by nearly doing a 7/7 - 24/24 support. All others committers are way behind.
Last but not least, the Ant team received a query about a Ant purchase order issued from a developer located in Dubai, United Arab Emirates. We are still trying to make a quote. Any suggestions is welcome. ;-)
Editor:Nicola Ken Barozzi
Ant has a new proposal for enhancement in the Ant CVS, under proposals/embed, which enables dynamic property resolution via interceptors (currently JXPath, Jexy and Velocity), a SAX2 parser, an enhanced classloader, a project import facility and an XMLDOM datatype to load an entire XML DOM that can be accessed via jxpath: dynamic properties.
These features are currently being used in Krysalis Centipede http://www.krysalis.org/centipede/ (current site is still about the previous version, please look at the mailing list archives and CVS). There are many patches to this proposal pending from The Centipede committers, which, differently from Maven, is based on Ant, and more to come.
"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"
Probably the most exciting thing happening with Avalon at the moment is that a port to C#  is in the works! Initial concerns regarding fitting C# into a Java project were quickly satisfied, and the people working on the port were happily welcomed in. Some very interesting material  is now appearing in CVS...
Some of the discussion on avalon-dev got pretty heated  this month. Efforts to improve interoperability between the various Avalon containers  led to long discussions about some of the design choices made . We are still confident this is all for the better in the end, though. We hope to make it possible to share components between cocoon, James, turbine, ant, and other projects completely transparently.
Finally, some avalonians are getting pretty exited as the Avalon phoenix subproject  is getting closer and closer to a final release. This will (among other things) help satisfy the requests we have been getting  from programmers that are desperately trying to convince their bosses that Phoenix is a Good Thing.
Make sure to read the next few newsletters to find out how the Avalon developers resolve their container interoperability 'wars' and also learn why C# is (or isn't) really cool new technology.
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:
Editor: Martin Cooper
A change made to the coding conventions used in one component led to some discussion  about whether or not each Commons component should be permitted to define its own coding conventions. After a vote , the Commons charter was updated to reflect the outcome, viz each component may define its own coding conventions .
"Commons CLI provides a simple API for working with the command line arguments and options"
Editor: John Keyes
A new feature has been added so a value separator can be provided. This is to make it easier to process options like "-Dproperty=value". When building the Option specify that '=' is the value separator. The Option will have two argument values when it is parsed; "property" and "value".
A good deal of refactoring was carried out on the parsers. The individual parsers now implement the flatten() method. All of the Option processing is performed in the Parser class.
Editor: Nicola Ken Barozzi
After being put in commons proper from the sandbox, Costin engaged a heated discussion on the design, which resulted in heavy refactoring by himself and mostly Richard Sitze, who has also committed a second possible design to the sandbox. Please take a look and help decide :-) [1,2,3]
Editor: Martin Cooper
The FileUpload component continues to make progress in the sandbox, preparing for a move to Commons Proper and an official release. FileUpload now has a web presence on the Commons site, and is primarily awaiting the creation of unit tests.
Editor: Nicola Ken Barozzi
Patches still coming in from Sven Kuenzler. Now we have a Locator interface separated from the Morphers.
"a mail and news server, supporting Mailets, SMTP, POP3, NNTP, and soon..IMAP"
Editor: Danny Angus
Since the last newsletter the James team have elected a new committer, he is Peter Goldstein. Peter has been throwing himself into all the tasks no-one else really wanted to tackle. Go Peter!.
The current hot topic is IMAP, James had dropped IMAP from the HEAD of CVS some while ago owing to lack of a champion, but in recent weeks Sascha Kulawik has been focusing our attention on IMAP, and getting the basic functionality straightened out. We're hoping to see IMAP return to James distributions bigger and better than before the next release.
We have voted to follow Ant good practice, and remove Ant from our CVS tree and source distributions.
We have also been following through the issues raised since our last release by the upgrade of the Phoenix core of James, and have now got a stable milestone build running on this platform: http://jakarta.apache.org/builds/jakarta-james/latest/. This work promoted some refactoring of IO, JDBC and String handling all aimed at improving performance and stability.
Other topic discussed included the next release plan, ways we can encourage contributions of documentation, and ideas for inclusion in future versions of the Mailet API.
We have added HyperSonicSQL support for repositories thanks to Steve Belt, and a new HOW-TO document explaining one way to use James with sendmail.
"an Enterprise Information Portal, using Java and XML"
Editor: David Sean Taylor
1) Updating jars to the current production versions(Paul)
We updated as many Jars as we could to the latest versions without breaking the dependencies...
2) Added portlet usage tracking / statistics (Mark)
This new features makes use of Log4J to log portlet usage statistics in common log format (Apache CLF), which can then be analyzed by tools such as WebTrends to produce portlet usage statistics.
Example of logging:
10.177.70.135 - admin [27/Aug/2002:10:23:32 CDT] "GET /jetspeed/UserBrowser HTTP/1.0" 200 - 10.177.70.135 - admin [27/Aug/2002:10:23:37 CDT] "GET /jetspeed/GlobalAdminPortlet HTTP/1.0" 200 - 10.177.70.135 - admin [27/Aug/2002:10:23:44 CDT] "GET /jetspeed/PortletBrowser HTTP/1.0" 200 - 10.177.70.135 - admin [27/Aug/2002:10:23:48 CDT] "GET /jetspeed/PsmlBrowser HTTP/1.0" 200 - 10.177.70.135 - admin [27/Aug/2002:10:23:59 CDT] "GET /jetspeed/PsmlForm HTTP/1.0" 200 - 10.177.70.184 - turbine [27/Aug/2002:10:22:55 CDT] "POST /jetspeed/StockQuote HTTP/1.0" 200 - 10.177.70.184 - turbine [27/Aug/2002:10:22:56 CDT] "POST /jetspeed/http://www.xmlhack.com/rsscat.php HTTP/1.0" 200 -
3) Added Dutch, Japanese, Italian, Malaysian, and Norwegian Jetspeed Localization files
That now makes 9 total languages supported (de,en,es,fr,it,ja,my,nl,no)
4) Implemented style checking for the source code (Paul)
The build has been updated to automatically check for the availability of the CheckStyle tool (http://checkstyle.soureforge.net) and run a style check on the Jetspeed source to ensure that all committed code is adhering to Jakarta coding standards.
5) Implemented portlet parameters presentation styles (Mark)
Custom presentation styles or "widgets" allow for portlet parameters to have a presentation style associated with them. The implementation can be found in the new package:
org.apache.jetspeed.modules.parametersInitial Widgets are: checkbox, checkbox group, listbox, ant textarea.
6) Implemented Owner authorization security in the security model (Paul)
Jetspeed Authorization has added support for declarative security definitions to specify that only the owner of the resource is allowed access. In the security registry, a new element has been added to the <access> element, the <allow-if-owner> element:
<access action="*"> <allow-if-owner/> </access>
7) Implemented Reference configuration in the Customizer (Paul)
The customizer now supports placing references to other PSML resources. Previously, the PSML had to be edited by hand in order to include a reference. Thus references are defined in one common PSML resource, and then can be included as a common set of portlets into another PSML resource.
8) Implemented on-line psml import / export facility (Mark)
Useful for users who store the PSML resources in the database. This feature works online, the system does not need to be brought down.
9) Added four new live RSS News feeds, contributed by the BBC (David)
The BBC contributed four live RSS News feeds to Jetspeed, which have been incorporated into the portlet registry for anyone to use. The news feeds are updated every minute (FrontPage Headline News, World News, Technology, UK News)
"a high-performance, full-featured text search engine"
Editor: Otis Gospodnetic
QueryParser modifications sent from a Hungarian contributor were applied. The changes allow Lucene API users to programmatically specify the logical operator between query terms that they want to use (AND or OR). Before this change lots of people complained about the default operator being OR and about the lack of a simple way to change that. The credit for this goes to Peter Halacsy.
Another complaint from people who wanted to extend Lucene was about Lucene's strict access modifiers. Lots of methods were either final or private or package protected. This has now been changed, so developers can easily extend classes like IndexReader, IndexWriter, etc.
Until now Lucene was capable of searching only local indices. Doug Cutting put an end to that by restructuring the code base a bit, and providing the first version of RemoteSearchable class, which uses RMI to perform searches on remote indices.
As promised in the last issue, Lucene's query support now allows queries such as "Java app*" (find all documents containing a phrase "Java app", followed by anything).
"APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format"
Editor: Andrew Oliver
POI ended the month with mostly bug reports and patches. Next month will be far more interesting with some long awaited features being fulfilled.
POI doesn't like EBDIC.... (We're working on that). This was a really long thread... here are some highlights:
There was talk of dropping 1.2 support as there are places where its very inconvenient:
If no one speaks up next month POI will probably require 1.3.x (with 1.3.0 strongly discouraged to anyone who doesn't like random core dumps)
We told people how to set their JVM to have a real big heap where needed:
Talk about reducing POI's memory footprint (not till 3.0):
And thankfully it looks like all the pain we used to have with dependencies on Log4j are gone.
We finally got around to basically finishing the voting...but I won't announce the winner yet cause officially thats in September ;-)
Eric Pugh has been learning the ropes and working on getting convenience methods into the POI contrib package:
Sergei Kozello has been doing some seriously good work on POIs character encoding:
Jason Height has been working on a much requested sheet cloning feature:
And there were lots of other bug reports, patches and commits these are just some of the highlights. But overall August was pretty slow with many committers on vacation, getting engaged or just generally busy trying to keep their jobs. I think we've had more messages and stuff in the last week than all of August!
"an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases"
There is a new O'Reilly book about Struts in the works that covers integration of Struts and OJB. It contains a whole chapter on how to build a model layer based on OJB (chapter 6). The book is available on the Serverside.com for public review . I had a short conversation with the author and he posted an inspiring reply .
Several users reported problems when running OJB apps in Tomcat and reloading servlets. There have been some discussions about possible workarounds on the user list .
Finally we decided to work on this problem and to implement a reload capable configuration mechanism too. We started on an Avalon based implementation .
We have been thinking about support for long transactions for a while. We finally came up with a clear vote to implement this feature 
There has also been a new public release 0.9.5 that contains mostly bug fixes.
Struts 1.1 Beta 2 was released this month . This release brings Struts a step closer to a 1.1 Final release. It includes significant new functionality, and includes fixes for a number of bugs reported against earlier versions .