Hi Ivo,

2011/4/5 Ivo Ladage-van Doorn <[email protected]>:
> Hi List,
>
> We discussed the split off of subprojects before, my question is how we
> should deal with subprojects depending on other subprojects. In case of the
> Cassandra subproject for example, there are a lot of dependencies with other
> projects (almost by definition, as Cassandra implements storages defines by
> other projects). For example:
>
> -          Gadget store - used by the gadget container (Shindig)
>
> -          Tenant store – used to store tenants (amdatu core).
>
> -          User admin store – implements useradmin storage provider (amdatu
> authorization)
>
> -          Token store – implements amdatu token storage provider (Amdatu
> oAuth)
>
> -          Consumer registry – implements oAuth consumer registry (Amdatu
> oAuth)
>
>
>
> In our last discussion the answer was ‘define a new subproject which
> includes this artifact’. In this case it means that I would have to
> introduce 4 new subprojects;
>
>
>
> Amdatu-cassandra-opensocial
>
> Amdatu-cassandra-core
>
> Amdatu-cassandra-authorization
>
> Amdatu-cassandra-oauth
>
>
>
> Each having its own lifecycle. I doubt if this is the way to go. There is a
> lot of overhead involved when defining these as separate subprojects
> (separate JIRA components, separate roadmaps, separate release lifecycle,
> separate WIKI pages) and it will become a struggle to manage them. I would
> rather see these implementations as modules that are part of the overall
> Cassandra subproject. WDYT?

My 2 cents,

No we do not want a seperate (sub)projects, as in an organizational
structures, for each module / software artifact per se. I think it
makes most sense to keep code within the 'logical' subproject. Hence I
would implement "OpenSocial Cassandra storage providers" in the
OpenSocial subproject. This project may have one release cycle for
this, or it may not. I expect more finegrained cycles, but I'd say
that is up to the project itself.

More important however, and that was my point in the discussion you
refer to, is that you keep a clean separation between
projects/modules/artifacts by defining clear api/spis and implementing
accordingly. Eg. At this point if I want to do anything with shindig I
am convicted to dragging cassandra along onto my compile/test/runtime
classpaths. That is bad, the "business functionality" of a subproject
should be available without leaking anything that is (or should be
optional) onto any classpath.

grz
Bram

> Regards, Ivo
>
>
>
> GX Software | Ivo Ladage-van Doorn | Product Architect | Wijchenseweg 111 |
> 6538 SW Nijmegen | The Netherlands | T +31(0)24 - 388 82 61 | F +31(0)24 -
> 388 86 21 | [email protected] | www.gxsoftware.com |
> twitter.com/GXSoftware
>
>
>
> _______________________________________________
> Amdatu-developers mailing list
> [email protected]
> http://lists.amdatu.org/mailman/listinfo/amdatu-developers
>
>

_______________________________________________
Amdatu-developers mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-developers

Reply via email to