On Jan 15, 2008 1:51 PM, Stefano Bagnara <[EMAIL PROTECTED]> wrote:
> Robert Burrell Donkin ha scritto:
> > On Jan 15, 2008 10:51 AM, Stefano Bagnara <[EMAIL PROTECTED]> wrote:
> >> Hi Robert,
> >>
> >> can you explain why you decided for an ad-hoc function module for
> >> org.apache.james.vut.XMLVirtualUserTable
> >> and
> >> org.apache.james.userrepository.UsersLDAPRepository
> >>
> >> instead of using the avalon-user-function for them, too?
> >
> > dependency management
> >
> >> In the svn log I see "Created module to home user implementations
> >> without dependencies", but I don't understand what are the
> >> "dependencies" that avalon-user-function has and that
> >> basic-user-function doesn't want.
> >>
> >> As far as I can tell the 2 classes above makes use of avalon stuff the
> >> same way the org.apache.james.vut.JDBCVirtualUserTable or other classes
> >> from avalon-user-function do...
> >
> > the classes contain avalon glue code but avalon is not essential to
> > their function
>
> The 2 reasons above IMHO do not justify the added work to mantain one
> more module.

i needed to have a home for a basic user meta-data repository
implementation. a module with 3 classes makes more sense than one with
one.

> Btw If I am alone with this idea, then no problem. I just wanted to
> share that IMHO this (that module with 2 classes) makes no sense.

i'm not sure that the number of classes should be relevant: a better
test is whether the module is a logical and cohesive unit. in this
case, i agreed that it is debatable. but it's a code smell rather than
an anti-pattern. i would like to indicate clearly that there's
something not quite right about JAMES 3.0 rather than hiding it.

however, i argue that the exercise as a whole is worthwhile: splitting
into a finely grained component system makes it easier to understand
what the dependencies really are. setting artificial limits on the
number of modules and the number of classes within a module will just
make everything more difficult.

poor COP is one of the major reasons why JAMES cannot attract more
developers. it's not possible just to do IMAP or SMTP or whatever
without dragging vast numbers of depenedencies in.

one of the major issues that i'd like to sort out is understanding
which API are internal and which external.

- robert

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

Reply via email to