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.

Reply via email to