Building Cyclops¶
Cyclops framework is made available as a set of docker images, and full source code is available licensed under ASL 2.0.
Building from source¶
Requirements¶
You will need following software packages to be installed before you start the build and setup process from source files:
Dependencies | Supported Version |
---|---|
Java | Oracle Java 8 and higher |
Maven | 3.0.5 or higher |
Git | 2.x.x or higher |
When deploying, additionally you will need the following services installed and reachable by the Cyclops framework components.
Dependencies | Supported Version |
---|---|
RabbitMQ | 3.6 |
Postgresql | 9.6 |
During configuration and setup phase of all the microservices, it is assumed that the RabbitMQ management plugin is enabled in the service. Post configuration and installation, this plugin can be disabled if not needed elsewhere.
Note: the default package version available under your linux/unix distribution for the above listed dependecies may be different that listed. In that case, please make sure you get the specific versions directly from the respective developer’s website.
Download the source¶
Download the full source code via Git clone
git clone https://github.com/icclab/cyclops.git
Once source code download finishes, check the folder structure and you should see all the microservices in their separate subfolders. We will now proceed with building every microservice individually.
Building the binaries¶
Cyclops framework comprises of these micro services:
- usage data record generation microservice (udr)
- rating and charging microservice (cdr)
- billing microservice (billing)
- rule engine (coin)
Each one of the above needs to be built individually. Before proceeding with the build phase of any component, make sure your JAVA_HOME environment variable is properly set. On Ubuntu 16.04 machine, this can be normally be done through -
source /etc/environment
export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
Make sure you change the path appropriately.
Building udr¶
Change directory to UDR subfolder within cyclops folder.
mvn dependency:tree
mvn package assembly:single
mv target/cyclops-udr-3.0.0-jar-with-dependencies.jar target/udr.jar
The java binary file is located within cyclops/UDR/target/ as udr.jar
Building cdr¶
Change directory to CDR subfolder within cyclops folder.
mvn dependency:tree
mvn package assembly:single
mv target/cyclops-cdr-3.0.0-jar-with-dependencies.jar target/cdr.jar
The java binary file is located within cyclops/CDR/target/ as cdr.jar
Building billing¶
Change directory to Billing subfolder within cyclops folder.
mvn dependency:tree
mvn package assembly:single
mv target/cyclops-billing-3.0.0-jar-with-dependencies.jar target/billing.jar
The java binary file is located within cyclops/Billing/target/ as billing.jar
Building rule-engine (coin)¶
Change directory to Coin subfolder within cyclops folder.
mvn dependency:tree
mvn package assembly:single
mv target/cyclops-coin-1.1-jar-with-dependencies.jar target/coin.jar
The java binary file is located within cyclops/Coin/target/ as coin.jar