Skip to content

Commit f7b1d48

Browse files
author
admitrov
committed
fix: remove GcpPubSubEmulatorAutoConfiguration and update test configuration for PubSub transport channel
1 parent 6f642da commit f7b1d48

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

embedded-google-pubsub/src/main/java/com/playtika/testcontainer/pubsub/EmbeddedPubsubDependenciesAutoConfiguration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.google.cloud.spring.autoconfigure.core.GcpContextAutoConfiguration;
44
import com.google.cloud.spring.autoconfigure.pubsub.GcpPubSubAutoConfiguration;
5-
import com.google.cloud.spring.autoconfigure.pubsub.GcpPubSubEmulatorAutoConfiguration;
65
import com.google.cloud.spring.pubsub.core.PubSubTemplate;
76
import com.playtika.testcontainer.common.spring.DependsOnPostProcessor;
87
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
@@ -18,7 +17,7 @@
1817

1918
@AutoConfiguration
2019
@AutoConfigureOrder
21-
@ImportAutoConfiguration(classes = {GcpContextAutoConfiguration.class, GcpPubSubEmulatorAutoConfiguration.class, GcpPubSubAutoConfiguration.class})
20+
@ImportAutoConfiguration(classes = {GcpContextAutoConfiguration.class, GcpPubSubAutoConfiguration.class})
2221
@ConditionalOnExpression("${embedded.containers.enabled:true}")
2322
@ConditionalOnClass(PubSubTemplate.class)
2423
@ConditionalOnProperty(name = "embedded.google.pubsub.enabled", matchIfMissing = true)

embedded-google-pubsub/src/test/java/com/playtika/testcontainer/pubsub/EmbeddedPubsubBootstrapConfigurationTest.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,32 @@
11
package com.playtika.testcontainer.pubsub;
22

3+
import com.google.api.gax.core.CredentialsProvider;
4+
import com.google.api.gax.core.FixedCredentialsProvider;
5+
import com.google.api.gax.grpc.GrpcTransportChannel;
6+
import com.google.api.gax.rpc.FixedTransportChannelProvider;
7+
import com.google.api.gax.rpc.TransportChannelProvider;
8+
import com.google.cloud.NoCredentials;
39
import com.google.cloud.spring.pubsub.core.PubSubTemplate;
410
import com.google.cloud.spring.pubsub.support.AcknowledgeablePubsubMessage;
511
import com.google.pubsub.v1.DeadLetterPolicy;
612
import com.google.pubsub.v1.ProjectSubscriptionName;
713
import com.google.pubsub.v1.Subscription;
814
import com.google.pubsub.v1.TopicName;
15+
import io.grpc.ManagedChannel;
16+
import io.grpc.ManagedChannelBuilder;
917
import lombok.extern.slf4j.Slf4j;
1018
import org.junit.jupiter.api.Test;
1119
import org.springframework.beans.factory.BeanFactoryUtils;
1220
import org.springframework.beans.factory.annotation.Autowired;
21+
import org.springframework.beans.factory.annotation.Qualifier;
1322
import org.springframework.beans.factory.annotation.Value;
1423
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
1524
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
25+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
1626
import org.springframework.boot.test.context.SpringBootTest;
27+
import org.springframework.context.annotation.Bean;
1728
import org.springframework.context.annotation.Configuration;
29+
import org.springframework.context.annotation.Primary;
1830
import org.springframework.core.env.ConfigurableEnvironment;
1931
import org.springframework.test.context.ActiveProfiles;
2032
import org.testcontainers.containers.GenericContainer;
@@ -48,6 +60,25 @@ class EmbeddedPubsubBootstrapConfigurationTest {
4860
@EnableAutoConfiguration
4961
@Configuration
5062
static class TestConfiguration {
63+
64+
@Bean
65+
@Primary
66+
@ConditionalOnProperty(name = "embedded.google.pubsub.enabled", matchIfMissing = true)
67+
public TransportChannelProvider pubsubTransportChannelProvider(@Qualifier(BEAN_NAME_EMBEDDED_GOOGLE_PUBSUB) GenericContainer<?> container,
68+
PubsubProperties properties) {
69+
String host = container.getHost();
70+
Integer port = container.getMappedPort(properties.getPort());
71+
ManagedChannel channel = ManagedChannelBuilder.forAddress(host, port)
72+
.usePlaintext()
73+
.build();
74+
return FixedTransportChannelProvider.create(GrpcTransportChannel.create(channel));
75+
}
76+
77+
@Bean
78+
@Primary
79+
public CredentialsProvider googleCredentials() {
80+
return FixedCredentialsProvider.create(NoCredentials.getInstance());
81+
}
5182
}
5283

5384
@Test
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
spring.cloud.gcp:
2-
project-id: ${embedded.google.pubsub.project-id}
3-
pubsub.emulatorHost: ${embedded.google.pubsub.host}:${embedded.google.pubsub.port}
2+
project-id: my-project-id

0 commit comments

Comments
 (0)