Bump grpc-java to 1.18.0

Requires bumping other dependencies in deps.json such as Netty (4.1.32)
and error_prone_annotations. Includes also fixes detected by updated
errorprone.

Change-Id: Ic2bd86931cc89bfb2cf1a4cb11a4586bc8cac608
diff --git a/WORKSPACE b/WORKSPACE
index 8fd6f8d..6d49746 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -41,10 +41,12 @@
 grpc_java_repositories(
     omit_com_google_api_grpc_google_common_protos = True,
     omit_com_google_auth_google_auth_library_credentials = True,
+    omit_com_google_auth_google_auth_library_oauth2_http = True,
     omit_com_google_code_findbugs_jsr305 = True,
     omit_com_google_code_gson = True,
     omit_com_google_errorprone_error_prone_annotations = True,
     omit_com_google_guava = True,
+    omit_com_google_j2objc_j2objc_annotations = True,
     omit_com_google_protobuf = True,
     omit_com_google_protobuf_javalite = True,
     omit_com_google_protobuf_nano_protobuf_javanano = True,
diff --git a/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/store/impl/SimpleVirtualFlowRuleStore.java b/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/store/impl/SimpleVirtualFlowRuleStore.java
index 1fc5cde..ccd2950 100644
--- a/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/store/impl/SimpleVirtualFlowRuleStore.java
+++ b/apps/virtual/app/src/main/java/org/onosproject/incubator/net/virtual/store/impl/SimpleVirtualFlowRuleStore.java
@@ -60,7 +60,7 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
 
 import static org.onosproject.incubator.net.virtual.store.impl.OsgiPropertyConstants.PENDING_FUTURE_TIMEOUT_MINUTES;
 import static org.onosproject.incubator.net.virtual.store.impl.OsgiPropertyConstants.PENDING_FUTURE_TIMEOUT_MINUTES_DEFAULT;
@@ -91,12 +91,12 @@
             flowEntries = new ConcurrentHashMap<>();
 
 
-    private final AtomicInteger localBatchIdGen = new AtomicInteger();
+    private final AtomicLong localBatchIdGen = new AtomicLong();
 
     /** Expiration time after an entry is created that it should be automatically removed. */
     private int pendingFutureTimeoutMinutes = PENDING_FUTURE_TIMEOUT_MINUTES_DEFAULT;
 
-    private Cache<Integer, SettableFuture<CompletedBatchOperation>> pendingFutures =
+    private Cache<Long, SettableFuture<CompletedBatchOperation>> pendingFutures =
             CacheBuilder.newBuilder()
                     .expireAfterWrite(pendingFutureTimeoutMinutes, TimeUnit.MINUTES)
                     .removalListener(new TimeoutFuture())
@@ -119,7 +119,7 @@
         readComponentConfiguration(context);
 
         // Reset Cache and copy all.
-        Cache<Integer, SettableFuture<CompletedBatchOperation>> prevFutures = pendingFutures;
+        Cache<Long, SettableFuture<CompletedBatchOperation>> prevFutures = pendingFutures;
         pendingFutures = CacheBuilder.newBuilder()
                 .expireAfterWrite(pendingFutureTimeoutMinutes, TimeUnit.MINUTES)
                 .removalListener(new TimeoutFuture())
@@ -213,7 +213,7 @@
         }
 
         SettableFuture<CompletedBatchOperation> r = SettableFuture.create();
-        final int futureId = localBatchIdGen.incrementAndGet();
+        final long futureId = localBatchIdGen.incrementAndGet();
 
         pendingFutures.put(futureId, r);
 
@@ -396,9 +396,9 @@
     }
 
     private static final class TimeoutFuture
