Skip to content

Commit df3a793

Browse files
author
Alexander Furer
committed
auto consule registration
1 parent a407824 commit df3a793

File tree

9 files changed

+34
-80
lines changed

9 files changed

+34
-80
lines changed

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/autoconfigure/consul/ConsulGrpcAutoConfiguration.java

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,26 @@
22

33
import org.lognet.springboot.grpc.GRpcServerRunner;
44
import org.lognet.springboot.grpc.autoconfigure.GRpcAutoConfiguration;
5-
import org.springframework.beans.BeansException;
6-
import org.springframework.beans.factory.config.BeanPostProcessor;
75
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
86
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
97
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
10-
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
11-
import org.springframework.cloud.consul.serviceregistry.ConsulRegistration;
128
import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry;
139
import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistryAutoConfiguration;
1410
import org.springframework.context.annotation.Bean;
1511
import org.springframework.context.annotation.Configuration;
1612

1713
@Configuration
1814
@AutoConfigureAfter({ ConsulServiceRegistryAutoConfiguration.class, GRpcAutoConfiguration.class})
19-
@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true)
20-
@ConditionalOnBean({ConsulServiceRegistry.class, GRpcServerRunner.class})
21-
2215
public class ConsulGrpcAutoConfiguration{
2316

2417

18+
@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true)
19+
@ConditionalOnBean({ConsulServiceRegistry.class, GRpcServerRunner.class})
2520
@Bean
26-
public GrpcConsulRegistrar consulRegistrar(ServiceRegistry<ConsulRegistration> consulServiceRegistry){
21+
public GrpcConsulRegistrar consulRegistrar(ConsulServiceRegistry consulServiceRegistry){
2722
return new GrpcConsulRegistrar(consulServiceRegistry);
2823
}
2924

30-
// @Bean
31-
public BeanPostProcessor consuleServiceRegistryPostProcessor() {
32-
return new BeanPostProcessor() {
33-
@Override
34-
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
35-
return bean;
36-
}
3725

38-
@Override
39-
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
40-
if(ConsulServiceRegistry.class.isAssignableFrom(bean.getClass())){
41-
return new SmartCountingConsulServiceRegistry(ConsulServiceRegistry.class.cast(bean));
42-
}
43-
return bean;
44-
}
45-
};
46-
}
4726
}
4827

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/autoconfigure/consul/GrpcConsulRegistrar.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44
import org.lognet.springboot.grpc.context.GRpcServerInitializedEvent;
55
import org.lognet.springboot.grpc.context.GRpcServerStoppedEvent;
66
import org.lognet.springboot.grpc.context.GrpcServerEvent;
7-
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
87
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
98
import org.springframework.cloud.consul.serviceregistry.ConsulAutoRegistration;
109
import org.springframework.cloud.consul.serviceregistry.ConsulRegistration;
10+
import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry;
1111
import org.springframework.context.ApplicationContext;
1212
import org.springframework.context.event.EventListener;
1313

