Browse Source

Force channel to request connection in connect()

zhiru 5 years ago
parent
commit
bca364494c

+ 50 - 1
milvus-sdk-java.iml

@@ -1,2 +1,51 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4" />
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/grpc-java" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/java" isTestSource="false" generated="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.grpc:grpc-netty-shaded:1.24.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.grpc:grpc-core:1.24.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.android:annotations:4.1.1.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.perfmark:perfmark-api:0.17.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.24.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.24.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.24.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.9.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:26.0-android" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.24.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.24.0" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: io.grpc:grpc-testing:1.24.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
+  </component>
+</module>

+ 2 - 2
pom.xml

@@ -15,8 +15,8 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <grpc.version>1.24.0</grpc.version><!-- CURRENT_GRPC_VERSION -->
-        <protobuf.version>3.9.0</protobuf.version>
-        <protoc.version>3.9.0</protoc.version>
+        <protobuf.version>3.10.0</protobuf.version>
+        <protoc.version>3.10.0</protoc.version>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
     </properties>

+ 10 - 2
src/main/java/io/milvus/client/MilvusGrpcClient.java

@@ -1,7 +1,6 @@
 package io.milvus.client;
 
 import io.grpc.*;
-import io.milvus.client.grpc.Command;
 
 import javax.annotation.Nonnull;
 import java.text.SimpleDateFormat;
@@ -41,8 +40,17 @@ public class MilvusGrpcClient implements MilvusClient {
                     .usePlaintext()
                     .build();
 
-            ConnectivityState connectivityState = channel.getState(true);
+            ConnectivityState connectivityState;
+            connectivityState = channel.getState(true);
+
+            logInfo("Waiting to connect...");
+            TimeUnit.MILLISECONDS.sleep(500);
+
             connectivityState = channel.getState(false);
+            if (connectivityState != ConnectivityState.READY) {
+                logSevere("Connect failed! {0}", connectParam.toString());
+                return new Response(Response.Status.CONNECT_FAILED);
+            }
 
             blockingStub = io.milvus.client.grpc.MilvusServiceGrpc.newBlockingStub(channel);
 

+ 0 - 13
src/test/java/io/milvus/client/MilvusGrpcClientTest.java

@@ -14,11 +14,6 @@ import static org.junit.jupiter.api.Assertions.*;
 
 class MilvusGrpcClientTest {
 
-    @Rule
-//    public final GrpcCleanupRule grpcCleanup = new GrpcCleanupRule();
-//
-//    private final MutableHandlerRegistry serviceRegistry = new MutableHandlerRegistry();
-
     private MilvusGrpcClient client;
 
     private RandomStringGenerator generator;
@@ -30,14 +25,6 @@ class MilvusGrpcClientTest {
 
     @org.junit.jupiter.api.BeforeEach
     void setUp() throws Exception {
-//TODO: dummy service
-
-//        // Generate a unique in-process server name.
-//        String serverName = InProcessServerBuilder.generateName();
-//        // Use a mutable service registry for later registering the service impl for each test case.
-//        grpcCleanup.register(InProcessServerBuilder.forName(serverName)
-//                .fallbackHandlerRegistry(serviceRegistry).directExecutor().build().start());
-//        client = new MilvusGrpcClient(InProcessChannelBuilder.forName(serverName).directExecutor());
 
         client = new MilvusGrpcClient();
         ConnectParam connectParam = new ConnectParam.Builder()