Upgrade to Atomix 3.0.0-rc7 to use agent distribution

Change-Id: I368ea95456553518bd627b1f4197442535186158
diff --git a/core/store/primitives/pom.xml b/core/store/primitives/pom.xml
index 68c9d1f..199a1ce 100644
--- a/core/store/primitives/pom.xml
+++ b/core/store/primitives/pom.xml
@@ -69,13 +69,13 @@
         <dependency>
             <groupId>io.atomix</groupId>
             <artifactId>atomix</artifactId>
-            <version>3.0.0-rc5</version>
+            <version>3.0.0-rc7</version>
         </dependency>
 
         <dependency>
             <groupId>io.atomix</groupId>
             <artifactId>atomix-raft</artifactId>
-            <version>3.0.0-rc5</version>
+            <version>3.0.0-rc7</version>
         </dependency>
 
         <dependency>
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/atomix/primitives/impl/AtomixDocumentTree.java b/core/store/primitives/src/main/java/org/onosproject/store/atomix/primitives/impl/AtomixDocumentTree.java
index 1b5974d..1989607 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/atomix/primitives/impl/AtomixDocumentTree.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/atomix/primitives/impl/AtomixDocumentTree.java
@@ -15,10 +15,13 @@
  */
 package org.onosproject.store.atomix.primitives.impl;
 
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
+import com.google.common.base.Throwables;
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.onosproject.store.primitives.NodeUpdate;
 import org.onosproject.store.primitives.TransactionId;
@@ -26,6 +29,8 @@
 import org.onosproject.store.service.DocumentPath;
 import org.onosproject.store.service.DocumentTreeEvent;
 import org.onosproject.store.service.DocumentTreeListener;
+import org.onosproject.store.service.IllegalDocumentModificationException;
+import org.onosproject.store.service.NoSuchDocumentPathException;
 import org.onosproject.store.service.TransactionLog;
 import org.onosproject.store.service.Version;
 import org.onosproject.store.service.Versioned;
@@ -72,7 +77,7 @@
 
     @Override
     public CompletableFuture<Boolean> create(DocumentPath path, V value) {
-        return atomixTree.create(toAtomixPath(path), value);
+        return convertException(atomixTree.create(toAtomixPath(path), value));
     }
 
     @Override
@@ -92,7 +97,7 @@
 
     @Override
     public CompletableFuture<Versioned<V>> removeNode(DocumentPath path) {
-        return atomixTree.removeNode(toAtomixPath(path)).thenApply(this::toVersioned);
+        return atomixTree.remove(toAtomixPath(path)).thenApply(this::toVersioned);
     }
 
     @Override
@@ -141,12 +146,35 @@
         throw new UnsupportedOperationException();
     }
 
+    private <T> CompletableFuture<T> convertException(CompletableFuture<T> future) {
+        CompletableFuture<T> newFuture = new CompletableFuture<>();
+        future.whenComplete((result, error) -> {
+            if (error == null) {
+                newFuture.complete(result);
+            } else {
+                Throwable cause = Throwables.getRootCause(error);
+                if (cause instanceof io.atomix.core.tree.NoSuchDocumentPathException) {
+                    newFuture.completeExceptionally(new NoSuchDocumentPathException());
+                } else if (cause instanceof io.atomix.core.tree.IllegalDocumentModificationException) {
+                    newFuture.completeExceptionally(new IllegalDocumentModificationException());
+                } else {
+                    newFuture.completeExceptionally(cause);
+                }
+            }
+        });
+        return newFuture;
+    }
+
     private DocumentPath toOnosPath(io.atomix.core.tree.DocumentPath path) {
-        return DocumentPath.from(path.pathElements());
+        List<String> pathElements = Lists.newArrayList(path.pathElements());
+        pathElements.set(0, DocumentPath.ROOT.pathElements().get(0));
+        return DocumentPath.from(pathElements);
     }
 
     private io.atomix.core.tree.DocumentPath toAtomixPath(DocumentPath path) {
-        return io.atomix.core.tree.DocumentPath.from(path.pathElements());
+        List<String> pathElements = Lists.newArrayList(path.pathElements());
+        pathElements.set(0, "");
+        return io.atomix.core.tree.DocumentPath.from(pathElements);
     }
 
     private Versioned<V> toVersioned(io.atomix.utils.time.Versioned<V> versioned) {
diff --git a/lib/BUCK b/lib/BUCK
index ac3df89..6c8f656 100644
--- a/lib/BUCK
+++ b/lib/BUCK
@@ -1,4 +1,4 @@
-# ***** This file was auto-generated at Thu, 26 Jul 2018 18:15:49 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Fri, 3 Aug 2018 23:34:53 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 pass_thru_pom(
@@ -209,7 +209,7 @@
     ':atomix-storage',
     ':atomix-utils',
     ':typesafe-config',
-    ':fast-classpath-scanner',
+    ':classgraph',
   ],
 )
 
