This commit is contained in:
Spencer Gibb
2018-02-06 15:45:10 -05:00
parent 5336fc3fa7
commit 24fa15bb7b
10 changed files with 65 additions and 72 deletions

12
pom.xml
View File

@@ -14,18 +14,18 @@
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>1.3.6.RELEASE</version>
<version>1.3.6.BUILD-SNAPSHOT</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<properties>
<spring-cloud-bus.version>1.3.2.RELEASE</spring-cloud-bus.version>
<spring-cloud-commons.version>1.3.2.BUILD-SNAPSHOT</spring-cloud-commons.version>
<spring-cloud-config.version>1.4.0.RELEASE</spring-cloud-config.version>
<spring-cloud-netflix.version>1.4.0.RELEASE</spring-cloud-netflix.version>
<spring-cloud-bus.version>1.3.2.BUILD-SNAPSHOT</spring-cloud-bus.version>
<spring-cloud-commons.version>1.3.2.BUILD-SNAPSHOT</spring-cloud-commons.version>
<spring-cloud-config.version>1.4.2.BUILD-SNAPSHOT</spring-cloud-config.version>
<spring-cloud-netflix.version>1.4.3.BUILD-SNAPSHOT</spring-cloud-netflix.version>
<spring-cloud-deployer.version>1.0.3.RELEASE</spring-cloud-deployer.version>
<spring-cloud-stream.version>Ditmars.RELEASE</spring-cloud-stream.version>
<spring-cloud-stream.version>Ditmars.BUILD-SNAPSHOT</spring-cloud-stream.version>
<gson.version>2.3.1</gson.version>
<httpclient.version>4.5.2</httpclient.version>
<httpcore.version>4.4.5</httpcore.version>

View File

@@ -16,11 +16,11 @@
package org.springframework.cloud.consul.discovery;
import javax.servlet.ServletContext;
import java.util.Collections;
import java.util.List;
import javax.servlet.ServletContext;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.bind.RelaxedPropertyResolver;
@@ -121,10 +121,11 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle {
}
Assert.notNull(service.getPort(), "service.port has not been set");
List<ConsulRegistrationCustomizer> registrationCustomizers = Collections
.<ConsulRegistrationCustomizer>singletonList(new ConsulServletRegistrationCustomizer(servletContext));
ConsulAutoRegistration registration = ConsulAutoRegistration.lifecycleRegistration(service.getPort(),
getServiceId(), this.autoServiceRegistrationProperties, this.properties,
getContext(), registrationCustomizers, this.ttlConfig);
.<ConsulRegistrationCustomizer> singletonList(new ConsulServletRegistrationCustomizer(servletContext));
ConsulAutoRegistration registration = ConsulAutoRegistration
.lifecycleRegistration(service.getPort(), getServiceId(),
this.autoServiceRegistrationProperties, this.properties,
getContext(), registrationCustomizers, this.ttlConfig);
if (registration.getService().getPort() == null) { // not set by properties
registration.initializePort(service.getPort());
}

View File

