Hi Russell,

Is the circular dependency in the API itself (i.e., method signatures) or
merely in usage of the classes in implementation? If only usage, one
strategy to break compile-time dependencies is the java.lang.reflect API.
It's not ideal -- your modules will still have a runtime circular
dependency -- but it will give you a compile-time DAG for easier Maven
modularization.

Regards,
Curtis
 On Jul 24, 2013 9:58 PM, "Russell Gold" <r...@gold-family.us> wrote:

> Exactly. Which I cannot do because these classes are public and our
> customers rely on them. If I break the graph, that means changing a
> behavior that a customer might be using, and that would be a serious
> problem.
>
> I am pushing to deprecate the entire graph and provide a completely
> different api that won't have these problems, but even if I get that
> approved, we have to support this for several releases.
>
> If there's an alternative, I'm all ears.
>
> On Jul 24, 2013, at 10:38 PM, Barrie Treloar <baerr...@gmail.com> wrote:
>
> > On 25 July 2013 12:06, Russell Gold <r...@gold-family.us> wrote:
> >> Or let me rephrase that. In simple terms, I have dependency graphs like
> this:
> >>
> >> A ----> B ----> C
> >> ^                       |
> >> \------- D <----/
> >>
> >> How do I put these classes into separate modules?
> >
> > Short answer is:
> > Break the graph.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > For additional commands, e-mail: users-h...@maven.apache.org
> >
>
> -----------------
> Come read my webnovel, Take a Lemon <http://www.takealemon.com>,
> and listen to the Misfile radio play <
> http://www.gold-family.us/audio/misfile.html>!
>
>
>
>
>

Reply via email to