Upgrade to Atomix 3.0.0-rc7 to use agent distribution

Change-Id: I368ea95456553518bd627b1f4197442535186158
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
index 744598a..ef843ac 100644
--- a/tools/build/bazel/generate_workspace.bzl
+++ b/tools/build/bazel/generate_workspace.bzl
@@ -1,4 +1,4 @@
-# ***** This file was auto-generated at Thu, 26 Jul 2018 18:15:57 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Fri, 3 Aug 2018 23:35:01 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 load("//tools/build/bazel:variables.bzl", "ONOS_GROUP_ID", "ONOS_VERSION")
@@ -128,7 +128,7 @@
     "@atomix_storage//jar",
     "@atomix_utils//jar",
     "@typesafe_config//jar",
-    "@fast_classpath_scanner//jar",
+    "@classgraph//jar",
 ]
 
 def generated_maven_jars():
@@ -152,50 +152,56 @@
 
     native.maven_jar(
         name = "atomix",
-        artifact = "io.atomix:atomix:3.0.0-rc5",
-        sha1 = "0607a760f048f66645a35bcd8d5cfd96634af622",
+        artifact = "io.atomix:atomix:3.0.0-rc7",
+        sha1 = "bf9b83d02375a194a3f41ca8a750f557566e80b9",
     )
 
     native.maven_jar(
         name = "atomix_cluster",
-        artifact = "io.atomix:atomix-cluster:3.0.0-rc5",
-        sha1 = "586badbad8e1b7727f260bd53f3c9487eda64191",
+        artifact = "io.atomix:atomix-cluster:3.0.0-rc7",
+        sha1 = "8637229ccddf1dd853377d0da4ae2780c23a739b",
     )
 
     native.maven_jar(
         name = "atomix_gossip",
-        artifact = "io.atomix:atomix-gossip:3.0.0-rc5",
-        sha1 = "e168926801b01f6d543ef4232c02b1c798c81edf",
+        artifact = "io.atomix:atomix-gossip:3.0.0-rc7",
+        sha1 = "d9a6f5d61187d9374c70735c74a30979a8f1cb34",
     )
 
     native.maven_jar(
         name = "atomix_primary_backup",
-        artifact = "io.atomix:atomix-primary-backup:3.0.0-rc5",
-        sha1 = "d339992903d53d7608957471ee9c97a45945d730",
+        artifact = "io.atomix:atomix-primary-backup:3.0.0-rc7",
+        sha1 = "1093dd72377aef05ae7f5c9f21b412c7c541f2ca",
     )
 
     native.maven_jar(
         name = "atomix_primitive",
-        artifact = "io.atomix:atomix-primitive:3.0.0-rc5",
-        sha1 = "6606d4619a74b054e58d4478f43616a608803216",
+        artifact = "io.atomix:atomix-primitive:3.0.0-rc7",
+        sha1 = "0c0bbfbc0957561754422092f46fd67c606779ee",
     )
 
     native.maven_jar(
         name = "atomix_raft",
-        artifact = "io.atomix:atomix-raft:3.0.0-rc5",
-        sha1 = "07c64d7be64ba81a4b53a55bf29d415db4998132",
+        artifact = "io.atomix:atomix-raft:3.0.0-rc7",
+        sha1 = "32123b5dc9e465104ccfa44c3593ce7bbb4cd84c",
     )
 
     native.maven_jar(
         name = "atomix_storage",
-        artifact = "io.atomix:atomix-storage:3.0.0-rc5",
-        sha1 = "2e093d7d42de9cdf274675358a17c76e1fd36a5e",
+        artifact = "io.atomix:atomix-storage:3.0.0-rc7",
+        sha1 = "c1ccaba461ca6ea0a7c49bd90b6cf404d5f7070d",
     )
 
     native.maven_jar(
         name = "atomix_utils",
-        artifact = "io.atomix:atomix-utils:3.0.0-rc5",
-        sha1 = "3435cf4ad6abfa85db210366bcaf0c6ac0ae7ec2",
+        artifact = "io.atomix:atomix-utils:3.0.0-rc7",
+        sha1 = "f403c1dd496568931dde1ba498a65aa67c1d5ef1",
+    )
+
+    native.maven_jar(
+        name = "classgraph",
+        artifact = "io.github.classgraph:classgraph:4.0.3",
+        sha1 = "693dc837e0dbb19581753457848de58c18e78c60",
     )
 
     native.maven_jar(
@@ -1287,6 +1293,12 @@
     )
 
     native.java_library(
+        name = "classgraph",
+        visibility = ["//visibility:public"],
+        exports = ["@classgraph//jar"],
+    )
+
+    native.java_library(
         name = "commons_codec",
         visibility = ["//visibility:public"],
         exports = ["@commons_codec//jar"],
@@ -2298,14 +2310,15 @@
 artifact_map["@aopalliance_repackaged//jar"] = "mvn:org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b42"
 artifact_map["@amqp_client//jar"] = "mvn:com.rabbitmq:amqp-client:jar:3.6.1"
 artifact_map["@asm//jar"] = "mvn:org.ow2.asm:asm:jar:5.0.4"
-artifact_map["@atomix//jar"] = "mvn:io.atomix:atomix:jar:3.0.0-rc5"
-artifact_map["@atomix_cluster//jar"] = "mvn:io.atomix:atomix-cluster:jar:3.0.0-rc5"
-artifact_map["@atomix_gossip//jar"] = "mvn:io.atomix:atomix-gossip:jar:3.0.0-rc5"
-artifact_map["@atomix_primary_backup//jar"] = "mvn:io.atomix:atomix-primary-backup:jar:3.0.0-rc5"
-artifact_map["@atomix_primitive//jar"] = "mvn:io.atomix:atomix-primitive:jar:3.0.0-rc5"
-artifact_map["@atomix_raft//jar"] = "mvn:io.atomix:atomix-raft:jar:3.0.0-rc5"
-artifact_map["@atomix_storage//jar"] = "mvn:io.atomix:atomix-storage:jar:3.0.0-rc5"
-artifact_map["@atomix_utils//jar"] = "mvn:io.atomix:atomix-utils:jar:3.0.0-rc5"
+artifact_map["@atomix//jar"] = "mvn:io.atomix:atomix:jar:3.0.0-rc7"
+artifact_map["@atomix_cluster//jar"] = "mvn:io.atomix:atomix-cluster:jar:3.0.0-rc7"
+artifact_map["@atomix_gossip//jar"] = "mvn:io.atomix:atomix-gossip:jar:3.0.0-rc7"
+artifact_map["@atomix_primary_backup//jar"] = "mvn:io.atomix:atomix-primary-backup:jar:3.0.0-rc7"
+artifact_map["@atomix_primitive//jar"] = "mvn:io.atomix:atomix-primitive:jar:3.0.0-rc7"
+artifact_map["@atomix_raft//jar"] = "mvn:io.atomix:atomix-raft:jar:3.0.0-rc7"
+artifact_map["@atomix_storage//jar"] = "mvn:io.atomix:atomix-storage:jar:3.0.0-rc7"
+artifact_map["@atomix_utils//jar"] = "mvn:io.atomix:atomix-utils:jar:3.0.0-rc7"
+artifact_map["@classgraph//jar"] = "mvn:io.github.classgraph:classgraph:jar:4.0.3"
 artifact_map["@commons_codec//jar"] = "mvn:commons-codec:commons-codec:jar:1.10"
 artifact_map["@commons_cli//jar"] = "mvn:commons-cli:commons-cli:jar:1.3"
 artifact_map["@commons_collections//jar"] = "mvn:commons-collections:commons-collections:jar:3.2.2"
diff --git a/tools/package/features/BUCK b/tools/package/features/BUCK
index 8bbf94a..4b5ecd7 100644
--- a/tools/package/features/BUCK
+++ b/tools/package/features/BUCK
@@ -11,6 +11,7 @@
     '//lib:atomix-raft',
     '//lib:atomix-storage',
     '//lib:atomix-utils',
+    '//lib:classgraph',
     '//lib:commons-lang',
     '//lib:commons-lang3',
     '//lib:commons-text',
diff --git a/tools/package/features/features.xml b/tools/package/features/features.xml
index 1c49602..1edc57f 100644
--- a/tools/package/features/features.xml
+++ b/tools/package/features/features.xml
@@ -59,16 +59,17 @@
         <bundle>mvn:com.typesafe/config/1.3.2</bundle>
         <bundle>mvn:com.googlecode.concurrent-trees/concurrent-trees/2.6.0</bundle>
         <bundle>mvn:commons-io/commons-io/2.4</bundle>
-        <bundle>mvn:io.atomix/atomix/3.0.0-rc5</bundle>
-        <bundle>mvn:io.atomix/atomix-cluster/3.0.0-rc5</bundle>
-        <bundle>mvn:io.atomix/atomix-gossip/3.0.0-rc5</bundle>
-        <bundle>mvn:io.atomix/atomix-primary-backup/3.0.0-rc5</bundle>
-        <bundle>mvn:io.atomix/atomix-primitive/3.0.0-rc5</bundle>
-        <bundle>mvn:io.atomix/atomix-raft/3.0.0-rc5</bundle>
-        <bundle>mvn:io.atomix/atomix-storage/3.0.0-rc5</bundle>
-        <bundle>mvn:io.atomix/atomix-utils/3.0.0-rc5</bundle>
+        <bundle>mvn:io.atomix/atomix/3.0.0-rc7</bundle>
+        <bundle>mvn:io.atomix/atomix-cluster/3.0.0-rc7</bundle>
+        <bundle>mvn:io.atomix/atomix-gossip/3.0.0-rc7</bundle>
+        <bundle>mvn:io.atomix/atomix-primary-backup/3.0.0-rc7</bundle>
+        <bundle>mvn:io.atomix/atomix-primitive/3.0.0-rc7</bundle>
+        <bundle>mvn:io.atomix/atomix-raft/3.0.0-rc7</bundle>
+        <bundle>mvn:io.atomix/atomix-storage/3.0.0-rc7</bundle>
+        <bundle>mvn:io.atomix/atomix-utils/3.0.0-rc7</bundle>
 
         <bundle>mvn:com.typesafe/config/1.3.2</bundle>
+        <bundle>mvn:io.github.classgraph/classgraph/4.0.3</bundle>
         <bundle>mvn:io.github.lukehutch/fast-classpath-scanner/2.21</bundle>
 
         <bundle>mvn:org.glassfish.jersey.core/jersey-client/2.26</bundle>
diff --git a/tools/test/bin/atomix-config b/tools/test/bin/atomix-config
index d5841f7..f7decba 100755
--- a/tools/test/bin/atomix-config
+++ b/tools/test/bin/atomix-config
@@ -37,5 +37,5 @@
 scp -q $CDEF_FILE $remote:$ATOMIX_INSTALL_DIR/atomix.json
 
 ssh -tt $ONOS_USER@$node "
-    echo \"cd $ATOMIX_INSTALL_DIR && java -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -cp .:$ATOMIX_INSTALL_DIR/atomix.json:$ATOMIX_INSTALL_DIR/atomix-agent.jar -Datomix.logging.level=DEBUG io.atomix.agent.AtomixAgent\" > $ATOMIX_INSTALL_DIR/atomix && sudo chmod u+x $ATOMIX_INSTALL_DIR/atomix
+    sed -i -e $'s/<logger name=\"io.atomix\" level=\"INFO\" \/>/<logger name=\"io.atomix\" level=\"INFO\" \/>\\\n    <logger name=\"io.atomix.protocols.raft\" level=\"DEBUG\" \/>/g' /opt/atomix/conf/logback.xml
 "
diff --git a/tools/test/bin/atomix-install b/tools/test/bin/atomix-install
index 2a361b1..6627c98 100755
--- a/tools/test/bin/atomix-install
+++ b/tools/test/bin/atomix-install
@@ -44,10 +44,11 @@
 remote=$ONOS_USER@$node
 
 ssh -tt $remote "
-    [ -f $ATOMIX_INSTALL_DIR/atomix-agent.jar ] && echo \"Atomix is already installed\" && exit 1
+    [ -f $ATOMIX_INSTALL_DIR/bin/atomix-agent ] && echo \"Atomix is already installed\" && exit 1
 
     sudo mkdir -p $ATOMIX_INSTALL_DIR && sudo chown ${ONOS_USER}:${ONOS_GROUP} $ATOMIX_INSTALL_DIR
-    sudo wget -O $ATOMIX_INSTALL_DIR/atomix-agent.jar https://oss.sonatype.org/content/repositories/releases/io/atomix/atomix-agent/3.0.0-rc4/atomix-agent-3.0.0-rc4-shaded.jar
+    sudo wget -O $ATOMIX_INSTALL_DIR/atomix-dist.tar.gz https://oss.sonatype.org/content/repositories/releases/io/atomix/atomix-dist/3.0.0-rc7/atomix-dist-3.0.0-rc7.tar.gz
+    tar -xvf $ATOMIX_INSTALL_DIR/atomix-dist.tar.gz -C $ATOMIX_INSTALL_DIR
 "
 
 # Configure the ONOS installation
diff --git a/tools/test/bin/atomix-service b/tools/test/bin/atomix-service
index 0c70b0f..1da285b 100755
--- a/tools/test/bin/atomix-service
+++ b/tools/test/bin/atomix-service
@@ -43,14 +43,14 @@
     start)
         # Execute the remote commands
         for node in $nodes; do