@@ -41,9 +41,6 @@ public class TestConsulLifecycleConfiguration {
@Autowired(required = false)
private ObjectProvider<ServletContext> servletContext;
@Autowired(required = false)
AutoServiceRegistrationProperties autoServiceRegistrationProperties;
@Bean
public ConsulLifecycle consulLifecycle(ConsulClient consulClient,
AutoServiceRegistrationProperties autoServiceRegistrationProperties,

View File

@@ -43,9 +43,9 @@ public class ConsulAutoRegistration extends ConsulRegistration {
private final HeartbeatProperties heartbeatProperties;
public ConsulAutoRegistration(NewService service, AutoServiceRegistrationProperties autoServiceRegistrationProperties,
ConsulDiscoveryProperties properties, ApplicationContext context, HeartbeatProperties heartbeatProperties) {
ConsulDiscoveryProperties properties, ApplicationContext context, HeartbeatProperties heartbeatProperties) {
super(service, properties);
this.autoServiceRegistrationProperties = autoServiceRegistrationProperties;
this.autoServiceRegistrationProperties = autoServiceRegistrationProperties;
this.context = context;
this.heartbeatProperties = heartbeatProperties;
}
@@ -59,16 +59,16 @@ public class ConsulAutoRegistration extends ConsulRegistration {
// can create a check
setCheck(getService(), this.autoServiceRegistrationProperties, getProperties(),
this.context, this.heartbeatProperties);
this.context, this.heartbeatProperties);
}
public ConsulAutoRegistration managementRegistration() {
return managementRegistration(this.autoServiceRegistrationProperties, getProperties(),
this.context, this.heartbeatProperties);
this.context, this.heartbeatProperties);
}
public static ConsulAutoRegistration registration(AutoServiceRegistrationProperties autoServiceRegistrationProperties,
ConsulDiscoveryProperties properties, ApplicationContext context,
ConsulDiscoveryProperties properties, ApplicationContext context,
List<ConsulRegistrationCustomizer> registrationCustomizers,
HeartbeatProperties heartbeatProperties) {
RelaxedPropertyResolver propertyResolver = new RelaxedPropertyResolver(context.getEnvironment());
@@ -89,7 +89,7 @@ public class ConsulAutoRegistration extends ConsulRegistration {
}
ConsulAutoRegistration registration = new ConsulAutoRegistration(service, autoServiceRegistrationProperties,
properties, context, heartbeatProperties);
properties, context, heartbeatProperties);
customize(registrationCustomizers, registration);
return registration;
}
@@ -104,7 +104,7 @@ public class ConsulAutoRegistration extends ConsulRegistration {
@Deprecated //TODO: do I need this here, or should I just copy what I need back into lifecycle?
public static ConsulAutoRegistration lifecycleRegistration(Integer port, String instanceId, AutoServiceRegistrationProperties autoServiceRegistrationProperties,
ConsulDiscoveryProperties properties, ApplicationContext context,
ConsulDiscoveryProperties properties, ApplicationContext context,
List<ConsulRegistrationCustomizer> registrationCustomizers,
HeartbeatProperties heartbeatProperties) {
RelaxedPropertyResolver propertyResolver = new RelaxedPropertyResolver(context.getEnvironment());
@@ -130,7 +130,7 @@ public class ConsulAutoRegistration extends ConsulRegistration {
setCheck(service, autoServiceRegistrationProperties, properties, context, heartbeatProperties);
ConsulAutoRegistration registration = new ConsulAutoRegistration(service, autoServiceRegistrationProperties,
properties, context, heartbeatProperties);
properties, context, heartbeatProperties);
customize(registrationCustomizers, registration);
return registration;
}

View File

@@ -27,7 +27,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
import org.springframework.cloud.consul.ConditionalOnConsulEnabled;
@@ -65,10 +64,10 @@ public class ConsulAutoServiceRegistrationAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ConsulAutoRegistration consulRegistration(AutoServiceRegistrationProperties autoServiceRegistrationProperties,
ConsulDiscoveryProperties properties, ApplicationContext applicationContext,
ConsulDiscoveryProperties properties, ApplicationContext applicationContext,
ObjectProvider<List<ConsulRegistrationCustomizer>> registrationCustomizers, HeartbeatProperties heartbeatProperties) {
return ConsulAutoRegistration.registration(autoServiceRegistrationProperties, properties,
applicationContext, registrationCustomizers.getIfAvailable(), heartbeatProperties);
applicationContext, registrationCustomizers.getIfAvailable(), heartbeatProperties);
}
@Configuration

View File