-            implements RemovalListener<Integer, SettableFuture<CompletedBatchOperation>> {
+            implements RemovalListener<Long, SettableFuture<CompletedBatchOperation>> {
         @Override
-        public void onRemoval(RemovalNotification<Integer,
+        public void onRemoval(RemovalNotification<Long,
                 SettableFuture<CompletedBatchOperation>> notification) {
             // wrapping in ExecutionException to support Future.get
             if (notification.wasEvicted()) {
diff --git a/lib/deps.json b/lib/deps.json
index c21f552..b5455d5 100644
--- a/lib/deps.json
+++ b/lib/deps.json
@@ -215,7 +215,7 @@
     "javax.servlet-api": "mvn:javax.servlet:javax.servlet-api:3.1.0",
     "joda-time": "mvn:joda-time:joda-time:2.9.3",
     "jsch": "mvn:com.jcraft:jsch:0.1.53",
-    "com_google_code_findbugs_jsr305": "mvn:com.google.code.findbugs:jsr305:3.0.1",
+    "com_google_code_findbugs_jsr305": "mvn:com.google.code.findbugs:jsr305:3.0.2",
     "junit": "mvn:junit:junit:4.12",
     "junit-dep": "mvn:junit:junit:4.10",
     "kryo": "mvn:com.esotericsoftware:kryo:4.0.1",
@@ -228,18 +228,18 @@
     "minimal-json": "mvn:com.eclipsesource.minimal-json:minimal-json:0.9.4",
     "minlog": "mvn:com.esotericsoftware:minlog:1.3.0",
     "io_netty_netty": "mvn:io.netty:netty:3.10.5.Final",
-    "io_netty_netty_buffer": "mvn:io.netty:netty-buffer:4.1.27.Final",
-    "io_netty_netty_codec": "mvn:io.netty:netty-codec:4.1.27.Final",
-    "io_netty_netty_common": "mvn:io.netty:netty-common:4.1.27.Final",
-    "io_netty_netty_handler": "mvn:io.netty:netty-handler:4.1.27.Final",
-    "io_netty_netty_handler_proxy": "mvn:io.netty:netty-handler-proxy:4.1.27.Final",
-    "io_netty_netty_transport": "mvn:io.netty:netty-transport:4.1.27.Final",
-    "io_netty_netty_transport_native_unix_common": "mvn:io.netty:netty-transport-native-unix-common:4.1.27.Final",
-    "io_netty_netty_transport-native-epoll": "mvn:io.netty:netty-transport-native-epoll:4.1.27.Final",
-    "io_netty_netty_resolver": "mvn:io.netty:netty-resolver:4.1.27.Final",
-    "io_netty_netty_codec-http2": "mvn:io.netty:netty-codec-http2:4.1.27.Final",
-    "io_netty_netty_codec-http": "mvn:io.netty:netty-codec-http:4.1.27.Final",
-    "io_netty_netty_codec-socks": "mvn:io.netty:netty-codec-socks:4.1.27.Final",
+    "io_netty_netty_buffer": "mvn:io.netty:netty-buffer:4.1.32.Final",
+    "io_netty_netty_codec": "mvn:io.netty:netty-codec:4.1.32.Final",
+    "io_netty_netty_common": "mvn:io.netty:netty-common:4.1.32.Final",
+    "io_netty_netty_handler": "mvn:io.netty:netty-handler:4.1.32.Final",
+    "io_netty_netty_handler_proxy": "mvn:io.netty:netty-handler-proxy:4.1.32.Final",
+    "io_netty_netty_transport": "mvn:io.netty:netty-transport:4.1.32.Final",
+    "io_netty_netty_transport_native_unix_common": "mvn:io.netty:netty-transport-native-unix-common:4.1.32.Final",
+    "io_netty_netty_transport-native-epoll": "mvn:io.netty:netty-transport-native-epoll:4.1.32.Final",
+    "io_netty_netty_resolver": "mvn:io.netty:netty-resolver:4.1.32.Final",
+    "io_netty_netty_codec-http2": "mvn:io.netty:netty-codec-http2:4.1.32.Final",
+    "io_netty_netty_codec-http": "mvn:io.netty:netty-codec-http:4.1.32.Final",
+    "io_netty_netty_codec-socks": "mvn:io.netty:netty-codec-socks:4.1.32.Final",
     "objenesis": "mvn:org.objenesis:objenesis:2.6",
     "openflowj": "mvn:org.onosproject:openflowj:3.2.1.onos",
     "org.osgi.util.function": "mvn:org.osgi:org.osgi.util.function:1.1.0",
@@ -285,11 +285,13 @@
     "engine.io-client": "mvn:io.socket:engine.io-client:jar:0.8.3",
 
     // grpc related jars
-    "com_google_api_grpc_proto_google_common_protos": "mvn:com.google.api.grpc:proto-google-common-protos:1.0.0",
-    "com_google_errorprone_error_prone_annotations": "mvn:com.google.errorprone:error_prone_annotations:2.1.2",
+    "com_google_api_grpc_proto_google_common_protos": "mvn:com.google.api.grpc:proto-google-common-protos:1.12.0",
+    "com_google_errorprone_error_prone_annotations": "mvn:com.google.errorprone:error_prone_annotations:2.3.2",
     "com_google_auth_google_auth_library_credentials": "mvn:com.google.auth:google-auth-library-credentials:0.9.0",
-    "io_opencensus_opencensus_api": "mvn:io.opencensus:opencensus-api:0.12.3",
-    "io_opencensus_opencensus_contrib_grpc_metrics": "mvn:io.opencensus:opencensus-contrib-grpc-metrics:0.12.3",
+    "com_google_auth_google_auth_library_oauth2_http": "mvn:com.google.auth:google-auth-library-oauth2-http:0.9.0",
+    "com_google_j2objc_j2objc_annotations": "mvn:com.google.j2objc:j2objc-annotations:1.1",
+    "io_opencensus_opencensus_api": "mvn:io.opencensus:opencensus-api:0.18.0",
+    "io_opencensus_opencensus_contrib_grpc_metrics": "mvn:io.opencensus:opencensus-contrib-grpc-metrics:0.18.0",
 
     // Openstack4j related jars
     "openstack4j-core": "mvn:org.pacesys:openstack4j-core:3.1.0",
diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java
index b58e9aa..f3e8437 100644
--- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java
+++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/RoleManager.java
@@ -58,7 +58,7 @@
     private final int pendingXidTimeoutSeconds = 60;
 
     // The cache for pending expected RoleReplies keyed on expected XID
-    private Cache<Integer, RoleState> pendingReplies =
+    private Cache<Long, RoleState> pendingReplies =
             CacheBuilder.newBuilder()
                 .expireAfterWrite(pendingXidTimeoutSeconds, TimeUnit.SECONDS)
                 .build();
@@ -79,7 +79,7 @@
      *
      * @param role role to request
      */
-    private int sendNxRoleRequest(RoleState role) throws IOException {
+    private long sendNxRoleRequest(RoleState role) throws IOException {
         // Convert the role enum to the appropriate role to send
         OFNiciraControllerRole roleToSend = OFNiciraControllerRole.ROLE_OTHER;
         switch (role) {
@@ -104,7 +104,7 @@
         return xid;
     }
 
-    private int sendOF13RoleRequest(RoleState role) throws IOException {
+    private long sendOF13RoleRequest(RoleState role) throws IOException {
         // Convert the role enum to the appropriate role to send
         OFControllerRole roleToSend = OFControllerRole.ROLE_NOCHANGE;
         switch (role) {
diff --git a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
index 9ffa26e..6d08bcb 100644
--- a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
+++ b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
@@ -24,6 +24,7 @@
 import com.google.common.collect.Sets;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 import io.netty.channel.Channel;
 import org.onlab.packet.IpAddress;
@@ -1345,7 +1346,7 @@
 
             ListenableFuture<JsonNode> input = getSchema(dbNames);
             if (input != null) {
-                return Futures.transform(input, rowFunction);
+                return futureTransform(input, rowFunction);
             }
             return null;
         } else {
@@ -1369,7 +1370,7 @@
                 }
                 return updates;
             };
-            return Futures.transform(monitor(dbSchema, id), rowFunction);
+            return futureTransform(monitor(dbSchema, id), rowFunction);
         }
         return null;
     }
@@ -1395,7 +1396,7 @@
                 }
                 return null;
             });
-            return Futures.transform(transact(dbSchema, operations), rowFunction);
+            return futureTransform(transact(dbSchema, operations), rowFunction);
         }
         return null;
     }
@@ -1981,4 +1982,12 @@
     public Optional<DeviceCpuStats> getDeviceCpuUsage() {
         return Optional.empty();
     }
+
+    private <I, O> ListenableFuture<O> futureTransform(
+            ListenableFuture<I> input, Function<? super I, ? extends O> function) {
+        // Wrapper around deprecated Futures.transform() method. As per Guava
+        // recommendation, passing MoreExecutors.directExecutor() for identical
+        // behavior.
+        return Futures.transform(input, function, MoreExecutors.directExecutor());
+    }
 }
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
index 3dbd378..c7599f1 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 Tue, 29 Jan 2019 22:50:52 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Wed, 30 Jan 2019 02:12:24 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 load("//tools/build/bazel:variables.bzl", "ONOS_GROUP_ID", "ONOS_VERSION")
@@ -655,9 +655,9 @@
     if "com_google_code_findbugs_jsr305" not in native.existing_rules():
         java_import_external(
             name = "com_google_code_findbugs_jsr305",
-            jar_sha256 = "c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd",
+            jar_sha256 = "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar"],        )
     if "junit" not in native.existing_rules():
         java_import_external(
             name = "junit",
@@ -733,75 +733,75 @@
     if "io_netty_netty_buffer" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_buffer",
-            jar_sha256 = "bd086ac6143dc5a8d8c515af2bd0d4cbc5170dd82bf8f6687f85b9be1e0c5522",
+            jar_sha256 = "8ac0e30048636bd79ae205c4f9f5d7544290abd3a7ed39d8b6d97dfe3795afc1",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.27.Final/netty-buffer-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.32.Final/netty-buffer-4.1.32.Final.jar"],        )
     if "io_netty_netty_codec" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_codec",
-            jar_sha256 = "5b23aef8f56d10f6b4a25fd9fb0ac45a2b284ee0e1a709db167298c945e1d1fa",
+            jar_sha256 = "dbd6cea7d7bf5a2604e87337cb67c9468730d599be56511ed0979aacb309f879",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec/4.1.27.Final/netty-codec-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec/4.1.32.Final/netty-codec-4.1.32.Final.jar"],        )
     if "io_netty_netty_common" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_common",
-            jar_sha256 = "18353e652194f5e715a851a6081795b656b8a9643f30964b14fb24cd812e3408",
+            jar_sha256 = "cc993e660f8f8e3b033f1d25a9e2f70151666bdf878d460a6508cb23daa696dc",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-common/4.1.27.Final/netty-common-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-common/4.1.32.Final/netty-common-4.1.32.Final.jar"],        )
     if "io_netty_netty_handler" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_handler",
-            jar_sha256 = "4de8af2a851735d09fd8e7a67146241df10b1547cfa8767e98405f7fa9ddc237",
+            jar_sha256 = "07d9756e48b5f6edc756e33e8b848fb27ff0b1ae087dab5addca6c6bf17cac2d",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-handler/4.1.27.Final/netty-handler-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-handler/4.1.32.Final/netty-handler-4.1.32.Final.jar"],        )
     if "io_netty_netty_handler_proxy" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_handler_proxy",
-            jar_sha256 = "84b00dd1cd25a99b88bd598577825b4be9ad592e2d78b08bd703e7e999fe3498",
+            jar_sha256 = "10d1081ed114bb0e76ebbb5331b66a6c3189cbdefdba232733fc9ca308a6ea34",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.27.Final/netty-handler-proxy-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.32.Final/netty-handler-proxy-4.1.32.Final.jar"],        )
     if "io_netty_netty_transport" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_transport",
-            jar_sha256 = "f5bbd26773f5a9b0a1947e6688a4e13566ee04bb33715904f17e9b99e567221b",
+            jar_sha256 = "175bae0d227d7932c0c965c983efbb3cf01f39abe934f5c4071d0319784715fb",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport/4.1.27.Final/netty-transport-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport/4.1.32.Final/netty-transport-4.1.32.Final.jar"],        )
     if "io_netty_netty_transport_native_unix_common" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_transport_native_unix_common",
-            jar_sha256 = "b4ba0079e5bee0a71120ac1311951a39901bcf2bdb37b7b38313dbd5cc0066ae",
+            jar_sha256 = "5c9d5b3b7ca6bcd8f7a40b1f93c96cf8a7fd2238d9d633e5f2b3f0577518074e",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.27.Final/netty-transport-native-unix-common-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.32.Final/netty-transport-native-unix-common-4.1.32.Final.jar"],        )
     if "io_netty_netty_transport_native_epoll" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_transport_native_epoll",
-            jar_sha256 = "14d9319cc3906cf274896a9df385fa433a2ac34cbf841183b8756ad9690fa820",
+            jar_sha256 = "4702dfaaf295883eb342550d7b52e4e0491bbae6dc3c81129904c5342ad7d8b3",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.27.Final/netty-transport-native-epoll-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.32.Final/netty-transport-native-epoll-4.1.32.Final.jar"],        )
     if "io_netty_netty_resolver" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_resolver",
-            jar_sha256 = "db45223f3b21b48cf27ae34b6fcf70428bf28b14350825c8ef226737ca8f682a",
+            jar_sha256 = "9b4a19982047a95ea4791a7ad7ad385c7a08c2ac75f0a3509cc213cb32a726ae",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.27.Final/netty-resolver-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.32.Final/netty-resolver-4.1.32.Final.jar"],        )
     if "io_netty_netty_codec_http2" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_codec_http2",
-            jar_sha256 = "7d10b4a6d11e277f2797812f2025159bf035a9b258c9446cf8f1658b08373dbe",
+            jar_sha256 = "4d4c6cfc1f19efb969b9b0ae6cc977462d202867f7dcfee6e9069977e623a2f5",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.27.Final/netty-codec-http2-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.32.Final/netty-codec-http2-4.1.32.Final.jar"],        )
     if "io_netty_netty_codec_http" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_codec_http",
-            jar_sha256 = "83b843684f96386f4c881067cb3489639d0969c0e770b41b16866aa56707244a",
+            jar_sha256 = "db2c22744f6a4950d1817e4e1a26692e53052c5d54abe6cceecd7df33f4eaac3",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.27.Final/netty-codec-http-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.32.Final/netty-codec-http-4.1.32.Final.jar"],        )
     if "io_netty_netty_codec_socks" not in native.existing_rules():
         java_import_external(
             name = "io_netty_netty_codec_socks",
-            jar_sha256 = "c11264b32b5298e13461327499dca26e2b2aa75159d3be3017bd4eb125b58c05",
+            jar_sha256 = "fe2f2e97d6c65dc280623dcfd24337d8a5c7377049c120842f2c59fb83d7408a",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.27.Final/netty-codec-socks-4.1.27.Final.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.32.Final/netty-codec-socks-4.1.32.Final.jar"],        )
     if "objenesis" not in native.existing_rules():
         java_import_external(
             name = "objenesis",
@@ -1063,33 +1063,45 @@
     if "com_google_api_grpc_proto_google_common_protos" not in native.existing_rules():
         java_import_external(
             name = "com_google_api_grpc_proto_google_common_protos",
-            jar_sha256 = "cfe1da4c0e82820c32a83c4bf25b42f4d3b7113177321c437a9fff3c42e1f4c9",
+            jar_sha256 = "bd60cd7a423b00fb824c27bdd0293aaf4781be1daba6ed256311103fb4b84108",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.0.0/proto-google-common-protos-1.0.0.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar"],        )
     if "com_google_errorprone_error_prone_annotations" not in native.existing_rules():
         java_import_external(
             name = "com_google_errorprone_error_prone_annotations",
-            jar_sha256 = "de3c873b5dc06060f7a2a4d9b872a3f4dc1955c18095ef9702d13477e437782a",
+            jar_sha256 = "357cd6cfb067c969226c442451502aee13800a24e950fdfde77bcdb4565a668d",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.1.2/error_prone_annotations-2.1.2.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.2/error_prone_annotations-2.3.2.jar"],        )
     if "com_google_auth_google_auth_library_credentials" not in native.existing_rules():
         java_import_external(
             name = "com_google_auth_google_auth_library_credentials",
             jar_sha256 = "ac9efdd6a930e4df906fa278576fa825d979f74315f2faf5c91fe7e6aabb2788",
             licenses = ["notice"],
             jar_urls = ["http://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.9.0/google-auth-library-credentials-0.9.0.jar"],        )
+    if "com_google_auth_google_auth_library_oauth2_http" not in native.existing_rules():
+        java_import_external(
+            name = "com_google_auth_google_auth_library_oauth2_http",
+            jar_sha256 = "e55d9722102cc1245c8c43d69acd49d3c9bbfcc1bcf722e971425506b970097e",
+            licenses = ["notice"],
+            jar_urls = ["http://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.9.0/google-auth-library-oauth2-http-0.9.0.jar"],        )
+    if "com_google_j2objc_j2objc_annotations" not in native.existing_rules():
+        java_import_external(
+            name = "com_google_j2objc_j2objc_annotations",
+            jar_sha256 = "2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6",
+            licenses = ["notice"],
+            jar_urls = ["http://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar"],        )
     if "io_opencensus_opencensus_api" not in native.existing_rules():
         java_import_external(
             name = "io_opencensus_opencensus_api",
-            jar_sha256 = "8c1de62cbdaf74b01b969d1ed46c110bca1a5dd147c50a8ab8c5112f42ced802",
+            jar_sha256 = "45421ffe95271aba94686ed8d4c5070fe77dc2ff0b922688097f0dd40f1931b1",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.12.3/opencensus-api-0.12.3.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.18.0/opencensus-api-0.18.0.jar"],        )
     if "io_opencensus_opencensus_contrib_grpc_metrics" not in native.existing_rules():
         java_import_external(
             name = "io_opencensus_opencensus_contrib_grpc_metrics",
-            jar_sha256 = "632c1e1463db471b580d35bc4be868facbfbf0a19aa6db4057215d4a68471746",
+            jar_sha256 = "1f90585e777b1e0493dbf22e678303369a8d5b7c750b4eda070a34ca99271607",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.12.3/opencensus-contrib-grpc-metrics-0.12.3.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.18.0/opencensus-contrib-grpc-metrics-0.18.0.jar"],        )
     if "openstack4j_core" not in native.existing_rules():
         java_import_external(
             name = "openstack4j_core",
@@ -1353,7 +1365,7 @@
 artifact_map["@javax_servlet_api//:javax_servlet_api"] = "mvn:javax.servlet:javax.servlet-api:jar:3.1.0"
 artifact_map["@joda_time//:joda_time"] = "mvn:joda-time:joda-time:jar:2.9.3"
 artifact_map["@jsch//:jsch"] = "mvn:com.jcraft:jsch:jar:NON-OSGI:0.1.53"
-artifact_map["@com_google_code_findbugs_jsr305//:com_google_code_findbugs_jsr305"] = "mvn:com.google.code.findbugs:jsr305:jar:3.0.1"
+artifact_map["@com_google_code_findbugs_jsr305//:com_google_code_findbugs_jsr305"] = "mvn:com.google.code.findbugs:jsr305:jar:3.0.2"
 artifact_map["@junit//:junit"] = "mvn:junit:junit:jar:NON-OSGI:4.12"
 artifact_map["@junit_dep//:junit_dep"] = "mvn:junit:junit:jar:NON-OSGI:4.10"
 artifact_map["@kryo//:kryo"] = "mvn:com.esotericsoftware:kryo:jar:4.0.1"
@@ -1366,18 +1378,18 @@
 artifact_map["@minimal_json//:minimal_json"] = "mvn:com.eclipsesource.minimal-json:minimal-json:jar:0.9.4"
 artifact_map["@minlog//:minlog"] = "mvn:com.esotericsoftware:minlog:jar:1.3.0"
 artifact_map["@io_netty_netty//:io_netty_netty"] = "mvn:io.netty:netty:jar:3.10.5.Final"
-artifact_map["@io_netty_netty_buffer//:io_netty_netty_buffer"] = "mvn:io.netty:netty-buffer:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_codec//:io_netty_netty_codec"] = "mvn:io.netty:netty-codec:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_common//:io_netty_netty_common"] = "mvn:io.netty:netty-common:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_handler//:io_netty_netty_handler"] = "mvn:io.netty:netty-handler:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_handler_proxy//:io_netty_netty_handler_proxy"] = "mvn:io.netty:netty-handler-proxy:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_transport//:io_netty_netty_transport"] = "mvn:io.netty:netty-transport:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_transport_native_unix_common//:io_netty_netty_transport_native_unix_common"] = "mvn:io.netty:netty-transport-native-unix-common:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_transport_native_epoll//:io_netty_netty_transport_native_epoll"] = "mvn:io.netty:netty-transport-native-epoll:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_resolver//:io_netty_netty_resolver"] = "mvn:io.netty:netty-resolver:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_codec_http2//:io_netty_netty_codec_http2"] = "mvn:io.netty:netty-codec-http2:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_codec_http//:io_netty_netty_codec_http"] = "mvn:io.netty:netty-codec-http:jar:4.1.27.Final"
-artifact_map["@io_netty_netty_codec_socks//:io_netty_netty_codec_socks"] = "mvn:io.netty:netty-codec-socks:jar:4.1.27.Final"
+artifact_map["@io_netty_netty_buffer//:io_netty_netty_buffer"] = "mvn:io.netty:netty-buffer:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_codec//:io_netty_netty_codec"] = "mvn:io.netty:netty-codec:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_common//:io_netty_netty_common"] = "mvn:io.netty:netty-common:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_handler//:io_netty_netty_handler"] = "mvn:io.netty:netty-handler:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_handler_proxy//:io_netty_netty_handler_proxy"] = "mvn:io.netty:netty-handler-proxy:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_transport//:io_netty_netty_transport"] = "mvn:io.netty:netty-transport:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_transport_native_unix_common//:io_netty_netty_transport_native_unix_common"] = "mvn:io.netty:netty-transport-native-unix-common:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_transport_native_epoll//:io_netty_netty_transport_native_epoll"] = "mvn:io.netty:netty-transport-native-epoll:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_resolver//:io_netty_netty_resolver"] = "mvn:io.netty:netty-resolver:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_codec_http2//:io_netty_netty_codec_http2"] = "mvn:io.netty:netty-codec-http2:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_codec_http//:io_netty_netty_codec_http"] = "mvn:io.netty:netty-codec-http:jar:4.1.32.Final"
+artifact_map["@io_netty_netty_codec_socks//:io_netty_netty_codec_socks"] = "mvn:io.netty:netty-codec-socks:jar:4.1.32.Final"
 artifact_map["@objenesis//:objenesis"] = "mvn:org.objenesis:objenesis:jar:2.6"
 artifact_map["@openflowj//:openflowj"] = "mvn:org.onosproject:openflowj:jar:3.2.1.onos"
 artifact_map["@org_osgi_util_function//:org_osgi_util_function"] = "mvn:org.osgi:org.osgi.util.function:jar:1.1.0"
