diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/Demo.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/Demo.java deleted file mode 100644 index 6507cb5c..00000000 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/Demo.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2013-2015 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.netflix.feign.encoding; - -import com.netflix.loadbalancer.BaseLoadBalancer; -import com.netflix.loadbalancer.ILoadBalancer; -import com.netflix.loadbalancer.Server; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -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.encoding.app.client.InvoiceClient; -import org.springframework.cloud.netflix.feign.encoding.app.domain.Invoice; -import org.springframework.cloud.netflix.ribbon.RibbonClient; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.web.WebAppConfiguration; - -import java.util.Collections; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -/** - * Demonstrates usage of this component. - * - * @author Jakub Narloch - */ -@WebAppConfiguration -@IntegrationTest({"server.port=0","feign.compression.request.enabled=true","feign.compression.response.enabled=true"}) -@SpringApplicationConfiguration(classes = {Demo.Application.class}) -@RunWith(SpringJUnit4ClassRunner.class) -public class Demo { - - @Autowired - private InvoiceClient invoiceClient; - - @Test - public void compressedResponse() { - - // given - final List invoices = Invoices.createInvoiceList(50); - - // when - final ResponseEntity> response = invoiceClient.saveInvoices(invoices); - - // then - assertNotNull(response); - assertEquals(HttpStatus.OK, response.getStatusCode()); - assertNotNull(response.getBody()); - assertEquals(invoices.size(), response.getBody().size()); - - } - - @EnableFeignClients(clients = InvoiceClient.class) - @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class) - @ComponentScan("org.springframework.cloud.netflix.feign.encoding.app") - @EnableAutoConfiguration - @Configuration - public static class Application { - } - - @Configuration - static class LocalRibbonClientConfiguration { - - @Value("${local.server.port}") - private int port = 0; - - @Bean - public ILoadBalancer ribbonLoadBalancer() { - BaseLoadBalancer balancer = new BaseLoadBalancer(); - balancer.setServersList(Collections.singletonList(new Server("localhost", this.port))); - return balancer; - } - } -} \ No newline at end of file diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignAcceptEncodingTest.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignAcceptEncodingTests.java similarity index 57% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignAcceptEncodingTest.java rename to spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignAcceptEncodingTests.java index b327a558..a146cd57 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignAcceptEncodingTest.java +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignAcceptEncodingTests.java @@ -16,14 +16,14 @@ package org.springframework.cloud.netflix.feign.encoding; -import com.netflix.loadbalancer.BaseLoadBalancer; -import com.netflix.loadbalancer.ILoadBalancer; -import com.netflix.loadbalancer.Server; +import java.util.Collections; +import java.util.List; + import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.IntegrationTest; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.cloud.netflix.feign.EnableFeignClients; @@ -31,15 +31,15 @@ import org.springframework.cloud.netflix.feign.encoding.app.client.InvoiceClient import org.springframework.cloud.netflix.feign.encoding.app.domain.Invoice; import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; -import java.util.Collections; -import java.util.List; +import com.netflix.loadbalancer.BaseLoadBalancer; +import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.Server; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -50,47 +50,46 @@ import static org.junit.Assert.assertNotNull; * @author Jakub Narloch */ @WebAppConfiguration -@IntegrationTest({"server.port=0","feign.compression.response.enabled=true"}) -@SpringApplicationConfiguration(classes = {FeignAcceptEncodingTest.Application.class}) +@IntegrationTest({ "server.port=0", "feign.compression.response.enabled=true" }) +@SpringApplicationConfiguration(classes = { FeignAcceptEncodingTests.Application.class }) @RunWith(SpringJUnit4ClassRunner.class) -public class FeignAcceptEncodingTest { +public class FeignAcceptEncodingTests { - @Autowired - private InvoiceClient invoiceClient; + @Autowired + private InvoiceClient invoiceClient; - @Test - public void compressedResponse() { + @Test + public void compressedResponse() { - // when - final ResponseEntity> invoices = invoiceClient.getInvoices(); + // when + final ResponseEntity> invoices = this.invoiceClient.getInvoices(); - // then - assertNotNull(invoices); - assertEquals(HttpStatus.OK, invoices.getStatusCode()); - assertNotNull(invoices.getBody()); - assertEquals(100, invoices.getBody().size()); + // then + assertNotNull(invoices); + assertEquals(HttpStatus.OK, invoices.getStatusCode()); + assertNotNull(invoices.getBody()); + assertEquals(100, invoices.getBody().size()); - } + } - @EnableFeignClients(clients = InvoiceClient.class) - @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class) - @ComponentScan("org.springframework.cloud.netflix.feign.encoding.app") - @EnableAutoConfiguration - @Configuration - public static class Application { - } + @EnableFeignClients(clients = InvoiceClient.class) + @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class) + @SpringBootApplication(scanBasePackages = "org.springframework.cloud.netflix.feign.encoding.app") + public static class Application { + } - @Configuration - static class LocalRibbonClientConfiguration { + @Configuration + static class LocalRibbonClientConfiguration { - @Value("${local.server.port}") - private int port = 0; + @Value("${local.server.port}") + private int port = 0; - @Bean - public ILoadBalancer ribbonLoadBalancer() { - BaseLoadBalancer balancer = new BaseLoadBalancer(); - balancer.setServersList(Collections.singletonList(new Server("localhost", this.port))); - return balancer; - } - } + @Bean + public ILoadBalancer ribbonLoadBalancer() { + BaseLoadBalancer balancer = new BaseLoadBalancer(); + balancer.setServersList( + Collections.singletonList(new Server("localhost", this.port))); + return balancer; + } + } } \ No newline at end of file diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignContentEncodingTest.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignContentEncodingTest.java index ba0cbd45..f38629f8 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignContentEncodingTest.java +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/FeignContentEncodingTest.java @@ -16,14 +16,14 @@ package org.springframework.cloud.netflix.feign.encoding; -import com.netflix.loadbalancer.BaseLoadBalancer; -import com.netflix.loadbalancer.ILoadBalancer; -import com.netflix.loadbalancer.Server; +import java.util.Collections; +import java.util.List; + import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.IntegrationTest; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.cloud.netflix.feign.EnableFeignClients; @@ -31,15 +31,15 @@ import org.springframework.cloud.netflix.feign.encoding.app.client.InvoiceClient import org.springframework.cloud.netflix.feign.encoding.app.domain.Invoice; import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; -import java.util.Collections; -import java.util.List; +import com.netflix.loadbalancer.BaseLoadBalancer; +import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.Server; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -50,50 +50,52 @@ import static org.junit.Assert.assertNotNull; * @author Jakub Narloch */ @WebAppConfiguration -@IntegrationTest({"server.port=0","feign.compression.request.enabled=true"}) -@SpringApplicationConfiguration(classes = {FeignContentEncodingTest.Application.class}) +@IntegrationTest({ "server.port=0", "feign.compression.request.enabled=true", + "hystrix.command.default.execution.isolation.strategy=SEMAPHORE", + "ribbon.OkToRetryOnAllOperations=false" }) +@SpringApplicationConfiguration(classes = { FeignContentEncodingTest.Application.class }) @RunWith(SpringJUnit4ClassRunner.class) public class FeignContentEncodingTest { - @Autowired - private InvoiceClient invoiceClient; + @Autowired + private InvoiceClient invoiceClient; - @Test - public void compressedResponse() { + @Test + public void compressedResponse() { - // given - final List invoices = Invoices.createInvoiceList(50); + // given + final List invoices = Invoices.createInvoiceList(50); - // when - final ResponseEntity> response = invoiceClient.saveInvoices(invoices); + // when + final ResponseEntity> response = this.invoiceClient + .saveInvoices(invoices); - // then - assertNotNull(response); - assertEquals(HttpStatus.OK, response.getStatusCode()); - assertNotNull(response.getBody()); - assertEquals(invoices.size(), response.getBody().size()); + // then + assertNotNull(response); + assertEquals(HttpStatus.OK, response.getStatusCode()); + assertNotNull(response.getBody()); + assertEquals(invoices.size(), response.getBody().size()); - } + } - @EnableFeignClients(clients = InvoiceClient.class) - @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class) - @ComponentScan("org.springframework.cloud.netflix.feign.encoding.app") - @EnableAutoConfiguration - @Configuration - public static class Application { - } + @EnableFeignClients(clients = InvoiceClient.class) + @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class) + @SpringBootApplication(scanBasePackages = "org.springframework.cloud.netflix.feign.encoding.app") + public static class Application { + } - @Configuration - static class LocalRibbonClientConfiguration { + @Configuration + static class LocalRibbonClientConfiguration { - @Value("${local.server.port}") - private int port = 0; + @Value("${local.server.port}") + private int port = 0; - @Bean - public ILoadBalancer ribbonLoadBalancer() { - BaseLoadBalancer balancer = new BaseLoadBalancer(); - balancer.setServersList(Collections.singletonList(new Server("localhost", this.port))); - return balancer; - } - } + @Bean + public ILoadBalancer ribbonLoadBalancer() { + BaseLoadBalancer balancer = new BaseLoadBalancer(); + balancer.setServersList( + Collections.singletonList(new Server("localhost", this.port))); + return balancer; + } + } } \ No newline at end of file diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/app/client/InvoiceClient.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/app/client/InvoiceClient.java index 47e76ad9..bc033976 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/app/client/InvoiceClient.java +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/encoding/app/client/InvoiceClient.java @@ -16,6 +16,8 @@ package org.springframework.cloud.netflix.feign.encoding.app.client; +import java.util.List; + import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.encoding.app.domain.Invoice; import org.springframework.http.MediaType; @@ -23,8 +25,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import java.util.List; - /** * Simple Feign client for retrieving the invoice list. * @@ -33,10 +33,9 @@ import java.util.List; @FeignClient("local") public interface InvoiceClient { - @RequestMapping(value = "invoices", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - ResponseEntity> getInvoices(); + @RequestMapping(value = "invoices", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + ResponseEntity> getInvoices(); - @RequestMapping(value = "invoices", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, - produces = MediaType.APPLICATION_JSON_VALUE) - ResponseEntity> saveInvoices(List invoices); + @RequestMapping(value = "invoices", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + ResponseEntity> saveInvoices(List invoices); } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java index 761633ea..b78866a4 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java @@ -220,7 +220,9 @@ public class EurekaClientConfigBean implements EurekaClientConfig, EurekaConstan private int cacheRefreshExecutorExponentialBackOffBound = 10; /** - * Map of availability zone to fully qualified URLs to communicate with eureka server. + * Map of availability zone to list of fully qualified URLs to communicate with eureka + * server. Each value can be a single URL or a comma separated list of alternative + * locations. * * Typically the eureka server URLs carry protocol,host,port,context and version * information if any. Example: