Finding your way around the Marboard code
Marboard Navigation: Marboard | FAQ | Manual || Code | Feature Wishlist
Getting the source code
The Marboard source code is available for download at our sourceforge project page. Alternatively you can get the most recent version of the source code from CVS.
The JavaDoc API Documentation is generated nightly.
Building the distribution
In order to build Marboard you can either use Eclipse or the provided Ant script.
Apache Ant is available at http://ant.apache.org. After installing it, you can use this command to build the distribution .zip files:
ant dist
Structure of the source code
You can find the Java code making up the client and server in the folder "src". The folder "tests" contains Java code, too. To be more precise it contains automatic tests that ensure the quality of our software. Marboard depends on a number of libraries that we put into the folder "libs" for your convenience. The folder "build" is the home for software required for quality assurance during build time.
Let's have a closer look at the "src" folder. According to the java package naming convention the subfolders start "net/sf/arianne" with is the inversed structure of our project domain. Below the folder "marboard" you can find the folders "client" and "server" which contains specific code for either of them. In the future there might also be a folder called "commons" for shared code.
Client Code
The client code is structured in three package trees: "core" contains the stuff that holds the client together below the hood.
All objects that are transfered to or form the servers are called entities and are stored in the "entity" package tree. We are currently distinguishing two types: shapes and meta entities.
And the largest package tree "gui" is about the user interface. It has subpackages for various parts of the user interface like the menu and toolbar and more abstract concepts like the user interacting with the drawing tools.
Service Code
The server code is similarly split into a "core" and an "entity" package tree.
All commands that are sent from the client to the server are handled in the "action" package tree.