Basic compilation

git clone
mvn clean install

local tests:






prepare environment:

  • update the username from scripts/ to your planet-lab account (mimuw: mimuw_nebulostore)
  • update the host list from scripts/nodes/hosts.txt; see scripts/nodes/README how to generate such a list
  • upload libs to planetlab: scripts/

run systests:


run console:



kill remaining java processes on top XXX hosts from scripts/nodes/hosts.txt

scripts/ XXX

Workflow: git and gerrit code review


How to generate:

  1. Go to project root (e.g. trunk)
  2. Run: javadoc -d javadoc_main/ -sourcepath src/main/java/ -subpackages org.nebulostore
  3. Run: javadoc -d javadoc_test/ -sourcepath src/test/java/ -subpackages org.nebulostore
  4. Enjoy your documentation under javadoc_main and javadoc_test and improve it!

Eclipse configuration & plugins

File - Import - Existing Maven Projects; and pick the root nebulostore directory

Code Style

Out style guidelines are available here
The guidelines are copied from Our slight modifications are marked by purple background.

We also use CheckStyle as an Eclipse plugin to help us follow the rules. It performs on-line checks for violations and in most cases is able to automatically format code.
Documentation for CheckStyle rules is available here:

Eclipse Plugin Installation

Installation instructions for the Eclipse-CS plugin are here:

When the plugin is installed, checkstyle should be already configured in the eclipse project from the svn.

To configure checkstyle from scratch, follow these steps:

  1. use checks.xml from the repository nebulostore/resources/checkstyle/checks.xml and save it to some permanent location.
  2. In Eclipse, right-click on your project in Package Explorer and select Properties.
  3. Select Checkstyle from the left-side menu (if you don't see it then something went wrong with the installation).
  4. Select Local Check Configurations and load new External Configuration from the checks.xml file.
  5. Select Main tab and choose the new configuration to be used for all files.
  6. Again right-click on your project and select Checkstyle -> Activate Checkstyle.
  7. Enjoy.

Formatter configuration

After installing eclipse-cs you also need to create new formatter consistent with the checkstyle:

  1. Go to Window -> preferences -> checkstyle -> new and select our checkstyle file "checks.xml" as "External configuration file".

Press OK.

  1. Navigate to your project (i.e. nebulostore), right click -> checkstyle -> Create Formatter Profile.
  2. Select newly created formatter by going to Window -> preferences ->Java -> CodeStyle -> Formatter and select

eclipse-cs PROJECT_NAME (i.e. nebulostore) as your active formatter.

Now using ctrl+shift+F to format your code should clean it in a manner consistent with checkstyle (note that not all errors can be fixed automatically).

Maven checkstyle plugin

During maven verify phase checkstyle is performed. Basic:

mvn clean install

will perform checkstyle

Planet-lab tests

Basic login to planet-lab hosts:

ssh -i .ssh/id_planetlab -l mimuw_nebulostore


Maven is a very powerfull tool for building, packaging, deploying java projects. (
The main artifact in maven project is pom.xml file in main direcotry.
One of the coolest features of maven is dependency management. It became very popular so most of java libraries are available in maven central or some local repositories.
So if we want e.g. google-guava (we want this :)) all we have to do is add in pom.xml:


Sometimes when package is not available in central repo we have to add entry to


as well to tell maven where to look for dependencies.
Maven dowloads jar (it can dowload sources and java-docs for your ide as well) and stores it in


Generating eclipse project


mvn eclipse:eclipse

Basic Maven usage

mvn clean install

The most frequently used command. It cleans, compiles, runs tests, packages, and install in local repo your project.

mvn compile

Compiles project, generates sources. Binaries are stored in target directory.

mvn clean

Removes target direcotry

mvn package

Compiles, runs tests, creates your project archive, jar in our case.

mvn install

Compiles, runs tests, creates your project archive and installs it in local maven repository. From now your other local projects can refer to that via {{{#!sh dependency }}}.

To create an executable (via java -jar) jar we need to write:


There are profiles defined for making executables for main classes.

maven clean install -Ptext-interface

Runs profile


I guess in the future will want to do deployment and releasing via maven.


FindBugs is a tool for static code analysis.
It is executed during maven check phase. Results are printed out on console and in xml report file in target dir.
You can invoke gui by

mvn findbugs:gui

. You can use FindBugs as your IDE plugin.

Releasing Nebulostore

To perform a release of Nebulostore you have to:

  1. have an account with deploy permissions in
  2. configure your maven by providing settings.xml file in Your ~/.m2 directory. (Working example settings.xml file is attached to this page, You have to remember to modify credentials in example file.)
  3. mvn release:prepare -DignoreSnapshots=true (when asked for names press enter to use default values)
  4. mvn release:perform
  5. update nebulostore version in scripts/

Performing above actions will perform packaging and deploying Nebulostore to its maven repo.


Our maven repo is run by Artifactory project.
Aritfactory is deployed on Tomcat in /opt/apache-tomcat .../webapps url:




Creating an account

  1. Login on naan.
  2. Create an account:
    htdigest /opt/trac/nebulostore/trac.htpasswd trac <selected_login>

Admin rights

If you want to change settings of our Trac, you should get admin rights. There are two ways of doing this:

  • Ask one another admin to give you admin rights.
  • Add these rights manually on naan using this command:
    trac-admin /opt/trac/nebulostore/ permission add <username> TRAC_ADMIN
Last modified 4 years ago Last modified on 03/02/16 12:48:22

Attachments (1)

Download all attachments as: .zip