@@ -1421,11 +1433,13 @@
 artifact_map["@io_socket_client//:io_socket_client"] = "mvn:io.socket:socket.io-client:jar:NON-OSGI:0.8.3"
 artifact_map["@json//:json"] = "mvn:org.json:json:jar:NON-OSGI:20090211"
 artifact_map["@engine_io_client//:engine_io_client"] = "mvn:io.socket:engine.io-client:jar:NON-OSGI:0.8.3"
-artifact_map["@com_google_api_grpc_proto_google_common_protos//:com_google_api_grpc_proto_google_common_protos"] = "mvn:com.google.api.grpc:proto-google-common-protos:jar:NON-OSGI:1.0.0"
-artifact_map["@com_google_errorprone_error_prone_annotations//:com_google_errorprone_error_prone_annotations"] = "mvn:com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.1.2"
+artifact_map["@com_google_api_grpc_proto_google_common_protos//:com_google_api_grpc_proto_google_common_protos"] = "mvn:com.google.api.grpc:proto-google-common-protos:jar:NON-OSGI:1.12.0"
+artifact_map["@com_google_errorprone_error_prone_annotations//:com_google_errorprone_error_prone_annotations"] = "mvn:com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.3.2"
 artifact_map["@com_google_auth_google_auth_library_credentials//:com_google_auth_google_auth_library_credentials"] = "mvn:com.google.auth:google-auth-library-credentials:jar:NON-OSGI:0.9.0"