@@ -242,73 +242,82 @@
 
 remote_jar (
   name = 'atomix',
-  out = 'atomix-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix:jar:3.0.0-rc5',
-  sha1 = '0607a760f048f66645a35bcd8d5cfd96634af622',
-  maven_coords = 'io.atomix:atomix:3.0.0-rc5',
+  out = 'atomix-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix:jar:3.0.0-rc7',
+  sha1 = 'bf9b83d02375a194a3f41ca8a750f557566e80b9',
+  maven_coords = 'io.atomix:atomix:3.0.0-rc7',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'atomix-cluster',
-  out = 'atomix-cluster-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix-cluster:jar:3.0.0-rc5',
-  sha1 = '586badbad8e1b7727f260bd53f3c9487eda64191',
-  maven_coords = 'io.atomix:atomix-cluster:3.0.0-rc5',
+  out = 'atomix-cluster-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix-cluster:jar:3.0.0-rc7',
+  sha1 = '8637229ccddf1dd853377d0da4ae2780c23a739b',
+  maven_coords = 'io.atomix:atomix-cluster:3.0.0-rc7',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'atomix-gossip',
-  out = 'atomix-gossip-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix-gossip:jar:3.0.0-rc5',
-  sha1 = 'e168926801b01f6d543ef4232c02b1c798c81edf',
-  maven_coords = 'io.atomix:atomix-gossip:3.0.0-rc5',
+  out = 'atomix-gossip-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix-gossip:jar:3.0.0-rc7',
+  sha1 = 'd9a6f5d61187d9374c70735c74a30979a8f1cb34',
+  maven_coords = 'io.atomix:atomix-gossip:3.0.0-rc7',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'atomix-primary-backup',
-  out = 'atomix-primary-backup-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix-primary-backup:jar:3.0.0-rc5',
-  sha1 = 'd339992903d53d7608957471ee9c97a45945d730',
-  maven_coords = 'io.atomix:atomix-primary-backup:3.0.0-rc5',
+  out = 'atomix-primary-backup-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix-primary-backup:jar:3.0.0-rc7',
+  sha1 = '1093dd72377aef05ae7f5c9f21b412c7c541f2ca',
+  maven_coords = 'io.atomix:atomix-primary-backup:3.0.0-rc7',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'atomix-primitive',
-  out = 'atomix-primitive-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix-primitive:jar:3.0.0-rc5',
-  sha1 = '6606d4619a74b054e58d4478f43616a608803216',
-  maven_coords = 'io.atomix:atomix-primitive:3.0.0-rc5',
+  out = 'atomix-primitive-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix-primitive:jar:3.0.0-rc7',
+  sha1 = '0c0bbfbc0957561754422092f46fd67c606779ee',
+  maven_coords = 'io.atomix:atomix-primitive:3.0.0-rc7',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'atomix-raft',
-  out = 'atomix-raft-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix-raft:jar:3.0.0-rc5',
-  sha1 = '07c64d7be64ba81a4b53a55bf29d415db4998132',
-  maven_coords = 'io.atomix:atomix-raft:3.0.0-rc5',
+  out = 'atomix-raft-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix-raft:jar:3.0.0-rc7',
+  sha1 = '32123b5dc9e465104ccfa44c3593ce7bbb4cd84c',
+  maven_coords = 'io.atomix:atomix-raft:3.0.0-rc7',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'atomix-storage',
-  out = 'atomix-storage-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix-storage:jar:3.0.0-rc5',
-  sha1 = '2e093d7d42de9cdf274675358a17c76e1fd36a5e',
-  maven_coords = 'io.atomix:atomix-storage:3.0.0-rc5',
+  out = 'atomix-storage-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix-storage:jar:3.0.0-rc7',
+  sha1 = 'c1ccaba461ca6ea0a7c49bd90b6cf404d5f7070d',
+  maven_coords = 'io.atomix:atomix-storage:3.0.0-rc7',
   visibility = [ 'PUBLIC' ],
 )
 
 remote_jar (
   name = 'atomix-utils',
-  out = 'atomix-utils-3.0.0-rc5.jar',
-  url = 'mvn:io.atomix:atomix-utils:jar:3.0.0-rc5',
-  sha1 = '3435cf4ad6abfa85db210366bcaf0c6ac0ae7ec2',
-  maven_coords = 'io.atomix:atomix-utils:3.0.0-rc5',
+  out = 'atomix-utils-3.0.0-rc7.jar',
+  url = 'mvn:io.atomix:atomix-utils:jar:3.0.0-rc7',
+  sha1 = 'f403c1dd496568931dde1ba498a65aa67c1d5ef1',
+  maven_coords = 'io.atomix:atomix-utils:3.0.0-rc7',
+  visibility = [ 'PUBLIC' ],
+)
+
+remote_jar (
+  name = 'classgraph',
+  out = 'classgraph-4.0.3.jar',
+  url = 'mvn:io.github.classgraph:classgraph:jar:4.0.3',
+  sha1 = '693dc837e0dbb19581753457848de58c18e78c60',
+  maven_coords = 'io.github.classgraph:classgraph:4.0.3',
   visibility = [ 'PUBLIC' ],
 )
 
