As an effective outsider (haven't really dealt with continuum or archive in a long time) I can back up this suggestion from my own experience with maven modules. I have found that artifact divisions on component lines can be useful, but overkill, and a public API, (if relevant) SPI for extenders, and internal implementation artifacts are a useful division that balances things out and makes builds faster, etc.

It is also useful that artifacts split on major boundaries of cohesion/coupling where reuse is desired. That is, if something is realistically suitable for re-use in other projects, it's reasonable to have an artifact on it - but at that point it really becomes another project. When to do that is really an art. But I tend to try to reserve such extraction to really highly valuable libraries where the bang-for-buck ratio is high enough to justify the extra overhead (conceptual and computational in the build).

/shrug - sorry to bike shed, but I think the idea has merit and no one was really responding to Brent.

christian.

On 17 May 2014, at 10:02, Brent Atkinson wrote:

Hi,

This is mainly a background question, but is prompted by observations I have had while working in the code base. The general question is, can the project be simpler to work on and the build speed improved by removing or
redrawing module boundaries?

An example of this is what has been undertaken in Archiva recently, where redback has been pulled up into the project. This essentially makes redback part of the project so there it can more easily track with the project. This was something I didn't appreciate until we had to consider reworking all of the Struts 2 actions, etc. to update it for security reasons. It would be nice to just replace what redback was doing with spring security,
but moving incrementally is more difficult with redback as a separate
project.

Another example is whether the degree to which project modules make sense
as modules. In the extreme, we might consider regrouping the existing
classes into external API, internal API, core implementation, and maybe a few more. The goal would be to reduce the number of independent modules to
as close to 1 as possible. I'm curious about this because it seems the
coarser granularity could simplify the project considerably and possibly speed up the compile/test cycle. I tried looking through the archive for
similar conversations and couldn't find any.

Have these been considered? Thoughts?


Christian Gruber - christianedwardgru...@gmail.com

Reply via email to