-artifact_map["@io_opencensus_opencensus_api//:io_opencensus_opencensus_api"] = "mvn:io.opencensus:opencensus-api:jar:NON-OSGI:0.12.3"
-artifact_map["@io_opencensus_opencensus_contrib_grpc_metrics//:io_opencensus_opencensus_contrib_grpc_metrics"] = "mvn:io.opencensus:opencensus-contrib-grpc-metrics:jar:NON-OSGI:0.12.3"
+artifact_map["@com_google_auth_google_auth_library_oauth2_http//:com_google_auth_google_auth_library_oauth2_http"] = "mvn:com.google.auth:google-auth-library-oauth2-http:jar:NON-OSGI:0.9.0"
+artifact_map["@com_google_j2objc_j2objc_annotations//:com_google_j2objc_j2objc_annotations"] = "mvn:com.google.j2objc:j2objc-annotations:jar:NON-OSGI:1.1"
+artifact_map["@io_opencensus_opencensus_api//:io_opencensus_opencensus_api"] = "mvn:io.opencensus:opencensus-api:jar:NON-OSGI:0.18.0"
+artifact_map["@io_opencensus_opencensus_contrib_grpc_metrics//:io_opencensus_opencensus_contrib_grpc_metrics"] = "mvn:io.opencensus:opencensus-contrib-grpc-metrics:jar:NON-OSGI:0.18.0"
 artifact_map["@openstack4j_core//:openstack4j_core"] = "mvn:org.pacesys:openstack4j-core:jar:3.1.0"
 artifact_map["@openstack4j_http_connector//:openstack4j_http_connector"] = "mvn:org.pacesys.openstack4j.connectors:openstack4j-http-connector:jar:3.1.0"
 artifact_map["@openstack4j_httpclient//:openstack4j_httpclient"] = "mvn:org.pacesys.openstack4j.connectors:openstack4j-httpclient:jar:3.1.0"
