Upgrade to Atomix 3.0-rc5
* Upgrade Raft primitives to Atomix 3.0
* Replace cluster store and messaging implementations with Atomix cluster management/messaging
* Add test scripts for installing/starting Atomix cluster
* Replace core primitives with Atomix primitives.

Change-Id: I7623653c81292a34f21b01f5f38ca11b5ef15cad
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
index 19232ff..744598a 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 Mon, 23 Jul 2018 20:11:05 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Thu, 26 Jul 2018 18:15:57 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 load("//tools/build/bazel:variables.bzl", "ONOS_GROUP_ID", "ONOS_VERSION")
@@ -118,6 +118,18 @@
     "@javax_ws_rs_api//jar",
     "//utils/rest:onlab-rest",
 ]
+ATOMIX = [
+    "@atomix//jar",
+    "@atomix_cluster//jar",
+    "@atomix_gossip//jar",
+    "@atomix_primary_backup//jar",
+    "@atomix_primitive//jar",
+    "@atomix_raft//jar",
+    "@atomix_storage//jar",
+    "@atomix_utils//jar",
+    "@typesafe_config//jar",
+    "@fast_classpath_scanner//jar",
+]
 
 def generated_maven_jars():
     native.maven_jar(
@@ -140,8 +152,50 @@
 
     native.maven_jar(
         name = "atomix",
-        artifact = "io.atomix:atomix:2.0.23",
-        sha1 = "6b41cebf257e0094c2276b6fa589b2c73aff5f99",
+        artifact = "io.atomix:atomix:3.0.0-rc5",
+        sha1 = "0607a760f048f66645a35bcd8d5cfd96634af622",
+    )
+
+    native.maven_jar(
+        name = "atomix_cluster",
+        artifact = "io.atomix:atomix-cluster:3.0.0-rc5",
+        sha1 = "586badbad8e1b7727f260bd53f3c9487eda64191",
+    )
+
+    native.maven_jar(
+        name = "atomix_gossip",
+        artifact = "io.atomix:atomix-gossip:3.0.0-rc5",
+        sha1 = "e168926801b01f6d543ef4232c02b1c798c81edf",
+    )
+
+    native.maven_jar(
+        name = "atomix_primary_backup",
+        artifact = "io.atomix:atomix-primary-backup:3.0.0-rc5",
+        sha1 = "d339992903d53d7608957471ee9c97a45945d730",
+    )
+
+    native.maven_jar(
+        name = "atomix_primitive",
+        artifact = "io.atomix:atomix-primitive:3.0.0-rc5",
+        sha1 = "6606d4619a74b054e58d4478f43616a608803216",
+    )
+
+    native.maven_jar(
+        name = "atomix_raft",
+        artifact = "io.atomix:atomix-raft:3.0.0-rc5",
+        sha1 = "07c64d7be64ba81a4b53a55bf29d415db4998132",
+    )
+
+    native.maven_jar(
+        name = "atomix_storage",
+        artifact = "io.atomix:atomix-storage:3.0.0-rc5",
+        sha1 = "2e093d7d42de9cdf274675358a17c76e1fd36a5e",
+    )
+
+    native.maven_jar(
+        name = "atomix_utils",
+        artifact = "io.atomix:atomix-utils:3.0.0-rc5",
+        sha1 = "3435cf4ad6abfa85db210366bcaf0c6ac0ae7ec2",
     )
 
     native.maven_jar(
@@ -187,6 +241,12 @@
     )
 
     native.maven_jar(
+        name = "fast_classpath_scanner",
+        artifact = "io.github.lukehutch:fast-classpath-scanner:2.21",
+        sha1 = "0cc8e22b412521480c89ac79194e82bd4471dd75",
+    )
+
+    native.maven_jar(
         name = "jdom",
         artifact = "jdom:jdom:1.0",
         sha1 = "a2ac1cd690ab4c80defe7f9bce14d35934c35cec",
@@ -800,8 +860,8 @@
 
     native.maven_jar(
         name = "typesafe_config",
-        artifact = "com.typesafe:config:1.2.1",
-        sha1 = "f771f71fdae3df231bcd54d5ca2d57f0bf93f467",
+        artifact = "com.typesafe:config:1.3.2",
+        sha1 = "d6ac0ce079f114adce620f2360c92a70b2cb36dc",
     )
 
     native.maven_jar(
@@ -1185,6 +1245,48 @@
     )
 
     native.java_library(
+        name = "atomix_cluster",
+        visibility = ["//visibility:public"],
+        exports = ["@atomix_cluster//jar"],
+    )
+
+    native.java_library(
+        name = "atomix_gossip",
+        visibility = ["//visibility:public"],
+        exports = ["@atomix_gossip//jar"],
+    )
+
+    native.java_library(
+        name = "atomix_primary_backup",
+        visibility = ["//visibility:public"],
+        exports = ["@atomix_primary_backup//jar"],
+    )
+
+    native.java_library(
+        name = "atomix_primitive",
+        visibility = ["//visibility:public"],
+        exports = ["@atomix_primitive//jar"],
+    )
+
+    native.java_library(
+        name = "atomix_raft",
+        visibility = ["//visibility:public"],
+        exports = ["@atomix_raft//jar"],
+    )
+
+    native.java_library(
+        name = "atomix_storage",
+        visibility = ["//visibility:public"],
+        exports = ["@atomix_storage//jar"],
+    )
+
+    native.java_library(
+        name = "atomix_utils",
+        visibility = ["//visibility:public"],
+        exports = ["@atomix_utils//jar"],
+    )
+
+    native.java_library(
         name = "commons_codec",
         visibility = ["//visibility:public"],
         exports = ["@commons_codec//jar"],
@@ -1227,6 +1329,12 @@
     )
 
     native.java_library(
+        name = "fast_classpath_scanner",
+        visibility = ["//visibility:public"],
+        exports = ["@fast_classpath_scanner//jar"],
+    )
+
+    native.java_library(
         name = "jdom",
         visibility = ["//visibility:public"],
         exports = ["@jdom//jar"],
@@ -2190,7 +2298,14 @@
 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:2.0.23"
+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["@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"
@@ -2198,6 +2313,7 @@
 artifact_map["@commons_io//jar"] = "mvn:commons-io:commons-io:jar:2.6"
 artifact_map["@commons_jxpath//jar"] = "mvn:commons-jxpath:commons-jxpath:jar:1.3"
 artifact_map["@commons_beanutils//jar"] = "mvn:commons-beanutils:commons-beanutils:jar:1.9.3"
+artifact_map["@fast_classpath_scanner//jar"] = "mvn:io.github.lukehutch:fast-classpath-scanner:jar:2.21"
 artifact_map["@jdom//jar"] = "mvn:jdom:jdom:jar:NON-OSGI:1.0"
 artifact_map["@commons_lang//jar"] = "mvn:commons-lang:commons-lang:jar:2.6"
 artifact_map["@commons_lang3//jar"] = "mvn:org.apache.commons:commons-lang3:jar:3.7"
@@ -2300,7 +2416,7 @@
 artifact_map["@slf4j_api//jar"] = "mvn:org.slf4j:slf4j-api:jar:1.7.25"
 artifact_map["@slf4j_jdk14//jar"] = "mvn:org.slf4j:slf4j-jdk14:jar:1.7.25"
 artifact_map["@slf4j_nop//jar"] = "mvn:org.slf4j:slf4j-nop:jar:1.7.25"
-artifact_map["@typesafe_config//jar"] = "mvn:com.typesafe:config:jar:1.2.1"
+artifact_map["@typesafe_config//jar"] = "mvn:com.typesafe:config:jar:1.3.2"
 artifact_map["@validation_api//jar"] = "mvn:javax.validation:validation-api:jar:1.1.0.Final"
 artifact_map["@checkstyle//jar"] = "mvn:com.puppycrawl.tools:checkstyle:jar:NON-OSGI:8.10"
 artifact_map["@apache_karaf//jar"] = "http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/3.0.8/apache-karaf-offline-3.0.8.tar.gz"
diff --git a/tools/build/envDefaults b/tools/build/envDefaults
index 190f7de..d76bb52 100644
--- a/tools/build/envDefaults
+++ b/tools/build/envDefaults
@@ -53,6 +53,7 @@
 export ONOS_ADMIN_TAR=$ONOS_STAGE_ROOT/$ONOS_ADMIN_BITS.tar.gz
 
 export ONOS_INSTALL_DIR="/opt/onos"     # Installation directory on remote
+export ATOMIX_INSTALL_DIR="/opt/atomix" # Installation directory for Atomix
 export OCI="${OCI:-localhost}"          # ONOS Controller Instance
 export ONOS_USER="${ONOS_USER:-sdn}"    # ONOS user on remote system
 export ONOS_GROUP="${ONOS_GROUP:-sdn}"  # ONOS group on remote system