Allow ONOS to be built against locally built ONOS YANG Tools.

Change-Id: If4373245be901cae0f620aadcbea557fea35c4e7
diff --git a/WORKSPACE b/WORKSPACE
index 1e83aaa..dc16834 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -4,7 +4,7 @@
 
 check_bazel_version()
 
-load("//tools/build/bazel:local_jar.bzl", "local_atomix", "local_jar")
+load("//tools/build/bazel:local_jar.bzl", "local_atomix", "local_jar", "local_yang_tools")
 
 # Use this to build against locally built arbitrary 3rd party artifacts
 #local_jar(
@@ -18,6 +18,12 @@
 #    version = "3.0.8-SNAPSHOT",
 #)
 
+# Use this to build against locally built YANG tools
+#local_yang_tools(
+#    path = "/Users/andrea/onos-yang-tools",
+#    version = "2.6-SNAPSHOT",
+#)
+
 load("//tools/build/bazel:generate_workspace.bzl", "generated_maven_jars")
 
 generated_maven_jars()
diff --git a/tools/build/bazel/local_jar.bzl b/tools/build/bazel/local_jar.bzl
index 14d9f7b..155afb7 100644
--- a/tools/build/bazel/local_jar.bzl
+++ b/tools/build/bazel/local_jar.bzl
@@ -96,4 +96,33 @@
         path = "%s/rest/target/atomix-rest-%s.jar" % (path, version),
     )
 
-# TODO: add local_yang_tools, etc.
+# Macro to allow building ONOS against locally-built YANG tools artifacts
+def local_yang_tools(path, version):
+    local_jar(
+        name = "onos_yang_model",
+        path = "%s/model/target/onos-yang-model-%s.jar" % (path, version),
+    )
+    local_jar(
+        name = "onos_yang_compiler_api",
+        path = "%s/compiler/api/target/onos-yang-compiler-api-%s.jar" % (path, version),
+    )
+    local_jar(
+        name = "onos_yang_compiler_main",
+        path = "%s/compiler/plugin/main/target/onos-yang-compiler-main-%s.jar" % (path, version),
+    )
+    local_jar(
+        name = "onos_yang_runtime",
+        path = "%s/runtime/target/onos-yang-runtime-%s.jar" % (path, version),
+    )
+    local_jar(
+        name = "onos_yang_serializers_json",
+        path = "%s/serializers/json/target/onos-yang-serializers-json-%s.jar" % (path, version),
+    )
+    local_jar(
+        name = "onos_yang_serializers_xml",
+        path = "%s/serializers/xml/target/onos-yang-serializers-xml-%s.jar" % (path, version),
+    )
+    local_jar(
+        name = "onos_yang_serializers_utils",
+        path = "%s/serializers/utils/target/onos-yang-serializers-utils-%s.jar" % (path, version),
+    )
diff --git a/tools/dev/bin/patch-yang-libs b/tools/dev/bin/patch-yang-libs
deleted file mode 100755
index 0e4af2d..0000000
--- a/tools/dev/bin/patch-yang-libs
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Patches lib/BUCK file to use locally built YANG tools.
-# -----------------------------------------------------------------------------
-
-BVER=2.5
-SVER=2.6-SNAPSHOT
-
-YANG_TOOLS_ROOT=${YANG_TOOLS_ROOT:-~/onos-yang-tools}
-
-rm -f $ONOS_ROOT/lib/yang/* 2>/dev/null
-mkdir -p $ONOS_ROOT/lib/yang
-
-awk '
-    BEGIN { m = 0; y = 0; }
-    /^(remote_jar|prebuilt_jar)/ { s = $0; m = 1; next; }
-    { if (m) { s = s "\n" $0; } else { print $0; } }
-    /onos-yang-.*('$BVER'|'$SVER')/ { y = 1; }
-    /^\)/ { if (m && !y) { print s; } y = 0; m = 0; }
-' $ONOS_ROOT/lib/BUCK > /tmp/BUCK
-mv /tmp/BUCK $ONOS_ROOT/lib/BUCK
-
-for yl in $(egrep "onos-yang-.*$BVER" $ONOS_ROOT/lib/deps.json); do
-    n=$(echo $yl | cut -d\" -f2)
-    m=$(echo $yl | cut -d\" -f4)
-    m=${m/$BVER/$SVER}
-    j=$(find $YANG_TOOLS_ROOT -name $n-$SVER.jar)
-    s=yang/$(basename $j)
-    cp $j $ONOS_ROOT/lib/$s
-
-    # echo $n, $m, $j
-
-    cat <<EOF >>$ONOS_ROOT/lib/BUCK
-prebuilt_jar (
-  name = '$n',
-  binary_jar = '$s',
-  maven_coords = '${m#mvn:*}',
-  visibility = [ 'PUBLIC' ],
-)
-
-EOF
-done
-
-YANG_PLUGIN_SRC=$YANG_TOOLS_ROOT/compiler/plugin/buck/target/onos-yang-compiler-buck-plugin-$SVER.jar
-if [ ! -f "$YANG_PLUGIN_SRC" ]; then
-    mvn -f $YANG_TOOLS_ROOT/pom.xml -am -pl :onos-yang-compiler-buck-plugin install -DskipTests -Dcheckstyle.skip
-fi
-# populate buck plugin cache with SNAPSHOT version
-ARTIFACT="org.onosproject:onos-yang-compiler-buck-plugin:$SVER"
-mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy \
-    -Dartifact=$ARTIFACT \
-    -Dtransitive=false -Dmdep.overWriteSnapshots=true \
-    -DoutputDirectory=$ONOS_ROOT/bin/cache > /dev/null
-
-# Patch the YANG BUCK plugin version specified
-sed -i.bak "s/YANG_VER=\"$BVER\"/YANG_VER=\"$SVER\"/" $ONOS_ROOT/tools/build/onos-buck