diff --git a/lib/deps.json b/lib/deps.json
index 58d109b..a5a6b5f 100644
--- a/lib/deps.json
+++ b/lib/deps.json
@@ -128,7 +128,7 @@
       "atomix-storage",
       "atomix-utils",
       "typesafe-config",
-      "fast-classpath-scanner"
+      "classgraph"
     ]
   },
 
@@ -136,14 +136,15 @@
     "aopalliance-repackaged": "mvn:org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b42",
     "amqp-client": "mvn:com.rabbitmq:amqp-client:jar:3.6.1",
     "asm": "mvn:org.ow2.asm:asm:5.0.4",
-    "atomix": "mvn:io.atomix:atomix:3.0.0-rc5",
-    "atomix-cluster": "mvn:io.atomix:atomix-cluster:3.0.0-rc5",
-    "atomix-gossip": "mvn:io.atomix:atomix-gossip:3.0.0-rc5",
-    "atomix-primary-backup": "mvn:io.atomix:atomix-primary-backup:3.0.0-rc5",
-    "atomix-primitive": "mvn:io.atomix:atomix-primitive:3.0.0-rc5",
-    "atomix-raft": "mvn:io.atomix:atomix-raft:3.0.0-rc5",
-    "atomix-storage": "mvn:io.atomix:atomix-storage:3.0.0-rc5",
-    "atomix-utils": "mvn:io.atomix:atomix-utils:3.0.0-rc5",
+    "atomix": "mvn:io.atomix:atomix:3.0.0-rc7",
+    "atomix-cluster": "mvn:io.atomix:atomix-cluster:3.0.0-rc7",
+    "atomix-gossip": "mvn:io.atomix:atomix-gossip:3.0.0-rc7",
+    "atomix-primary-backup": "mvn:io.atomix:atomix-primary-backup:3.0.0-rc7",
+    "atomix-primitive": "mvn:io.atomix:atomix-primitive:3.0.0-rc7",
+    "atomix-raft": "mvn:io.atomix:atomix-raft:3.0.0-rc7",
+    "atomix-storage": "mvn:io.atomix:atomix-storage:3.0.0-rc7",
+    "atomix-utils": "mvn:io.atomix:atomix-utils:3.0.0-rc7",
+    "classgraph": "mvn:io.github.classgraph:classgraph:4.0.3",
     "commons-codec": "mvn:commons-codec:commons-codec:1.10",
     "commons-cli": "mvn:commons-cli:commons-cli:1.3",
     "commons-collections": "mvn:commons-collections:commons-collections:3.2.2",
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