.SimpleForwardingClientCall<ReqT, RespT>(channel.newCall(method, callOptions)) {
override fun start(responseListener: Listener<RespT>, headers: Metadata) {
- val listener = object : ForwardingClientCallListener.SimpleForwardingClientCallListener<RespT>(responseListener) {
- override fun onMessage(message: RespT) {
- loggingService.grpcInvoking(headers)
- super.onMessage(message)
+ val listener =
+ object : ForwardingClientCallListener.SimpleForwardingClientCallListener<RespT>(responseListener) {
+ override fun onMessage(message: RespT) {
+ loggingService.grpcInvoking(headers)
+ super.onMessage(message)
+ }
}
- }
super.start(listener, headers)
}
}
requestHeaders: Metadata,
next: ServerCallHandler<ReqT, RespT>
):
- ServerCall.Listener<ReqT> {
+ ServerCall.Listener<ReqT> {
val forwardingServerCall = object : ForwardingServerCall.SimpleForwardingServerCall<ReqT, RespT>(call) {
override fun sendHeaders(responseHeaders: Metadata) {
import io.grpc.ManagedChannel
import io.grpc.internal.DnsNameResolverProvider
-import io.grpc.internal.PickFirstLoadBalancerProvider
import io.grpc.netty.NettyChannelBuilder
import org.onap.ccsdk.cds.blueprintsprocessor.grpc.BasicAuthGrpcClientProperties
val managedChannel = NettyChannelBuilder
.forAddress(basicAuthGrpcClientProperties.host, basicAuthGrpcClientProperties.port)
.nameResolverFactory(DnsNameResolverProvider())
- .loadBalancerFactory(PickFirstLoadBalancerProvider())
// .intercept(BasicAuthClientInterceptor(basicAuthGrpcClientProperties)).usePlaintext()
.build()
return managedChannel
}
private fun blueprintGrpcServerService(grpcServerProperties: GrpcServerProperties):
- BluePrintGrpcServerService {
+ BluePrintGrpcServerService {
when (grpcServerProperties) {
is TLSAuthGrpcServerProperties -> {
return TLSAuthGrpcServerService(grpcServerProperties)
}
fun blueprintGrpcClientService(grpcClientProperties: GrpcClientProperties):
- BluePrintGrpcClientService {
+ BluePrintGrpcClientService {
return when (grpcClientProperties) {
is TokenAuthGrpcClientProperties -> {
TokenAuthGrpcClientService(grpcClientProperties)
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 io.netty.handler.ssl.SslContext
BluePrintGrpcClientService {
override suspend fun channel(): ManagedChannel {
+
+ val target =
+ if (tlsAuthGrpcClientProperties.port == -1) tlsAuthGrpcClientProperties.host
+ else "${tlsAuthGrpcClientProperties.host}:${tlsAuthGrpcClientProperties.port}"
+
return NettyChannelBuilder
- .forAddress(tlsAuthGrpcClientProperties.host, tlsAuthGrpcClientProperties.port)
+ .forTarget(target)
.nameResolverFactory(DnsNameResolverProvider())
- .loadBalancerFactory(PickFirstLoadBalancerProvider())
.intercept(GrpcClientLoggingInterceptor())
.sslContext(sslContext())
.build()
import io.grpc.Metadata
import io.grpc.MethodDescriptor
import io.grpc.internal.DnsNameResolverProvider
-import io.grpc.internal.PickFirstLoadBalancerProvider
import io.grpc.netty.NettyChannelBuilder
import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TokenAuthGrpcClientProperties
import org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor.GrpcClientLoggingInterceptor
BluePrintGrpcClientService {
override suspend fun channel(): ManagedChannel {
+ val target =
+ if (tokenAuthGrpcClientProperties.port == -1) tokenAuthGrpcClientProperties.host
+ else "${tokenAuthGrpcClientProperties.host}:${tokenAuthGrpcClientProperties.port}"
+
val managedChannel = NettyChannelBuilder
- .forAddress(tokenAuthGrpcClientProperties.host, tokenAuthGrpcClientProperties.port)
+ .forTarget(target)
.nameResolverFactory(DnsNameResolverProvider())
- .loadBalancerFactory(PickFirstLoadBalancerProvider())
.intercept(GrpcClientLoggingInterceptor())
.intercept(TokenAuthClientInterceptor(tokenAuthGrpcClientProperties)).usePlaintext().build()
return managedChannel
}
}
-class TokenAuthClientInterceptor(private val tokenAuthGrpcClientProperties: TokenAuthGrpcClientProperties) : ClientInterceptor {
+class TokenAuthClientInterceptor(private val tokenAuthGrpcClientProperties: TokenAuthGrpcClientProperties) :
+ ClientInterceptor {
override fun <ReqT, RespT> interceptCall(
method: MethodDescriptor<ReqT, RespT>,
val properties = bluePrintGrpcLibPropertyService.grpcClientProperties(
"blueprintsprocessor.grpcclient.sample"
)
- as BasicAuthGrpcClientProperties
+ as BasicAuthGrpcClientProperties
assertNotNull(properties, "failed to create property bean")
assertNotNull(
- properties.host, "failed to get host property" +
- " in property bean"
+ properties.host, "failed to get host property in property bean"
)
assertNotNull(
- properties.port, "failed to get host property" +
- " in property bean"
+ properties.port, "failed to get host property in property bean"
)
assertNotNull(
- properties.username, "failed to get host pro" +
- "perty in property bean"
+ properties.username, "failed to get host property in property bean"
)
assertNotNull(
- properties.password, "failed to get host pr" +
- "operty in property bean"
+ properties.password, "failed to get host property in property bean"
)
}
@Test
fun testGrpcClientPropertiesWithJson() {
val json: String = "{\n" +
- " \"type\" : \"token-auth\",\n" +
- " \"host\" : \"127.0.0.1\",\n" +
- " \"port\" : \"50505\"\n" +
- "}"
+ " \"type\" : \"token-auth\",\n" +
+ " \"host\" : \"127.0.0.1\",\n" +
+ " \"port\" : \"50505\"\n" +
+ "}"
val mapper = ObjectMapper()
val actualObj: JsonNode = mapper.readTree(json)
val properties = bluePrintGrpcLibPropertyService.grpcClientProperties(
@Test
fun testGrpcClientServiceWithJson() {
val json: String = "{\n" +
- " \"type\" : \"basic-auth\",\n" +
- " \"host\" : \"127.0.0.1\",\n" +
- " \"port\" : \"50505\",\n" +
- " \"username\" : \"sampleuser\",\n" +
- " \"password\" : \"samplepwd\"\n" +
- "}"
+ " \"type\" : \"basic-auth\",\n" +
+ " \"host\" : \"127.0.0.1\",\n" +
+ " \"port\" : \"50505\",\n" +
+ " \"username\" : \"sampleuser\",\n" +
+ " \"password\" : \"samplepwd\"\n" +
+ "}"
val mapper = ObjectMapper()
val actualObj: JsonNode = mapper.readTree(json)
val svc = bluePrintGrpcLibPropertyService
override fun onNext(executionServiceInput: ExecutionServiceInput) {
log.info(
"Received requestId(${executionServiceInput.commonHeader.requestId}) " +
- "subRequestId(${executionServiceInput.commonHeader.subRequestId})"
+ "subRequestId(${executionServiceInput.commonHeader.subRequestId})"
)
responseObserver.onNext(buildResponse(executionServiceInput))
responseObserver.onCompleted()
val streamingRemoteExecutionService = StreamingRemoteExecutionServiceImpl(bluePrintGrpcLibPropertyService)
val spyStreamingRemoteExecutionService = spyk(streamingRemoteExecutionService)
- /** To test with real server, uncomment below line */
+ /** To test with real server, comment below line */
coEvery() { spyStreamingRemoteExecutionService.createGrpcChannel(any()) } returns channel
/** Test Send and Receive non interactive transaction */
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty-shaded</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-grpclb</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuff.java.version}</version>
+ </dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<artifactId>config-snapshots</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.cds.blueprintsprocessor.functions</groupId>
+ <artifactId>message-prioritizaion</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<!-- Diff capability providers for config-snapshots -->
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty-shaded</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-grpclb</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ </dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>0.6.1</version>
<configuration>
<protocArtifact>
- com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}
+ com.google.protobuf:protoc:3.10.0:exe:${os.detected.classifier}
</protocArtifact>
<protoSourceRoot>${project.basedir}/../../../../components/model-catalog/proto-definition/proto
</protoSourceRoot>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty-shaded</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-grpclb</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuff.java.version}</version>
+ </dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty-shaded</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-grpclb</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ </dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
- <version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
- <version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
- <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty-shaded</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-grpclb</artifactId>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java-util</artifactId>
+ </dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-testing</artifactId>
<properties>
<spring.boot.version>2.1.3.RELEASE</spring.boot.version>
<spring.version>5.1.5.RELEASE</spring.version>
- <grpc.version>1.18.0</grpc.version>
- <protobuff.java.utils.version>3.6.1</protobuff.java.utils.version>
<eelf.version>1.0.0</eelf.version>
<guava.version>27.0.1-jre</guava.version>
<onap.logger.slf4j>1.2.2</onap.logger.slf4j>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty-shaded</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-grpclb</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuff.java.utils.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java-util</artifactId>
+ <version>${protobuff.java.utils.version}</version>
+ </dependency>
<dependency>
<groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
<artifactId>blueprint-proto</artifactId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>1.5.0</version>
+ <version>1.5.1-SNAPSHOT</version>
<relativePath/>
</parent>