diff --git a/tools/build/bazel/grpc_workspace.bzl b/tools/build/bazel/grpc_workspace.bzl
index a14b1a5..bb71557 100644
--- a/tools/build/bazel/grpc_workspace.bzl
+++ b/tools/build/bazel/grpc_workspace.bzl
@@ -1,13 +1,13 @@
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
-GRPC_VER = "1.14.0"
-GRPC_SHA = "d216c29f7e0eb4dce0192abbaaee9baf046a373805b6f45be3e5056ab0a616db"
+GRPC_VER = "1.18.0"
+GRPC_SHA = "979cd1873c0f3aefa25f3d20336c023ce34471203bf2d954ad9e3158fc55c16b"
 
 GAPIS_COMMIT = "37cc0e5acae50ee91f00827a7010c3b07dfa5311"
 GAPIS_SHA = "17d023f48ea290f25edaf25a967973b5a42ce6d71b1570862f302d95aa8b9f77"
 
 def generate_grpc():
-    # Patched grpc-java that fixes the OSGi split problem.
+    # grpc-java fork that fixes the OSGi split problem.
     http_archive(
         name = "io_grpc_grpc_java",
         urls = ["https://github.com/opennetworkinglab/grpc-java/archive/v%s-patched.zip" % GRPC_VER],