-            ssh $ONOS_USER@${node} "nohup $ATOMIX_INSTALL_DIR/atomix >> $ATOMIX_INSTALL_DIR/log 2>&1 &"
+            ssh $ONOS_USER@${node} "nohup $ATOMIX_INSTALL_DIR/bin/atomix-agent -c $ATOMIX_INSTALL_DIR/atomix.json >/dev/null 2>&1 &"
         done
     ;;
     stop)
         # Execute the remote commands
         for node in $nodes; do
             ssh -tt $ONOS_USER@${node} "
-                pid=\$(ps -ef | grep atomix-agent.jar | grep -v grep | cut -c10-15 | tr -d ' ')
+                pid=\$(ps -ef | grep atomix | grep -v grep | cut -c10-15 | tr -d ' ')
                 if [ -n \"\$pid\" ]; then
                     echo \"Killing Atomix process \$pid on \$(hostname)...\"
                     kill -9 \$pid
diff --git a/tools/test/bin/atomix-uninstall b/tools/test/bin/atomix-uninstall
index c1ca86d..eb42d95 100755
--- a/tools/test/bin/atomix-uninstall
+++ b/tools/test/bin/atomix-uninstall
@@ -27,7 +27,7 @@
 remote=$ONOS_USER@${1:-$OCI}
 
 ssh -tt $remote "
-    pid=\$(ps -ef | grep atomix-agent.jar | grep -v grep | cut -c10-15 | tr -d ' ')
+    pid=\$(ps -ef | grep atomix | grep -v grep | cut -c10-15 | tr -d ' ')
     if [ -n \"\$pid\" ]; then
         echo \"Killing Atomix process \$pid on \$(hostname)...\"
         kill -9 \$pid