diff --git a/docs/src/main/asciidoc/spring-cloud-zookeeper.adoc b/docs/src/main/asciidoc/spring-cloud-zookeeper.adoc index 4619da35..22c14bb4 100644 --- a/docs/src/main/asciidoc/spring-cloud-zookeeper.adoc +++ b/docs/src/main/asciidoc/spring-cloud-zookeeper.adoc @@ -33,7 +33,6 @@ Example Zookeeper client: [source,java,indent=0] ---- @SpringBootApplication -@EnableDiscoveryClient @RestController public class Application { @@ -63,7 +62,9 @@ CAUTION: If you use < instances = this.discoveryClient.getInstances(this.springAppName); + ServiceInstance instance = instances.get(0); + //expect: + then(registeredServiceStatus(instance)).isEqualTo("UP"); + then(instance.getMetadata().get("testMetadataKey")).isEqualTo("testMetadataValue"); + } + + @Test public void should_present_application_name_as_id_of_the_service_instance() { + //given: + ServiceInstance instance = this.discoveryClient.getLocalServiceInstance(); + //expect: + then(this.springAppName).isEqualTo(instance.getServiceId()); + } + + private String registeredServiceStatusViaServiceName() { + return JsonPath.builder(this.testRibbonClient.thisHealthCheck()).field("status").read(String.class); + } + + private String registeredServiceStatus(ServiceInstance instance) { + return JsonPath.builder(this.testRibbonClient.callOnUrl(instance.getHost()+":"+instance.getPort(), "health")).field("status").read(String.class); + } + + @Test public void should_properly_find_local_instance() { + //expect: + then(this.serviceDiscovery.getServiceInstanceRef().get().getAddress()).isEqualTo(this.discoveryClient.getLocalServiceInstance().getHost()); + } + + @Configuration + @EnableAutoConfiguration + @Import(CommonTestConfig.class) + @Profile("ribbon") + static class Config { + @Bean + public ZookeeperServiceDiscovery zookeeperServiceDiscovery(ZookeeperDiscoveryProperties properties, CuratorFramework curator, + InstanceSerializer instanceSerializer) { + return new ZookeeperServiceDiscovery(curator, properties, instanceSerializer); + } + + @Bean + public ZookeeperLifecycle zookeeperLifecycle(ZookeeperDiscoveryProperties properties, + ZookeeperServiceDiscovery serviceDiscovery) { + return new ZookeeperLifecycle(properties, serviceDiscovery); + } + + @Bean TestRibbonClient testRibbonClient(@LoadBalanced RestTemplate restTemplate, + @Value("${spring.application.name}") String springAppName) { + return new TestRibbonClient(restTemplate, springAppName); + } + } + + @Controller + @Profile("ribbon") + class PingController { + + @RequestMapping("/ping") String ping() { + return "pong"; + } + } +} diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycleRegistrationDisabledTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycleRegistrationDisabledTests.java new file mode 100644 index 00000000..55694ab4 --- /dev/null +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycleRegistrationDisabledTests.java @@ -0,0 +1,59 @@ +/* + * Copyright 2013-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.zookeeper.discovery; + +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; +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.zookeeper.discovery.test.CommonTestConfig; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.Assert.assertTrue; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; + +/** + * @author Spencer Gibb + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ZookeeperLifecycleRegistrationDisabledTests.TestPropsConfig.class, + properties = { "spring.application.name=myTestNotRegisteredService", + "spring.cloud.zookeeper.discovery.register=false", "spring.cloud.zookeeper.dependency.enabled=false"}, + webEnvironment = RANDOM_PORT) +public class ZookeeperLifecycleRegistrationDisabledTests { + + + @Autowired + private ZookeeperDiscoveryClient client; + + @Test + public void contextLoads() { + List instances = this.client.getInstances("myTestNotRegisteredService"); + assertTrue("service was registered", instances.isEmpty()); + } + + @Configuration + @EnableAutoConfiguration + @Import({ CommonTestConfig.class }) + static class TestPropsConfig { } +} diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeprDiscoveryNonWebAppTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeprDiscoveryNonWebAppTests.java index 7fd2a358..2ad6d711 100644 --- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeprDiscoveryNonWebAppTests.java +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeprDiscoveryNonWebAppTests.java @@ -26,7 +26,6 @@ import org.springframework.boot.actuate.autoconfigure.EndpointMBeanExportAutoCon import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration; import org.springframework.cloud.client.discovery.DiscoveryClient; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; @@ -69,7 +68,7 @@ public class ZookeeprDiscoveryNonWebAppTests { clientApplication.setWebEnvironment(false); try (ConfigurableApplicationContext producerContext = producerApp.run(this.connectionString, "--server.port=0", - "--spring.application.name=hello-world")) { + "--spring.application.name=hello-world", "--debug")) { try (final ConfigurableApplicationContext context = clientApplication.run(this.connectionString, "--spring.cloud.zookeeper.discovery.register=false")) { Awaitility.await().until(new Runnable() { @@ -91,7 +90,6 @@ public class ZookeeprDiscoveryNonWebAppTests { @EnableAutoConfiguration(exclude = {EndpointMBeanExportAutoConfiguration.class, JmxAutoConfiguration.class}) - @EnableDiscoveryClient @Configuration static class HelloClient { @LoadBalanced @@ -108,7 +106,6 @@ public class ZookeeprDiscoveryNonWebAppTests { @EnableAutoConfiguration(exclude = {EndpointMBeanExportAutoConfiguration.class, JmxAutoConfiguration.class}) - @EnableDiscoveryClient @RestController static class HelloProducer { diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyConfig.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyConfig.java index 37605b4f..2e0d40d8 100644 --- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyConfig.java +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyConfig.java @@ -26,7 +26,6 @@ import static org.assertj.core.api.BDDAssertions.then; @Configuration @EnableAutoConfiguration(exclude = EndpointMBeanExportAutoConfiguration.class) @Import(CommonTestConfig.class) -@EnableDiscoveryClient @EnableFeignClients(basePackageClasses = {AliasUsingFeignClient.class, IdUsingFeignClient.class}) public class DependencyConfig { diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/StickyRuleTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/StickyRuleTests.java index bd9d3bca..981f4c52 100644 --- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/StickyRuleTests.java +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/StickyRuleTests.java @@ -13,7 +13,6 @@ 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.DiscoveryClient; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.zookeeper.ZookeeperProperties; @@ -77,7 +76,6 @@ public class StickyRuleTests { @Configuration @EnableAutoConfiguration - @EnableDiscoveryClient @Profile("loadbalancerclient") static class Config { diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDyingDependenciesTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDyingDependenciesTests.java index 8dd65234..2157a8b6 100644 --- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDyingDependenciesTests.java +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/dependency/ZookeeperDiscoveryWithDyingDependenciesTests.java @@ -13,7 +13,6 @@ import org.junit.Ignore; import org.junit.Test; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.zookeeper.discovery.test.TestRibbonClient; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; @@ -98,7 +97,6 @@ public class ZookeeperDiscoveryWithDyingDependenciesTests { } @Configuration - @EnableDiscoveryClient @EnableAutoConfiguration @Import(DependencyConfig.class) static class Config { } diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java index 64c673ca..726f0528 100644 --- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcherSpringTests.java @@ -13,7 +13,6 @@ import org.junit.runner.RunWith; 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.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.zookeeper.discovery.watcher.presence.DependencyPresenceOnStartupVerifier; import org.springframework.cloud.zookeeper.discovery.watcher.presence.LogMissingDependencyChecker; @@ -67,7 +66,6 @@ public class DefaultDependencyWatcherSpringTests { } @Configuration - @EnableDiscoveryClient @EnableAutoConfiguration @Profile("watcher") static class Config { diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java index b7fb21d6..70018522 100644 --- a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/serviceregistry/ZookeeperAutoServiceRegistrationTests.java @@ -26,7 +26,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryProperties; import org.springframework.cloud.zookeeper.discovery.ZookeeperInstance; import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig; @@ -75,7 +74,6 @@ public class ZookeeperAutoServiceRegistrationTests { @SpringBootConfiguration @EnableAutoConfiguration - @EnableDiscoveryClient @Import({CommonTestConfig.class}) /*@ImportAutoConfiguration({AutoServiceRegistrationAutoConfiguration.class, ZookeeperAutoServiceRegistration.class, ZookeeperServiceRegistryAutoConfiguration.class})*/ diff --git a/spring-cloud-zookeeper-sample/src/main/java/org/springframework/cloud/zookeeper/sample/SampleZookeeperApplication.java b/spring-cloud-zookeeper-sample/src/main/java/org/springframework/cloud/zookeeper/sample/SampleZookeeperApplication.java index 1faaca42..11d456ff 100644 --- a/spring-cloud-zookeeper-sample/src/main/java/org/springframework/cloud/zookeeper/sample/SampleZookeeperApplication.java +++ b/spring-cloud-zookeeper-sample/src/main/java/org/springframework/cloud/zookeeper/sample/SampleZookeeperApplication.java @@ -22,7 +22,6 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.netflix.feign.EnableFeignClients; @@ -41,7 +40,6 @@ import org.springframework.web.client.RestTemplate; */ @Configuration @EnableAutoConfiguration -@EnableDiscoveryClient @RestController @EnableFeignClients public class SampleZookeeperApplication {