...
What you need to have installed | Debian/Ubuntu notes | Mac notes |
---|---|---|
Web browser (like Google Chrome) | Google Chrome On Ubuntu 16.06 LTS | Google Chrome |
Ensure that you have Oracle Java SDK 8 | You can use this tutorial to do that. | See this tutorial at mkyong. |
You might have multiple Java versions installed so make sure that Java 8 is used. java -version # should display java version "1.8.0_XXX". | This tutorial teaches how to choose the correct Java version like this:
| |
Install Git | Install git using This Article | Here we use Homebrew approach (not the only package manager but one that is preferred on mac)
|
Install MySQL 5.7 You don't need to install MySQL if you just want to run demo server without persistence (Option A in Step 3). | Install MySQL 5.7 Using This Guide | brew install mysql@5.7 and to start the service: brew services start mysql@5.7 |
Optional step: install Maven and ensure that artifacts are stored in $USER_HOME/.m2/repository | Install maven using mkyong | brew install maven |
Optional step: install Gradle This step is optional as all the Fineract CN | Use sdkman to install Gradle 4.5 | brew install gradle |
You need NoSQL database Alternative: If you have Docker installed you docker run -p9042:9042 cassandra:3.11 | Install cassandra 3.11 using this guide |
|
Node 6.10+ and NPM 3+ | Ensure you have Node 6.10.0+ and NPM 3+ installed. |
npm (node package manager for javascript) is another package manager, homebrew still treats it like a keg to be installed, instructions |
Node packages | npm i | npm i |
Optional step: Install Nginx | Install Nginx using this guide |
Step 2:
...
Get program code
You have 3 options.
...
You have two options.
- Recommended: You clone demo-server and let it download all dependendent fineract-cn-* libraries and projects from Artifactory to your local Maven repository
git clone https://github.com/apache/fineract-cn-demo-server.git
cd fineract-cn-demo-server/
cd scripts/dependencies_to_local_maven
mvn package (this brings all the fineract-cn-* dependencies from Artifactory to your local maven repo)
cd ../..
./gradlew build
- You can switch to options #2 or #3 below later, once you start changing the program code.
- Fineract uses Gradle for building but for demo server we need to get dependent projects to local maven repository because this is where demo server looks for them.
- You clone Fineract CN repositories directly
- later if you want to contribute to some microservice then you have to create a fork and switch to that fork to create a pull request
- this way you don't have to fork anything and you can use `git pull` to get latest updates
- For this option: download and run the script using `bash initial-setup.sh apache`
- Note : Ensure that you get BUILD SUCCESSFUL after iteration for EACH repository. Also ensure that artifacts show up in $USER_HOME/.m2/repository/org/apache/fineract/cn/
- You fork all the Apache Fineract CN repositories to yourGithubHandle and check out code from there.
- This way you can directly work on your forks (but your forks don't get code updates automatically with git pull)
- after you have logged in to Github with yourGithubHandle and created forks of apache Fineract CN repositories
- For this option: download and run the script using `bash initial-setup.sh yourGithubHandle`
- Note : Ensure that you get BUILD SUCCESSFUL after iteration for EACH repository. Also ensure that artifacts show up in $USER_HOME/.m2/repository/org/apache/fineract/cn/
Step 3: Orchestrate Microservices Using The Demo-server
...
cd into `integration-tests/fineract-cn-demo-server/build/libs/` .(or if you just cloned demo-server (option #1 in previous step) then just cd into build/libs)
No services locally listening on ports: 4200, 61616, 2021, 2022, 2022, 2023, 2024, 2025, 2026, 2028, 2029, 2030, 2031, 2032, 2033
...
Use the command `java -jar -Ddemoserver.provision=true demo-server-0.1.0-BUILD-SNAPSHOT.jar` . (and add -Ddemoserver.lite=true if you only want a subset of services)
Option B - run demo-server with persistence
...