Skip to content
Jim Cooley edited this page Mar 4, 2016 · 18 revisions

This guide describes how to set up a development environment to build the tutorials -- or to work on Xenon. See the Implementors Guide for more information on the tutorials, and working with Xenon in your application. The Contributing Guide has the up to date information on how to contribute to Xenon.

Prerequisites

Java

  • Java 8 JDK installed on your OS of choice (Mac OSX, Linux variants, Windows are all supported hosts)
  • Eclipse Luna or a modern IDE of your choice. Make sure to apply the same formatting profile for code.
  • Git for source code management.
  • Find bugs for static code analysis. Please run before check-in.

Maven

Maven is used to build and test the project.

  • Install Maven with your system's package manager (e.g. apt on Ubuntu/Debian, homebrew on OSX, ...).
  • Set your JAVA_HOME environment variable to be the home of the Java 8 JDK. On OSX, this lands in /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/.
  • Run mvn test to run the tests.
  • Run mvn package to build and package Xenon
  • Run mvn -DskipTests package to package everything and skip running the tests. (Not recommended.)

Tip: See which goals are bound to which phases for a particular command:

mvn help:describe -Dcmd=compile

Docker Images

Up to date information can be found on building and using the Xenon Docker Images here

Packaging a fat jar

Resulting JAR goes to xenon-host/target/xenon-host-*-with-dependencies.jar.

  • mvn clean package -DskipTests (packages without running tests)
  • To start the default service host and poke it with a HTTP client see this debugging page section

Building a service

After reading more on the programming model and how a service works, please refer to the example service tutorial to learn about a simple service that is already started as part of the production service host, and enables you to interact with the system. In addition you can follow the guide for serving your service with a default or custom user interface.

To create a new service host, that starts custom services, in its own jar, please see the custom service hosting tutorial

Debugging

Please refer to the debugging page for information on how to effectively debug a decentralized, 100% asynchronous system like Xenon.

Clone this wiki locally