This application utilizes NETCONF south-bound plugin to manage NETCONF devices on the network. Application works as standalone SDN controller. It is capable to connect to NETCONF devices and expose connected devices over custom REST north-bound APIs. This demo shows how to run lighty.io in quarkus.io framework.
Application initializes OpenDaylight core components (MD-SAL, yangtools and controller) and NetConf Southbound plugin inside quarkus.io environment.
Once you have downloaded GraalVM, extract the archive and set the environment variables:
export PATH={YOUR_PATH}/graalvm-ce-19.0.2/bin:$PATH
export GRAALVM_HOME={YOUR_PATH}/graalvm-ce-19.0.2/
export JAVA_HOME={YOUR_PATH}/graalvm-ce-19.0.2/
Install native image support for graalVM
gu install native-image
build and run the project:
mvn clean compile quarkus:dev
mvn clean package
java -Xms128m -Xmx128m -XX:MaxMetaspaceSize=128m -jar target/lighty-quarkus-netconf-app-12.0.0-SNAPSHOT-runner.jar
build native image:
mvn clean package -Pnative
This postman collection contains implemented REST API examples.
Parameters measured after application start.
Property Name | lighty.io ** |
---|---|
Build size | 72 MB |
Startup Time | ~4.8 |
Shutdown Time | ~100ms |
Process memory allocated (RSS)*** | 541 MB |
HEAP memory (used/allocated) | 25 / 128 MB |
Metaspace (used/allocated) | 66 / 62 MB |
Threads (live/daemon) | 86 / 17 |
Classes loaded | 12147 |
No. of jars | 254 |
** -Xms128m -Xmx128m -XX:MaxMetaspaceSize=128m
*** sudo ps -o pid,rss,user,command ax | grep java | grep quarkus