Enable long-running processes in ControllerExecutionBB
[so.git] / common / src / main / java / org / onap / so / client / cds / CDSProcessingClient.java
index fa309b5..6e27b85 100644 (file)
@@ -22,13 +22,13 @@ package org.onap.so.client.cds;
 
 import io.grpc.ManagedChannel;
 import io.grpc.internal.DnsNameResolverProvider;
-import io.grpc.internal.PickFirstLoadBalancerProvider;
 import io.grpc.netty.GrpcSslContexts;
 import io.grpc.netty.NettyChannelBuilder;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 import javax.net.ssl.SSLException;
 import javax.net.ssl.TrustManagerFactory;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
@@ -81,8 +81,7 @@ public class CDSProcessingClient implements AutoCloseable {
                     "No RestProperty.CDSProperties implementation found on classpath, can't create client.");
         }
         NettyChannelBuilder builder = NettyChannelBuilder.forAddress(props.getHost(), props.getPort())
-                .nameResolverFactory(new DnsNameResolverProvider())
-                .loadBalancerFactory(new PickFirstLoadBalancerProvider());
+                .nameResolverFactory(new DnsNameResolverProvider());
         if (props.getUseSSL()) {
             log.info("Configure SSL connection");
             KeyStore ks = KeyStoreLoader.getKeyStore();
@@ -109,6 +108,7 @@ public class CDSProcessingClient implements AutoCloseable {
             log.info("Configure Basic authentication");
             builder.intercept(new BasicAuthClientInterceptor(props)).usePlaintext();
         }
+        builder.keepAliveTime(props.getKeepAlivePingMinutes(), TimeUnit.MINUTES);
         this.channel = builder.build();
         this.handler = new CDSProcessingHandler(listener);
         log.info("CDSProcessingClient started");