You are viewing a plain text version of this content. The canonical link for it is here.
Posted to announcements@jakarta.apache.org by Rob Oxspring <ro...@imapmail.org> on 2002/08/07 20:36:31 UTC

Jakarta Newsletter - July 2002

Jakarta Newsletter
==================
Issue: 2
Date: July 2002
Url: <http://jakarta.apache.org/site/news/200207.html>

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
general@jakarta.apache.org.

Rob Oxspring



Contents
--------
General
Ant
Avalon
Commons
Log4j
ObJectRelationalBridge
POI
Struts



General
=======
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 [1]. 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 [2].

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 [3]
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 [4].

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 [5].

[1] - <http://marc.theaimsgroup.com/?t=102580965400001&r=1&w=2&n=33>
[2] - <http://marc.theaimsgroup.com/?t=102811263900001&r=1&w=2&n=10>
[3] - <http://marc.theaimsgroup.com/?t=102762881600004&r=1&w=2&n=11>
[4] - <http://marc.theaimsgroup.com/?t=102708393700004&r=1&w=2&n=86>
[5] - <http://marc.theaimsgroup.com/?t=102641802400002&r=1&w=2&n=8>



Ant
===
"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) [1].

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 [2].

A large discussion on target-less build files has occurred [3, 4, 5, 6]

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].

Costin started a large thread with "itches for Ant 1.6" [9]. Steve
Loughran followed with his wishlist for the next version of Ant [7].

Splitting optional.jar into separate JAR libraries was a hot topic in
July [8].

Conor MacNeill withdraws his Mutant Ant2 proposal [10].

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 [11].

dIon Gillard stirred things up with an "inflamatory e-mail" early in the
month, sparking lots of Ant2 discussion [12].

Last, but not least - Ant 1.5 was released and has proven itself solid
[13].

[1] - <http://marc.theaimsgroup.com/?t=101543270100009&r=1&w=2&n=17>
[2] - <http://marc.theaimsgroup.com/?t=102767954900003&r=1&w=2&n=14>
[3] - <http://marc.theaimsgroup.com/?t=102750506600002&r=1&w=2&n=27>
[4] - <http://marc.theaimsgroup.com/?t=102704723700002&r=1&w=2&n=32>
[5] - <http://marc.theaimsgroup.com/?t=102740536200001&r=1&w=2&n=16>
[6] - <http://marc.theaimsgroup.com/?t=102697608600008&r=1&w=2&n=38>
[7] - <http://marc.theaimsgroup.com/?t=102736845700003&r=1&w=2&n=37>
[8] - <http://marc.theaimsgroup.com/?t=102689872400003&r=1&w=2&n=44>
[9] - <http://marc.theaimsgroup.com/?t=102649786700004&r=1&w=2&n=42>
[10] - <http://marc.theaimsgroup.com/?t=102635682000001&r=1&w=2&n=36>
[11] - <http://marc.theaimsgroup.com/?t=102608695800001&r=1&w=2&n=91>
[12] - <http://marc.theaimsgroup.com/?t=102604006200002&r=1&w=2&n=40>
[13] - <http://jakarta.apache.org/builds/jakarta-ant/release/v1.5/>
[14] -
<http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-ant/docs/appendix_
e.pdf?rev=1.1&content-type=application/pdf>
[15] - <http://www.amazon.com/exec/obidos/ASIN/1930110588>



Avalon
======
"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.



Commons
=======
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:

BeanUtils
Betwixt
CLI
Digester
Discovery
HttpClient
Lang
Morphos



BeanUtils
---------
"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:

[1] -
<http://marc.theaimsgroup.com/?l=jakarta-commons-dev&m=102435460121492&w
=2>
[2] -
<http://marc.theaimsgroup.com/?l=jakarta-commons-dev&m=102547903022740&w
=2>
[3] -
<http://marc.theaimsgroup.com/?l=jakarta-commons-dev&m=102585153831728&w
=2>



