The management of this project was performed by using Maven, a build automation tool mainly used for Java projects. 

The code can be compiled by issuing in the project home directory (where the pom.xml file exists) the following commands:

> mvn clean
> mvn compile

To create a .jar file containing all the class files of the project the following command has to be issued:

> mvn install

The resulting .jar will not include any dependencies, e.g. jblas. 

To create a .jar file containing all the project’s dependencies you have to issue the following command:

> mvn assembly:single

Documentation of the code is provided along the codebase through Javadoc which is integrated
to the build process. The full documentation can be generated by simply running:

> mvn javadoc:javadoc

Additional documentation is provided through the unit tests that are also part of the codebase,
located in the test directory. These tests could be used as examples of how the individual components
of the protocol are used in reality, however they provide no additional information regarding the
component’s synchronization and concurrent execution. These tests can be performed by simply running:

> mvn test
 
