Re: [all commons] Proposal: CommonsCommons package

2002-06-16 Thread Stephen Colebourne

From: Arron Bates [EMAIL PROTECTED]
 The Commons project itself is now housing separate sub projects which
 have seemingly their own boundaries Every little part is acting like its
 own jakarta project. Hell, the votes are even working that way... This
 guy's been doing some great work with HttpClient... we know the story.

 Could be that some of the projects should be kicked out to live on their
 own (but I'll stay out of that particular packet of politics)

This is an issue for the whole of jakarta IMHO. The main jakarta page now
has 23 top level projects listed. Which is probably more than a new user
really needs to deal with. Plus there are 'hidden' projects of great value
in Commons, Avalon, Turbine (and probably others). Plus there is the XML
project to think about. I would also suggest that some of the 23 are
distinctly more widely used than others ( no names ). There is a distinct
danger of overload IMHO.

Stephen


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: [all commons] Proposal: CommonsCommons package

2002-06-15 Thread Stephen Colebourne

I know what you mean, but I'm not sure that commoncommons is the answer.
IMHO, code in the commons falls into three categories -
- Widely used, and often as a group (BeanUtils, Betwixt, Collections,
Digester, Logging)
- Individual stable, less interrelationships (CLI, Cactus, DBCP, HTTP
Client, ...(other commons))
- Developmental code (Sandbox)
I know I might be a little controversial to separate out those 5, but they
do often seem to be used as a group. (And this also affects the people
working on them.) Something to tie the three groups together could be
useful, but it could also be troublesome.

Predicate, Transformer, Closure, and Factory _could_ all be separated from
collections. But they are not big enough to exist on their own. (Plus moving
gives backward compatability issues). Even adding some extra interfaces
doesn't really make the case. You suggest Named (or Nameable ;-) although
I'm not sure what advantage/use it gives. Earlier today in a betwixt
discussion I suggested Identifiable.

Transformations is a particularly complex case. There is collections'
Transform, beanUtils' ConvertUtils, Betwixt and Digester in their entirity,
and the new Morphos in the sandbox.

One possible solution is to resurect the lang sandbox package which seems to
be asleep and add these things to it. Then say everything depends on lang.
The real trouble is deciding what is truly absolutely unquestionably common
however. If you've seen a logging flame war, you'll know that the more
common it is, the higher the tendency for problems.

My view: there is merit in this proposal., but I have some doubts about the
practicality.

Stephen

From: Ola Berg [EMAIL PROTECTED]
 Having looked at the code of almost all commons components, I see that
there is a need for a base package that solves many generic problems, that
today is solved differently within the packages.

 Candidates for such a package includes:

 Transformations - generic transformations (including type conversions and
the special and often used conversion: creating Objects from Strings, which
is tightly linked to a common factory platform wich is needed both in pool
and in configuration which is needed in...)

 Predicate - Very useful.

 Also a number of common interfaces that guarantees that the class follows
a certain pattern, like Named = all classes that has a String name property
etc, which enhances reuse between the packages.

 This could also be a good spot for 1) an architectural birds view on the
packages, and 2) potential migration to a merge effort so that each commons
component could drop their special implementation of a feature as soon as
the same feature in commonscommons feels OK.

 I bet there are some design descisions that would have been better today
than when it started (\Oh, why didn\'t we let X inherit Y from the
beginning?\). commonscommons (no I don\'t propose that name) could be the
place for such \second\ tries.

 /O

 
 [EMAIL PROTECTED]
 0733 - 99 99 17

 --
 To unsubscribe, e-mail:
mailto:[EMAIL PROTECTED]
 For additional commands, e-mail:
mailto:[EMAIL PROTECTED]



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: Re: [all commons] Proposal: CommonsCommons package

2002-06-15 Thread Juozas Baliuka

Hi,
I think the most simple solution is to split redistributables like
commons-collections.jar
commons-transform.jar
.

It is nothing bad if some common class is maintained in collections.




 This requires agreement from collections as its not
 backwardsly
 compatable

 Well, for copying the classes and interfaces in another package, one
doesn\'t need their opinion. On the other hand: for them to use this other
package, it is all dependent on their opinion and their opinion only.

 Thus there is a time factor there.
 [snip]
 Architecture/patterns/design is fine, but in the end
 we need code.

 True. I can supply code, implementing the patterns I have suggested (spent
last two years trying different methods to implement them).

 But consensus is needed at some level for others to use the common
implementations (I guess the commons project as a whole has the same
situation in relation to the other projects: \Hey, use _our_ stuff
instead!\).

 What I said was (removing the words \'patterns\', \'architecture\' or
\'design\'): reach agreement on how a general thing is to be done. Without
the agreement between at least two component groups, the whole idea of
single implementation of the general mechanisms are of no use anyway.

 Java offers this possibility for fine grain binary object reuse. Done
right it translates into a massive heck of many things achieved with
absolutely minimal effort. And even if such an ideal case is never to
happen, one single general mechanism is a bargain.

 But it is dependent on 1) someone seeing how a certain mechanism could be
used in more contexts than now, and 2) everybody else\'s ability to
acknowledge what this person has seen.

 This will probably mean a slower pace. The role of such a \general reuse
project\ is often to come in afterwards, suggesting refactoring of existing
API:s (not necessarily afterwards but in practice this is often the case).
If and only if the benefits of refactoring are so great that it is worth
doing, it will be done. If not, the whole idea is pointless in practice
(albeit fine in theory).

 /O

 --
 To unsubscribe, e-mail:
mailto:[EMAIL PROTECTED]
 For additional commands, e-mail:
mailto:[EMAIL PROTECTED]



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]