commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rodney Waldhoff <rwaldh...@apache.org>
Subject Re: [primitives][collections] primitive collections and PROPOSAL
Date Thu, 04 Sep 2003 01:09:38 GMT
On Wed, 3 Sep 2003, Stephen Colebourne wrote:

sc> From: "Rodney Waldhoff" <rwaldhoff@apache.org>

rw> > * I'm -1 to moving collections.primitives, or more generally,
rw> > any release ready code, to the sandbox, as this moves it
rw> > further away from a release rather than closer.

sc> I'm balancing this worry with the desire to not release something new
sc> that is in the wrong place. The basic issue is that primitive
sc> collections are quite disconnected (ie. totally) from the rest of
sc> the package. This argues
sc> for a separate project, as you have done in the
sc> past over parts of lang (which has happened).

What I have argued in the past, and I'll argue now, is that cohesive
components are constructed out of classes that are (a) interdependent, (b)
commonly used together, and/or (c) commonly change together.  Adapters and
test suites aside, currently collections.* and collections.primitives.*
fail the first test but pass the second two.  Of course, many of the
collections.* classes have this profile, for just one example, LRUMap and
ArrayIterator.

rw> > a) The two code bases are not truly independent, they share
rw> > a unit test suite, so if we split the two we'll probably want
rw> > to extract the shared unit testing framework.

sc> I would see this as a compile-time dependency on [collections].

Except that the unit testing framework isn't currently distributed in any
form.  This is a compile-time (or test-time) dependency on code that's
currently internal to the commons-collections code base.

rw> > b) It is quite likely that we'll eventually want primitive
rw> > implementations of Bag and other commons-collections-only
rw> > extensions, which would introduce direct
rw> > collections/primitive-collections dependencies, at
rw> > least at the adapter level.  This would also imply that
rw> > collections  and primitive-collections packages are likely to change
rw> > together, since changes to commons-collections extensions would
rw> > imply changes to the primitive collections.

sc> Primitive collections may depend on the Bag interface, but
sc> probably little else.

Mime
View raw message