Betwixt
-------
"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.



CLI
---
"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[1].

Usage information is now automatically generated[2].

Options can now be created using OptionBuilder[3]. This makes it much
easier to add features to Option.

A discussion[4] was held with the Avalon team which has resulted in a
number of feature requests[5].

Validation for Option creation has also been added[6].

[1] - <http://marc.theaimsgroup.com/?t=102537994700001&r=1&w=2>
[2] - <http://marc.theaimsgroup.com/?t=102642398900004&r=1&w=2>
[3] - <http://marc.theaimsgroup.com/?t=102772419800006&r=1&w=2>
[4] - <http://marc.theaimsgroup.com/?t=102750811500003&r=1&w=2>
[5] - <http://marc.theaimsgroup.com/?t=102812124400007&r=1&w=2>
[6] - <http://marc.theaimsgroup.com/?t=102786757700003&r=1&w=2>



Digester
--------
"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.



Discovery
---------
"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):

minimizes 'redundant' class loaders (but doesn't eliminate) provides
logical 'grouping', allows different groups of components/applications
to maintain different factories. seeking for better/smarter caching
mechanism.



HttpClient
----------
"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.



Lang
----
"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.



Morphos
-------
"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 svenk@gmx.net has been very active in this month on
Morphos, both in discussions and patches, and is the first real Mrphos
developer. Thank you Sven :-)



Log4j
=====
"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 ([1]) [2]. 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" [3].

Version 1.2.5 of log4j was released with minor changes and bug fixes
[4].

There was a good discussion about socket performance and methods to
increase the throughput performance for remote logging [5]. 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
[6]. CVS messages are now posted to the dev mailing list.

Kevin Steppe outlined some future directions and features for the
JDBCAppender class [7].

Mike McAngus submitted changes to the date format related classes to
support locale, decimal separator, and timezone [8] (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.

[1] - <http://marc.theaimsgroup.com/?l=log4j-dev&m=102523926310678&w=2>
[2] - <http://marc.theaimsgroup.com/?l=log4j-dev&m=102559080116243&w=2>
[3] - <http://marc.theaimsgroup.com/?l=log4j-dev&m=102572587708226&w=2>
[4] - <http://marc.theaimsgroup.com/?l=log4j-user&m=102587107013807&w=2>
[5] - <http://marc.theaimsgroup.com/?t=102623343500001&r=1&w=2>
[6] - <http://marc.theaimsgroup.com/?l=log4j-dev&m=102733338412717&w=2>
[7] - <http://marc.theaimsgroup.com/?t=102760436200005&r=1&w=2>
[8] - <http://marc.theaimsgroup.com/?t=102420710600002&r=1&w=2>



ObJectRelationalBridge
======================
"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.



POI
===
"APIs for manipulating various file formats based upon Microsoft's OLE 2
Compound Document format"
Editor: Andrew C. Oliver

Japanese translations began

[1] -
<http://www.mail-archive.com/poi-user@jakarta.apache.org/msg00807.html>
[2] - <http://www.terra-intl.com/jakarta/poi/>
[3] - <http://jakarta.apache.org/site/news.html#0706.1>

A number of people started working on better i10n and i18n support for
HSSF still working on getting workable patches into the sourcebase.

[4] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg03067.html>
[5] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg03042.html>
[6] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg03039.html>
[7] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg03011.html>

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.

[8] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg02951.html>
[9] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg02949.html>
[10] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg02946.html>
[11] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg02936.html>

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.

[12] -
<http://cvs.apache.org/viewcvs/jakarta-poi/src/contrib/src/org/apache/po
i/hssf/contrib/view/>
[13] -
<http://www.mail-archive.com/poi-dev@jakarta.apache.org/msg02778.html>
[14] -
<http://www.mail-archive.com/poi-user@jakarta.apache.org/msg00720.html>
[15] -
<http://www.mail-archive.com/poi-user@jakarta.apache.org/msg00721.html>

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@apache.org)>

