I'm not sure it's as build a problem as you think - right now, all the example code lives under examples/fedone - under that, there's a couple of pretty clearly defined directories:
agents/agent -- all three depend on waveclient/common right now agents/echoey agents/probey common/ -- some common code - this might be better out of examples/fedone, not sure right now model/util -- pretty sure this can go away in a bit rpc/ -- the fedone client/server protocol util/ -- more random bits waveclient/common -- client library waveclient/console -- text based console I'm not sure what splitting up into different top level directories buys us. Anthony On Wed, Mar 31, 2010 at 15:36, Steve Baker <[email protected]> wrote: > Currently we have a src/ directory which contains the source used to > build 5 different jar artifacts: > - a core api with zero external dependencies > - an example server with a large number of external dependencies > (including the core api) > - 3 example clients with a handful of external dependencies (including > the core api) > > This makes it quite hard to keep track of class dependencies within > the source tree, and also makes it hard to package the right > dependencies with the artifacts. > > I'd like to suggest that the src/ directory be split up into different > directories. I'm happy to update the build files and write a script > which does the mercurial renames as long as there is some agreement > that the split is needed. > > I'm hoping that the mercurial renames will prevent a flag-day of > brokenness for people with unmerged changes. > > My own personal motivation for the split is to compliment the current > ant build files with an optimal Maven build. Maven embraces > configuration by convention, and considers producing multiple > artifacts from a single src/ directory so distasteful that it goes out > of its way to make it difficult ;) > > If we stuck 100% with maven conventions then we would end up with a > directory structure something like the following: > fedone-api/src/main/java > fedone-api/src/main/proto // this is the current proto_src directory > fedone-api/src/main/resources > fedone-api/src/test/java > fedone-server/src/main/java > fedone-server/src/test/java > fedone-client-common/src/main/java // this contains common code shared > by the clients > fedone-client-console/src/main/java > fedone-agent-echoey/src/main/java > fedone-agent-probey/src/main/java > > Or departing from Maven conventions to get something more simple: > fedone-api/src > fedone-api/proto_src > fedone-api/test > fedone-server/src > fedone-server/test > fedone-client-common/src // this contains common code shared by the > clients > fedone-client-console/src > fedone-agent-echoey/src > fedone-agent-probey/src > > As the code gets more complex and gains more dependencies its only > going to get harder to do this in the future. > > Let me know what you think. > > cheers > > -- > You received this message because you are subscribed to the Google Groups > "Wave Protocol" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/wave-protocol?hl=en. > > -- Anthony Baxter, [email protected] -- You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.