1414
public class GrpcConsulRegistrar {
1515

1616
private ConsulRegistration registration;
17-
private ServiceRegistry<ConsulRegistration> consulServiceRegistry;
17+
private ConsulServiceRegistry consulServiceRegistry;
1818

19-
public GrpcConsulRegistrar(ServiceRegistry<ConsulRegistration> consulServiceRegistry) {
19+
public GrpcConsulRegistrar(ConsulServiceRegistry consulServiceRegistry) {
2020
this.consulServiceRegistry = consulServiceRegistry;
2121
}
2222

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/autoconfigure/consul/SmartCountingConsulServiceRegistry.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

grpc-spring-boot2-starter-demo/src/test/java/org/lognet/springboot/grpc/ConfigServerEnvironmentBaseTest.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.junit.ClassRule;
55
import org.junit.rules.TemporaryFolder;
66
import org.junit.runner.RunWith;
7+
import org.lognet.springboot.grpc.autoconfigure.GRpcAutoConfiguration;
78
import org.lognet.springboot.grpc.demo.DemoApp;
89
import org.springframework.beans.factory.annotation.Autowired;
910
import org.springframework.boot.SpringApplication;
@@ -20,16 +21,22 @@
2021
import java.net.URISyntaxException;
2122
import java.util.Optional;
2223
import java.util.Properties;
24+
import java.util.stream.Collectors;
25+
import java.util.stream.Stream;
2326

2427

2528
@RunWith(SpringRunner.class)
2629
@SpringBootTest(classes = DemoApp.class,
2730
// Normally spring.cloud.config.enabled:true is the default but since we have the
2831
// config server on the classpath we need to set it explicitly
29-
properties = { "spring.cloud.config.enabled:true"})
32+
properties = { "spring.cloud.config.enabled=true",
33+
"spring.cloud.consul.discovery.enabled=false",
34+
"spring.cloud.service-registry.enabled=false",
35+
"spring.cloud.service-registry.auto-registration.enabled=false",
36+
})
3037
public abstract class ConfigServerEnvironmentBaseTest extends GrpcServerTestBase{
3138

32-
private static int configPort = SocketUtils.findAvailableTcpPort();
39+
3340
private static ConfigurableApplicationContext server;
3441

3542
@ClassRule
@@ -41,7 +48,7 @@ public abstract class ConfigServerEnvironmentBaseTest extends GrpcServerTestBase
4148

4249

4350
public static void startConfigServer(Properties properties) throws IOException, URISyntaxException {
44-
51+
int configPort = SocketUtils.findAvailableTcpPort();
4552
File cfgFile = temporaryFolder.newFile("grpc-demo.properties");
4653
try(OutputStream os = new FileOutputStream(cfgFile)) {
4754
properties.store(os,null);
@@ -50,7 +57,11 @@ public static void startConfigServer(Properties properties) throws IOException,
5057

5158
server = SpringApplication.run(org.springframework.cloud.config.server.ConfigServerApplication.class,
5259
"--server.port=" + configPort,
53-
"--spring.autoconfigure.exclude=org.lognet.springboot.grpc.autoconfigure.GRpcAutoConfiguration",
60+
"--spring.autoconfigure.exclude="+Stream.of(GRpcAutoConfiguration.class)
61+
.map(Class::getName).collect(Collectors.joining(",")),
62+
"--spring.cloud.consul.discovery.enabled=false",
63+
"--spring.cloud.service-registry.enabled=false",
64+
"--spring.cloud.service-registry.auto-registration.enabled=false",
5465
"--spring.cloud.config.server.health.enabled=false",
5566
"--spring.cloud.config.server.bootstrap=false",
5667
"--spring.profiles.active=native",

grpc-spring-boot2-starter-demo/src/test/java/org/lognet/springboot/grpc/ConfigServerEnvironmentTest1.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
package org.lognet.springboot.grpc;
22

3+
import org.junit.AfterClass;
34
import org.junit.BeforeClass;
45
import org.junit.Test;
6+
import org.springframework.test.annotation.DirtiesContext;
57

68
import java.io.IOException;
79
import java.net.URISyntaxException;
810
import java.util.Properties;
911

1012
import static org.junit.Assert.assertEquals;
11-
13+
@DirtiesContext
1214
public class ConfigServerEnvironmentTest1 extends ConfigServerEnvironmentBaseTest{
1315

1416

@@ -19,6 +21,10 @@ public static void startConfigServer() throws IOException, URISyntaxException {
1921
startConfigServer(properties);
2022

2123
}
24+
@AfterClass
25+
public static void close() {
26+
System.clearProperty("grpc.port");
27+
}
2228

2329

2430

grpc-spring-boot2-starter-demo/src/test/java/org/lognet/springboot/grpc/ConfigServerEnvironmentTest2.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.junit.BeforeClass;
44
import org.junit.Test;
55
import org.lognet.springboot.grpc.autoconfigure.GRpcServerProperties;
6+
import org.springframework.test.annotation.DirtiesContext;
67

78
import java.io.IOException;
89
import java.net.URISyntaxException;
@@ -11,7 +12,7 @@
1112
import static org.junit.Assert.assertEquals;
1213
import static org.junit.Assert.assertNotEquals;
1314

14-
15+
@DirtiesContext
1516
public class ConfigServerEnvironmentTest2 extends ConfigServerEnvironmentBaseTest{
1617

1718

grpc-spring-boot2-starter-demo/src/test/java/org/lognet/springboot/grpc/ConfigServerEnvironmentTest3.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.junit.BeforeClass;
55
import org.junit.Test;
66
import org.lognet.springboot.grpc.autoconfigure.GRpcServerProperties;
7+
import org.springframework.test.annotation.DirtiesContext;
78

89
import java.io.IOException;
910
import java.net.URISyntaxException;
@@ -12,7 +13,7 @@
1213
import static org.hamcrest.MatcherAssert.assertThat;
1314
import static org.junit.Assert.assertEquals;
1415

15-
16+
@DirtiesContext
1617
public class ConfigServerEnvironmentTest3 extends ConfigServerEnvironmentBaseTest{
1718

1819
@BeforeClass

grpc-spring-boot2-starter-demo/src/test/java/org/lognet/springboot/grpc/ConsulRegistrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
public class ConsulRegistrationTest {
2828

2929
@ClassRule
30-
public static final ConsulResource consul = new ConsulResource();
30+
public static final ConsulResource consul = new ConsulResource(8500);
3131

3232
@Autowired
3333
private DiscoveryClient discoveryClient;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
management.endpoints.web.base-path=/
22
management.endpoints.web.exposure.include=*
33
spring.main.allow-bean-definition-overriding=true
4+
spring.jmx.enabled=false

0 commit comments

Comments
 (0)