[16] -
<http://www.mail-archive.com/poi-user@jakarta.apache.org/msg00760.html>



Struts
======
"to provide an open source framework for building Web applications"
Editor: Joe Germuska

* Struts 1.1b2: Twelve Bugs Away
Most of the activity on Struts-Dev in July was dedicated to swatting
bugs en route to a 1.1b2 release. Although that release is not
scheduled, as of 2002-08-03, there are only 12 outstanding bugs.[1]

[1] - <http://cvs.apache.org/viewcvs/jakarta-struts/STATUS>

* Struts meets JSTL-EL
David M Karr stepped up to spearhead an effort to extend the Struts JSP
tag libraries to support the JSTL Expression Language. [2] Discussion
and work continue actively. Late in the month a discussion thread [3]
helped to summarize the current state of development. At this time, the
work is aimed at integrating with the JSTL, which will therefore require
Servlet 2.3/JSP 1.2 to use the JSTL Expression Language. Along the way,
Struts tags which perform essentially equivalent tasks to JSTL tags are
expected to be left behind.

[2] -
<http://nagoya.apache.org/eyebrowse/ReadMsg?listName=struts-dev@jakarta.
apache.org&msgNo=9378>
[3] -
<http://nagoya.apache.org/eyebrowse/BrowseList?listId=41&by=thread&from=
207178>

* Commons File Upload component integrated
Martin Cooper introduced an implementation of the
MultipartRequestHandler interface which adapts the commons-upload
component for use in a Struts application.[4] As of the 20020728 nightly
build, this is the default implementation of the interface.

[4] -
<http://nagoya.apache.org/eyebrowse/ReadMsg?listName=struts-dev@jakarta.
apache.org&msgNo=9648>

* Extending Struts XML Configuration
Early in the month, Brian Topping suggested exposing the Commons
Digester configuration so that developers could use the
"struts-config.xml" for arbitrary application configuration [5] Craig
McClanahan pointed out that Struts depends on a validated schema because
certain default values are specified in the struts-config DTD[6] At the
time, Craig suggested that that opening up struts-config would wait
until after a 1.1 is released, when an XML Schema might be developed.
However, later in the month, Craig made a series of changes to the
central "ActionServlet" controller. By moving the default values into
the configuration beans, he eliminated the dependency on a validating
parse of struts-config.xml. Around the same time, a "rulesets" servlet
initialization parameter was added, allowing users to specify a list of
classes implementing the Digester RuleSet interface. Thus, after these
changes, application developers have the ability to use the basic struts
initialization process to do just about any application configuration
they require.

[5] -
<http://nagoya.apache.org/eyebrowse/ReadMsg?listName=struts-dev@jakarta.
apache.org&msgNo=9325>
[6] -
<http://nagoya.apache.org/eyebrowse/ReadMsg?listName=struts-dev@jakarta.
apache.org&msgNo=9333>

* Other Struts News: <http://jakarta.apache.org/struts/news.html>

30 July 2002 - Struts Console version 2.0.1
25 July 2002 - Easy Struts v0.4.2 for Eclipse / JBuilder
24 July 2002 - ObjectAssembler 2.0
24 July 2002 - JavaPro Struts Tutorial
18 July 2002 - JavaBoutique Struts Tutorials
17 July 2002 - StrutsTestCase v1.8 Released
11 July 2002 - Scioworks Camino v2.0
11 July 2002 - Easy Struts v0.4 for Eclipse / JBuilder
10 July 2002 - Using Struts in Oracle JDeveloper 9i Tutorial
09 July 2002 - Struts Console version 2.0
09 July 2002 - Struts Adoption article
08 July 2002 - Struts article in e-Promagazine
08 July 2002 - JAAS article highlighting Authorization and
Authentication with Struts


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>