Update ProtoBuf 3 & gRPC

- Protocol Buffers: 3.0.0
- gRPC: 1.0.0-pre2

Change-Id: Ic80d3f660d4a0aa37a99d4e6d4dc45e0b70b073b
diff --git a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceProvider.java b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceProvider.java
index 5934939..9fe33f7 100644
--- a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceProvider.java
+++ b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceProvider.java
@@ -36,6 +36,7 @@
 import org.slf4j.LoggerFactory;
 
 import io.grpc.ManagedChannel;
+import io.grpc.internal.DnsNameResolverProvider;
 import io.grpc.netty.NegotiationType;
 import io.grpc.netty.NettyChannelBuilder;
 
@@ -62,7 +63,6 @@
 
     private RemoteServiceContextProviderService providerService;
 
-
     @Activate
     protected void activate() {
         providerService = rpcRegistry.register(this);
@@ -116,6 +116,10 @@
         }
         return NettyChannelBuilder.forAddress(uri.getHost(), port)
                 .negotiationType(NegotiationType.PLAINTEXT)
+                // TODO Not ideal fix, gRPC discovers name resolvers
+                // in the class path, but OSGi was preventing it.
+                // Manually specifying the default dns resolver for now.
+                .nameResolverFactory(new DnsNameResolverProvider())
                 .build();
     }
 
diff --git a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java
index 260a709..2604d09 100644
--- a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java
+++ b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java
@@ -39,8 +39,7 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.onlab.util.Tools;
-import org.onosproject.grpc.net.device.DeviceProviderRegistryRpcGrpc;
-import org.onosproject.grpc.net.device.DeviceProviderRegistryRpcGrpc.DeviceProviderRegistryRpc;
+import org.onosproject.grpc.net.device.DeviceProviderRegistryRpcGrpc.DeviceProviderRegistryRpcImplBase;
 import org.onosproject.grpc.net.device.DeviceService.DeviceConnected;
 import org.onosproject.grpc.net.device.DeviceService.DeviceDisconnected;
 import org.onosproject.grpc.net.device.DeviceService.DeviceProviderMsg;
@@ -51,7 +50,6 @@
 import org.onosproject.grpc.net.device.DeviceService.RegisterProvider;
 import org.onosproject.grpc.net.device.DeviceService.UpdatePortStatistics;
 import org.onosproject.grpc.net.device.DeviceService.UpdatePorts;
-import org.onosproject.grpc.net.link.LinkProviderServiceRpcGrpc;
 import org.onosproject.incubator.protobuf.net.ProtobufUtils;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.MastershipRole;
@@ -123,8 +121,8 @@
         log.debug("Server starting on {}", listenPort);
         try {
             server  = NettyServerBuilder.forPort(listenPort)
-                    .addService(DeviceProviderRegistryRpcGrpc.bindService(new DeviceProviderRegistryServerProxy()))
-                    .addService(LinkProviderServiceRpcGrpc.bindService(new LinkProviderServiceServerProxy(this)))
+                    .addService(new DeviceProviderRegistryServerProxy())
+                    .addService(new LinkProviderServiceServerProxy(this))
                     .build().start();
         } catch (IOException e) {
             log.error("Failed to start gRPC server", e);
@@ -202,7 +200,7 @@
     /**
      * Relays DeviceProviderRegistry calls from RPC client.
      */
-    class DeviceProviderRegistryServerProxy implements DeviceProviderRegistryRpc {
+    class DeviceProviderRegistryServerProxy extends DeviceProviderRegistryRpcImplBase {
 
         @Override
         public StreamObserver<DeviceProviderServiceMsg> register(StreamObserver<DeviceProviderMsg> toDeviceProvider) {
diff --git a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderRegistryClientProxy.java b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderRegistryClientProxy.java
index 5df5a3d..abadf76 100644
--- a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderRegistryClientProxy.java
+++ b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderRegistryClientProxy.java
@@ -22,7 +22,7 @@
 import org.onosproject.net.link.LinkProviderService;
 import org.onosproject.net.provider.AbstractProviderRegistry;
 
-import com.google.api.client.repackaged.com.google.common.annotations.Beta;
+import com.google.common.annotations.Beta;
 
 import io.grpc.Channel;
 
diff --git a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceClientProxy.java b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceClientProxy.java
index b576033..0f43db2 100644
--- a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceClientProxy.java
+++ b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceClientProxy.java
@@ -38,7 +38,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.api.client.repackaged.com.google.common.annotations.Beta;
+import com.google.common.annotations.Beta;
 import com.google.common.util.concurrent.ListenableFuture;
 
 import io.grpc.Channel;
diff --git a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceServerProxy.java b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceServerProxy.java
index 435c650..26210f6 100644
--- a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceServerProxy.java
+++ b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/LinkProviderServiceServerProxy.java
@@ -27,7 +27,7 @@
 import org.apache.commons.lang3.tuple.Pair;
 import org.onosproject.grpc.net.Link.ConnectPoint.ElementIdCase;
 import org.onosproject.grpc.net.Link.LinkType;
-import org.onosproject.grpc.net.link.LinkProviderServiceRpcGrpc.LinkProviderServiceRpc;
+import org.onosproject.grpc.net.link.LinkProviderServiceRpcGrpc.LinkProviderServiceRpcImplBase;
 import org.onosproject.grpc.net.link.LinkService.LinkDetectedMsg;
 import org.onosproject.grpc.net.link.LinkService.LinkVanishedMsg;
 import org.onosproject.grpc.net.link.LinkService.Void;
@@ -44,10 +44,10 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.api.client.repackaged.com.google.common.annotations.Beta;
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.RemovalNotification;
+import com.google.common.annotations.Beta;
 
 import io.grpc.stub.StreamObserver;
 
@@ -57,7 +57,7 @@
  */
 @Beta
 final class LinkProviderServiceServerProxy
-        implements LinkProviderServiceRpc {
+        extends LinkProviderServiceRpcImplBase {
 
     /**
      * Silence time in seconds, until link gets treated as vanished.
diff --git a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/StubLinkProvider.java b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/StubLinkProvider.java
index 460b779..929881c 100644
--- a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/StubLinkProvider.java
+++ b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/StubLinkProvider.java
@@ -19,7 +19,7 @@
 import org.onosproject.net.provider.AbstractProvider;
 import org.onosproject.net.provider.ProviderId;
 
-import com.google.api.client.repackaged.com.google.common.annotations.Beta;
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 
 /**