It builds now because Javac is able to handle this case - as long as it all happens in the same compile. For those of us used to older languages that compiled one class at a time under the covers, and proceeded in order through each source file, it sounds odd, but javac has been doing this since at least 1.02.
Short answer: I cannot break the graph at present, so it all has to happen in one compile - and that's really unfortunate as the coupled classes include half of two major subsystems, a third of another, and bits and pieces of a dozen more. It's very frustrating. On Jul 25, 2013, at 12:34 AM, Ron Wheeler <[email protected]> wrote: > On 24/07/2013 10:56 PM, Russell Gold 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 <[email protected]> wrote: >> >>> On 25 July 2013 12:06, Russell Gold <[email protected]> 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? > I am not sure how you build them now! > If you can build this now, you can break the graph in the same way and put > them in dependent projects. > > How many of these cyclical graphs do you have? > > Once you break the graph you should be able to end up with a set of modules > that the customers can continue to use as A,B,C and D even if D no longer > depends on A or C no longer depends on D. > A-->B-->C-->X > D-->A > or > A-->B-->C-->D-->X > or > A implements X and depends on B-->C-->D > D-->X > > Ron > >>> Short answer is: >>> Break the graph. >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> ----------------- >> 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>! >> >> >> >> >> > > > -- > Ron Wheeler > President > Artifact Software Inc > email: [email protected] > skype: ronaldmwheeler > phone: 866-970-2435, ext 102 > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > ----------------- 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>!
