From d80ebcb2232e2d7e056c5ac6b747ab20e49d97a1 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 29 Jan 2015 17:42:35 +0000 Subject: [PATCH] Adjust to new @FeignCLient semantics --- .../java/demo/HelloClientApplication.java | 4 +- .../java/demo/FeignClientApplication.java | 16 +++--- ...nClientWithServerListApplicationTests.java | 50 +++++++++++++++++++ 3 files changed, 59 insertions(+), 11 deletions(-) create mode 100644 feign/src/test/java/demo/FeignClientWithServerListApplicationTests.java diff --git a/feign-eureka/src/main/java/demo/HelloClientApplication.java b/feign-eureka/src/main/java/demo/HelloClientApplication.java index 7b99c87..dbb8530 100644 --- a/feign-eureka/src/main/java/demo/HelloClientApplication.java +++ b/feign-eureka/src/main/java/demo/HelloClientApplication.java @@ -7,7 +7,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.feign.FeignClient; -import org.springframework.cloud.netflix.feign.FeignClientScan; +import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -25,7 +25,7 @@ import static org.springframework.web.bind.annotation.RequestMethod.*; @SpringBootApplication @EnableDiscoveryClient @RestController -@FeignClientScan +@EnableFeignClients @RibbonClient(name = "hello", configuration = HelloRibbonClientConfiguration.class) public class HelloClientApplication { @Autowired diff --git a/feign/src/main/java/demo/FeignClientApplication.java b/feign/src/main/java/demo/FeignClientApplication.java index c02e1e9..8ab7aa9 100644 --- a/feign/src/main/java/demo/FeignClientApplication.java +++ b/feign/src/main/java/demo/FeignClientApplication.java @@ -3,25 +3,23 @@ package demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.cloud.netflix.feign.FeignClient; -import org.springframework.cloud.netflix.feign.FeignClientScan; -import org.springframework.context.annotation.ComponentScan; +import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Configuration -@ComponentScan @EnableAutoConfiguration -@FeignClientScan +@EnableFeignClients public class FeignClientApplication { - + public static void main(String[] args) { - SpringApplication.run(FeignClientApplication.class, args); - } + SpringApplication.run(FeignClientApplication.class, args); + } } -@FeignClient(value = "example.com", loadbalance = false) +@FeignClient(url = "example.com") interface RestClient { - @RequestMapping(value="/", method=RequestMethod.GET) + @RequestMapping(value = "/", method = RequestMethod.GET) String hello(); } diff --git a/feign/src/test/java/demo/FeignClientWithServerListApplicationTests.java b/feign/src/test/java/demo/FeignClientWithServerListApplicationTests.java new file mode 100644 index 0000000..d41f16a --- /dev/null +++ b/feign/src/test/java/demo/FeignClientWithServerListApplicationTests.java @@ -0,0 +1,50 @@ +package demo; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.IntegrationTest; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.cloud.netflix.feign.EnableFeignClients; +import org.springframework.cloud.netflix.feign.FeignClient; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import demo.FeignClientWithServerListApplicationTests.TestApplication; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = TestApplication.class) +@IntegrationTest("example.ribbon.listOfServers:example.com") +public class FeignClientWithServerListApplicationTests { + + @Autowired + private RestClient client; + + @Test + public void clientConnects() { + assertTrue(client.hello().contains("