You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@jakarta.apache.org by Rodney Waldhoff <rw...@hotmail.com> on 2001/02/08 01:53:49 UTC
Utility/Library Projects [was Re: What is Jakarta?]
I couldn't agree more. A modular approach is the best way to encourage and
accomplish the sharing of code, and to help people discover what exists and
what doesn't. Arieh's metaphor of picking components off the shelf seems
right on to me.
I'd be happy to help in whatever way I can.
A few modules that come immediately to mind, in no particular order:
* Generic object pooling
* Database connection pooling
* Object caching
* Base64 encoding/decoding (or perhaps a more general endec package?)
I'm of no particular opinion whether this is best done as a single project
or a bunch of little independent projects, although I suspect a single
project with lots of pieces will be easier to standardize for documentation,
structure, etc. Something like the way jakarta-taglibs is managed seems
like a reasonable model--relatively independent code-bases, but with some
effort toward standardizing documentation, build scripts, etc.
I'd also suggest that while desirable, it's not strictly necessary to avoid
all possible redundancy. Leaving open the possibility of multiple, even
competing implementations where reasonable seems in keeping with the
bazaar-approach. It's perfectly legitimate that different applications may
require different functionality for what on the surface looks like a single
component. While every effort should be made to avoid duplication and to
enhance rather than fork, simply stating "we've already got something that
kinda does that" doesn't ipso facto invalidate a new approach. (cf.
Davidson's "Rules for Revolutionaries".) (Let me stress, every effort
should be made to avoid duplication and enhance rather than fork.) I don't
think this leads to too much duplication of effort, because I think the
evolutionary forces from the community will lead us to a very small number
of alternatives over time
Hence it may make sense to package this stuff under a "code name" even under
this generic library/utility project (e.g., org.apache.*.foo.widget and
org.apache.*.bar.widget (or *.widget.foo/*.widget.bar)) to avoid namespace
conflicts. Moreover, it may make sense where possible to define an
interface module/sub-project as distinct from the implementation
modules/sub-projects, to allow for a more interchangeable set of
implementations.
- Rod
-----Original Message-----
From: Geir Magnusson Jr. [mailto:geirm@optonline.net]
Sent: Wednesday, February 07, 2001 4:27 PM
To: general@jakarta.apache.org
Subject: Re: What is Jakarta?
Ted Husted wrote:
>
> I would frame it this way:
>
> 1. We have a shared utility subproject that would host an assortment of
> components.
>
> 2. We have a subproject for each component.
>
> 3. Each subproject may host a utility library, which other subprojects
> can use.
>
> (1) or (2) are going to depend on whether anyone has an itch and takes
> the initiative. Otherwise, we default to (3). This might not actually
> be a bad thing, so long as we have some type of CJAN facility so people
> can find what they need.
>
I'm getting itchy. I think (3) puts us back into the same place. I
think (1) is the best, simply because of the challenge of coming up with
kool names for all the subprojects you would have in (2) :-D
geir
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com
Re: Utility/Library Projects [was Re: What is Jakarta?]
Posted by Ted Husted <ne...@husted.com>.
On 2/8/2001 at 12:53 AM Rodney Waldhoff wrote:
> I'm of no particular opinion whether this is best done as a single
> project or a bunch of little independent projects, although I suspect
> a single project with lots of pieces will be easier to standardize
for
> documentation, structure, etc.
A middle ground might be to create a root utilities package, like say
Apache-Zarf ;-). Everything beneath that would have boring functional
names, like "ConnectionPool". Each set of related Zarf classes could
have their own list, set of committers, and version numbers. People
could either pluck out the classes that they needed, and roll them into
their own products, or just adopt the zarf.jar wholesale.
You could think of them as subproducts rather than subprojects, but
important attributes are that
(1) the people authorized to work on a set of classes are real
Apache-style Committers to those particular classes.
(2) the subproduct classes have independent versioning and release
dates.
The concern about an umbrella project is that changes to classes upon
which a product depends must be properly managed, or may become ad-hoc
and undermine their usefulness.
Zarf could have a set of core Committers (something like a PMC) to
ensure that the documentation and structure remains consistent, and to
cover any classes that have lost their own Committer (at least until a
new volunteer can be found).
< http://www.dictionary.com/cgi-bin/dict.pl?term=zarf >
;-) Not sure if I like it either -- but it sure is appropriate!
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 425-0252; Fax 716 223-2506.
-- http://www.husted.com/about/struts/