> That's right.  But then with your model of user-gets-auto-veto, would it
> be right that Velocity, which for example would just use the code and
> not participate in the development, can basically interfere with the
> development evolution of the component that Tomcat is dependent upon?

Yes. Sharing a component and using a shared component means you agree to
let others have a say in that component. If both velocity and tomcat are
using a component, both project should be able to vote on it's evolution.

BTW, I don't agree with this "user" stuff - we are talking about projects
using a shared component - it's more than just an user, and it probably
involves active development ( at least on the project side ). If the
component is too good or too boring - probably it will not matter.  

But that's a secondary issue - the important question is if a project can
vote on sharing a component and place it in the library without aproval
from the existing components in the library, even if a similar component
exists already.



> > 1. We either let each project decide on it's own to share / use, and make
> > it as easy as possible to do so.
> 
> All projects now have the ability to share in a way thats accessable to
> others.  Some choose not to, and there are good reasons.  There is
> defacto sharing, as the code is open to all.

I don't think we have real sharing - some projects may choose to write
component-like code and other can use it, but I don't think that's enough.

And the current model doens't seem to work - as you can see there is a lot
of duplication and very little reuse. Why ? Because there are a lot of
bariers in working with the code developed in other project, and the
components are not designed and perceived as shared.

> The problem is that *right now* no one wants to own and care for some of
> the smaller pieces, like a DB connection pool.

It seems the reverse is true - each project is duplicating the smaller
pieces ( by creating its own implementation ).  


> Why is that?

IMHO - because we don't have a library and a mechanism for projects to
"outsource" general purpose code that is not essential to their
functionality. 

By placing a component in the library a project will get more eyes and
ideas, but in order for that to work it needs to do something that is
benefical for other projects. And will be able to stay focused to it's
main goal. But that can't happen if they are not willing to share control
with other projects involved.

That's my theory - and I spent enough time arguing on this, I have too
much work to do - I'll vote when the final proposal is made, and if this
is the project I need I'll start fighting to get tomcat share and use
common code. If not - I'll wait for the right project.

Costin

Reply via email to