| #!/bin/bash |
| # ----------------------------------------------------------------------------- |
| # Compiles Java code generated by the YANG compiler. |
| # ----------------------------------------------------------------------------- |
| |
| sources=${1:-src} |
| classes=${2:-classes} |
| modelId=${3:-org.onosproject.model.unknown} |
| |
| # Stage the YANG sources and the YANG schema meta-data |
| mkdir -p $classes/yang/resources |
| cp $sources/schema/* $classes/yang/resources |
| |
| root=${root:-system} |
| op="$root/org/onosproject" |
| |
| function findLib() { |
| find $1/$2 -name "$2-*.jar" |
| } |
| |
| classPath="$(findLib $op onos-yang-model)" |
| classPath="$classPath:$(findLib $op onos-yang-runtime)" |
| classPath="$classPath:$(findLib $op onos-yang-compiler-api)" |
| classPath="$classPath:$(findLib $op onos-apps-yang)" |
| |
| package=${modelId//./\/} |
| mkdir -p $sources/src/$package |
| sed "s/PACKAGE/$modelId/g" $(dirname $0)/YangModelRegistrator.java \ |
| > $sources/src/$package/YangModelRegistrator.java |
| |
| # Compile the generated java code |
| find $sources/src -name '*.java' > $sources/javaFiles |
| javac -source 1.8 -target 1.8 \ |
| -sourcepath "$sources/src" -classpath "$classPath" -d "$classes" \ |
| @$sources/javaFiles |