Searching for build.xml ... Buildfile: /Users/paul/macker/doc/example/modularity/build.xml prepare: build-macker-jar: compile: explain: ________________________________________________________________________________ This example demonstrates how to use Macker to enforce modularity rules between a collection of functionally separate peers with a parallel structre. The example code is a game simulation program with several different computer players which can play one of two games (Prisoner's Dilemma or Rochambeau). The games don't know about the various players, and the players don't know about the game; the two modules communicate through APIs, and hide their implementations in "impl" packages. The macker rules file (src/macker.xml) looks for modules using a , and checks that external classes are using each module through its API. The class BrokenMain breaks this rule by instantiating impl classes directly, so it will give some errors. ________________________________________________________________________________ macker: (Checking ruleset: Modularity rules ...) (module: game) BrokenMain must access the game module through its API Illegal reference from net.innig.macker.example.modularity.BrokenMain to net.innig.macker.example.modularity.game.impl.RochambeauGame (module: player) BrokenMain must access the player module through its API Illegal reference from net.innig.macker.example.modularity.BrokenMain to net.innig.macker.example.modularity.player.impl.CyclicPlayer BrokenMain must access the player module through its API Illegal reference from net.innig.macker.example.modularity.BrokenMain to net.innig.macker.example.modularity.player.impl.RandomPlayer (3 errors) Macker rules checking failed BUILD FAILED file:/Users/paul/macker/doc/example/build-shared.xml:45: Macker rules checking failed Total time: 8 seconds