@@ -24,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -55,8 +54,6 @@ public class ConsulLifecycleCustomizedTests {
@Autowired
private CustomConsulLifecycle lifecycle2;
@Autowired
AutoServiceRegistrationProperties autoServiceRegistrationProperties;
@Autowired
private ConsulDiscoveryProperties properties;
@Test

View File

@@ -28,13 +28,13 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
* @author Stéphane Leroy
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TtlSchedulerRemoveTest.TtlSchedulerRemoveTestConfig.class,
@SpringBootTest(classes = TtlSchedulerRemoveTests.TtlSchedulerRemoveTestConfig.class,
properties = { "spring.application.name=ttlSchedulerRemove",
"spring.cloud.consul.discovery.instanceId=ttlSchedulerRemove-id",
"spring.cloud.consul.discovery.heartbeat.enabled=true",
"spring.cloud.consul.discovery.heartbeat.ttlValue=2" },
webEnvironment = RANDOM_PORT)
public class TtlSchedulerRemoveTest {
public class TtlSchedulerRemoveTests {
@Autowired
private ConsulClient consul;

View File

@@ -27,13 +27,13 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
* @author Stéphane Leroy
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TtlSchedulerTest.TtlSchedulerTestConfig.class,
@SpringBootTest(classes = TtlSchedulerTests.TtlSchedulerTestConfig.class,
properties = { "spring.application.name=ttlScheduler",
"spring.cloud.consul.discovery.instanceId=ttlScheduler-id",
"spring.cloud.consul.discovery.heartbeat.enabled=true",
"spring.cloud.consul.discovery.heartbeat.ttlValue=2", "management.port=0" },
webEnvironment = RANDOM_PORT)
public class TtlSchedulerTest {
public class TtlSchedulerTests {
@Autowired
private ConsulClient consul;

View File

@@ -16,10 +16,8 @@
package org.springframework.cloud.consul.serviceregistry;
import com.ecwid.consul.v1.ConsulClient;
import com.ecwid.consul.v1.Response;
import com.ecwid.consul.v1.agent.model.Service;
import org.junit.Ignore;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +31,9 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.StringUtils;
import java.util.Map;
import com.ecwid.consul.v1.ConsulClient;
import com.ecwid.consul.v1.Response;
import com.ecwid.consul.v1.agent.model.Service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -46,43 +46,45 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
* @author Dmitry Zhikharev (jihor)
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ConsulAutoServiceRegistrationManagementDisabledServiceTests.TestConfig.class,
properties = {"spring.application.name=myTestService-NM",
"spring.cloud.consul.discovery.instanceId=myTestService1-NM",
"spring.cloud.service-registry.auto-registration.register-management=false",
"spring.cloud.consul.discovery.managementPort=4453",
"management.port=0" },
webEnvironment = RANDOM_PORT)
@SpringBootTest(classes = ConsulAutoServiceRegistrationManagementDisabledServiceTests.TestConfig.class, properties = {
"spring.application.name=myTestService-NM",
"spring.cloud.consul.discovery.instanceId=myTestService1-NM",
"spring.cloud.service-registry.auto-registration.register-management=false",
"spring.cloud.consul.discovery.managementPort=4453",
"management.port=0" }, webEnvironment = RANDOM_PORT)
public class ConsulAutoServiceRegistrationManagementDisabledServiceTests {
@Autowired
private ConsulClient consul;
@Autowired
private ConsulClient consul;
@Autowired
private ConsulDiscoveryProperties discoveryProperties;
@Autowired
private ConsulDiscoveryProperties discoveryProperties;
@Test
public void contextLoads() {
Response<Map<String, Service>> response = consul.getAgentServices();
Map<String, Service> services = response.getValue();
@Test
public void contextLoads() {
Response<Map<String, Service>> response = consul.getAgentServices();
Map<String, Service> services = response.getValue();
Service mgmtService = services.get("myTestService-NM-0-management");
assertNull("Management service was not null", mgmtService);
Service mgmtService = services.get("myTestService-NM-0-management");
assertNull("Management service was not null", mgmtService);
Service service = services.get("myTestService1-NM");
assertNotNull("Service was not null", service);
assertNotEquals("service port was 0", 0, service.getPort().intValue());
assertEquals("service id was wrong", "myTestService1-NM", service.getId());
assertEquals("service name was wrong", "myTestService-NM", service.getService());
assertFalse("service address must not be empty", StringUtils.isEmpty(service.getAddress()));
assertEquals("service address must equals hostname from discovery properties", discoveryProperties.getHostname(), service.getAddress());
Service service = services.get("myTestService1-NM");
assertNotNull("Service was not null", service);
assertNotEquals("service port was 0", 0, service.getPort().intValue());
assertEquals("service id was wrong", "myTestService1-NM", service.getId());
assertEquals("service name was wrong", "myTestService-NM", service.getService());
assertFalse("service address must not be empty",
StringUtils.isEmpty(service.getAddress()));
assertEquals("service address must equals hostname from discovery properties",
discoveryProperties.getHostname(), service.getAddress());
}
}
@Configuration
@EnableAutoConfiguration
@ImportAutoConfiguration({AutoServiceRegistrationConfiguration.class,
ConsulAutoConfiguration.class,
ConsulAutoServiceRegistrationAutoConfiguration.class})
public static class TestConfig {}
@Configuration
@EnableAutoConfiguration
@ImportAutoConfiguration({ AutoServiceRegistrationConfiguration.class,
ConsulAutoConfiguration.class,
ConsulAutoServiceRegistrationAutoConfiguration.class })
public static class TestConfig {
}
}

View File

@@ -55,9 +55,6 @@ public class ConsulAutoServiceRegistrationWithLifecycleTests {
@Autowired(required = false)
private ConsulServiceRegistry consulServiceRegistry;
@Autowired(required = false)
private AutoServiceRegistrationProperties autoServiceRegistrationProperties;
@Test
public void contextLoads() {
assertNull("consulRegistration was created by mistake", consulRegistration);